Diferencia entre revisiones de «Geometría computacional»

Contenido eliminado Contenido añadido
ElTioTradec (discusión · contribs.)
m ElTioTradec trasladó la página Geometría computacional a Geometría algorítmica
ElTioTradec (discusión · contribs.)
Sin resumen de edición
Línea 1:
[[Archivo:Cilindro comp.jpg|thumb|Cilindro renderizado mediante un programa de ordenador.]]
La '''geometría computacionalalgorítmica'''<ref>{{Cita web|url=http://www-old.dma.fi.upm.es/docencia/doctorado/curso99-00/geometriaalgoritmica/|título=Geometría Algorítmica|fechaacceso=2022-08-20|sitioweb=www-old.dma.fi.upm.es}}</ref><ref>{{Cita web|url=https://trazoide.com/geometria-algoritmica/|título=Geometría algorítmica – Trazoide|fechaacceso=2022-08-20|idioma=es}}</ref> es una rama de las [[Ciencias de la informatica|ciencias de la computacióninformática]] dedicada al estudio de [[algoritmo]]s que pueden ser expresados en términos de la [[geometría]]. Algunos de los problemas puramente geométricos surgen del propio estudio de dichos algoritmos, y este tipo de problemas también se considera parte de la geometría computacionalalgorítmica.<ref name=shamos1978>{{cita web|url = http://euro.ecom.cmu.edu/people/faculty/mshamos/1978ShamosThesis.pdf|título = Computational Geometry|fecha = 1978|fechaacceso = |website = |editorial = Yale University|apellido = Shamos|nombre = Michael|enlaceautor = Michael Shamos|formato = PDF}}</ref> También se considera una rama gráfica del ordenador.
 
== Introducción ==
Una parte significativa del crecimiento que la [[Matemática discreta|Matemática Discreta]], como un todo, ha experimentado en los últimos años, ha consistido en un desarrollo sustancial de la [[Geometría discreta|Geometría Discreta]]. Esto ha sido impulsado, en parte, por el desarrollo de ordenadores cada vez más potentes, y por la reciente explosión de actividad en el campo relativamente joven de la [[Geometríageometría computacional|Geometría Computacional]]algorítmica.
 
¿Y qué es la Geometría Computacional? En pocas palabras, es el arte de resolver problemas conceptualmente sencillos usando los menos recursos posibles y empleando el mínimo tiempo posible. La Geometríageometría Computacionalalgorítmica surgió a finales de los 70s del área de diseño y análisis de algoritmos. La mayoría de los estudios algorítmicos que abordaban estos problemas han ido apareciendo a lo largo de los últimos 150 años, aunque sobre todo en los últimos treinta. De todas formas, sólo muy recientemente han sido realizados estudios sistemáticos de algoritmos geométricos y cada día más investigadores se sienten atraídos por la disciplina que fue bautizada en 1975 por Shamos.
 
Hasta hace poco, Geometríageometría Computacionalalgorítmica se refería al diseño y análisis de [[Algoritmo|algoritmos]] geométricos, pero en los últimos años ha ampliado su campo, y ahora también incluye el estudio de problemas geométricos desde un punto de vista computacional, incluyendo también convexidad computacional, topología computacional y complejidad combinatorial de disposiciones de [[Poliedro|poliedros]].
 
En los últimos años ha aumentado el número de áreas en las que se aplican los resultados de esta disciplina. Entre las mismas se incluyen la [[ingeniería]], [[cristalografía]], diseño asistido por computador, sistemas de posicionamiento global, [[robótica]], sistemas de detección de errores, modelado geométrico, gráficos por ordenador, optimización combinatorial, visión por ordenador, reconocimiento de patrones y modelado sólido.
 
==Descripción==
Es una disciplina constructiva, de carácter abstracto, que utiliza técnicas de la [[geometría clásica]], la [[topología]], la [[teoría de grafos]], la [[teoría de conjuntos]] y el [[álgebra lineal]]. La geometría computacionalalgorítmica es independiente de la tecnología de las máquinas de computación, si bien pone atención en proporcionar soluciones que se comporten de forma [[Computación robusta|computacionalmente robusta]].
 
La [[Teoría de la complejidad computacional|complejidad computacional]] es fundamental para la geometría computacionalalgorítmica, con un enorme significado práctico si los algoritmos se usan en grandes conjuntos de datos que contienen decenas o cientos de millones de puntos. Para tales conjuntos, la diferencia entre O(''n''^2) y O(''n'' log''n'') puede ser la diferencia entre días o segundos de computación.
 
El principal impulso para el desarrollo de la geometría computacionalalgorítmica se lo dio el avance de la [[computación gráfica]] y el diseño asistido por ordenador ([[Diseño asistido por computador|CAD]]/[[Fabricación asistida por computadora|CAM]]), que hacen uso intensivo de las técnicas de esta disciplina. Otras aplicaciones importantes de la geometría computacionalalgorítmica incluyen la [[robótica]] (planificación de movimientos y problemas de visualización), los [[Sistema de Información Geográfica|sistemas de información geográfica]] (SIG) (localización y búsqueda geométrica, planificación de rutas), diseño de [[Circuito integrado|circuitos integrados]] (diseño geométrico y verifición de CI), ingeniería asistida por computadora (CAE) (programación de máquinas controladas numéricamente).
 
Las principales ramas de la geometría computacionalalgorítmica son:
* ''Geometríageometría computacionalalgorítmica combinatoria'', también llamada ''geometría algorítmica'', que trata de objetos geométricos como entidades [[Matemática discreta|discretas]]. Un libro sobre el tema por Preparata y Shamos fecha la primera utilización del término "geometría computacionalalgorítmica" en este sentido en 1975.<ref name=PS>{{cita libro
|autor = [[Franco P. Preparata]] and [[Michael Ian Shamos]] | título = Computational Geometry - An Introduction | editorial = [[Springer-Verlag]]| año = 1985 | id = 1st edition: ISBN 0-387-96131-3; 2nd printing, corrected and expanded, 1988: ISBN 3-540-96131-3}}</ref><ref name=shamos1978/>
* ''Geometríageometría computacionalalgorítmica numérica'', que trata principalmente con la representación de objetos del mundo real en la forma adecuada para ser almacenada en un ordenador. Esta rama puede ser vista como un desarrollo de la [[geometría descriptiva]] y es a menudo considerada como una rama de los [[Computación gráfica|gráficos por ordenador]] o CAD. El término "geometría computacionalalgorítmica", en este sentido ha estado en uso desde 1971.<ref name=Forrest>{{Cita publicación|apellidos=Forrest |nombre=A. |enlaceautor= |título=Computational geometry |publicación=Proc. Royal Society London |volumen=321 |número=1545 |año=1971| doi=10.1098/rspa.1971.0025 |url=http://rspa.royalsocietypublishing.org/content/321/1545/187}}</ref>
 
== Complejidad algorítmica ==
Línea 51 ⟶ 52:
3. ''"f es theta de g" y se notará f(n) = O(g(n)) si f(n) = O(g(n)) y f(n) = Q(g(n)).''
 
==Geometríageometría computacionalalgorítmica combinatoria==
[[File:Convex Polygon triangulations.svg|thumb|Triangulación de un polígono. 1. [[Triangulación en abanico|Abanico]]. 2. [[Triangulación de peso mínimo|Mínimo peso]] 3. [[Triangulación de Delaunay|Delaunay]] ]]
[[File:GrahamScanDemo.gif|thumb|Cálculo del [[cierre convexo]] de un conjunto de puntos por el [[Método de Graham]].]]
[[File:Delaunay Voronoi.svg|thumb|[[Triangulación de Delaunay]] y [[Diagrama de Voronoi]] de un conjunto de puntos.]]
El objetivo principal de la geometría computacionalalgorítmica combinatoria es el desarrollo de [[algoritmo]]s y [[estructuras de datos]] eficientes para resolver problemas basado en términos de objetos geométricos: [[Punto (geometría)|puntos]], [[segmento]]s, [[polígono]]s, [[poliedro]]s, etc...
 
Algunos de estos problemas parecen tan simples que no fueron considerados como tal hasta la llegada de los [[ordenador]]es. Por ejemplo, la ''determinación del [[cierre convexo]] de un conjunto de puntos'' puede ser realizada de forma intuitiva sobre un papel utilizando una regla, pero no es tan evidente dar las instrucciones a un ordenador para que lo resuelva. Otro problema, el de encontrar el ''[[problema del par de puntos más cercanos|par de puntos más cercanos]]'' puede ser implementado de forma sencilla mediante una [[búsqueda por fuerza bruta]], calculando la distancia entre las ''n(n-1)/2'' combinaciones posibles de pares de puntos y eligiendo la menor, pero esta solución no es aplicable para conjuntos con un elevado número de puntos.
Línea 61 ⟶ 62:
<ref name=Fortune>{{Cita publicación|apellidos=Fortune |nombre=Steve |enlaceautor=Steve Fortune |apellidos2=Hopcroft|nombre2=J.E. |título=A note on Rabin's nearest-neighbor algorithm |publicación=Information Processing Letters |volumen=8 |número=1 |año=1979 |doi= |páginas=20-23 |url=https://ecommons.cornell.edu/handle/1813/7460 }}</ref>
=== Algunos problemas clásicos ===
A continuación se enumeran algunos problemas clásicos que han sido estudiados en el campo del la Geometríageometría computacionalalgorítmica combinatoria:<ref name=introGC>{{Cita web|url=http://gaussianos.com/una-interesante-introduccion-a-la-geometria-computacional/ |título=Una interesante introducción a la Geometría Computacional |obra=Gaussianos |fecha=27 de junio de 2011 |nombre=Miguel Ángel |apellido=Morales |fechaacceso=1 de marzo de 2017 }}</ref><ref name=GC>{{Cita web|url=http://webdelprofesor.ula.ve/ciencias/lico/geome_comp/geometria_computacional.pdf |título=Geometría Computacional |obra= |fecha= |nombre=Francisco |apellido=Rivero |fechaacceso=1 de marzo de 2017 }}</ref><ref name=GrimaVoronoi>{{Cita publicación|apellidos=Grima |nombre=Clara |enlaceautor=Clara Grima |título=Cada uno en su región y Voronoi en la de todos |publicación=[[Naukas]] |volumen= |número= |año=2011 |url=http://naukas.com/2011/12/23/cada-uno-en-su-region-y-voronoi-en-la-de-todos/}}</ref><ref name=Rourke>{{cita libro|apellidos1=O'Rourke|nombre1=Joseph|título=Computational Geometry in C|editorial=[[Cambridge University Press]]|edición=2|isbn=9780521649766|url=https://github.com/sarcilav/analisis-numerico/blob/master/doc/Computational%20Geometry%20In%20C%202nd%20ed.%20-%20J.%20O'Rourke%20(1997)%20WW.pdf}}</ref>
 
* [[Cierre convexo]]: Dado un conjunto de puntos, encontrar el polígono convexo de menor área que los contenga.
Línea 74 ⟶ 75:
 
===Problemas dinámicos===
Otra gran clase es la de los problemas dinámicos, en la cual el objetivo es encontrar un algoritmo eficiente para encontrar la solución repetidamente tras cada modificación incremental de los datos de entrada (adición o supresión de los elementos geométricos de entrada). Los algoritmos para los problemas de este tipo típicamente supone estructuras dinámicas de datos. Cualquiera de los problemas de geometría computacionalalgorítmica puede ser convertido en uno dinámico, con el coste de incrementar el tiempo del proceso. Por ejemplo, el problema de la búsqueda de rango provisto de adición y/o supresión de los puntos. El problema de la [[Envolvente convexa]] dinámica es mantener un seguimiento de la envolvente convexa; por ejemplo, para los conjuntos de datos que cambian dinámicamente, o mientras que los puntos de entrada son insertados o suprimidos.
La complejidad computacional para esta clase de problemas se estima mediante:
*El tiempo y espacio requeridos para construir la estructura de datos que se va a buscar.
Línea 88 ⟶ 89:
En algunos contextos de problemas de consultas hay expectativas razonables en la secuencia de las consultas, la cual puede ser aprovechada ya sea por estructuras de datos eficientes o por estimaciones de la complejidad computacional más ajustadas. Por ejemplo, en algunos casos es importante saber el peor caso para el tiempo total de la secuencia de ''N'' consultas antes que el de una única consulta.
 
== Aplicaciones de la geometría computacionalalgorítmica ==
Uno de los aspectos más interesantes de la [[Geometría computacional|Geometríageometría Computacionalalgorítmica]] es la gran aplicabilidad de sus resultados.
 
El significado del término computación se ha expandido notoriamente desde la introducción de los ordenadores, hará ahora unos cincuenta años.
Línea 95 ⟶ 96:
Atendiendo a los objetos que procesan, destacan tres tipos de aplicaciones de los ordenadores. La primera generación va a ser la de los cálculos numéricos, aplicados sobre todo a problemas científicos y técnicos. La segunda, propiciada por necesidades más comerciales y administrativas, incorporaba largas listas de datos (por ejemplo alfabéticos), con vistas a cómo leer, almacenar, modificar, seleccionar, e imprimir esos datos.
 
Todo esto naturalmente pervive, y con fuerza, pero vivimos una tercera generación de aplicaciones dominada por el procesamiento de información geométrica y gráfica, presente en áreas tan diversas como son la [[medicina]], la [[cartografía]], el [[Robótica|control de robots]] o el [[Dirección de arte|diseño artístico]]. La Geometríageometría Computacionalalgorítmica ha emergido, ciertamente, por la necesidad de dar respuesta a esta nueva y creciente demanda.
 
Se podría decir que las aplicaciones van a preceder la disciplina, y ahora que ésta tiene ya un núcleo teórico sólidamente constituido, como sus vertientes prácticas corresponden a tecnología de máxima vanguardia, la demanda de resultados continúa con la misma fuerza y exigencia que al principio. Por eso diremos que, en Geometríageometría Computacionalalgorítmica, las aplicaciones tienen un protagonismo esencial.
 
Dentro de los campos de aplicación más directamente relacionados con la disciplina se destacan:
Línea 118 ⟶ 119:
 
=== Gráficos por ordenador ===
Lo que se entiende hoy por Gráficos por Ordenador (o Informática Gráfica), pese a ser una rama de [[Informática]] que también se ocupa de los fenómenos geométricos desde el punto de vista del cálculo, es un área bien distinta de la Geometríageometría Computacionalalgorítmica.
 
Mientras que ésta se ocupa de proporcionar los fundamentos teóricos involucrando el estudio de algoritmos y de estructuras de datos para hacer cálculos geométricos, la Informática Gráfica se ocupa del desarrollo práctico del [[software]], [[hardware]] y algoritmos necesarios para crear gráficos en la pantalla del ordenador.
 
Sin embargo, ambas tienen algunas técnicas similares (otras muy distintas), y sin duda alguna, se influencian mutuamente. Desde el ámbito de los informática gráfica se dan a conocer problemas prácticos a la comunidad de estudiosos de la Geometríageometría Computacionalalgorítmica, y la Geometríageometría Computacionalalgorítmica aporta algoritmos rápidos que los resuelven. Se espera que la Geometríageometría Computacionalalgorítmica haga grandes mejoras a los algoritmos estándar usados en gráficos por ordenador.
 
La Geometríageometría Computacionalalgorítmica también proporciona nuevas maneras de pensar los problemas a los programadores de gráficos.
 
Una cuestión muy importante en informática gráfica es la representación realista de escenas complejas. Uno de los requisitos es la eliminación de líneas y superficies ocultas a partir de un modelo tridimensional. Las primeras soluciones razonablemente satisfactorias van a iniciar áreas importantes de investigación dentro de la geometría computacionalalgorítmica, concretamente los problemas de intersección. Los resultados de estas investigaciones han dado nuevas aplicaciones en informática gráfica. De modo que hay una interacción continua en este problema como en otros muchos otros.
 
Otros problemas fundamentales que aparecen en Gráficos son: el trazado de rayos, la aproximación de contornos mediante poligonales y la triangulación de polígonos. En todos ellos la Geometríageometría Computacionalalgorítmica ha realizado recientemente contribuciones significativas.
 
En una habitación poligonal ([[galería de arte]]) en el plano se colocan cuatro cámaras de manera que se pueda vigilar con ellas toda la sala. Si se está interesado en averiguar cuál es la región que es visible por una sola cámara esto es equivalente a eliminar las porciones del polígono que quedan ocultas. Uno de los algoritmos estándar usado para resolver este problema de líneas ocultas en el plano es el debido a [[Freeman Dyson|Freeman]] y Loutrel hace más de diez años antes de lo que se atribuye como el nacimiento de la Geometríageometría Computacionalalgorítmica. Dicho algoritmo corre en tiempo 0(n2) donde n es el número de lados del polígono.
 
Utilizando técnicas desarrolladas para el diseño de algoritmos en Geometríageometría Computacionalalgorítmica, ElGindy y Avis consiguieron un algoritmo para este problema que corre en tiempo (óptimo) 0(n), cuando n es grande esto supone una mejora sustancial en la velocidad de ejecución.
 
=== Fabricación industrial ===
Línea 145 ⟶ 146:
 
==== Robótica ====
Una de las principales aplicaciones de Geometríageometría Computacionalalgorítmica tiene que ver con problemas de robótica. Dos ejemplos de ellos: la planificación de movimientos y el ensamblaje automático.
 
En el primero, el problema típico involucra un robot, generalmente modelizado como un punto, un disco, o un polígono en dos dimensiones, o bien como un poliedro en tres dimensiones que ha de moverse en el espacio entre una colección de obstáculos. Una de las preguntas usuales es ¿puede moverse el robot desde un punto A a otro B sin colisionar con los obstáculos?
Línea 159 ⟶ 160:
* [[Octree]] y [[Árbol kd]] : Organizar el espacio para realizar búsquedas geométricas de forma efectiva.
 
==Geometríageometría computacionalalgorítmica numérica==
[[Archivo:CAD3D.jpg|thumb|right|Pieza modelada en Software CAD]]
{{principal|Diseño asistido por computadora}}