Next: Optimierte Lösung
Up: Lösung
Previous: Wichtige Daten:
Contents
Index
Das hier vorgestellte Verfahren ist optimiert. Alle überflüssigen Hyperebenen werden in ihm ignoriert.
- 0 Initialisiere die Hyperebenen (
und
) mit dem Hyperkörper der maximalen Lösungsmenge (eventuell unter Zuhilfenahme von
)
- 1 Prüfe
:
- 1.1 Fall 1: Wenn
größer
, setze
auf
und gehe zu "8. Lösung ermitteln"
- 1.2 Sonst: Nehme nächste Ungleichung
- 1.2.1 Erstelle eine orientierte Hyperfläche
für aktuelle Ungleichung
als Normalgleichung, mit dem Normalenvektor
in Richtung der zulässigen Lösungen. Aus der Ungleichung
in der Form
wird die Normalengleichung
mit
und
- 2. Prüfe für alle Punkte auf welcher Seite der Hyperflache
sie liegen
- 2.1 Fall 1: alle Eckpunkte
liegen in Richtung des Normalenvektors
oder auf der Hyperebene -> erhöhe Zähler
und gehe zu 1. (die Hyperfläche
schränkt die Lösungsmenge nicht weiter ein, d. h.
ist nicht relevant)
- 2.2 Fall 2: alle Eckpunkte
liegen nicht in Richtung des Normalenvektors
-> erniedrige Zähler
und gehe zu "8. Lösung ermitteln" (durch die Hinzunahme der Ungleichung
gäbe es keine Lösungen mehr, bzw. die Ungleichung
macht das bisherige Gleichungsystem unlösbar)
- 2.3 Sonst: einige Eckpunkte
liegen in Richtung des Normalenvektors
, andere nicht -> gehe zu Schritt 3., bzw. integriere die Hyperfläche
in den konvexer Hyperkörper der möglichen Lösungen
- 3. Für jede Hyperfläche
mit der Dimensionalität
(diese entsprechen den Ungleichungen) aus
(konvexer Hyperkörper der möglichen Lösungen):
- 3.1 Berechne die Schnittebene (Dimensionalität ist
) von
und
- 3.1.1 Fall 1: wenn keine Schnittebene existiert -> gehe zu 3.1 und prüfe die nächste Hyperfläche
- 3.1.2 Sonst: wenn eine Schnittebene
existiert:
- 3.1.2.1 Wenn eine identische Hyperfläche wie die Schnittebene
in den Hyperflächen
existiert (bzw. es existiert keine neue Hyperfläche)
- 3.1.2.1.1 Vermerke zu der gefundenen Schnittebene als Verweise die Hyperfläche
als die enthaltende Hyperfläche
- 3.1.2.1.2 Füge zu der Hyperfläche
als Verweise die Schnittebene
als eine enthaltende Hyperflächen hinzu
- 3.1.2.1.3 gehe zu 3.1 und prüfe die nächste Hyperfläche
- 3.1.2.2 Vermerke zu der Schnittebene
als Verweise die Hyperflächen
und
als die enthaltenden Hyperflächen
- 3.1.2.3 Füge zu den Hyperflächen
und
als Verweise die Schnittebene
als eine enthaltende Hyperflächen hinzu
- 3.1.2.4 Füge Schnittebene
zu der Liste
mit noch zu prüfenden Schnittebene hinzu
- 3.1.2.5 Füge die Schnittebene
zu den Hyperflächen
hinzu
- 3.1.2.6 Gehe zu 3.1 und prüfe die nächste Hyperfläche
- 4. Füge Schnittebenen der Schnittebenen hinzu: für
bis
(
ist die Dimensionalität der geprüften Schnittebenen)
- 4.1 Nehme und entferne die letzte Schnittebene
von der List
(mit den noch zu prüfenden Schnittebene der Dimensionalität
):
- 4.1.1 Für jede Hyperfläche
die
enthält:
- 4.1.1.1 Für jede Hyperfläche
die in
enthalten ist (
hat Dimensionalität
)
- 4.1.1.1.1 Berechne Schnittebene
(hat Dimensionalität
) von
und
- 4.1.1.1.1 Fall 1: wenn keine Schnittebene
existiert -> gehe zu 4.1.1.1 und prüfe die nächste Hyperfläche
- 4.1.1.1.1 Sonst: wenn eine Schnittebene
existiert:
- 4.1.1.1.1.1 Wenn eine identische Hyperfläche (diese sollte in
schon enthalten sein) wie die Schnittebene
in den Hyperflächen
existiert (bzw. es existiert keine neue Schnitthyperfläche)
- 4.1.1.1.1.1.1 Vermerke zu der gefundenen Schnittebene als Verweise die Hyperfläche
als die enthaltende Hyperfläche
- 4.1.1.1.1.1.2 Füge zu der Hyperfläche
als Verweis die Schnittebene
für eine enthaltende Hyperflächen hinzu
- 4.1.1.1.1.1.3 gehe zu 4.1.1.1 und prüfe die nächste Hyperfläche
- 4.1.1.1.1.2 Vermerke zu der Schnittebene
als Verweise die Hyperflächen
und
als die enthaltenden Hyperflächen
- 4.1.1.1.1.3 Füge zu den Hyperflächen
und
als Verweise die Schnittebene
für eine enthaltende Hyperflächen hinzu
- 4.1.1.1.1.4 Füge Schnittebene
zu der Liste
mit noch zu prüfenden Schnittebene hinzu
- 4.1.1.1.1.5 Füge die Schnittebene
zu den Hyperflächen
hinzu
- 4.1.1.1.1.6 Gehe zu 4.1.1.1 und prüfe die nächste Hyperfläche
- 4.2 Wenn
nicht leer ist, gehe zu 4.1
- 4.3 Wenn
größer
ist ernidrige
und gehe zu 4
- 5. Entferne alle nicht mehr benötigten Eckpunkte:
- 5.1 Entferne alle Eckpunkte (bzw. Hyperflächen der Dimensionalität 0), inclusive Verweise auf sie, aus
und
die nicht in Richtung des Normalenvektors
der Hyperfläche
von einer Seite von
liegen (bzw. entferne die Eckpunkte, welche die Hyperfläche
aus dem Hyperkörper der möglichen Lösungen
abschneidet)
- 5.2 Entferne die Überflüssigen Eckpunkte die durch
hinzukamen, nehme und entferne den letzten Eckpunkte
von der List
mit noch zu prüfenden Schnittebene der Dimensionalität
:
- 5.2.1 Für jede Hyperfläche bzw. Gerade
die
enthält:
- 5.2.1.1 Fall 1: Enthält die Gerade
maximal zwei Eckpunkte bzw. Hyperebenen -> gehe zu 5.2.1 und prüfe die nächste Gerade
- 5.2.1.2 Sonst: Enthält die Gerade
mehr als zwei (bzw. drei) Eckpunkte bzw. Hyperebenen (die Eckpunkte bilden dann keinen konvexen Körper auf
mehr):
- 5.2.1.2.1 Ermittle den mittleren Punkt
der drei Schnittpunkte auf
(bzw. enthaltenden Hyperebenen) und die beiden anderen Punkte
und
- 5.2.1.2.2 Für jede Hyperfläche
mit der Dimensionalität
(diese entsprechen den begrenzenden Ungleichungen
) aus
die den Punkt
(indirekt) enthält:
- 5.2.1.2.2.1 Fall 1: beide Punkt
und
liegen in Richtung des Normalenvektors
der Hyperfläche
von einer Seite von
oder auf
(also in der Lösungsmenge) -> gehe zu 5.2.1.2.2 und prüfe die nächste Hyperfläche
- 5.2.1.2.2.2 Sonst: der Punkt
liegen nicht in Richtung des Normalenvektors
der Hyperfläche
von einer Seite von
oder auf
(also ist er nicht in der Lösungsmenge)
- 5.2.1.2.2.2.1 Entferne den Punkt
aus der Menge der Eckpunkte
(inclusive Verweise auf ihn)
- 5.2.1.2.2.2.1 Wenn
nicht entfernt wurde (
), gehe zu Schritt 5.2.1 und prüfe die nächste Gerade
, sonst gehe zu 5.2 und prüfe den nächsten Eckpunkt
- 6. Entferne alle nicht mehr benötigten Hyperflächen: für
bis
(Dies sind alle Hyperflächen, die keine Eckpunkte des konvexen Hyperkörper der Lösungen enthalten und damit nicht zu ihm gehören.)
- 6.1 Entferne alle Hyperflachen, inclusive Verweise zu ihnen, der Dimensionalität
die keine Hyperflächen (diese haben Dimensionalität
) mehr enthalten
- 7. wenn
: erhöhe Zähler
und gehe zu 1. (sonst 8.)
- 8. Lösung ermitteln:
- 8.1. Alternative 1:
- 8.1.1. Gebe
als Eckpunkte der (konvexen) Lösungsmenge und
als Anzahl der erfüllten Ungleichungen zurück (eine Lösung kann dann aus dem Bereich
ermittelt werden)
- 8.1. Alternative 2:
- 8.1.1. Nehme den Mittelpunkt /Schwerpunkt
aller Eckpunkte
:
- 8.1.2. Gebe
als Lösung und
als Anzahl der erfüllten Ungleichungen zurück
Next: Optimierte Lösung
Up: Lösung
Previous: Wichtige Daten:
Contents
Index
Betti Österholz
2013-02-13