Problema de altura máxima de apilamiento

8

¿Se ha estudiado antes el siguiente problema? En caso afirmativo, ¿qué enfoques / algoritmos se desarrollaron para resolverlo?

Problema ("Problema de altura máxima de apilamiento")

Dados polígonos, encuentre su disposición estable y no superpuesta que maximice su altura de apilamiento en un piso fijo bajo la influencia de la gravedad.n


Ejemplo

Tres polígonos:

ingrese la descripción de la imagen aquí

y tres de sus infinitos arreglos estables, no superpuestos, con diferentes alturas de apilamiento:

ingrese la descripción de la imagen aquí


Aclaraciones

  • Todos los polígonos tienen masa uniforme e igual densidad.
  • La fricción es cero
  • La gravedad está actuando en cada punto en la dirección hacia abajo (es decir, los vectores de fuerza son todos paralelos)
  • Una configuración no se considera estable si descansa sobre un punto de equilibrio inestable (por ejemplo, el triángulo verde en las imágenes no puede equilibrarse en ninguno de sus vértices, incluso si la masa a la izquierda y a la derecha del punto de equilibrio es igual)
  • Para aclarar aún más el punto anterior: Un polígono se considera inestable ("volcarse") a menos que descanse en al menos un punto estrictamente a la izquierda y al menos un punto estrictamente a la derecha de su centro de gravedad (esta definición simplifica enormemente la simulación y en particular, hace innecesaria la integración de la posición, etc. con el fin de evaluar si una disposición es estable o no.
  • El problema en su forma "física" es un problema continuo que solo puede resolverse aproximadamente en la mayoría de los casos. Para obtener un problema discreto que pueda abordarse algorítmicamente, restrinja tanto los vértices del polígono como su ubicación en la disposición a redes adecuadas.


Notas

  • Los enfoques de fuerza bruta de cualquier tipo son claramente inviables. Incluso con restricciones estrictas en la colocación de polígonos dentro de la red (como proporcionar un "espacio de red" de región limitada) la complejidad simplemente explota por más de unos pocos polígonos.
  • Los algoritmos iterativos deben aportar algunas heurísticas muy inteligentes, ya que es fácil construir arreglos donde la eliminación de un solo polígono da como resultado que la configuración se vuelva inestable y dichos arreglos son inalcanzables por algoritmos que dependen de que cada paso intermedio sea estable.
  • Dado que el problema huele al menos NP- pero más probablemente EXPTIME-complete en el número total de vértices, incluso la heurística sería de considerable interés. Una cosa que da esperanza es el hecho de que la mayoría de los humanos reconocerán que la tercera disposición en el ejemplo es óptima.

fuente
Para esa definición de "inestable" (aunque posiblemente no para las más precisas), en principio se puede resolver el problema exactamente mediante la eliminación del cuantificador de los campos cerrados reales .
@RickyDemer: Realmente me gustaría entender eso, pero por desgracia, aunque eché un vistazo al periódico y seguí los puntos principales, no veo la conexión. ¿Podrías darme algunos consejos más? Un vínculo entre el problema de apilamiento y el álgebra ciertamente suena intrigante.
1
Eso puede deberse a que me vinculé incorrectamente con un procedimiento de decisión en lugar de un algoritmo de eliminación del cuantificador . Este documento es una referencia mucho mejor de lo que estaba hablando. También encontré un artículo sobre algunos casos cuadráticos que podrían ser suficientes cuando las coordenadas de los vértices son todas racionales.
:) También encontré más material que vincula explícitamente la geometría computacional a la eliminación del cuantificador. Ahora entiendo lo que quisiste decir con "aunque posiblemente no para los más precisos"; de hecho, parece imposible extender tales métodos puramente formales a la física "real", donde entran en juego restricciones complejas como las ecuaciones diferenciales. Sin embargo, gracias por el ángulo de ataque muy interesante, pasaré algún tiempo estudiándolo.

Respuestas:

1

Si bien no conozco ningún algoritmo específico para este problema, podría abordarlo en un método bastante eficiente dividiéndolo en partes separadas.

Comenzaría por encontrar la rotación para cada forma individual que proporcione una altura máxima mientras mantiene una orientación de equilibrio válida (es decir, no en un punto como con el triángulo). Si una forma tiene varias alturas iguales, iría con la configuración que da la mayor área de superficie encima. Una vez que tenga esto, puede descubrir cómo apilar mejor cada objeto en una mansión que pueda equilibrarse.

GEMISIS
fuente
44
Es bastante fácil construir ejemplos en los que este enfoque conduzca a una solución subóptima. Por ejemplo, considere un paralelogramo obtenido al cortar un rectángulo muy largo (para que sea estable solo si descansa sobre su lado largo) más un triángulo que coincida con su ángulo de corte. Individualmente, con su enfoque, se vería obligado a girar el paralelogramo para que descanse en su lado largo, pero el triángulo puede soportarlo para que se "levante" (tenga en cuenta que el problema de fricción cero se puede superar fácilmente agregando un pequeño rincón del paralelogramo que permite que el triángulo se "enganche").
Eso es cierto, no había pensado en eso. Una solución a esto podría ser buscar formas que puedan usarse como soporte para el objeto, pero que no siempre proporcionen una altura óptima. Sin embargo, puede intentarlo aún y comparar múltiples configuraciones totales para obtener la mejor altura, ya que eso debería ser mejor que una fuerza bruta.
GEMISIS
Aquí también uno tiene problemas importantes, es decir, cuando no se trata de un objeto que soporta otro, sino una pila de objetos que tienen la altura adecuada para soportar un objeto muy grande de pie. Los algoritmos para verificar todo lo que se vuelve arbitrariamente complejo. Dicho esto, estoy de acuerdo en que debería ser posible obtener un tiempo de ejecución "mejor que la fuerza bruta" con algunas eliminaciones sensatas.