Você está na página 1de 14

Algoritmos Geomtricos y Numricos

Algortmica III 2010 - II

GUIA 7

Algoritmos geomtricos y Numricos


Albert Einstein (14 de marzo de 1879 18 de abril de 1955), nacido en Alemania y nacionalizado en Estados Unidos en 1940, es el cientfico ms conocido e importante del siglo XX. En 1905, siendo un joven fsico desconocido, empleado en la Oficina de Patentes de Berna (Suiza), public su Teora de la Relatividad Especial. En ella incorpor, en un marco terico simple y con base en postulados fsicos sencillos, conceptos y fenmenos estudiados anteriormente por Henri Poincar y Hendrik Lorentz. Probablemente, la ecuacin de la fsica ms conocida a nivel popular es la expresin matemtica de la equivalencia masa - energa, E=mc2, deducida por Einstein como una consecuencia lgica de esta teora. Ese mismo ao public otros trabajos que sentaran algunas de las bases de la fsica estadstica y la mecnica quntica.

"Soy en verdad un viajero solitario expres Einstein e una ocasin-, y los ideales que han iluminado mi camino y han proporcionado una y otra vez nuevo valor para afrontar la vida han sido: la belleza, la bondad y la verdad."

En 1951 present la Teora General de la Relatividad, en la que reformul por completo el concepto de gravedad. Una de las consecuencias fue el surgimiento del estudio cientfico del origen y evolucin del Universo por la rama de la fsica denominada cosmologa. Muy poco despus, Einstein se convirti en un icono popular de la ciencia alcanzando fama mundial, un privilegio al alcance de muy pocos cientficos. Obtuvo el Premio Nobel de Fsica en 1921 por su explicacin del efecto fotoelctrico y sus numerosas contribuciones a la fsica terica, y no por la Relatividad, pues en esa poca era an considerada un tanto controvertida por parte de muchos cientficos.

Augusto Cortez Vsquez

Pg. 1/14

Algoritmos Geomtricos y Numricos

Algortmica III 2010 - II

Objetivos de aprendizaje
El objetivo principal es iniciar al alumno en el diseo y anlisis de algoritmos geomtricos y algoritmos aritmticos. Para ello se muestran las tcnicas bsicas de la Geometra computacional

ALGORITMOS GEOMETRICOS
La geometra computacional es una rama de las ciencias de la computacin que emergi en la dcada de 1970. Estudia los algoritmos que resuelven problemas geomtricos

Aplicaciones Diseo de VLSI CAD diseo asistido por computadoras CAM GIS sistema de informacin geogrfica Las aplicaciones en geometra computacional actan sobre objetos geomtricos simples: punto, recta y polgono Punto: objeto fundamental y es considerado como un par de enteros (x,y) Lnea: par de puntos unidos por un segmento de lnea recta Se puede representar como un struct(x,y) o una clase{x,y} Polgono: Secuencia de segmentos de lnea que unen un conjunto de puntos formando Polgono convexo: un polgono convexo, es un polgono con la propiedad de que cualquier segmento de recta cuyos extremos estn en el polgono cae por completo dentro del polgono

Augusto Cortez Vsquez

Pg. 2/14

Algoritmos Geomtricos y Numricos

Algortmica III 2010 - II

Algunas aplicaciones
Ejemplo 1 Problema de Construccin de una recta que pasa por un par de puntos

Dados dos puntos P y Q, se quiere construir la recta que pase por los dos puntos. Para ello se construye halla la pendiente formada por el segmento de recta PQ. La ecuacin de la recta L tiene la forma y = mx +b Sea P=(X1,Y1) y Q=(X2,Y2) m = (Y2-Y1) / (X2-X1) Cualquier punto (X, Y) en la recta L debe satisfacer tambin la ecuacin m= (Y-Y1) / (X-X1) = (Y2-Y1) / (X2-X1) Despejando Y se tiene Y = [(Y2-Y1) / (X2-X1)] * (X-X1) + Y1 De donde se obtiene que m= (Y2-Y1) / (X2-X1) b= (Y2-Y1) / (X2-X1) *X1 + Y1

package algoritmos_geometricos; // Augusto Cortez Vasquez public class Recta { private private private private double P1[]= new double[2]; double P2[]= new double[2]; double m=0; double b=0;

public Recta(double x1,double y1,double x2,double y2){ P1[0]=x1;

Augusto Cortez Vsquez

Pg. 3/14

Algoritmos Geomtricos y Numricos

Algortmica III 2010 - II

P1[1]=y1; P2[0]=x2; P2[1]=y2; } public double pendiente(){ m=(P1[1]-P2[1])/(P1[0]-P2[0]); return (m); } public double b() { b=P2[1]-(m*P2[0]); return(b); } public boolean pertenencia(double x, double y) { boolean sw=false; double aux=m*x+b; if(aux==y) sw=true; return sw; } public int lado(double x1, double y1 ){ double aux; double lado; aux = (y1-b)/m; lado=x1-aux; if (lado<0 ) return 0;//esta a la izquierda else return 1;//esta a la derecha } }

Ejemplo 2 Problema de Construccin de una recta que pasa por un punto y tiene pendiente m Ejemplo 3 Problema del par de puntos ms cercano

Augusto Cortez Vsquez

Pg. 4/14

Algoritmos Geomtricos y Numricos

Algortmica III 2010 - II

El algoritmo tradicional tiene un tiempo cuadrtico Una solucin Divide y vencers tiene un orden nLg n Par de puntos mas Par cercanos de puntos mas cercanos

Ejemplo 4

Problema de los tres puntos colineales


Una solucin convencional es de orden cbico

Ejemplo 5

Verificar si un par de puntos son colindantes

Dado un par de puntos P y Q, decimos que son colindantes, si existe una recta L, tal que P y Q estan en el mismo lado de L P

P y Q son colindantes

Augusto Cortez Vsquez

Pg. 5/14

Algoritmos Geomtricos y Numricos

Algortmica III 2010 - II

P y Q no son colindantes

Ejemplo 6

Cortes de segmentos

Dado un par de segmentos. Verificar si se cortan o no

(a)

(b)

(c)

(d)

Se distinguen 4 casos: a y b se cortan, porque tienen un punto en comn c y d no se cortan, pero difieren si se considera el punto de interseccin de las lneas definidas por los segmentos. En (d) el punto de interseccin esta contenido en uno de los segmentos, mientras que en (c) no es as

Ejemplo 7

Punto de cubierta

Dado un conjunto de puntos A en el plano y P un punto en A. Decimos que P es un punto de cubierta, si existe una lnea recta L que pasa por P, de modo que todos los puntos de A, excepto P estn en el mismo lado de L

Augusto Cortez Vsquez

Pg. 6/14

Algoritmos Geomtricos y Numricos

Algortmica III 2010 - II

La cubierta convexa de un conjunto de puntos A de un plano, es la sucesin P1, P2,..Pn de puntos de la cubierta, enumerados en el siguiente orden: P1: punto con coordenada mnima Si existen varios puntos con coordenada Y mnima, P1 se elige el que tiene abscisa mnima Sea Ai : ngulo que forma la horizontal con el segmento P1Pi... Los puntos P2, P3,Pn se ordenan de modo que A1, A2,..An sea una sucesin creciente. Se descartan los puntos que no estn en la cubierta convexa

Los puntos de azul son puntos de cubierta

Augusto Cortez Vsquez

Pg. 7/14

Algoritmos Geomtricos y Numricos

Algortmica III 2010 - II

Ejemplo 8 Problema del cerco convexo

Cerco convexo
El problema del cerco convexo es encontrar el rea ms pequea de un polgono convexo que encierre un conjunto de puntos en el plano

Algoritmo de Graham
Este algoritmo surgi a finales de los 60, cuando en los laboratorios Bell se necesitaba calcular el cierre convexo de unos 10.000 puntos, y con uno de los algoritmos de por entonces, de O(N2) resultaba demasiado lento. Entonces Graham lo solucion con el presente algoritmo.

Diagrama de Voronoi
El conjunto de puntos ms cercanos a un punto dado que todos los otros puntos en un conjunto de puntos es una interesante estructura geomtrica denominada polgono de Voronoi del punto. La unin de todos los polgonos de Voronoi de un conjunto de puntos se denomina diagrama de Voronoi

Augusto Cortez Vsquez

Pg. 8/14

Algoritmos Geomtricos y Numricos

Algortmica III 2010 - II

Una triangulacin de Delaunay /dlo'ne/, a veces escrito fonticamente Delon, es una red de tringulos que cumple la condicin de Delaunay. Esta condicin dice que la circunferencia circunscrita de cada tringulo de la red no debe contener ningn vrtice de otro tringulo. Se usan triangulaciones de Delaunay en geometra por ordenar, especialmente en grficos 3D por computadora

Augusto Cortez Vsquez

Pg. 9/14

Algoritmos Geomtricos y Numricos

Algortmica III 2010 - II

ALGORITMOS NUMERICOS
El anlisis o clculo numrico es la rama de las matemticas que se encarga de disear algoritmos para, a travs de nmeros y reglas matemticas simples simular procesos matemticos ms complejos aplicados a procesos del mundo real.

Ejemplo 9

Clculo de e mediante serie infinita

Se puede calcular el valor de la constante e, base de los logaritmos neperianos. Se hace una aproximacin empelando la siguiente serie infinita

e=

1 + 1 / 1! + 1 /2! +1/3! . ...

El clculo se detiene cuando el valor acumulado de e, no se logra diferenciar (por la precisin del computador), del valor calculado en la iteracin anterior. Es decir, cuando el siguiente termino a sumar es tan pequeo que el computador lo considera como cero. El factorial representado por el smbolo en la serie, se implementa mediante una funcin Una vez que ser calcula la aproximacin, el programa despliega el valor encontrado, as como el nmero de iteraciones que se emplearon para obtenerlo, es decir, la cantidad de trminos de la serie que fue necesario para llegar a la aproximacin.

x Ejemplo 10 Calculo de e mediante serie infinita


Se puede calcular el valor de la constante ex, base de los logaritmos neperianos. Se hace una aproximacin empelando la siguiente serie infinita

ex =

1 + X 1/ 1! + X 2/ 2! + X 3/ 3! . ...

Una vez que ser calcula la aproximacin, el programa despliega el valor encontrado, as como el nmero de iteraciones que se emplearon para obtenerlo, es decir, la cantidad de trminos de la serie que fue necesario para llegar a la aproximacin.

Ejemplo 11 Evaluacin de integrales


La integracin numrica, tambin conocida como cuadratura numrica, busca calcular el valor de una integral definida. Mtodos populares utilizan alguna de las frmulas de Newton-Cotes (como la regla del rectngulo o la regla de Augusto Cortez Vsquez Pg. 10/14

Algoritmos Geomtricos y Numricos

Algortmica III 2010 - II

Simpson) o de cuadratura gaussiana. Estos mtodos se basan en una estrategia de "divide y vencers", dividiendo el intervalo de integracin en subintervalos y calculando la integral como la suma de las integrales en cada subintervalo, pudindose mejorar posteriormente el valor de la integral obtenido mediante el mtodo de Romberg. Para el clculo de integrales mltiples estos mtodos requieren demasiado esfuerzo computacional, siendo til el mtodo de Montecarlo.

Ejemplo 12 Clculo de los valores de una funcin


Uno de los problemas ms sencillos es la evaluacin de una funcin en un punto dado. Para polinomios, uno de los mtodos ms utilizados es el algoritmo de Horner, ya que reduce el nmero de operaciones a realizar. En general, es importante estimar y controlar los errores de redondeo que se producen por el uso de la aritmtica de punto flotante

Ejemplo 13 Interpolacin, extrapolacin y regresin


La interpolacin resuelve el problema siguiente: dado el valor de una funcin desconocida en un nmero de puntos, cul es el valor de la funcin en un punto entre los puntos dados? El mtodo ms sencillo es la interpolacin lineal, que asume que la funcin desconocida es lineal entre cualquier par de puntos sucesivos. Este mtodo puede generalizarse a la interpolacin polinmicas, que suele ser ms precisa pero que sufre el llamado fenmeno de Runge. Otros mtodos de interpolacin usan otro tipo de funciones interpoladoras dando lugar a la interpolacin mediante splines y a la interpolacin trigonomtrica. Otros mtodos de interpolacin utilizando derivadas sucesivas de la funcin son mediante los polinomios de Taylor y la aproximacin de Pade. La extrapolacin es muy similar a la interpolacin, excepto que ahora queremos encontrar el valor de la funcin desconocida en un punto que no est comprendido entre los puntos dados. La regresin es tambin similar, pero tiene en cuenta que los datos son imprecisos. Dados algunos puntos, y una medida del valor de la funcin en los mismos (con un error debido a la medicin), queremos determinar la funcin desconocida. El mtodo de los mnimos cuadrados es una forma popular de conseguirlo.

Ejemplo 14 Resolucin de ecuaciones y sistemas de ecuaciones


Uno de los problemas numricos fundamentales es calcular la solucin de una ecuacin o sistema de ecuaciones dado. Se distinguen dos casos dependiendo de si la ecuacin o sistema de ecuaciones es o no lineal. Por ejemplo, la ecuacin 5x + 5 = 3 es lineal mientras que la ecuacin 2x2 + 5 = 3 no lo es.

Augusto Cortez Vsquez

Pg. 11/14

Algoritmos Geomtricos y Numricos

Algortmica III 2010 - II

EJERCICIOS PROPUESTOS
Especifique, construya y evalu las soluciones para los siguientes problemas 1 Dado un conjunto de puntos, Hallar el par de puntos mas cercanos (dar una solucin cuadrtica) Dado un conjunto de puntos, Hallar el par de puntos mas cercanos (dar una solucin divide y vencers) Dada una recta y un par de puntos, verificar si estos estn o no en el mismo lado de la recta( son colindantes) Dadas dos rectas, verificar si son o no paralelas Dadas dos rectas, verificar si son o no ortogonales Dado un conjunto de puntos, hallar el cerco convexo de los puntos Dado un conjunto de puntos, hallar un camino cerrado simple Dado un polgono y un punto P. Verificar si P esta dentro del polgono. Dado un conjunto de puntos verificar si un punto determinado P es un punto de cubierta Hallar el polgono de Voronoi pare un conjunto de puntos Dado un conjunto de enteros , un entero N y un subconjunto S, construya un algoritmo para verificar los elementos de S suma N ( utilice la representacin 1) Dado un conjunto de enteros , un entero N y un subconjunto S, construya un algoritmo para verificar los elementos de S suma N ( utilice la representacin 2) Comente acerca de las aplicaciones deVoronoy Comente acerca de las aplicaciones de Delaunay Indague sobre el mtodo de mnimos cuadrados y proporcione un ejemplo. Especifique y defina el algoritmo utilizado. Indague sobre el mtodo de interpolacin y proporcione un ejemplo. Especifique y defina el algoritmo utilizado. Proporcione una solucin para calcular

4 5 6 7 8 9

10 11

12

13 14 15

16 17

e
Pg. 12/14

Augusto Cortez Vsquez

Algoritmos Geomtricos y Numricos

Algortmica III 2010 - II

18 19 20

Proporcione una solucin para calcular

ex

En que consiste el algoritmo de Horner. Especifique y defina el Algoritmo. Especifique e implemente el algoritmo para hallar la integral de una funcin

REFERENCIAS BIBLIOGRAFICAS
1. [BRASSARD 1998] Brassard,G. Bratley,P. Fundamentos de Algoritmia, Prentice Hall 1998 Madrid 2. [CORTEZ 1999] Cortez Vasquez,Augusto. Matematica Discreta, UNMSM FISI Lima 1999. 4 [CORTEZ 2002] Cortez Vsquez,Augusto. Algoritmica y Programacin, UCSS Lima 2002. 5 [CORTEZ 2002] Cortez Vasquez,Augusto. Estructura de datos y algoritmos, estructuras no lineales, URP Lima 2002. 6 [GRASSMANN 1996] Grasssmann W. ,Tremblay J. Matematica Discreta y Logica; Prentice Hall 1996. 7 [GRIMALDI 1994] Grimaldi Ralph Matemticas Discreta y Combinatoria; Addison-Wesley 1994 8 [GUTIERREZ 1993] Gutirrez Xavier Franch Estructuras de datos, Especificacin, diseo e implementacin; Edicin UPC Barcelona Espaa 19934 [HERNANDEZ 2001] Hernandez, R.; Lzaro, J.C.; Dormido, R.; Ros, S. Estructura de Datos y Algoritmos; Prentice Hall 2001, Madrid Espaa.

10 [JAIME 2002] Jaime, Alberto. Estructuras de datos y Algoritmos; Prentice Hall 2002 Bogota D.C. 11 [JOHNSONBAUGH 1999] Johnsonbaugh Richard Mateamticas Discretas; Prentice Hall 1999, Pags. 12 [LIPSCHUTZ 1987] Lipschutz Seymour Hill,1987 Estructura de datos, Mc Graw-

13

[CARMONA 1999] Carmona, Poyato Angel y Otros Estructuta de Datos, Caja Sur Universidad de Cordova Espaa 1999

14 [SEDGEWICK 1993] Stroustrup Bjarne El C++ Lenguaje de programacion; Addison-Wesley 1993 , Wilmington-Delaware EUA.

Augusto Cortez Vsquez

Pg. 13/14

Algoritmos Geomtricos y Numricos

Algortmica III 2010 - II

15 [TENEMBNAUM 1993] Tenembaum,A.Langsam Y.Augenstein M. Estructuras de datos en C, Prentice Hall 1993. 16 [WEISS 2000] Weiss, Mark Allen. Estructuras de datos en JAVA; AddisonWesley, 2000.

Augusto Cortez Vsquez

Pg. 14/14

Você também pode gostar