Wurde das folgende Problem bereits untersucht? Wenn ja, welche Ansätze / Algorithmen wurden entwickelt, um das Problem zu lösen?
Problem ("Problem mit der maximalen Stapelhöhe")
Gegeben Polygonen, finden ihre stabile, nicht-überlappenden Anordnung , die ihre Stapelhöhe maximiert , auf einem festen Boden unter dem Einfluss der Schwerkraft.
Beispiel
Drei Polygone:
und drei ihrer unendlich vielen stabilen, nicht überlappenden Anordnungen mit unterschiedlichen Stapelhöhen:
Klarstellungen
- Alle Polygone haben eine gleichmäßige Masse und gleiche Dichte
- Die Reibung ist Null
- Die Schwerkraft wirkt auf jeden Punkt nach unten (dh die Kraftvektoren sind alle parallel).
- Eine Konfiguration wird nicht als stabil angesehen, wenn sie auf einem instabilen Gleichgewichtspunkt ruht (z. B. kann das grüne Dreieck in den Bildern auf keinem seiner Scheitelpunkte ausgeglichen werden, selbst wenn die Masse links und rechts vom Gleichgewichtspunkt gleich ist).
- Um den obigen Punkt weiter zu verdeutlichen: Ein Polygon gilt als instabil ("Umkippen"), es sei denn, es ruht auf mindestens einem Punkt genau links und mindestens einem Punkt genau rechts von seinem Schwerpunkt (diese Definition vereinfacht die Simulation erheblich und) Insbesondere ist eine Positionsintegration usw. nicht erforderlich, um zu bewerten, ob eine Anordnung stabil ist oder nicht.
- Das Problem in seiner "physischen" Form ist ein kontinuierliches Problem, das in den meisten Fällen nur annähernd gelöst werden kann. Um ein diskretes Problem zu erhalten, das algorithmisch angegangen werden kann, beschränken Sie sowohl die Polygonscheitelpunkte als auch ihre Platzierung in der Anordnung auf geeignete Gitter.
Anmerkungen
- Brute-Force-Ansätze jeglicher Art sind eindeutig nicht realisierbar. Selbst bei strengen Einschränkungen bei der Platzierung von Polygonen innerhalb des Gitters (z. B. Bereitstellung eines begrenzten Bereichs "Gitterraum") explodiert die Komplexität einfach für mehr als einige Polygone.
- Iterative Algorithmen müssen einige sehr clevere Heuristiken mit sich bringen, da es einfach ist, Anordnungen zu konstruieren, bei denen das Entfernen eines einzelnen Polygons dazu führt, dass die Konfiguration instabil wird, und solche Anordnungen durch Algorithmen nicht erreichbar sind, bei denen jeder Zwischenschritt stabil ist.
- Da das Problem in der Gesamtzahl der Eckpunkte mindestens NP-, aber wahrscheinlicher EXPTIME-vollständig riecht, wären selbst Heuristiken von erheblichem Interesse. Eine Sache, die Hoffnung gibt, ist die Tatsache, dass die meisten Menschen erkennen werden, dass die dritte Anordnung im Beispiel optimal ist.
Antworten:
Obwohl ich keine spezifischen Algorithmen für dieses Problem kenne, können Sie dies auf eine ziemlich effiziente Weise angehen, indem Sie es in separate Teile aufteilen.
Ich würde damit beginnen, die Drehung für jede einzelne Form zu finden, die eine maximale Höhe bietet, während eine gültige Ausgleichsausrichtung beibehalten wird (ist: nicht auf einem Punkt wie beim Dreieck). Wenn eine Form mehrere gleiche Höhen hat, würde ich mit der Konfiguration gehen, die die größte Oberfläche darüber gibt. Sobald Sie dies haben, können Sie herausfinden, wie Sie jedes Objekt in einem Herrenhaus am besten stapeln können, das ausgeglichen werden kann.
quelle