Introducción a las técnicas básicas de resolución de problemas de la Geometría Computacional. Análisis de la Envoltura Convexa como un problema tipo, a través del cual presentaremos los elementos fundamentales que se deben tener en cuenta para la solución eficiente de un problema.
3. ¿Qué es la Geometría Computacional?
Proporciona criterios para detectar y organizar estructuras
de datos geométricos, así como para facilitar su
visualización en pantalla.
Desarrolla herramientas computacionales para el análisis
de problemas geométricos.
Propone estrategias para implementar algoritmos que
faciliten la resolución efectiva de estos problemas
computacionalmente.
Geometría ComputacionalGeometría Computacional
4. ¿Qué es la Geometría Computacional?
Campo de la teoría de algoritmos
Las entradas son colecciones de objetos geométricos
Normalmente, objetos del plano:
puntos, líneas, segmentos, polígonos, redes, etc.
Las salidas son estructuras de datos geométricos
Las colecciones de objetos geométricos pasan a ser
estructuras de datos.
Las metodologías clásicas de resolución de problemas se
transforman en algoritmos eficientes.
Geometría ComputacionalGeometría Computacional
5. Creación de imágenes de escenas por computadora.
Intersección de primitivas geométricas (líneas, polígonos,
poliedros, etc.)
Determinar las primitivas que están en una región
Ocultar y remover superficies– determinar las partes
visibles de una escena 3D a partir de un punto de vista
mientras se ocultan las otras.
Creación realista tomando una cantidad de luz y
computando la sombra.
Tratar objetos en movimiento y detectar colisiones.
Geometría Computacional
Aplicaciones a Gráficos por Computadoras
6. Ejemplo 1 Proximidad
Entrada: Conjunto de
localizaciones (sitios).
Salida: Una subdivisión en
celdas. Cada celda contiene los
puntos más cercanos al sitio.
Aplicación: preguntas de
proximidad.
Diagrama Voronoi
Geometría Computacional
7. ¿Cómo un robot encuentra el camino más cercano evitando todos
obstáculos?
Robot
Ejemplo 2 Planeación de camino
Geometría Computacional
8. Geometría Computacional
Ejemplo 2 Planeación de camino
Encontrar el camino más corto en
un grafo ( grafo de visibilidad).
Se resuelve con algoritmos no
geométricos
Ex. Algoritmo de Dijkstra.
Algoritmos geométricos pueden
dar una solución más eficiente.
9. Geometría Computacional
Ejemplo 2 Planeación de camino
Encontrar el camino más corto en
un grafo ( grafo de visibilidad).
Se resuelve con algoritmos no
geométricos
Ex. Algoritmo de Dijkstra.
Algoritmos geométricos pueden
dar una solución más eficiente.
11. Determinar intersecciones entre colecciones de objetos.
Geometría Computacional
Ejemplo 3 Intersección de Objetos
12. Área de estudio sistemático de algoritmos para objetos
geométricos, búsqueda de algoritmos exactos
asintóticamente rápidos.
Dos claves para el éxito de lograr buenos algoritmos:
Adecuada comprensión del problema geométrico.
Correcta aplicación de técnicas algorítmicas y
estructuras de datos.
Geometría Computacional
13. Determinar intersecciones entre colecciones de objetos.
Geometría Computacional
Ejemplo 3 Intersección de Objetos
14. Dividir dominios complejos en colecciones de objetos
simples.
Geometría Computacional
Ejemplo 3 Triangulación
15. Dividir dominios complejos en colecciones de objetos
simples.
Geometría Computacional
Ejemplo 3 Triangulación
16. Problemas de optimización
Ej.: menor circulo que contiene un conjunto de
puntos.
Geometría ComputacionalGeometría Computacional
Ejemplo 4 Prog. Lineal en 2D y 3D
17. Problemas de optimización
Ej.: menor circulo que contiene un conjunto de
puntos.
Geometría ComputacionalGeometría Computacional
Ejemplo 4 Prog. Lineal en 2D y 3D
18. Algoritmos y estructuras de dados para
responder consultas geométricas. Ej:
Todos los objetos que interceptan una región
Rectángulo, Polígono, Círculo.
Par de puntos más próximos
Vecino más próximo
Camino más corto
Geometría ComputacionalGeometría Computacional
Ejemplo 5 Búsqueda Geométrica
20. ¿Origen de la Geometría Computacional?
Antigua Grecia y Egipto. El 1er algoritmo de G.C. nace
cuando una serie de pasos correctos, no ambiguos y con un
final resuelven un problema geométrico. Precursor: Euclides
de Alejandría.
Las grandes capacidades de computo a nivel de memoria y
de potencia de cálculo, son aprovechadas por muchas
disciplinas a partir de la segunda mitad del siglo XX.
Geometría ComputacionalGeometría Computacional
21. ¿Origen de la Geometría Computacional?
Surgió del campo de los algoritmos discretos
Énfasis en problemas de matemática discreta (conjuntos
de objetos, grafos).
La componente geométrica puede ofrecer soluciones más
eficientes.
Origen del término
(?) Libro “Perceptron” de Marvin Minsky
Usado para denotar algoritmos de modelación de sólidos.
Geometría ComputacionalGeometría Computacional
22. Objetivos
Objetivo:
Construcción y análisis de algoritmos y estructuras
de datos para solucionar problemas Geométricos.
Estudiar Estructuras de Datos y algoritmos tipos.
Dominar las técnicas de diseño de algoritmo básicas para la
Geometría Computacional.
Dominar criterios de optimalidad y calidad, tales como la
complejidad, robustez, corrección, ect.
Nos proponemos:
Geometría Computacional
23. Propiedades de un algoritmo
Finitud.
Terminación.
Corrección.
Eficiencia.
No-degeneración.
Robustez.
Geometría Computacional
24. Casos Degenerados.
Propiedades especiales de las entrada de datos
geométricos.
Ej.: 3-vertices colineales, 4-vertices sobre un circular.
Si necesariamente se incrementa el tiempo por la
degeneración.
Se asumen Posición General, Perturbación…
Robustez
En la situación de la implementación actual
Ej.) Aritmética de punto flotante
Degeneración y Robustez
Geometría Computacional
25. Limitaciones de la Geometría Computacional
Datos discretos
Aproximaciones de fenómenos continuos
Funciones que aproximan funciones continuas.(ej. imágenes)
Objetos geométricos “planos”
Aproximaciones geométricas “curvas”
Dimensionalidades
Normalmente, 2D en ocasiones 3D.
Problemas n-dimensionales poco abordados.
Geometría Computacional
26. Técnicas de diseño de algoritmos usadas
Técnicas convencionales :
Divide y vencerás.
Programación dinámica.
Algoritmos aleatorios
Glotón
Técnicas propias de algoritmos geométricos:
Barrido del Plano
Algoritmos Aleatorias Incrementales.
Transformaciones duales.
Cascada Fraccionaria.
Geometría Computacional
27. Muchas soluciones “óptimas” son inadecuadas
implementaciones prácticas ...
Muy complicadas
No sensibles a casos degenerados
Problemas de precisión
Complejidad inaceptable para problemas pequeños
Poca obtención de soluciones prácticas
Algoritmos simples
Frecuentemente aleatorizados.
Tratamiento integral de casos degenerados.
Geometría Computacional
Tendencias actuales
28. Pasos generales para la solución
Adecuada comprensión geométrica.
Solucionar el problema de manera simplificada. (sin
casos degenerados).Ej:
Sin 3 puntos colineales.
Sin 2 puntos con la misma coordenada x, etc.
Se asume Posición general.
Extender a todos los casos:
Tratar de integrar al algoritmo los casos degenerados.
Revisar la corrección y robustez.
Revisar si mantiene la misma complejidad.
Geometría Computacional
29. Y como la multitud de leyes sirve muy a menudo de disculpa a los
vicios, siendo un Estado mucho mejor regido cuando hay pocas, pero
muy estrictamente observadas, así también, en lugar del gran número
de preceptos que encierra la lógica, creí que me bastarían los cuatro
siguientes, supuesto que tomase una firme y constante resolución de
no dejar de observarlos una vez siquiera:
Fue el primero, no admitir como verdadera cosa alguna, como no
supiese con evidencia que lo es; es decir, evitar cuidadosamente la
precipitación y la prevención, y no comprender en mis juicios nada
más que lo que se presentase tan clara y distintamente a mí
espíritu, que no hubiese ninguna ocasión de ponerlo en duda.
El segundo, dividir cada una de las dificultades, que examinare, en
cuantas partes fuere posible y en cuantas requiriese su mejor solución.
El tercero, conducir ordenadamente mis pensamientos, empezando
por los objetos más simples y más fáciles de conocer, para ir
ascendiendo poco a poco, gradualmente, hasta el conocimiento de los
más compuestos, e incluso suponiendo un orden entre los que no se
preceden naturalmente.
Y el último, hacer en todo unos recuentos tan integrales y unas
revisiones tan generales, que llegase a estar seguro de no omitir nada.
Discurso del método
Geometría Computacional
31 de marzo, 1596- 11 de febrero 1650
Réne Descartes
30. Y como la multitud de leyes sirve muy a menudo de disculpa a los
vicios, siendo un Estado mucho mejor regido cuando hay pocas, pero
muy estrictamente observadas, así también, en lugar del gran número
de preceptos que encierra la lógica, creí que me bastarían los cuatro
siguientes, supuesto que tomase una firme y constante resolución de
no dejar de observarlos una vez siquiera:
Fue el primero, no admitir como verdadera cosa alguna, como no
supiese con evidencia que lo es; es decir, evitar cuidadosamente la
precipitación y la prevención, y no comprender en mis juicios nada
más que lo que se presentase tan clara y distintamente a mí
espíritu, que no hubiese ninguna ocasión de ponerlo en duda.
El segundo, dividir cada una de las dificultades, que examinare, en
cuantas partes fuere posible y en cuantas requiriese su mejor
solución.
El tercero, conducir ordenadamente mis pensamientos, empezando
por los objetos más simples y más fáciles de conocer, para ir
ascendiendo poco a poco, gradualmente, hasta el conocimiento de los
más compuestos, e incluso suponiendo un orden entre los que no se
preceden naturalmente.
Y el último, hacer en todo unos recuentos tan integrales y unas
revisiones tan generales, que llegase a estar seguro de no omitir
nada.
Discurso del método
Geometría Computacional
31 de marzo, 1596- 11 de febrero 1650
Réne Descartes
31. Gráficos por Computadoras
Modelación de Sólidos
Diseño Asistido por Computadoras
Robótica
Procesamiento de Imágenes
Sistemas de Información Geográfica
Geometría Computacional
Dominio de aplicaciones
32. Cómo el robot percibe, comprende y actúa
sobre el ambiente
Geometría Computacional
Aplicaciones en Robótica
Planificación de movimiento
Comprensión de ambiente
Orientación de partes
Optimización de movimientos
33. Almacenamiento de datos geográficos(contornos de países,
alturas de montañas, cursos de ríos, población, calles,
líneas eléctricas, etc.)
Geometría Computacional
Aplicaciones sobre GIS
Grandes volúmenes de datos– se requiere de algoritmos
Representación de los datos geográficos(ej., visualización
en el display de mapas de calles según posición del carro).
Interpolación de una muestras de puntos cercanos
Solapamientos múltiple de mapas.
34. Diseño de productos por computadoras
Geometría Computacional
Aplicaciones en CAD/CAM
Intersección, unión, y descomposición de objetos.
Pruebas sobre especificación de productos
Pruebas de diseño y funcionalidad
Diseño por ensamblaje– modelación y simulación de
ensamblaje
35. Doblar y desdoblar en Geometría
Computacional
1D: Enlazados
2D: Papel
3D: Poliedro
Preservar longitud de aristas
No se pueden cruzar las aristas
Preservar distancias
No se puede cruzar a si mismo
Corte de superficies mientras
se combinan y conectan
Geometría Computacional
M. Sancho UCI, La Habana, Cuba, Marzo de 2009