Das hier vorgestellte Verfahren ist optimiert. Alle überflüssigen Hyperebenen werden in ihm ignoriert.
und
) mit dem Hyperkörper der maximalen Lösungsmenge (eventuell unter Zuhilfenahme von
)
:
größer
, setze
auf
und gehe zu "8. Lösung ermitteln"
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
sie liegen
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)
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)
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
mit der Dimensionalität
(diese entsprechen den Ungleichungen) aus
(konvexer Hyperkörper der möglichen Lösungen):
) von
und
existiert:
in den Hyperflächen
existiert (bzw. es existiert keine neue Hyperfläche)
als die enthaltende Hyperfläche
als Verweise die Schnittebene
als eine enthaltende Hyperflächen hinzu
als Verweise die Hyperflächen
und
als die enthaltenden Hyperflächen
und
als Verweise die Schnittebene
als eine enthaltende Hyperflächen hinzu
zu der Liste
mit noch zu prüfenden Schnittebene hinzu
zu den Hyperflächen
hinzu
bis
(
ist die Dimensionalität der geprüften Schnittebenen)
von der List
(mit den noch zu prüfenden Schnittebene der Dimensionalität
):
die
enthält:
die in
enthalten ist (
hat Dimensionalität
)
(hat Dimensionalität
) von
und
existiert -> gehe zu 4.1.1.1 und prüfe die nächste Hyperfläche
existiert:
schon enthalten sein) wie die Schnittebene
in den Hyperflächen
existiert (bzw. es existiert keine neue Schnitthyperfläche)
als die enthaltende Hyperfläche
als Verweis die Schnittebene
für eine enthaltende Hyperflächen hinzu
als Verweise die Hyperflächen
und
als die enthaltenden Hyperflächen
und
als Verweise die Schnittebene
für eine enthaltende Hyperflächen hinzu
zu der Liste
mit noch zu prüfenden Schnittebene hinzu
zu den Hyperflächen
hinzu
nicht leer ist, gehe zu 4.1
größer
ist ernidrige
und gehe zu 4
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)
hinzukamen, nehme und entferne den letzten Eckpunkte
von der List
mit noch zu prüfenden Schnittebene der Dimensionalität
:
die
enthält:
maximal zwei Eckpunkte bzw. Hyperebenen -> gehe zu 5.2.1 und prüfe die nächste Gerade
mehr als zwei (bzw. drei) Eckpunkte bzw. Hyperebenen (die Eckpunkte bilden dann keinen konvexen Körper auf
mehr):
der drei Schnittpunkte auf
(bzw. enthaltenden Hyperebenen) und die beiden anderen Punkte
und
mit der Dimensionalität
(diese entsprechen den begrenzenden Ungleichungen
) aus
die den Punkt
(indirekt) enthält:
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
liegen nicht in Richtung des Normalenvektors
der Hyperfläche
von einer Seite von
oder auf
(also ist er nicht in der Lösungsmenge)
aus der Menge der Eckpunkte
(inclusive Verweise auf ihn)
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
bis
(Dies sind alle Hyperflächen, die keine Eckpunkte des konvexen Hyperkörper der Lösungen enthalten und damit nicht zu ihm gehören.)
die keine Hyperflächen (diese haben Dimensionalität
) mehr enthalten
: erhöhe Zähler
und gehe zu 1. (sonst 8.)
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)
aller Eckpunkte
:
als Lösung und
als Anzahl der erfüllten Ungleichungen zurück