Angenommen, wir haben ein Polyeder in Standardform:
Gibt es bekannte Methoden zum Auffinden einer Hyperebene , die das Polyeder so , dass die Anzahl der Eckpunkte auf jeder Seite der Hyperebene ungefähr gleich ist? (dh ein Algorithmus, der den absoluten Unterschied der Scheitelpunktkardinalitäten auf den beiden Seiten der Teilung minimiert).
Gibt es auch bekannte Ergebnisse bezüglich der Komplexität dieses Problems?
Nachtrag: Einschränkung der Schnittarten:
Hier ist eine Variation des ursprünglichen Problems mit der Hoffnung, dass es einfacher zu lösen ist als das ursprüngliche:
Gibt es eine Möglichkeit, effizient zu berechnen oder zu schätzen, für welche Koordinate eine Hyperebene der Form die niedrigste absolute Differenz der Scheitelpunktkardinalitäten auf beiden Seiten der Teilung ergeben würde? Mit effizient meine ich etwas Effizienteres als die erschöpfende Aufzählung von Scheitelpunktkardinalitäten für alle möglichen derartigen Teilungen.
Hinweis: Nach einigen Tagen mit geringen Fortschritten habe ich diese Frage auch bei MathOverflow veröffentlicht .
quelle
Antworten:
Ich kann mich nicht an die analytische Vorgehensweise erinnern!
Aber das ist ein klassisches Problem für die genetische Programmierung! Wenn Sie damit vertraut sind, können Sie normalisierte Vektoren in der Mitte des Polyeders verwenden, die die Schnittebene beschreiben.
Ihre Population besteht also aus einer Menge von [x, y, z, ...] normalisierten Vektoren, und als Anpassungsfunktion verwenden Sie die Differenz zwischen den beiden aufgeteilten Volumina!
Wenn also die Differenz gegen Null geht, ist mehr "Fit" Ihr Vektor / Ihre Ebene!
quelle