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