Lea el cuento despacio, deteniendose a hacer preguntas breves en cada sección.
Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i...
Transcript of Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i...
![Page 1: Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i hacer 2. Para cada j ≠ i hacer 3. Para cada k ≠ i ≠ j hacer 4. Para cada h](https://reader035.fdocuments.es/reader035/viewer/2022070910/5f9b6e6c7c900e5b1542688d/html5/thumbnails/1.jpg)
Introducción a la Geometría Computacional Copyright © 2010-2011 Universidad de Alicante 1
Convex hull
Computación geométrica
![Page 2: Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i hacer 2. Para cada j ≠ i hacer 3. Para cada k ≠ i ≠ j hacer 4. Para cada h](https://reader035.fdocuments.es/reader035/viewer/2022070910/5f9b6e6c7c900e5b1542688d/html5/thumbnails/2.jpg)
Introducción a la Geometría Computacional Copyright © 2010-2011 Universidad de Alicante 2
Índice
• Definición, aplicaciones y propiedades• Algoritmos triviales• Gift wrapping• Quick hull• Algoritmo de Graham• Algoritmo incremental
![Page 3: Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i hacer 2. Para cada j ≠ i hacer 3. Para cada k ≠ i ≠ j hacer 4. Para cada h](https://reader035.fdocuments.es/reader035/viewer/2022070910/5f9b6e6c7c900e5b1542688d/html5/thumbnails/3.jpg)
Introducción a la Geometría Computacional Copyright © 2010-2011 Universidad de Alicante 3
Definición
• Dado un conjunto S de puntos, su convex hull es el polígono convexo más pequeño que incluye a todos los puntos de S
![Page 4: Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i hacer 2. Para cada j ≠ i hacer 3. Para cada k ≠ i ≠ j hacer 4. Para cada h](https://reader035.fdocuments.es/reader035/viewer/2022070910/5f9b6e6c7c900e5b1542688d/html5/thumbnails/4.jpg)
Introducción a la Geometría Computacional Copyright © 2010-2011 Universidad de Alicante 4
Aplicaciones
• Planificación de movimientos sin colisiones• Optimización: investigación operativa• Análisis de forma
![Page 5: Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i hacer 2. Para cada j ≠ i hacer 3. Para cada k ≠ i ≠ j hacer 4. Para cada h](https://reader035.fdocuments.es/reader035/viewer/2022070910/5f9b6e6c7c900e5b1542688d/html5/thumbnails/5.jpg)
Introducción a la Geometría Computacional Copyright © 2010-2011 Universidad de Alicante 5
Conjunto convexo
• Un conjunto es convexo, si, para cualquier
se cumple que
![Page 6: Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i hacer 2. Para cada j ≠ i hacer 3. Para cada k ≠ i ≠ j hacer 4. Para cada h](https://reader035.fdocuments.es/reader035/viewer/2022070910/5f9b6e6c7c900e5b1542688d/html5/thumbnails/6.jpg)
Introducción a la Geometría Computacional Copyright © 2010-2011 Universidad de Alicante 6
Combinación convexa
• Una combinación convexa de los puntos es un punto que cumple
y en donde alfa_i > 0 y
![Page 7: Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i hacer 2. Para cada j ≠ i hacer 3. Para cada k ≠ i ≠ j hacer 4. Para cada h](https://reader035.fdocuments.es/reader035/viewer/2022070910/5f9b6e6c7c900e5b1542688d/html5/thumbnails/7.jpg)
• El recubrimiento convexo de es el conjunto de todas sus combinaciones convexas
Introducción a la Geometría Computacional Copyright © 2010-2011 Universidad de Alicante 7
Combinación convexa y RC
![Page 8: Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i hacer 2. Para cada j ≠ i hacer 3. Para cada k ≠ i ≠ j hacer 4. Para cada h](https://reader035.fdocuments.es/reader035/viewer/2022070910/5f9b6e6c7c900e5b1542688d/html5/thumbnails/8.jpg)
Introducción a la Geometría Computacional Copyright © 2010-2011 Universidad de Alicante 8
Propiedades geométricas
• El RC de S es la unión de todos los triángulos determinados por puntos de S
• El RC de S es la intersección de todos los semiespacios que contienen S
• Un punto de S es un vértice del RC si no existe ningún triángulo determinado por puntos de S que lo incluya
![Page 9: Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i hacer 2. Para cada j ≠ i hacer 3. Para cada k ≠ i ≠ j hacer 4. Para cada h](https://reader035.fdocuments.es/reader035/viewer/2022070910/5f9b6e6c7c900e5b1542688d/html5/thumbnails/9.jpg)
Introducción a la Geometría Computacional Copyright © 2010-2011 Universidad de Alicante 9
Algoritmo trivial 1
• Determinación de puntos extremos1. Para cada i hacer2. Para cada j ≠ i hacer3. Para cada k ≠ i ≠ j hacer4. Para cada h ≠ i ≠ k ≠ j hacer5. Si Ph está a la izqda de (Pi,Pj) y6. Ph está a la izqda de (Pj,Pk) y7. Ph está a la izqda de (Pk,Pi)8. entonces Ph no es extremo
Complejidad: O(n )4
![Page 10: Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i hacer 2. Para cada j ≠ i hacer 3. Para cada k ≠ i ≠ j hacer 4. Para cada h](https://reader035.fdocuments.es/reader035/viewer/2022070910/5f9b6e6c7c900e5b1542688d/html5/thumbnails/10.jpg)
Introducción a la Geometría Computacional Copyright © 2010-2011 Universidad de Alicante 10
Algoritmo trivial 2
• Determinación de aristas extremas
1. Para cada i hacer2. Para cada j ≠ i hacer3. Para cada k ≠ i ≠ j hacer4. Si Pk no está a la izqda de (Pi,Pj)5. entonces (Pi,Pj) no es extremo
Complejidad: O(n )3
![Page 11: Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i hacer 2. Para cada j ≠ i hacer 3. Para cada k ≠ i ≠ j hacer 4. Para cada h](https://reader035.fdocuments.es/reader035/viewer/2022070910/5f9b6e6c7c900e5b1542688d/html5/thumbnails/11.jpg)
Introducción a la Geometría Computacional Copyright © 2010-2011 Universidad de Alicante 11
Gift Wrapping
1. Encontrar punto p más pequeño en coord. y, sea i0 su índice 2. i := i03. Repetir4. Para cada j ≠ i hacer5. Calcular el ángulo en sentido antihorario entre Pj y la arista anterior del RC6. Sea k el índice del punto con ángulo menor7. Marcar (Pi,Pk) como una arista del RC8. i := k9. Hasta que i = i0
![Page 12: Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i hacer 2. Para cada j ≠ i hacer 3. Para cada k ≠ i ≠ j hacer 4. Para cada h](https://reader035.fdocuments.es/reader035/viewer/2022070910/5f9b6e6c7c900e5b1542688d/html5/thumbnails/12.jpg)
Introducción a la Geometría Computacional Copyright © 2010-2011 Universidad de Alicante 12
Gift Wrapping (ejemplo)
1 2
3 4
![Page 13: Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i hacer 2. Para cada j ≠ i hacer 3. Para cada k ≠ i ≠ j hacer 4. Para cada h](https://reader035.fdocuments.es/reader035/viewer/2022070910/5f9b6e6c7c900e5b1542688d/html5/thumbnails/13.jpg)
Introducción a la Geometría Computacional Copyright © 2010-2011 Universidad de Alicante 13
QuickHull
QuickHull(a,b,S)1. Si S={a,b} entonces devolver (a,b)2. sino3. c := índice del punto con máxima distancia a (a,b)4. A := puntos a la derecha de (a,c)5. B := puntos a la derecha de (c,b)6. devolver concatenar(QuickHull(a,c,A),QuickHull(c,b,B)
ConvexHull(S)1. a := punto más a la derecha de S2. b := punto más a la izquierda de S3. devolver concatenar(QuickHull(a,b,S),QuickHull(b,a,S))
![Page 14: Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i hacer 2. Para cada j ≠ i hacer 3. Para cada k ≠ i ≠ j hacer 4. Para cada h](https://reader035.fdocuments.es/reader035/viewer/2022070910/5f9b6e6c7c900e5b1542688d/html5/thumbnails/14.jpg)
Introducción a la Geometría Computacional Copyright © 2010-2011 Universidad de Alicante 14
QuickHull
1 2
3 4
![Page 15: Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i hacer 2. Para cada j ≠ i hacer 3. Para cada k ≠ i ≠ j hacer 4. Para cada h](https://reader035.fdocuments.es/reader035/viewer/2022070910/5f9b6e6c7c900e5b1542688d/html5/thumbnails/15.jpg)
Introducción a la Geometría Computacional Copyright © 2010-2011 Universidad de Alicante 15
Propiedad del RC
• Si un punto no es un vértice del RC, entonces es interno a algún triángulo (Opq), donde O es un punto cualquiera interior al RC, y p y q son vértices consecutivos del RC
![Page 16: Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i hacer 2. Para cada j ≠ i hacer 3. Para cada k ≠ i ≠ j hacer 4. Para cada h](https://reader035.fdocuments.es/reader035/viewer/2022070910/5f9b6e6c7c900e5b1542688d/html5/thumbnails/16.jpg)
Introducción a la Geometría Computacional Copyright © 2010-2011 Universidad de Alicante 16
Scan de Graham
• Ordenación de los puntos alrededor de un punto interior
• Barrido de forma ordenada, eliminando los puntos internos, que cumplen la condición anterior
![Page 17: Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i hacer 2. Para cada j ≠ i hacer 3. Para cada k ≠ i ≠ j hacer 4. Para cada h](https://reader035.fdocuments.es/reader035/viewer/2022070910/5f9b6e6c7c900e5b1542688d/html5/thumbnails/17.jpg)
Introducción a la Geometría Computacional Copyright © 2010-2011 Universidad de Alicante 17
Algoritmo Scan de Graham
1. Encontrar el punto inferior más a la derecha (P0)2. Ordenar todos los puntos angularmente alrededor de P0; aquellos puntos que estén en el mismo ángulo colocar primero el más cercano a P0: etiquetarlos P1,...,Pn-13. Pila S := (Pn-1,P0)4. t := tope de S (P0)5. i := 16. Mientras que i<n hacer7. Si Pi está estrictamente a la izqda de (Pt-1,Pt)8. entonces Push(S,i); i := i+19. sino Pop(S)
![Page 18: Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i hacer 2. Para cada j ≠ i hacer 3. Para cada k ≠ i ≠ j hacer 4. Para cada h](https://reader035.fdocuments.es/reader035/viewer/2022070910/5f9b6e6c7c900e5b1542688d/html5/thumbnails/18.jpg)
Introducción a la Geometría Computacional Copyright © 2010-2011 Universidad de Alicante 18
Ejemplo
1 2
3 4
![Page 19: Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i hacer 2. Para cada j ≠ i hacer 3. Para cada k ≠ i ≠ j hacer 4. Para cada h](https://reader035.fdocuments.es/reader035/viewer/2022070910/5f9b6e6c7c900e5b1542688d/html5/thumbnails/19.jpg)
Introducción a la Geometría Computacional Copyright © 2010-2011 Universidad de Alicante 19
Métodos incrementales
• Interés en procesar los puntos que han llegado hasta el momento, manteniendo la estructura actualizada hasta el último punto recibido
• La complejidad del algoritmo incremental es nO(u), siendo O(u) la complejidad de actualización y n el número de puntos
![Page 20: Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i hacer 2. Para cada j ≠ i hacer 3. Para cada k ≠ i ≠ j hacer 4. Para cada h](https://reader035.fdocuments.es/reader035/viewer/2022070910/5f9b6e6c7c900e5b1542688d/html5/thumbnails/20.jpg)
Introducción a la Geometría Computacional Copyright © 2010-2011 Universidad de Alicante 20
Algoritmo RC incremental
Incremental(RC,p)1. Si p está dentro de RC2. entonces devolver RC3. sino4. (Pt1,Pt2) := puntosTangentes(RC,p)5. Eliminar aristas en RC de Pt1 a Pt26. Conectar Pt1 con p y p con Pt2
![Page 21: Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i hacer 2. Para cada j ≠ i hacer 3. Para cada k ≠ i ≠ j hacer 4. Para cada h](https://reader035.fdocuments.es/reader035/viewer/2022070910/5f9b6e6c7c900e5b1542688d/html5/thumbnails/21.jpg)
Introducción a la Geometría Computacional Copyright © 2010-2011 Universidad de Alicante 21
Puntos tangentes
![Page 22: Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i hacer 2. Para cada j ≠ i hacer 3. Para cada k ≠ i ≠ j hacer 4. Para cada h](https://reader035.fdocuments.es/reader035/viewer/2022070910/5f9b6e6c7c900e5b1542688d/html5/thumbnails/22.jpg)
Introducción a la Geometría Computacional Copyright © 2010-2011 Universidad de Alicante 22
Aplicación a un mapa de bits
• Un ejemplo de aplicación: delimitación de objetos
![Page 23: Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i hacer 2. Para cada j ≠ i hacer 3. Para cada k ≠ i ≠ j hacer 4. Para cada h](https://reader035.fdocuments.es/reader035/viewer/2022070910/5f9b6e6c7c900e5b1542688d/html5/thumbnails/23.jpg)
Introducción a la Geometría Computacional Copyright © 2010-2011 Universidad de Alicante 23
Algoritmo para mapa de bits
Se realiza un barrido de arriba a abajo, seleccionando los puntos más a la derecha e izquierda de cada línea. Eliminar pi si
![Page 24: Presentación de PowerPointAlgoritmo trivial 1 • Determinación de puntos extremos 1. Para cada i hacer 2. Para cada j ≠ i hacer 3. Para cada k ≠ i ≠ j hacer 4. Para cada h](https://reader035.fdocuments.es/reader035/viewer/2022070910/5f9b6e6c7c900e5b1542688d/html5/thumbnails/24.jpg)
Introducción a la Geometría Computacional Copyright © 2010-2011 Universidad de Alicante 24
Extensión para 3 dimensiones