6 votos

Dado un conjunto de vértices 2D, ¿cómo crear un polígono de área mínima que contenga todos los vértices dados?

No estoy seguro de si esta pregunta debe hacerse aquí o en math.stackexchange.

Se puede suponer que todos los vértices son únicos. Los vértices dados pueden ser los vértices del polígono, por lo tanto NO tienen que estar dentro del polígono, pero NO deben estar fuera del polígono (y creo que para obtener el polígono de área mínima, deben ser los vértices del polígono). El polígono puede ser cóncavo.

Estoy pensando en utilizar el algoritmo del casco convexo como primer paso, y luego desde cada arista del polígono del casco convexo, "excavo" eliminando una arista del polígono mencionado (que la arista conecte vértice a y vértice b ), y crear 2 nuevas aristas ( a-c y c-b ) donde c es un vértice que anteriormente estaba situado dentro del polígono. Y hacerlo hasta que no quede ninguna arista dentro del polígono (es decir, todos los vértices se han convertido en vértices del polígono). Pero no tengo la "excavación en" algo que se ha demostrado para minimizar el área del polígono.

Como pregunta al margen, ¿se trata de un problema NP-completo?

13voto

Peter Puntos 1681

Supongo que te refieres al problema en el que los vértices del polígono deben ser exactamente el conjunto de puntos dado. Si es así, entonces, el problema es NP-difícil:

Fekete, Sándor P. "Sobre poligonalizaciones simples con área óptima". Geometría discreta y computacional 23 .1 (2000): 73-110. ( Enlace a la revista .)


          Fig1a


Se han explorado algoritmos de aproximación:

Taranilla, María Teresa, Edilma Olinda Gagliardi y Gregorio Hernández Peñalver. "Aproximación a la poligonización de áreas mínimas". (2011): 161-170. ( Enlace de los autores .)

El término clave de búsqueda para este problema es poligonización .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X