Skript
Skript
Skript
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Lineare Optimierung<br />
Bernhard Schmitt<br />
Winter-Semester 2013/14<br />
Inhaltsverzeichnis<br />
1 Optimierungs-Probleme 1<br />
1.1 Strukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1<br />
1.2 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />
Produktionsplanung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />
Transportprobleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />
Das Problem des Handlungsreisenden (TSP) . . . . . . . . . . . . . . . . . . . . . 5<br />
1.3 Lineare Programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />
2 Simplex – Verfahren 10<br />
2.1 Bezeichnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
2.2 Matrix – Umformungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
2.3 Basen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
2.4 Das revidierte Simplex-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />
2.5 Tabellenform des Simplex-Verfahrens . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />
2.6 Anlaufrechnung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />
Zwei-Phasen-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />
Groß-M-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />
2.7 Ausgeartete Ecken und praktische Aspekte . . . . . . . . . . . . . . . . . . . . . 26<br />
3 Konvexe Geometrie 28<br />
i
INHALTSVERZEICHNIS<br />
ii<br />
3.1 Spezielle Teilmengen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />
3.2 Konvexe Mengen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />
3.3 Randflächen und Ecken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />
3.4 Polyeder, Polytope, Kegel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38<br />
3.5 Der Dekompositionssatz für Polyeder . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />
3.6 Existenzsätze für Ungleichungssysteme . . . . . . . . . . . . . . . . . . . . . . . . 47<br />
4 Duale Programme 49<br />
4.1 Optimalitätskriterien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49<br />
4.2 Komplementarität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53<br />
5 Dualität beim Simplexverfahren 56<br />
5.1 Duales Simplexverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56<br />
5.2 Problem-Modifikationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59<br />
6 Innere-Punkt-Methoden 64<br />
6.1 Der zentrale Pfad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64<br />
6.2 Newtonverfahren zur Pfadverfolgung . . . . . . . . . . . . . . . . . . . . . . . . . 66
1 OPTIMIERUNGS-PROBLEME 1<br />
1 Optimierungs-Probleme<br />
1.1 Strukturen<br />
Eine präzise Vorstellung für die ”Optimierung” einer Eigenschaft erfordert, dass man deren<br />
Qualität F quantitativ (als reelle Zahl) angeben kann und dass man sich über Einflußgrößen x<br />
dieser Qualität im Klaren ist. Wenn man dann die in Frage kommenden Werte der Parameter x<br />
zu einer Menge X zusammenfaßt ist das Qualitätsmaß F : X → R eine reelle Funktion auf X.<br />
In der Optimierungsaufgabe<br />
{<br />
min F (x)<br />
min{F (x) : x ∈ X} bzw.<br />
(P)<br />
x ∈ X<br />
wird eine Minimalstelle ˆx ∈ X gesucht mit F (ˆx) ≤ F (x) ∀x ∈ X.<br />
Bezeichnung: F heißt Zielfunktion, X zulässiger Bereich, jedes x ∈ X zulässiger Vektor bzw.<br />
Element, ˆx eine (globale) Lösung von (P) und F (ˆx) der Wert von (P).<br />
Ein wesentlicher Teil der Problematik besteht meist darin, dass zwar die Zielfunktion F<br />
explizit vorliegt, der zulässige Bereich X aber nur implizit gegeben ist, etwa durch Systeme von<br />
Gleichungen oder Ungleichungen. Daher zerfällt schon die Grundaufgabe (P) in mehrere Teile:<br />
1. Frage X = ∅?<br />
2. für X ≠ ∅:<br />
(a) F (x) beschränkt auf X, d.h. inf{F (x) : x ∈ X} > −∞ ?<br />
Wird dann das Infimum auch angenommen (”Minimum”)?<br />
(b) Wenn ja: berechne ein ˆx ∈ X mit F (ˆx) ≤ F (x) ∀x ∈ X.<br />
Die einsetzbaren Methoden unterscheiden sich auch nach der Art und Anzahl der ”Freiheitsgrade”,<br />
die in der Menge X auftreten. Die Frage, ob ein Minimum oder Maximum gesucht wird,<br />
ist aber unerheblich, Eines kann durch Übergang zu −F (x) in das Andere überführt werden.<br />
Beispiel 1.1.1 a) Problem der Brachistochrone von Galilei:<br />
Ein Körper soll nur durch den Einfluß der Schwerkraft<br />
zwischen zwei Punkten bewegt werden. Gesucht ist die<br />
Kurve, auf der der Körper in minimaler Zeit vom höheren<br />
zum niederen Punkt kommt.<br />
Johann Bernoulli: Lösung ist Zykloide<br />
b) Transportproblem: Ein Unternehmen mit mehreren Produktionsstandorten beliefert verschiedene<br />
Abnehmer mit seinen Produkten (Massen-/Stückgut). Gesucht ist ein Transportplan mit<br />
möglichst geringen Kosten
1 OPTIMIERUNGS-PROBLEME 2<br />
Einordnung der Beispiele: Da die Weghöhe beim Brachistochronen-Problem an jedem reellen<br />
Punkt s der Strecke unbekannt ist, hat man eine unendliche Anzahl an Freiheitsgraden<br />
(überabzählbar). Zur korrekten Beschreibung wäre die Menge X als ein Raum geeigneter Funktionen<br />
x(s), s ∈ [a, b], zu wählen. Derartige Probleme werden in der Variationsrechnung und<br />
Steuerungstheorie (optimal control) behandelt. Beim Transportproblem sind dagegen die endlich<br />
vielen, vom Produktionsort P i zum Kunden K j zu liefernden Mengen unbekannt. Bei Massengütern<br />
können diese (nichtnegative) reelle Werte, bei Stückgütern ganzzahlige Werte annehmen.<br />
Die Grundmenge X ist also (ein Teil) eines geeigneten R n oder Z n ⊆ R n . In dieser<br />
Vorlesung wird nur der Fall X ⊆ R n behandelt.<br />
Eine weitere Klassifikation des Problems ergibt sich aus den<br />
Eigenschaften der Zielfunktion F :<br />
✟<br />
✟<br />
✟<br />
✟<br />
beliebig<br />
stetig<br />
❍ ❍❍❍<br />
❅<br />
❅<br />
❅<br />
❅❅<br />
diffbar stw. diffbar nicht diffbar<br />
2-mal diffbar<br />
konvex<br />
quadratisch<br />
linear<br />
stw. linear<br />
Die Gestalt des zulässigen Bereichs X ist in der Regel nicht explizit bekannt, sondern durch<br />
Einschränkungen an die Parameter x. Die Art dieser Nebenbedingungen schränkt ebenfalls die<br />
Auswahl möglicher Verfahren ein. Daher ist es zweckmäßig, die Nebenbedingungen aufzuteilen<br />
in funktionale und mengenmäßige. Ab jetzt sei also<br />
X := {x ∈ R n : f(x) ≤ 0, g(x) = 0, x ∈ C}, (1.1.1)<br />
mit f : R n → R p , g : R n → R m , C ⊆ R n . Generell werden Ungleichungen wie in dieser<br />
Beschreibung komponentenweise verstanden, f i (x) ≤ 0, i = 1, . . . , p, für f = (f i ) p i=1<br />
. Auch die<br />
Eigenschaften der Funktionen f, g gehen in die Klassifikation von Optimierungsproblemen ein,<br />
da durch Umformulierungen mit Zusatzvariablen wie x n+1 := F (x), die Zielfunktion auch in<br />
Nebenbedingungen verlagert werden kann. Als Grundmengen C treten oft folgende Fälle auf<br />
• R n , R n +, R n 1<br />
+ × Rn 2<br />
die Nichtnegativität ließe sich auch bei f unterbringen<br />
• B r (y) Kugel um y vom Radius r, allgemeiner: Ellipsoid<br />
• Z n , R n 1<br />
× Z n 2<br />
ganzzahlige, gemischt-ganzzahlige Probleme,<br />
• B n = {0, 1} n boolesche Optimierungsprobleme.
1 OPTIMIERUNGS-PROBLEME 3<br />
In dieser Vorlesung werden nur Lineare Programme (LP) behandelt, das sind kontinuierliche<br />
Optimierungsprobleme (C = R n ) mit Funktionen<br />
F (x) = c T x + d, f i , g j affin linear.<br />
Bei einer (in der Praxis üblichen) großen Anzahl von Unbekannten n ist eine Sonderbehandlung<br />
bei speziellen Strukturen sinnvoll, etwa bei linearen Transport- oder Fluß-Problemen. Lösungsmethoden<br />
für Optimierungsprobleme haben offensichtlich im Unternehmensbereich (Kostenminimierung)<br />
eine erhebliche ökonomische Bedeutung. Aber auch in theoretischer Hinsicht (Komplexitätstheorie)<br />
sind sie eine große Herausforderung. Naheliegende Fragestellungen sind:<br />
Theorie:<br />
Allgemeine Aussagen, z.B. zur Struktur<br />
Existenz und Eindeutigkeit<br />
Kriterien für Optimalität<br />
Empfindlichkeit der Lösungen (Stabilität des Problems)<br />
Komplexität des Problems<br />
Praxis:<br />
Algorithmenentwicklung<br />
Empfindlichkeit der berechneten Lösung (Stabilität des Algorithmus)<br />
Komplexität des Algorithmus<br />
In die erste Kategorie fallen bei Linearen Programmen Erkenntnisse zur Geometrie des zulässigen<br />
Bereichs X. Diese hat zentrale Bedeutung, denn X ist ein konvexes Polyeder (Vielflächner), das<br />
Minimum wird auf dem Rand angenommen, da nicht-konstante lineare Funktionen keine inneren<br />
Extrema besitzen. Daher werden in §3 auch Grundlagen der Konvexen Geometrie behandelt.<br />
1.2 Beispiele<br />
Produktionsplanung<br />
In einem Unternehmen können n verschiedene Produkte P j erzeugt werden unter Nutzung von<br />
m unterschiedlichen Resourcen R i (Arbeitszeit, Rohstoffe, Energie,. . . ). Der Gewinn bei Produktion<br />
einer Einheit von Produkt P j sei c j .<br />
Die zu erzeugende Menge des Produkts P j wird als Unbekannte x j eingeführt. Eine triviale<br />
Nebenbedingung ist offensichtlich x j ≥ 0, der erzielte Gesamtgewinn ist ∑ n<br />
j=1 c jx j =<br />
F (x 1 , . . . , x n ) und stellt die Zielfunktion des Problems dar. Nimmt man weiter an, dass zur<br />
Poduktion von P j jeweils a ij Einheiten von durch Größen b i beschränkte Resourcen R i , i =<br />
1, . . . , m, verwendet werden, sind ausserdem die Restriktionen<br />
n∑<br />
a ij x j ≤ b i ,<br />
j=1<br />
i = 1, . . . , m
1 OPTIMIERUNGS-PROBLEME 4<br />
einzuhalten. Insgesamt lautet das Problem somit<br />
∑<br />
max n c j x j<br />
j=1<br />
n∑<br />
a ij x j ≤ b i ,<br />
j=1<br />
x i ≥ 0,<br />
i = 1, . . . , m<br />
i = 1, . . . , n<br />
Hier bietet sich die Vektor-/Matrix-Notation für eine kompaktere Schreibweise an. Mit x =<br />
(x 1 , . . . , x n ) T , c := (c 1 , . . . , c n ) T , b = (b 1 , . . . , b m ) T , A = (a ij ) m,n<br />
i,j=1 ist F (x) = cT x und man hat<br />
die äquivalente Formulierung<br />
max c T x<br />
Ax ≤ b<br />
x ≥ 0.<br />
Die Ungleichungen bei Vektoren sind dabei wieder komponentenweise zu verstehen. Da alle<br />
Restriktionen Ungleichungen sind, ist der zulässige Bereich X := {x ∈ R n : Ax ≤ b, x ≥ 0}.<br />
Beispiel 1.2.1 Fall n = 2, m = 3, die Produkte P 1 (Gewinn c 1 = 4 EUR) und P 2 (Gewinn<br />
c 2 = 3 EUR) sollen mit Hilfe der Resourcen Arbeitszeit, Lagerkapazität, Energie produziert<br />
werden. Die Einschränkungen seien<br />
A: x 1 + x 2 ≤ 16 (gleicher Arbeitsaufwand)<br />
L: x 2 ≤ 12 (Rohstoffe nur für P 2 zu lagern)<br />
E: 3x 1 + x 2 ≤ 36 (3-facher Energiebedarf P 1 )<br />
Gesamtformulierung und zulässiger Bereich:<br />
max (4, 3) · x<br />
⎛ ⎞ ⎛ ⎞<br />
1 1 16<br />
⎜ ⎟ ⎜ ⎟<br />
⎝0 1⎠ x ≤ ⎝12⎠ ,<br />
3 1 36<br />
x ≥ 0.<br />
Der Pfeil c ist der (konstante!) Gradient der Zielfunktion<br />
F (x) = c T x = 4x 1 + 3x 2 , das Maximum<br />
wird im markierten Randpunkt (ˆx 1 , ˆx 2 ) =<br />
(10, 6) angenommen mit dem Wert F (ˆx) = 58.<br />
x 2<br />
❅<br />
✻ ❅ ❇<br />
L<br />
❅<br />
❇<br />
❅<br />
❇<br />
❅<br />
❇<br />
E<br />
❅<br />
❇<br />
❅<br />
❇<br />
♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ❅♣ ♣ ❇♣ ♣<br />
♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ❅<br />
♣❇♣<br />
✚ ✚✚❃<br />
♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ X♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ❅<br />
♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣<br />
❇<br />
♣ ♣<br />
♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣❇♣ ♣<br />
❅<br />
♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ♣ ❇♣ ♣ ❅ A<br />
❇ ❅<br />
❇ ❅<br />
c<br />
✲<br />
x1<br />
Transportprobleme<br />
Hier soll ein Massengut (beliebig teilbar) von<br />
m Produktions-/Lagerstätten P i mit Kapazität<br />
s i zu n Verbrauchern V j mit Bedarf r j transportiert<br />
werden. Die Gesamtmengen bei Produktion<br />
und Verbrauch sollen dabei gleich sein<br />
m∑ ∑<br />
s i = n r j (oBdA).<br />
i=1<br />
j=1<br />
✗✔<br />
P 1<br />
V 1<br />
✖✕<br />
✟ ✟✟✟✯ ❍❨<br />
❍<br />
❍<br />
✛✘❍<br />
✲ V 2<br />
✛<br />
✚✙<br />
❍ ✟<br />
❍❍❍❥<br />
✛✘<br />
✟<br />
✟✙<br />
✟<br />
V 3<br />
P 2<br />
✚✙
1 OPTIMIERUNGS-PROBLEME 5<br />
Als Unbekannte werden die von P i nach V j transportierten Mengen x ij ≥ 0 eingeführt, der<br />
Transport einer Einheit auf dieser Strecke habe den Preis c ij . Für den optimalen Transportplan,<br />
der minimale Kosten verursacht, ergibt sich das Programm<br />
min m ∑<br />
i=1 j=1<br />
n∑<br />
c ij x ij<br />
(Gesamt-Transportkosten)<br />
n∑<br />
x ij = s i , i = 1, . . . , m (alle Produkte abtransportiert)<br />
j=1<br />
m∑<br />
x ij = r j , j = 1, . . . , n (jeder Bedarf abgedeckt)<br />
i=1<br />
x ij ≥ 0<br />
∀i, j<br />
Die Restriktionen sind hier ausschließlich lineare Gleichungen und reine Vorzeichen–Bedingungen<br />
an alle Variable. Zum LGS gehört ein affin-linearer Lösungsraum, der zulässige Bereich X ist<br />
daher der Durchschnitt dieses Lösungsraums mit dem Positivkegel R mn<br />
+ . Diese Struktur wird bei<br />
dem Standard-Lösungsverfahren zugrunde gelegt. Beim Transport von Stückgut sind aber nur<br />
ganzzahlige Werte x ij ∈ Z + zulässig. Dann liegt ein ganzzahliges Optimierungsproblem vor.<br />
Modifikation: Transport in Netzwerk (Graph), wenn nur ein Teil der Transportstrecken vorhanden<br />
ist. Hierbei können reine Umschlagknoten (ohne Produktion und Verbrauch) auftreten.<br />
Das Problem des Handlungsreisenden (TSP)<br />
Dieses Problem (”traveling salesman problem”)<br />
hat in der Komplexitätstheorie die Bedeutung<br />
eines extrem schwierigen Referenz-Problems. In<br />
der Grundform soll ein Reisender eine Anzahl<br />
von n Orten je einmal besuchen und zum Ausgangspunkt<br />
zurückkehren. Ziel ist eine Tour mit<br />
minimaler Gesamtstrecke. Dies ist also die moderne<br />
Form der klassischen Odyssee (rechts: eine<br />
optimale Lösung derselben).<br />
Dazu sei N = {1, . . . , n} die Menge der Orte und w ij ≥ 0 die Entfernung von i nach j. Ist<br />
die Rundreise (Tour) gegeben durch die Liste (p(1), . . . , p(n)) der besuchten Orte, so können in<br />
der Gesamtstrecke ∑ n−1<br />
j=1 w p(j)p(j+1) +w p(n)p(1) die Summanden w offensichtlich nach dem ersten<br />
Index umsortiert werden. Im zweiten Index steht dann eine zyklische Permutation π ∈ S n mit<br />
π(p(j)) = p(j + 1). Die Menge der zyklischen n-Permutationen S z,n ⊆ S n enthält alle diejenigen,<br />
welche aus einem einzigen Zyklus bestehen. Das Problem lautet daher<br />
n∑<br />
min{ w i,π(i) : π ∈ S z,n }<br />
i=1<br />
(TSP)<br />
In der allgemeinen Form sind die Entfernungsangaben w ij ≥ 0 nicht weiter eingeschränkt. Sinnvolle<br />
Spezialfälle sind aber offensichtlich das
1 OPTIMIERUNGS-PROBLEME 6<br />
symmetrische TSP: w ij = w ji (z.B., keine Einbahnstraßen)<br />
euklidsche TSP: w ij ≤ w ik + w kj ∀i, j, k (Gültigkeit der Dreieckungleichung)<br />
In der Form (TSP) liegt ein kombinatorisches Optimierungsproblem vor. Wegen |S z,n | = (n−1)!<br />
ist eine reine Enumeration aller Möglichkeiten zur Lösung nur für kleine n möglich, denn, z.B.,<br />
ist 5! = 120, 10! = 368800, 30! > 2 · 10 32 . Der z.Z. schnellste Rechner (Tianhe-2 mit 33800 Tera-<br />
FLOPS > 33 PetaFLOPS) schafft ca. 3 · 10 21 Operationen pro Tag.<br />
Eine alternative Formulierung als (LP) ist möglich durch Betrachtung des charakteristischen<br />
Vektors x = (x ij ) ∈ B k , k = n(n − 1) beim allgemeinen und k = ( n<br />
2)<br />
= n(n − 1)/2 beim<br />
symmetrischen Problem. Beim symmetrischen Problem haben die Variablen x ij , i < j, folgende<br />
Bedeutung<br />
x ij =<br />
{<br />
1 der Weg zwischen i und j wird benutzt,<br />
0 sonst.<br />
Damit sich eine Tour ergibt, müssen zu jedem Ort genau zwei Wege benutzt werden, also<br />
∑<br />
ji<br />
x ij = 2 ∀1 ≤ i ≤ n. (1.2.1)<br />
Allerdings sind dadurch Teiltouren noch nicht ausgeschlossen. Zusätzlich kann man dazu fordern,<br />
dass in keiner echten Teilmenge U ⊆ N ein Kreis auftritt, ∑ i,j∈U x ij ≤ |U| − 1, bzw. die Menge<br />
wieder verlassen wird<br />
∑<br />
i∈U,j /∈U<br />
Diese Formulierung des (TSP) ist damit<br />
x ij ≥ 2 ∀U ⊂ N, 1 ≤ |U| ≤ n − 1. (1.2.2)<br />
min ∑ n<br />
i,j=1 w ijx ij<br />
x ∈ X := {x ∈ B (n 2) : (1.2.1), (1.2.2) gelten}.<br />
(TSPB)<br />
Dieses (TSPB) ist also ein boolesches lineares Programm mit n Gleichungen und ∑ n−1<br />
( n<br />
)<br />
k=1 k =<br />
2 n − 2 Ungleichungen. Wegen dieser vielen Bedingungen und der booleschen Variablen ist auch<br />
diese (und jede) Form des (TSP) schwierig zu lösen.<br />
Daten zur Geschichte des Problems, Lösungsrekorde:<br />
1930 Karl Menger Formulierug des Problems, einzige Lösungs-<br />
1934 Hasler Whitney möglichkeit vollständige Enumeration<br />
1954 G.B. Dantzig, D.R. Fulkerson, Lösen 42-Städte-Problem mit Schnittebenen-<br />
S.M. Johnson<br />
Verfahren und linearen Programmen,<br />
1972 R.M Karp TSP ist NP-vollständig,<br />
1979 Crowder, Padberg 318 Orte, Branch-and-Cut-Verfahren,<br />
1995 Applegate, Bixby, Chvátal, Cook 7397-Städte-Problem, Parallelrechner<br />
2001 dito 15112 Städte Deutschland<br />
2004 dito+Helsgaun 24978 Städte Schweden<br />
2006 A+B+C+C+E+G+H 85900 Punkte VLSI (s.u.)
1 OPTIMIERUNGS-PROBLEME 7<br />
Der aktuelle Rekord (www.tsp.gatech.edu/) berechnet die optimale Rundreise durch 85900<br />
Punkte einer VLSI-Schaltung, ein Vorgänger-Rekord 2001 betraf 15112 deutsche Städte (elib.zib.de):<br />
Statt des Booleschen Problems (TSPB) kann man auch seine stetige Relaxation betrachten,<br />
mit dem zulässigen Bereich<br />
X 1 := {x ∈ R (n 2) : 0 ≤ x ≤ 1l, und (1.2.1), (1.2.2)} ⊃ X. (1.2.3)<br />
Da dessen zulässige Menge X umfaßt, erhält man daraus zumindestens eine untere Schranke W 1<br />
für den Wert W des (TSPB): W ≥ W 1 . Bei den erwähnten Schnittebenen-Verfahren legt man<br />
tatsächlich (1.2.3) zugrunde und eliminiert schrittweise unbrauchbare Lösungen durch Hinzunahme<br />
weiterer Nebenbedingungen, die nichtganzzahlige Lösungen abschneiden.<br />
Anwendungen Viele praktische Fragen lassen sich als TSP formulieren:<br />
— Leiterplatinen-Produktion, Computerverdrahtung<br />
— Tourenplanung<br />
— Ablaufplanung (job-shop scheduling)<br />
Zur Bestückung von Platinen mit Bauteilen sind für deren Anschlußdrähte Bohrungen in den<br />
Leiterplatten anzubringen. Da die Zeit pro Bohrung konstant ist, wird die Gesamtzeit v.a. durch<br />
die Fahrzeit zwischen den Bohrpunkten bestimmt. Unter der Annahme, dass die Fahrzeit proportional<br />
zur Entfernng ist, entspricht c ij dem euklidschen Abstand der Punkte. Die im folgenden<br />
Beispiel mit n = 2392 Punkten per Hand geplante Tour ist um 90% länger als die optimale.
1 OPTIMIERUNGS-PROBLEME 8<br />
”manuelle” Lösung mit Länge 718876 Optimale Lösung der Länge 378032<br />
1.3 Lineare Programme<br />
Für Lineare Optimierungsprobleme hat sich der Begriff Lineare Programme eingebürgert. In dem<br />
allgemeinen Rahmen der Form (P) mit dem zulässigen Bereich (1.1.1) sind alle auftretenden<br />
Funktionen (affin) linear, es gelten also Darstellungen der Form<br />
F (x) = c T x, f i (x) = a T i x + α i , g j (x) = b T j x + β j ,<br />
mit Vektoren a i , b j ∈ R n , i = 1, . . . , p, j = 1, . . . , m. Dabei wurde F oBdA als linear angenommen,<br />
da eine Konstante zwar den Wert des Problems, aber nicht die Lösung ˆx ändert. In den<br />
Beispielen traten Ungleichungsrestriktionen of in sehr einfacher Form auf, als reine Vorzeichenbeschränkungen.<br />
Wegen ihrer vielfältigen Sonderrolle werden diese im folgenden gesondert notiert,<br />
man teilt die Unbekannten auf in freie und vorzeichenbeschränkte Variable. Zusammen mit der<br />
Aufteilung in Ungleichungen und Gleichungen können die Restriktionen in einer Blockmatrix<br />
gesammelt werden. Die allgemeine Form eines linearen Programms lautet daher<br />
⎫<br />
min c T 1 x 1 + c T 2 x 2<br />
A 11 x 1 + A 12 x 2 ≥ b<br />
⎪⎬ x 1 , c 1 ∈ R n 1<br />
, x 2 , c 2 ∈ R n 2<br />
, n = n 1 + n 2 ,<br />
1<br />
b 1 ∈ R m 1<br />
, b 2 ∈ R m 2<br />
, m = m 1 + m 2 ,<br />
A 21 x 1 + A 22 x 2 = b 2<br />
x 1 ≥ 0<br />
⎪⎭ A ij ∈ R m i×n j<br />
, i, j = 1, 2.<br />
(LP)<br />
Allerdings kann man durch elementare Umformungen daraus auch jedes der folgenden, einfacheren<br />
Standardprogramme erzeugen mit A ∈ R m×n ,<br />
min{ c T x : Ax ≥ b}<br />
min{ c T x : Ax ≥ b, x ≥ 0}<br />
min{ c T x : Ax = b, x ≥ 0}<br />
(LP1)<br />
(LP2)<br />
(LP3)<br />
Bei diesen ist in der allgemeinen Form (LP) jeweils nur ein Matrixblock nichttrivial, nämlich<br />
A 12 ≠ 0 bei (LP1), A 11 ≠ 0 bei (LP2) und A 21 ≠ 0 bei (LP3). Folgende elementare Umformungen<br />
können eingesetzt werden, die auf äquivalente Probleme führen:
1 OPTIMIERUNGS-PROBLEME 9<br />
1. eine Gleichung a T x = α kann durch die beiden Ungleichungen a T x ≥ α, −a T x ≥ −α<br />
ersetzt werden.<br />
2. eine freie Variable ξ kann als Differenz ξ = ξ + − ξ − von zwei nichtnegativen Variablen<br />
ξ + , ξ − ≥ 0 geschrieben werden.<br />
3. Ungleichungen a T x ≥ α können durch Einführung einer Schlupfvariablen η ≥ 0 durch die<br />
Gleichung a T x − η = α ersetzt werden.<br />
4. jede Vorzeichenbeschränkung ξ ≥ 0 kann als Ungleichungsrestriktion ξ ≥ 0 einer freien<br />
Variablen ξ nach A 12 verlagert werden.<br />
Durch diese Umformungen können sich die Dimensionen m, n vergrößern, die wesentlichen Eigenschaften<br />
aus §1.1 (X ≠ ∅? inf{F (x) : x ∈ X} > −∞?) bleiben aber unverändert. Allerdings<br />
unterscheiden sich die geometrischen Eigenschaften der zulässigen Bereiche bei den 3 Standardformen.<br />
Dies eröffnet die Möglichkeit, je nach Fragestellung die passende zu wählen, es gilt:<br />
(LP1) X = {x : Ax ≥ b} = ⋂ m<br />
i=1 {(eT i A)x ≥ b i} mit den Einheitsvektoren e i ∈ R n . Da jede<br />
Ungleichung der Form a T x ≥ β einen abgeschlossenen Halbraum definiert, ist X als<br />
Durchschnitt von Halbräumen ein Polyeder. Hier erwartet man Dimensionen m > n.<br />
(LP2) X = {x : Ax ≥ b, x ≥ 0} ist Durchschnitt des gerade erwähnten Polyeders mit dem<br />
positiven Kegel {x ∈ R n : x ≥ 0} = R n +, also wieder ein Polyeder.<br />
(LP3) X = {x : Ax = b, x ≥ 0} ist als Durchschnitt U ∩ R n + ein ”dünnes” Polyeder. Dabei<br />
wird der Positivkegel geschnitten mit dem affinen Unterraum U := {x : Ax = b} =<br />
{ˆx} + kern(A) aller Lösungen des Gleichungssystems. Für einen Kern ist i.d.R. m < n<br />
erforderlich.
2 SIMPLEX – VERFAHREN 10<br />
2 Simplex – Verfahren<br />
2.1 Bezeichnungen<br />
Es wird der n-dimensionale Vektorraum R n zugrundegelegt. Die Vektoren der Einheitsbasis<br />
heißen e i = (δ ij ) n j=1 und es sei 1l := ∑ n<br />
i=1 e i der Vektor aus Einsen. Allgemein werden Elemente<br />
x ∈ R n als Spaltenvektoren geschrieben,<br />
⎛ ⎞<br />
x 1<br />
) n<br />
x = ⎜<br />
⎝ .<br />
⎟<br />
⎠<br />
(x = i .<br />
i=1<br />
x n<br />
√ ∑n<br />
Meist wird die Euklidnorm ‖x‖ = ‖x‖ 2 :=<br />
i=1 x2 i<br />
verwendet, eine andere interessante Norm<br />
ist die Maximumnorm ‖x‖ ∞ := max n i=1 |x i|. Ungleichungen zwischen Vektoren sind komponentenweise<br />
zu verstehen. Eine solche wird in der Definition R n + := {x : x ≥ 0} des positiven Kegels<br />
verwendet (s.o.). Die Menge der reellen m × n-Matrizen heißt R m×n . Im Folgenden werden oft<br />
Untermatrizen aus ausgewählten Spalten oder Zeilen einer Matrix betrachtet. Zu A ∈ R m×n<br />
seien daher a j = Ae j ∈ R m die Spalten und a (i) = A T e i ∈ R n die Zeilen von A. Dann gelten<br />
folgende Schreibweisen<br />
⎛<br />
⎞<br />
⎛ ⎞<br />
a 11 · · · a 1n<br />
a (1)T<br />
A = ⎜<br />
⎝ . .<br />
⎟<br />
⎠ = (a ij) = (a 1 , . . . , a n ) = ⎜<br />
⎝ .<br />
⎟<br />
⎠ .<br />
a m1 · · · a mn a (m)T<br />
Elemente einer Vektorfolge werden ebenfalls durch einen oberen Index unterschieden, x (i) =<br />
(x (i)<br />
1 , . . . , x(i) n ) T .<br />
2.2 Matrix – Umformungen<br />
Das später behandelte Simplex-Verfahren benutzt die Problemform (LP3) und durchläuft spezielle<br />
Lösungen des Linearen Gleichungssystems Ax = b, m < n, welche durch reguläre quadratische<br />
Untermatrizen von A gegeben sind. Die Lösung von regulären Gleichungssystemen spielt<br />
daher eine zentrale Rolle bei der Optimierung. Zwischen aufeinanderfolgenden Schritten des<br />
Simplexverfahrens ändern sich die Systeme aber nur wenig. Um Rechenaufwand zu sparen nutzt<br />
man daher oft Aktualisierungs-Formeln (”matrix update”). Denn bei Änderung einer Matrix<br />
durch eine Rang-1-Matrix ist die Inverse explizit bekannt und läßt sich effizient berechnen.<br />
Satz 2.2.1 Die Matrix B ∈ R m×m sei regulär, mit Vektoren u, v ∈ R m sei β := 1+v T B −1 u ≠ 0.<br />
Dann ist auch die Matrix B + uv T regulär und ihre Inverse ist<br />
(B + uv T ) −1 = B −1 −<br />
1<br />
1 + v T B −1 u B−1 uv T B −1 . (2.2.1)
2 SIMPLEX – VERFAHREN 11<br />
Wenn dabei in B nur die Spalte Nummer s ∈ {1, . . . , m} durch einen anderen Vektor a ersetzt<br />
wird, d.h., v = e s und u = a − b s gilt, ist β = e T s B −1 a und die Zeilen der Inversen ändern sich<br />
nach den Regeln<br />
Bew<br />
{ 1<br />
e T i (B + ue T s ) −1 β<br />
=<br />
eT s B −1 , i = s,<br />
( )<br />
e T i B−1 − e T i B−1 a 1<br />
β eT s B −1 , i ≠ s.<br />
(2.2.2)<br />
In den Zeilen mit i ≠ s treten insbesondere die durch die Klammer hervorgehobenen Werte der<br />
neuen Zeile s auf. Einfacher ist die Formel (2.2.1) für den Fall B = I mit (I+uw T ) −1 = I− 1 β uwT ,<br />
β = 1 + w T u. Aber auch hieraus folgt schon die allgemeine Version, denn mit w T := v T B −1 ist<br />
(B + uv T ) −1 =<br />
(<br />
(I + uw T )B) −1<br />
= B −1 (I − 1 β uwT ) = B −1 − 1 β B−1 uv T B −1 .<br />
Die Formel (2.2.2) wird in der klassischen Tabellenform des Simplexverfahrens (Handrechnung)<br />
benutzt, da der Rechenaufwand bei O(m 2 ) arithmetischen Operationen (FLOP: FLoating<br />
point OPeration) liegt. Dies hat aber den Nachteil, dass sich bei größeren Problemen und insbesondere<br />
für kleine Werte β Rundungsfehler ansammeln.<br />
Für große (Computer-) Anwendungen greift man zur Lösung auf den Gauß-Algorithmus oder<br />
verwandte Methoden zurück. Auch dieser läßt sich so anpassen, dass geringfügige Änderungen<br />
der Matrix mit geringem Aufwand berücksichtigt werden können. Dazu ist es nützlich, die Zeilenumformungen<br />
im Gauß-Algorithmus als Matrixmultiplikation zu interpretieren. Mit z ∈ R m<br />
und A = (a ij ) ∈ R m×n betrachtet man<br />
⎛<br />
⎞<br />
⎛<br />
1<br />
L j (z) :=<br />
⎜<br />
⎝<br />
⎞<br />
a 11 . . . a 1n<br />
. .. .<br />
.<br />
1<br />
−z j+1 1<br />
, L j (z)A =<br />
a j1 . . . a jn<br />
a j+1,1 − z j+1 a j1 . . . a j+1,n − z j+1 a .<br />
jn<br />
. . .. ⎟<br />
⎜<br />
⎟<br />
⎠<br />
⎝ .<br />
. ⎠<br />
−z m 1<br />
a m1 − z m a j1 . . . a mn − z m a jn<br />
Die Matrix L j beschreibt also den Effekt einer vollständigen Elimination in Spalte j und läßt<br />
sich auch kompakt in der Form L j = I − ze T j schreiben. Wegen e T j z = 0 ist ihre Inverse nach<br />
(2.2.1) einfach L −1<br />
j<br />
= I + ze T j . Beim Gauß-Algorithmus werden der Reihe nach Umformungen<br />
A → L 1 A → L 2 L 1 A etc. angewendet, um die Matrix auf obere Dreieckgestalt (Stufenform) zu<br />
bringen. Da Produkte von unteren Dreieckmatrizen wieder solche Dreieckmatrizen sind, kann<br />
das Ergebnis des Gauß-Algorithmus folgendermaßen zusammengefaßt werden.<br />
Satz 2.2.2 Wenn der einfache Gauß-Algorithmus, der die Matrix A = A 1 ∈ R m×n , m ≤ n, mit<br />
Zeilenumformungen A j+1 = (a (j+1)<br />
ik<br />
) := L j (z (j) )A j , j = 1, . . . , m − 1, und<br />
z (j) = 1<br />
a (j)<br />
jj<br />
(<br />
0, . . . , 0, a (j)<br />
j+1,j , . . . , a(j) mj) T,<br />
(2.2.3)
2 SIMPLEX – VERFAHREN 12<br />
in obere Dreieckgestalt R := A m überführt, durchführbar ist (a (j)<br />
jj<br />
≠ 0∀j), erzeugt er eine LR-<br />
Zerlegung der Matrix als Produkt einer unteren Dreieckmatrix L = L −1<br />
1 · · · L −1<br />
m−1 und einer<br />
oberen R = A m :<br />
⎛<br />
⎞ ⎛<br />
⎞<br />
1<br />
r 11 r 12 . . . . . . . r 1n<br />
z (1)<br />
A = LR, L =<br />
2 1<br />
⎜<br />
.<br />
⎝ . .. ⎟<br />
⎠ , R = r 22 . . . . . . . r 2n<br />
⎜ .<br />
⎝ .. ⎟ . ⎠ .<br />
z m (1) . . . z m (m−1) 1<br />
r mm . r mn<br />
Die Berechnung der LR-Zerlegung hat einen Aufwand von i.w. (n − 1 3 m)m2<br />
Operationen, also 2 3 m3 FLOP für m = n.<br />
arithmetischen<br />
Im Satz wurde implizit vorausgesetzt, dass die Pivot-Elemente a (j)<br />
jj<br />
= r jj, durch welche dividiert<br />
wird, von Null verschieden sind. Bei einer Rechnung mit Maschinenzahlen endlicher Genauigkeit<br />
muß aber nicht nur der Fall a (j)<br />
jj<br />
= 0 durch Zeilenvertauschungen vermieden werden, sondern<br />
∼ = 0. Sonst zeigen sich die gleichen Probleme wie<br />
auch die Verwendung kleiner Pivot-Werte a (j)<br />
jj<br />
bei Verwendung der Rang-1-Formel (2.2.2). Daher bringt man durch Vertauschungen möglichst<br />
große Elemente in die Hauptdiagonale (s.u.).<br />
Durch Berechnung einer LR-Zerlegung wird die Berechnung der Inversen absolut überflüssig.<br />
Denn mit der Zerlegung kostet die Auflösung eines quadratischen linearen Gleichungssystem<br />
Bx = c nur noch den Aufwand der Lösung von zwei gestaffelten (Dreieck-) Systemen:<br />
x = B −1 c = R −1 L −1 c ⇐⇒ Ly = c, Rx = y.<br />
Außerdem kann diese Auflösung ohne Zusatzvariable (am Platz) durchgeführt werden. Die folgenden<br />
Anweisungen überschreiben die rechte Seite c = (c i ) zunächst mit der Zwischenlösung<br />
y, dann mit der Gesamtlösung x:<br />
löst Rx = c, c := x<br />
löst Ly = c, c := y<br />
für i = m abwärts bis 1 {<br />
für i = 2 bis m {<br />
für j = i + 1 bis m {c i := c i − r ij c j ;}<br />
für j = 1 bis i − 1 { c i := c i − l ij c j ;}<br />
c i := c i /r ii ;<br />
}<br />
}<br />
Der Rechenaufwand beträgt pro Teilsystem i.w. m 2 Operationen. Damit ist der Gesamtaufwand<br />
zur Lösung von Bx = LRx = c mit 2m 2 Operationen nicht höher als die reine Multiplikation<br />
B −1 c, jeweils für jede neue rechte Seite c.<br />
Zeilenvertauschungen bei einer m × n-Matrix A können formal mit Hilfe einer Permutationsmatrix<br />
P ∈ B m×m dargestellt werden. So wird etwa mit einer Permutation π die entsprechende<br />
Umordnung der Zeilen in A = (a ij ) folgendermaßen bewirkt (δ: Kronecker-Symbol):<br />
( ) m<br />
A ′ = (a ′ kj ) = (a π(i),j) ⇐⇒ A ′ = P A, P = δ π(i),j .<br />
i,j=1<br />
Permutationsmatrizen entstehen durch Vertauschungen bei der Einheitsmatrix und sind unitär,<br />
die Transponierte P T = P −1 bewirkt die inverse Permutation. In der praktischen Realisierung<br />
bestimmt man im Gaußalgorithmus vor Elimination der j-ten Spalte das betragsmaximale
2 SIMPLEX – VERFAHREN 13<br />
Element unterhalb von a jj und tauscht dessen Zeile mit der j-ten. Dann ist a (j)<br />
jj<br />
in (2.2.3) betragsmaximal<br />
und alle Elemente von L daher im Betrag kleiner gleich eins. Die Permutationen<br />
protokolliert man am Besten in einem Indexfeld P[1..m], in dem man alle Zeilenvertauschungen<br />
der Matrix A synchron durchführt. Der obige Satz 2.2.2 kann damit in folgender Weise verallgemeinert<br />
werden:<br />
Für jede reguläre Matrix A ∈ R m×m<br />
Zerlegung P A = LR existiert.<br />
gibt es eine Permutationsmatrix P so, dass die LR-<br />
Beispiel 2.2.3 Die folgende Matrix A besitzt offensichtlich keine LR-Zerlegung, da schon das<br />
erste Pivotelement verschwindet,<br />
⎛ ⎞<br />
⎛ ⎞<br />
0 1 2<br />
0 0 1<br />
⎜ ⎟<br />
⎜ ⎟<br />
A = ⎝1 0 1⎠ . Mit P = ⎝1 0 0⎠<br />
2 1 1<br />
0 1 0<br />
gilt aber<br />
⎛ ⎞ ⎛ ⎞ ⎛ ⎞<br />
2 1 1 1 0 0 2 1 1<br />
⎜ ⎟ ⎜ ⎟ ⎜ ⎟<br />
P A = ⎝0 1 2⎠ = ⎝0 1 0⎠<br />
⎝0 1 2⎠ = LR.<br />
1<br />
1 0 1<br />
2<br />
− 1 3<br />
2<br />
1 0 0<br />
2<br />
Bei der Elimination ist hier die Diagonale jeweils größer als die Elemente darunter, daher sind<br />
tatsächlich alle Beträge im L-Faktor nicht größer als eins.<br />
Anpassung der LR-Zerlegung Der Aufwand bei einem Gauß-Eliminationsschritt, also der<br />
”Multiplikation” mit einer Matrix L j (z (j) ) ist proportional zur Zahl der nichttrivialen Elemente<br />
von z (j) , also der Anzahl solcher Elemente in der j-ten Spalte von B j . Tauscht man in der<br />
(quadratischen) Matrix B mit B = LR wieder die Spalte s aus, C := B + ue T s , u = a − b s ,<br />
tritt in L −1 C dort eine volle Spalte auf, deren Elimination (etwa bei s = 1) fast den vollen<br />
Aufwand einer Neuzerlegung verursacht. Denn bei Elimination in Spalte s füllt sich der vorher<br />
freie Bereich hinter dieser Spalte i.a. vollständig auf! Dies läßt sich dadurch vermeiden, dass<br />
man die neue Spalte a am Ende einfügt, und die Spalten s + 1 bis m nach vorne schiebt:<br />
⎛<br />
⎞<br />
⎛<br />
⎞<br />
b 1s<br />
a 1<br />
B = ⎜<br />
⎝ .<br />
⎟<br />
⎠ ↦→ C′ = ⎜<br />
⎝<br />
.<br />
⎟<br />
⎠<br />
a m<br />
b ms<br />
Der R-Faktor ändert sich dann folgendermaßen mit dem Vektor c := L −1 a am Ende:<br />
⎛ s ⎞<br />
⎛ s ⎞<br />
❅<br />
❅<br />
c 1 ❅ R = L −1 ❅<br />
B =<br />
⎜<br />
❅<br />
↦→ L −1 C ′ =<br />
❅ .<br />
=: R ′ .<br />
⎟<br />
⎜ ❅ ⎟<br />
⎝ ❅ ⎠<br />
⎝ ❅<br />
⎠<br />
❅<br />
❅ c<br />
❅<br />
❅ m<br />
Jetzt tritt ab Spalte s nur je ein Element unter der Diagonale auf, welches man mit Zeilenoperationen,<br />
die nur je eine Zeile betreffen (Aufwand O(m) pro Elimination!) eliminieren kann,
2 SIMPLEX – VERFAHREN 14<br />
evtl. nach Zeilenvertauschung. Dabei wendet man die Umformungen gleichzeitig auf L und<br />
R ′ = L −1 C ′ an, um danach wieder eine gültige LR-Zerlegung von C ′ zu bekommen. Bei der<br />
Elimination von r ′ s+1,s mit L s(z) etwa hat z = ζe s+1 nur ein nichttriviales Element und durch<br />
(<br />
) (<br />
C ′ = LR ′ = (LL −1<br />
s ) (L s R ′ ) = L(I + ζe s+1 e T s ) (I − ζe s+1 e T s )R ′) ,<br />
wird beim R-Faktor nur die Zeile s + 1 geändert, beim L-Faktor nur die Spalte s. Daher ist der<br />
Gesamtaufwand für diese Anpassung der LR-Zerlegung in der Größenordnung O(m 2 ).<br />
2.3 Basen<br />
Bei der numerischen Durchführung der Optimierung geht man vom Programm (LP3) aus<br />
min{c T x : x ∈ X}, X := {x ∈ R n : Ax = b, x ≥ 0},<br />
und betrachtet ohne Einschränkung den Fall A ∈ R m×n , Rang(A) = m < n. Denn für Rang(A) <<br />
m wäre der affine Unterraum U = {x : Ax = b} entweder leer, oder es könnten Gleichungen<br />
entfernt werden.<br />
Der zulässige Bereich X = {x : Ax = b, x ≥ 0} = U ∩R n + ist der Schnitt des affinen Unterraums<br />
U mit dem positiven Oktanten R n +. Da die Zielfunktion x ↦→ c T x linear ist, ist ihr Gradient c T<br />
konstant und daher gibt es keine inneren Extrema. Daher liegt das Optimum auf dem Rand von<br />
X = U ∩ R n + und somit auf dem Rand des Positivkegels R n +. Trivialerweise hat x ∈ X daher<br />
Komponenten, die entweder positiv oder null sind, letzteres insbesondere auf dem Rand von X.<br />
Daher sind zur Beschreibung folgende Bezeichnungen nützlich. Zu einem Punkt x ∈ R n sei<br />
J + (x) := {i : x i > 0}, J − (x) := {i : x i < 0}, J(x) := J − (x) ∪ J + (x)<br />
die Menge der (positiven, negativen bzw. aller) Stützindizes von x. Für x ≥ 0 ist J(x) = J + (x).<br />
In (LP3) kann man zu unterbestimmten Gleichungssystem für eine spezielle Lösung ¯x ∈ X<br />
einige Spalten von A ”auslassen”, denn mit J + (¯x) = {j 1 , . . . , j l } ⊆ N := {1, . . . , n} ist<br />
b = A¯x = a j1 ¯x j1 + a j2 ¯x j2 + . . . + a jl ¯x jl , l ≤ n. (2.3.1)<br />
Dies entspricht einem Gleichungssystem der Dimension m × l. Als Bezeichnung wird zur Indexmenge<br />
J = {j 1 , . . . , j l } ⊆ {1, . . . , n}, |J| = l, daher folgende Untermatrix von A eingeführt<br />
A J = (a j1 , . . . , a jl ) ∈ R m×l .<br />
Die analoge Bezeichnung (vgl. §2.1) für ausgewählte Zeilen L = {l 1 , . . . , l k } ⊆ {1, . . . , m} der<br />
Matrix ist<br />
⎛<br />
a (l 1) T ⎞<br />
A (L) = ⎜<br />
⎝ .<br />
⎟<br />
⎠ ∈ Rk×n . (2.3.2)<br />
a (l k) T
2 SIMPLEX – VERFAHREN 15<br />
Wie in (2.3.1) werden damit die verschwindenden Komponenten von ¯x aus dem Gleichungssystem<br />
A¯x = b entfernt. Denn mit J := J(¯x) und dem Komplement K = N \ J gilt (etwa nach<br />
geeigneter Umordnung) A = (A J , A K ), ¯x T = (¯x T J , ¯xT K ) und<br />
( )<br />
∑<br />
b = A¯x = n ¯x J<br />
a j ¯x j = A J ¯x J + A K ¯x K = (A J , A K )<br />
¯x K<br />
j=1<br />
J = J(¯x) ⇒ A J ¯x J = b, ¯x K = 0.<br />
(2.3.3)<br />
Dieser Umgang mit Indexmengen hat für die Optimierung eine fundamentale Bedeutung. Man<br />
stellt sich dabei vor, dass an jede Matrixspalte und x-Variable ihr Index angeheftet ist und sich<br />
in dem Produkt nur zusammenpassende Paare bilden. Umgekehrt berechnet man bei gegebener<br />
Indexmenge J aus der letzten Beziehung in (2.3.3) direkt eine spezielle Lösung von Ax = b,<br />
wenn die Untermatrix A J regulär ist, also insbesondere |J| = m gilt. Eine solche Lösung ist aber<br />
nicht unbedingt schon zulässig.<br />
Definition 2.3.1 a) Ein ¯x ∈ X heißt zulässige Basislösung, wenn Rang(A J(¯x) ) = |J(¯x)| ist.<br />
b) Zu J = {j 1 , . . . , j m } ⊆ {1, . . . , n} heißt A J Basis, wenn B := A J ∈ R m×m regulär ist,<br />
det(B) ≠ 0. Die Basis A J heißt zulässig, wenn A −1<br />
J<br />
b ≥ 0 gilt.<br />
Zu jeder Basis A J bekommt man über (2.3.3) die Basislösung ¯x T = (¯x T J , ¯xT K ) mit ¯x J := A −1<br />
J b,<br />
¯x K := 0, K = N \ J. Mit einer geeigneten Ergänzung des Systems (2.3.3) durch<br />
( ) ( ) ( )<br />
A J A K ¯x J b<br />
=<br />
(2.3.4)<br />
0 I n−l ¯x K 0<br />
ist auch die ganze Basislösung ¯x Lösung eines regulären Systems. Mit l = |J(¯x)| hat dessen<br />
Gesamtmatrix Dimension (m + n − l) × n, ihr Rang ist Rang(A J ) + n − l und das System also<br />
eindeutig lösbar für Rang(A J ) = l. Für l < m ist das System (2.3.4) allerdings nicht quadratisch<br />
(überbestimmt). Man nennt dann ¯x eine ausgeartete Basislösung. Allgemein gilt<br />
Satz 2.3.2 Es sei ¯x ∈ X zulässige Basislösung. Dann besitzt ¯x höchstens m positive Komponenten,<br />
es gilt also |J(¯x)| ≤ m, und die Untermatrix A J(¯x) kann zu einer Basis A J ∈ R m×m ,<br />
J ⊇ J(¯x), erweitert werden.<br />
Beweis Da Rang(A) = m ist und daher Rang(A J(¯x) ) = |J(¯x)| =: l ≤ m sein muss, hat ¯x höchstens<br />
l ≤ m positive Komponenten. Die Gesamtmatrix A besitzt maximalen Rang m, es existiert also eine<br />
Basis des R m aus Spalten von A. Nach dem Basis-Austauschsatz können daher die l linear unabhängigen<br />
Spalten von A J(¯x) zu einer vollen Basismatrix A J , mit |J| = m und J ⊇ J(¯x) ergänzt werden.<br />
Da die im Satz genannte Ergänzung nicht eindeutig ist, gehören zu einer ausgearteten Basislösung<br />
mehrere verschiedene Basen. Dies kann im demnächst behandelten Simplexverfahren<br />
zu Problemen führen (→ läuft im Kreis), da es nicht durch die Orte ¯x, sondern die zugehörigen<br />
Basen B gesteuert wird.
2 SIMPLEX – VERFAHREN 16<br />
Der geometrische Hintergrund für die folgenden Überlegungen ist die Tatsache, dass die zulässige<br />
Menge X ein konvexes Polyeder ist und Basislösungen gerade den Ecken dieser Menge entsprechen.<br />
Diese Begriffe und Eigenschaften werden aber erst im Geometrie-Kapitel §3 genauer<br />
definiert. Eines der zentralen Ergebnisse dort besagt, dass man beim Linearen Programm nur<br />
Basislösungen untersuchen muß.<br />
Basisdarstellung von X: Zu jeder Basislösung ¯x von X gibt es eine Basis B = A J mit<br />
A J ¯x J = b, ¯x K = 0, J ∪ K = {1, . . . , n}. Aber nicht nur dieser spezielle Punkt ¯x, sondern jeder<br />
Punkt x ∈ X kann mit Hilfe dieser Basis dargestellt werden. Dazu wird analog zu (2.3.3) die<br />
Gesamtmatrix A = (A J , A K ) aufgeteilt und das Gleichungssystem Ax = b umgeformt. Da A −1<br />
J<br />
existiert, gilt nämlich für x ∈ U<br />
Ax = A J x J + A K x K = b ⇐⇒ x J = A −1<br />
J<br />
b − A−1<br />
J<br />
A Kx K = ¯x J − A −1<br />
J A Kx K . (2.3.5)<br />
Dies ist die aus der Linearen Algebra bekannte Parameterdarstellung des Lösungsraums U mit<br />
den Variablen x K ≥ 0 als ”freien” und den x J als ”abhängigen” Variablen und der speziellen<br />
Lösung ¯x. Nach Einführung von n − m = |K| echten Parametern λ K ≥ 0 heißt das also<br />
( ) ( ) ( )<br />
x J ¯x J −A −1<br />
J<br />
Ax = b, x ≥ 0 ⇐⇒ x = = +<br />
A K<br />
λ K = ¯x − W K λ K ≥ 0. (2.3.6)<br />
x K 0 K I n−m<br />
Im letzten Schritt wurde die Abkürzung<br />
( ) ( )<br />
A −1<br />
J<br />
A K W (J)<br />
)<br />
K<br />
=:<br />
−I n−m W (K) = W K =<br />
(w i,kj ∈ R n×(n−m) , K = {k 1 , . . . , k n−m },<br />
K<br />
benutzt. Im Simplexverfahren spielt nur der Teil W (J)<br />
K<br />
, vgl. (2.3.2), eine Rolle und das hier<br />
gewählte Vorzeichen führt dort zu einfacheren Regeln. Die Spalten von W K sind wegen I n−m<br />
linear unabhängig und bilden eine Basis von kern(A). In<br />
x 3 ✻<br />
einer Umgebung der Basislösung ¯x sieht die zulässige Menge<br />
✂ X also aus wie ein Kegel aus positiven Linearkombinationen<br />
✂<br />
✂ ✂ der Vektoren −w j . Denn nach (2.3.6) gilt<br />
✂ <br />
✁ ✂ ✂ x − ¯x ∈ {− ∑ w j λ j : λ j ≥ 0} und x ∈ R n +.<br />
✁ X x2<br />
j∈K ✂ ✁<br />
✁<br />
✁✁☛ x 1<br />
✟<br />
✟✂<br />
✁ ¯x ✟✟✟✟✟✟<br />
Im Bild befindet sich, von ¯x aus gesehen, der Bereich X ⊆ R 3<br />
in dem angegebenen Kegel, der allerdings an der gepunkteten<br />
Linie den Positivkegel R 3 + verläßt.<br />
Mit den Spalten von W können nun spezielle, von ¯x ausgehende Strahlen (Halbgeraden) in X<br />
beschrieben werden, bei denen genau eine K-Komponente positiv ist. Dazu wird zu festem l ∈ K<br />
und t ∈ R + der elementare Strahl<br />
x(t) := ¯x − tw l<br />
⇐⇒<br />
{<br />
x J (t) = ¯x J − tA −1<br />
J<br />
a l<br />
x k (t) = tδ kl , k ∈ K,<br />
(2.3.7)
2 SIMPLEX – VERFAHREN 17<br />
betrachtet. Da der Vektor x(t) die Gestalt (2.3.6) hat, ist das System Ax(t) ≡ b erfüllt ∀t ∈ R.<br />
Für die Zugehörigkeit x(t) ! ∈ X muß nur noch das Vorzeichen x(t) ≥ 0 geprüft werden für Werte<br />
t = x l (t) ≥ 0. Außerdem interessiert natürlich, wie sich die Zielfunktion auf x(t) ändert.<br />
Durch Einsetzen der Basisdarstellung (2.3.5) in die Zielfunktion und Betrachtung der Vorzeichenbedingungen<br />
kann man wichtige Aussagen zur Bedeutung einer Basislösung machen. Denn<br />
mit einer Basislösung ¯x und zugehöriger Basis A J gilt für beliebige zulässige Punkte x ∈ X<br />
c T x = c T J x J + c T (2.3.5)<br />
Kx K = c T J (¯x J − A −1<br />
J<br />
A Kx K ) + c T<br />
(<br />
)<br />
Kx K<br />
= c T J ¯x J + c T K − c T J A −1<br />
J<br />
A K x K = } c{{ T¯x } + γKx T K . (2.3.8)<br />
} {{ }<br />
aktuelle ZF<br />
Änderung<br />
Damit wird das Verhalten der Zielfunktion in der Nähe von ¯x alleine durch die Nichtbasis-<br />
Variablen x K beschrieben. Da c T¯x der Zielwert in der aktuellen Ecke ist, beschreibt der n-Vektor<br />
γ T := c T − c T J A −1<br />
J A mit γT K = c T K − c T J A −1<br />
J A K = −c T W K (2.3.9)<br />
der sogenannten reduzierten Kosten die Änderung der Zielfunktion bei Vergrößerung der Nichtbasis-<br />
Variablen x K ≥ 0. Für die Basisindizes gilt offensichtlich γ T J = cT J − cT J A−1 J A J = 0 T .<br />
Satz 2.3.3 (Optimalität) Gegeben sei eine Basis A J mit Basislösung ¯x ∈ X. Wenn alle<br />
reduzierten Kosten nicht-negativ sind, γ ≥ 0, dann ist ¯x (Minimal-) Lösung von (LP3).<br />
Beweis Mit der Basisdarstellung (2.3.6) können alle Punkte x ∈ X erreicht werden. Damit gilt aber für<br />
die Zielfunktion nach (2.3.8) bei jedem beliebigen x ∈ X, dass<br />
also ist ¯x (eine) Lösung.<br />
c T x = c T J ¯x J + γ T Kx K = c T¯x +<br />
T<br />
γ K<br />
}{{}<br />
≥0<br />
x K<br />
}{{}<br />
≥0<br />
≥ c T¯x,<br />
Die Aussage bezieht sich auf eine gewählte Basis, für eine bestimmte Basislösung ¯x ist das<br />
Kriterium aber nur hinreichend, da zu einer ausgearteten Basislösung ¯x verschiedene Basen<br />
existieren können, die möglicherweise nicht alle das Optimalitätskriterium des Satzes erfüllen.<br />
Wenn also negative Kosten γ l < 0 existieren, kann die Zielfunktion evtl. noch verkleinert<br />
werden, indem man auf einem Strahl (2.3.7) entlangläuft. Wenn dieser allerdings als Ganzes in<br />
X liegt, kann die Zielfunktion beliebig klein werden und dann existiert keine Lösung für (LP3).<br />
Satz 2.3.4 (Unbeschränktheit) Gegeben sei eine Basis A J mit Basislösung ¯x ∈ X. Wenn<br />
für ein l ∈ K gilt γ l < 0 und w (J)<br />
l<br />
= A −1<br />
J<br />
a l ≤ 0, dann ist (LP3) unbeschränkt.<br />
Beweis Zu dem genannten l ∈ K mit γ l < 0 wird der Strahl (2.3.7) x(t) = ¯x − tw l ∈ U := {x : Ax = b}<br />
im Lösungsraum des LGS betrachtet. Für w (J)<br />
l<br />
≤ 0 gilt sogar für den Gesamtvektor −w l ≥ 0. Also ist<br />
x(t) =<br />
}{{}<br />
¯x +t (−w l ) ≥ 0 ∀t ≥ 0,<br />
} {{ }<br />
≥0 ≥0
2 SIMPLEX – VERFAHREN 18<br />
wegen x(t) ∈ X ∀t ≥ 0 gibt es keine Einschränkung an t. Auf diesem Strahl fällt aber die Zielfunktion<br />
c T x(t) = c T J ¯x − tc T w l = c T J ¯x − t(c T Jw (J)<br />
l<br />
beliebig weit, das Problem ist unbeschränkt.<br />
− c l ) = c T J ¯x + t(c l − c T JA −1<br />
J<br />
a l) = c T J ¯x + t γ<br />
}{{} l → −∞ (t → ∞)<br />
0} = ¯x p<br />
w pl<br />
≥ 0. (2.3.10)<br />
Dieser Wert wurde gerade so bestimmt, dass eine Komponente x p (t l ) null wird, und deren Index<br />
p ∈ J ist einer, in dem das Minimum in (2.3.10) angenommen wird. Für eine nicht ausgeartete<br />
Basislösung ist ¯x J > 0 und daher t l > 0. Im neuen Punkt ist nun die Komponente x l (t l ) = t l > 0<br />
und mit x p (t l ) = 0 ändert sich die Stützmenge zu J(x(t l )) = J \ {p} ∪ {l}. In diesem Punkt<br />
liegt also ein Kandidat für eine neue Basis vor, deren Regularität aber zu prüfen ist.<br />
Satz 2.3.5 (Basiswechsel) Gegeben sei die Basis B = A J mit Basislösung ¯x ∈ X. Sei für<br />
l ∉ J :<br />
γ l = −c T w l = c l − c T J A −1<br />
J a l < 0 und J + (w l ) ≠ ∅.<br />
Mit einem Index p ∈ J, in dem das Minimum in (2.3.10) angenommen wird, bildet man die<br />
neue Menge J ′ := J \ {p} ∪ {l}. Dann ist B ′ = A J ′ neue Basis mit Basislösung x ′ = x(t l ),<br />
wobei x ′ J ′ = (B ′ ) −1 b ≥ 0, und neuem Zielfunktionswert c T x ′ ≤ c T¯x. Die Ungleichung gilt streng<br />
c T x ′ < c T¯x, wenn t l > 0 ist in (2.3.10).<br />
Beweis Das Hauptproblem ist die Regularität der Matrix B ′ . Es sei s die Position von a p in B und<br />
a p = Be s . Die neue Spalte a l werde bei B ′ an der Stelle s eingefügt, damit gilt also B ′ = B + (a l − a p )e T s<br />
und B ′ e s = a l . Die Bedingung zur Anwendung der Rang-1-Formel (2.2.2) ist erfüllt, da<br />
Denn die Zeile p von A −1<br />
J<br />
β = e T s B −1 a l = e T p A −1<br />
J a l = w pl > 0.<br />
steht bei B −1 in Zeile s, und w pl > 0 ist das Element, das den Wert t l in<br />
′ b kann ebenfalls mit<br />
(2.3.10) bestimmt. Also ist B ′ regulär. Die zu B ′ gehörige Basislösung x ′ = A −1<br />
J<br />
(2.2.2) bestimmt werden, es gilt mit A −1<br />
J<br />
a l = w (L)<br />
l<br />
und der Definiton von t l :<br />
x ′ l = eT s (B ′ ) −1 b = 1 β eT s B −1 b = 1 β ¯x p = t l ,<br />
x ′ i =<br />
eT i A−1 J b − 1 β w il¯x p = ¯x i − t l w il , i ∈ J.<br />
Insbesondere gilt x ′ p = 0. Für die Zielfunktion im neuen Punkt x ′ erhält man demnach<br />
c T x ′ = c T¯x + t l (c l − ∑ i∈J<br />
c i w il ) = c T¯x + t l (−c T w l ) ≤ c T¯x.<br />
} {{ }<br />
γ l 0 (d.h. ¯x J > 0) tritt hier auch eine echte Änderung t l γ l < 0 auf.
2 SIMPLEX – VERFAHREN 19<br />
2.4 Das revidierte Simplex-Verfahren<br />
In der Basislösung ¯x mit Basis A J sind am Vektor γ der reduzierten Kosten alle diejenigen<br />
Richtungen ablesbar, in denen die Zielfunktion fällt, nämlich alle x K ≥ 0 mit γK T x K < 0. Aus<br />
Effizienzgründen beschränkt man sich aber darauf, dass pro Schritt nur eine einzige Komponente<br />
x l , l ∈ K, des aktuellen Vektors ¯x K = 0 vergrößert wird und die Zielfunktion dabei nicht wächst.<br />
Man bewegt sich also nur auf einem elementaren Strahl (2.3.7). Daher besteht der Ablauf,<br />
ausgehend von einer zulässigen Startbasis A J , grob aus folgenden Schritten:<br />
1. Berechne ¯x J und γ K zu K = {1, . . . , n} \ J,<br />
2. suche γ l < 0, l ∈ K,<br />
3. wenn aber γ K ≥ 0, nach S. 2.3.3 : Optimum!,<br />
4. wenn w (J)<br />
l<br />
≤ 0, nach S. 2.3.4 : unbeschränkt!<br />
5. bestimme Minimalindex p, w pl > 0, in (2.3.10),<br />
6. Basiswechsel zu J := J \ {p} ∪ {l}.<br />
Die erforderlichen Berechnungen sollten möglichst effizient erfolgen. Benötigt werden dazu in<br />
jeder besuchten Basis die Größen<br />
γK T = c T K − (c T J A −1<br />
J )A K, w (J)<br />
l<br />
= A −1<br />
J a l, ¯x J = A −1<br />
J b.<br />
Wenn die Berechnung von γ K in der angegebenen Weise geklammert wird, mit y T := c T J A−1 J ,<br />
kostet die Bestimmung der drei Lösungen<br />
y T A J = c T J , A J w (J)<br />
l<br />
= a l , A J ¯x J = b,<br />
bei vorhandener LR-Zerlegung A J = LR nur einen Aufwand von höchstens 6m 2 Operationen.<br />
Außerdem kann diese LR-Zerlegung mit der Technik aus §2.2 mit einem O(m 2 )-Aufwand zu<br />
einer Zerlegung von A J ′, J ′ = J \ {p} ∪ {l}, umgebaut werden. Die Dimension n > m geht nur<br />
bei γ K = c T K − yT A K in Schritt 2 ein, der Aufwand wäre hier 2m(n − m) Operationen, wenn alle<br />
Komponenten bestimmt würden. Man muss aber nur einen Teil der γ j berechnen, wenn man<br />
eines der ersten γ l < 0 akzeptiert. Das Vorgehen ergibt den<br />
Simplex-Algorithmus<br />
Eingabe: Zulässige Basis A J , J ⊆ {1, . . . , n}<br />
Schritt 1 x J := A −1<br />
J<br />
b, yT := c T J A−1 J<br />
, K := {1, . . . , n} \ J,<br />
2 suche γ l < 0 unter γ j := c j − y T a j , j ∈ K.<br />
3 wenn γ j ≥ 0 ∀j ∈ K: STOP, Optimum!<br />
4 w (J)<br />
l<br />
:= A −1<br />
J a l, wenn w il ≤ 0 ∀i ∈ J: STOP, unbeschränkt!<br />
5<br />
Bestimme p ∈ J:<br />
x p /w pl = min{x i /w il : w il > 0, i ∈ J} = t l<br />
6 J := J \ {p} ∪ {l}, weiter mit 1
2 SIMPLEX – VERFAHREN 20<br />
Beispiel 2.4.1 Simplexverfahren mit m = 3, n = 6 bei (LP3) mit c T = (−9, −6, −7, 0, 0, 0),<br />
⎛<br />
⎞ ⎛ ⎞<br />
3 1 2 1 0 0<br />
20<br />
⎜<br />
⎟ ⎜ ⎟<br />
A = ⎝1 1 1 0 1 0⎠ , b = ⎝11⎠ .<br />
4 3 4 0 0 1<br />
40<br />
Das Problem ist aus einem (LP2) durch Einführung von Schlupfvariablen entstanden. Hier gehört<br />
zu J = {4, 5, 6} eine Startbasis A J = I 3 mit Basislösung ¯x J = b ≥ 0. Auftretende Simplex-Basen:<br />
⎛ ⎞<br />
20<br />
⎜ ⎟<br />
B-1 1. J = {4, 5, 6}, A J = I, ¯x J = ⎝11⎠, y T = 0 T , γK T = (γ 1, γ 2 , γ 3 ) = (−9, −6, −7).<br />
40<br />
⎛ ⎞ ⎛ ⎞<br />
w 42<br />
1<br />
2+4. wähle l = 2: w (J) ⎜ ⎟ ⎜ ⎟<br />
2 = ⎝w 52 ⎠ = Ia 2 = ⎝1⎠,<br />
w 62 3<br />
⎫<br />
x 4 (t) = 20 − t ≥ 0 ⎪⎬<br />
5. (2.3.10): x 5 (t) = 11 − t ≥ 0<br />
⎪⎭ ⇒ t 2 = 11, p = 5.<br />
x 6 (t) = 40 − 3t ≥ 0<br />
⎛ ⎞ ⎛ ⎞ ⎛ ⎞<br />
1 1 0<br />
0 1 0 11<br />
⎜ ⎟<br />
B-2 1. J = {2, 4, 6}, K = {1, 3, 5}, A J = ⎝1 0 0⎠, A −1 ⎜ ⎟ ⎜ ⎟<br />
J<br />
= ⎝1 −1 0⎠, ¯x J = ⎝ 9 ⎠,<br />
3 0 1<br />
0 −3 1<br />
7<br />
⎛ ⎞<br />
3 2 0<br />
y T = (c 2 , c 4 , c 6 )A −1<br />
J<br />
= (0, −6, 0), γK T = (c ⎜ ⎟<br />
1, c 3 , c 5 ) − (0, −6, 0) ⎝1 1 1⎠ = (−3, −1, 6).<br />
4 4 0<br />
⎛ ⎞<br />
⎛ ⎞<br />
w 21<br />
1<br />
2+4. wähle l = 1: w (J) ⎜ ⎟<br />
1 = ⎝w 41 ⎠ = A −1<br />
J a ⎜ ⎟<br />
1 = ⎝2⎠,<br />
w 61 1<br />
⎫<br />
x 2 (t) = 11 − t ≥ 0 ⎪⎬<br />
5. (2.3.10): x 4 (t) = 9 − 2t ≥ 0<br />
⎪⎭ ⇒ t 1 = 9 2 , p = 4. ✛<br />
Kontrolle:<br />
insbesondere<br />
ist x 1 = t 1<br />
x 6 (t) = 7 − t ≥ 0<br />
✡<br />
✡<br />
✡✢<br />
⎛ ⎞ ⎛ ⎞ ⎛ ⎞ vom Schritt vorher!<br />
3 1 0<br />
1 −1 0<br />
9<br />
⎜ ⎟<br />
B-3 1. J = {1, 2, 6},A J = ⎝1 1 0⎠, A −1<br />
J<br />
= 1 ⎜ ⎟<br />
2 ⎝−1 3 0⎠, ¯x J = 1 ⎜ ⎟<br />
2 ⎝13⎠,<br />
4 3 1<br />
−1 −5 2<br />
5<br />
⎛ ⎞<br />
2 1 0<br />
y T = (c 1 , c 2 , c 6 )A −1<br />
J<br />
= 1 2 (−3, −9, 0), γT K = (c 3, c 4 , c 5 )− 1 2 (−3, −9, 0) ⎜ ⎟<br />
⎝1 0 1⎠ = ( 1 2 , 3 2 , 9 2 ).<br />
4 0 0<br />
3. γ K > 0, ¯x J > 0: eindeutiges Minimum!
2 SIMPLEX – VERFAHREN 21<br />
Zwei offene Fragen zum Simplex-Algorithmus müssen noch genauer behandelt werden:<br />
— Bestimmung einer Start-Basis (Anlaufrechnung, vgl. §2.6)<br />
— Der Algorithmus ist endlich, wenn Basen nicht wiederholt auftreten.<br />
Das zentrale Ergebnis von Kapitel 3 wird der Dekompositionssatz sein, der eine endliche Darstellung<br />
des Polyeders X durch Ecken und Kanten garantiert. Dies sind auch die im Simplexverfahren<br />
verwendeten Größen und daher terminiert dieses in endlicher Zeit, wenn jede Basis nur<br />
einmal auftritt. Allerdings ist dies beim ”Kreisen” des Simplex-Verfahrens nicht gegeben, dort<br />
werden Basen zyklisch wiederholt ohne dass sich ¯x ändert. Dieses Problem tritt aber nur in ausgearteten<br />
Basislösungen auf, in normalen ¯x ∈ X mit |J(¯x)| = m gibt es beim Basiswechsel nach<br />
Satz 2.3.5 dagegen eine echte Abnahme der Zielfunktion, was eine Rückkehr zu ¯x ausschließt.<br />
Ausgeartete Basen treten eher selten auf (nicht-generischer Fall), wenn ¯x ”zufälligerweise” auf<br />
mehr als n − m Hyperebenen {x : a (i)T x = b i } bzw. {x : x j = 0} liegt. Vor allem bei Problemen<br />
mit (kleinen) ganzzahligen Koeffizienten ist dieser Fall aber nicht auszuschließen. Das Kreisen<br />
kann durch Zusatzmaßnahmen verhindert werden (§2.7).<br />
Gesamtaufwand des Simplex-Verfahrens Der einzelne Simplex-Schritt, der im Algorithmus<br />
formuliert wurde, ist zwar effizient durchführbar mit einem Aufwand von O ( m(m + n) ) Operationen.<br />
Der Gesamtaufwand hängt aber von der Anzahl der untersuchten Basen ab und kann<br />
durch Änderungen bei den Auswahlentscheidungen in Schritt 2 und 5 im Einzelfall verbessert<br />
werden. Unglücklicherweise fallen aber generelle Aussagen zur Anzahl der zu untersuchenden<br />
Basen eher negativ aus.<br />
Beispiel 2.4.2 (Klee-Minty) Zu n ∈ N, ɛ ∈ (0, 1 2<br />
) betrachte man<br />
min{−e T nx : x ∈ X},<br />
X := {x : 0 ≤ x 1 ≤ 1, ɛx i ≤ x i+1 ≤ 1 − ɛx i , i = 1, . . . , n − 1}.<br />
Es läßt sich zeigen, dass das Polyeder X genau 2 n Ecken besitzt, und einen Simplexpfad, der alle<br />
besucht. Dieses Problem kann auch nicht durch verbesserte Auswahlstrategien umgangen werden,<br />
auch dafür gibt es meist Gegenbeispiele mit exponentiellem Aufwand. In der Praxis arbeitet<br />
das Simplexverfahren aber sehr effizient, bei genügend allgemeiner Verteilung der Restriktionen<br />
ist beim Problem (LP1) im Mittel mit O( n−1√ m · n 3 ) Schritten zu rechnen.<br />
2.5 Tabellenform des Simplex-Verfahrens<br />
Beim revidierten Simplexverfahren werden nur die für die Durchführung der einzelnen Schritte<br />
erforderlichen Größen berechnet. Der zugehörige Verwaltungsaufwand (Indexmenge J) ist nur<br />
gering, für Handrechnung aber irritierend. In der älteren Tabellenform des Simplexverfahrens<br />
wird immer das gesamte System umgeformt und notiert in der ursprünglichen Reihenfolge der<br />
Spalten, H = . A −1<br />
J<br />
A. Der Punkt deutet dabei die unterschiedliche Indizierung der Zeilen bei H<br />
und A −1<br />
J<br />
A an. Dieses System Hx = . A −1<br />
J<br />
Ax = A−1<br />
J<br />
b = ¯x J wird außerdem ergänzt durch die<br />
aktuelle Zielfunktion ω = c T¯x, den gesamten Kostenvektor γ T = c T − c T J A−1 A und als Tableau<br />
J
2 SIMPLEX – VERFAHREN 22<br />
geschrieben in der Form<br />
(<br />
−c T¯x<br />
) (<br />
c T − c T J A−1 J<br />
A −ω<br />
J A =<br />
¯x J<br />
A −1<br />
J b A−1<br />
γ T<br />
H<br />
)<br />
=: ¯H<br />
) m,n<br />
=<br />
(h ij . (2.5.1)<br />
i,j=0<br />
Die zusätzlichen Daten werden also als nullte Zeile und Spalte des Tableaus geführt. Wegen H J<br />
. =<br />
A −1<br />
J A J = I stehen in den Spalten zu Basisindizes j ∈ J die Einheitsvektoren, dort gilt γ j = 0<br />
und He j ∈ {e 1 , . . . , e m } ⊆ R m . Zur Vereinfachung der folgenden Regeln wird zur Indizierung der<br />
Zeilen von H die Position i und nicht der Basisindex j i aus J = {j 1 , . . . , j m } verwendet, da die<br />
entsprechende Zuordnung der Zeilen wechselt. Die Zuordnung der Komponenten aus der nullten<br />
Spalte (h i0 ) = ¯x J (Steuerspalte) wird durch die Position der Einheitsvektoren hergestellt, es gilt<br />
h i0 = x ji und e i steht in Spalte j i von H. In der nullten Steuerzeile stehen die reduzierten Kosten<br />
h 0j = γ j , j ≥ 1. Der aktuelle Zielfunktionswert wird negativ in h 00 = −c T J ¯x J notiert, dann gilt<br />
mit c 0 := 0 in der nullten Zeile die einheitliche Vorschrift h 0j = c j − ∑ i c j i<br />
h ij , j = 0, . . . , n.<br />
Die Anordnung hat den Vorteil, dass jetzt ein Basiswechsel zu dem Tableau, welches zur<br />
neuen Basis A J ′ mit J ′ = J \ {p} ∪ {l} gehört, durch Anwendung der Rang-1-Formel (2.2.2)<br />
auf das Gesamttableau ¯H durchgeführt werden kann. Für p = j s entspricht das ”Pivot-Element”<br />
h sl = w pl aus (2.3.10). Die Formeln für den Basiswechsel lauten einheitlich für alle Daten:<br />
h ′ sj = h ⎫<br />
sj<br />
,<br />
⎬<br />
h sl<br />
h ′ ij = h ij − h il h ′ sj , i ∈ {0, . . . , m} \ {s} ⎭<br />
j = 0, . . . , n. (2.5.2)<br />
In der zweiten Zeile, für i ≠ s, wurde insbesondere zur Vereinfachung berücksichtigt, dass bei<br />
der Korrektur die auftretenden Quotienten h sj /h sl = h ′ sj<br />
schon in Zeile s berechnet wurden.<br />
Satz 2.5.1 Es sei ¯H das Simplex-Tableau (2.5.1) zur zulässigen Basis A J . Dann wird der Übergang<br />
zum Tableau ¯H ′ , das zur Basis A ′ J mit J ′ = J \ {j s } ∪ {l}, h sl ≠ 0, gehört, durch (2.5.2)<br />
hergestellt.<br />
Beweis Das Tableau zur Basis B = . A J ist die Matrix H = . B −1 A. Durch Austausch in Spalte s wechselt<br />
.<br />
die Basis zu A J ′ = B ′ = B + ue T s mit p = j s und u = a l − a p und B −1 u = h l − e s . Zur Berechnung des<br />
neuen Tableaus dient Satz 2.2.1, dabei ist β = 1 + e T s B −1 u = 1 + e T s (h l − e s ) = h sl und es gilt<br />
H ′ = (B ′ ) −1 A = B −1 A − 1 β B−1 u e T s B −1 A<br />
} {{ } = H − 1 β (h l − e s )h (s)T<br />
Zeilenweise bedeutet dies wie in (2.2.2)<br />
e T i H ′ =<br />
{ 1<br />
Insbesondere gilt die Formel sinngemäß auch für<br />
¯x J ′<br />
h sl<br />
e T s H, ✟ ✟ ( ❄<br />
) i = s,<br />
e T i H − h 1<br />
il h sl<br />
e T s H , i ≠ s.<br />
.<br />
= h ′ 0 = (B ′ ) −1 b = B −1 b − 1 β B−1 u e T s B −1 b<br />
} {{ } = h 0 − 1 β (h l − e s )h s0 = h 0 − (h l − e s )h ′ s0.<br />
Beim Kostenvektor (Steuerzeile) ist zu beachten, dass die Zeilennummern ∈ {1, . . . , m} von H die Indexposition<br />
in der Liste J = {j 1 , . . . , j m } angeben. Daher sei ˜c T = (˜c 1 , . . . , ˜c m ) . = (c j1 , . . . , c jm ) = c T J . Damit
2 SIMPLEX – VERFAHREN 23<br />
ist dann h (0)T = γ T = c T − c T J A−1 J<br />
A = cT − ˜c T H. Beim Basiswechsel ändert sich ˜c ′T = ˜c T + (c l − c p )e T s<br />
und führt zum neuen Kostenvektor<br />
γ ′ T<br />
= c T − ˜c ′T H ′ = c T − (˜c T + (c l − c p )e T s )H ′<br />
= c T − ˜c T( H − 1 β (h l − e s )h (s)T )<br />
− (cl − c p )e T s H ′<br />
= c T − ˜c T H +˜c<br />
} {{ }<br />
T (h l − e s ) 1 β h(s)T − (c l − c p ) 1 β h(s)T<br />
γ T<br />
= γ T − ( c l − c p + c p − ˜c T ) 1<br />
(<br />
) s<br />
h l<br />
} {{ } β h(s)T = h 0j − h 0l h ′ sj .<br />
j=1<br />
γ l<br />
Wegen ˜c s = c js = c p ist der geklammerte Ausdruck gerade γ l = h 0l . Der Wert −c T J ′x J ′ = −˜c ′T h ′ 0 ist ein<br />
Spezialfall davon.<br />
Damit läßt sich das Tableau-Verfahren angeben (Schritte wie in §2.4). Die Formulierung nimmt<br />
dabei keinerlei Bezug auf die Bedeutung der Zeilenindizes.<br />
Eingabe:<br />
Zulässiges Tableau ¯H<br />
2 suche h 0l < 0, 1 ≤ l ≤ n,<br />
Simplex-Tableau-Verfahren<br />
3 wenn h 0j ≥ 0 ∀1 ≤ j ≤ n: STOP, Optimum!<br />
4 wenn h il ≤ 0 ∀1 ≤ i ≤ m: STOP, unbeschränkt!<br />
5<br />
Bestimme s:<br />
h s0 /h sl = min{h i0 /h il : h il > 0, 1 ≤ i ≤ m}<br />
6 Basiswechsel nach (2.5.2), weiter mit 2<br />
Beispiel 2.5.2 Mit dem Ablauf aus Beispiel 2.4.1.1 bekommt man beim Tableauverfahren<br />
folgende Tabellen. In den Steuer-Zeilen und -Spalten ist jeweils das ausgewählte Element h 0l = γ l<br />
bzw. h 0s = ¯x p , p = j s , unterstrichen, außerdem wurde das Pivotelement für den Basiswechsel<br />
eingerahmt. Unter den Tabellen ist die Position der Basisindizes angegeben. Das erste Tableau<br />
ist zulässig, das dritte Tableau optimal, da keine negativen Kosten mehr auftreten.<br />
0 −9 −6 −7 0 0 0<br />
→<br />
20 3 1 2 1 0 0<br />
11 1 1 1 0 1 0<br />
J : j 1 j 2 j 3<br />
40 4 3 4 0 0 1<br />
66 −3 0 −1 0 6 0<br />
→<br />
9 2 0 1 1 −1 0<br />
11 1 1 1 0 1 0<br />
j 2 j 1 j 3<br />
7 1 0 1 0 −3 1<br />
159<br />
1 3 9<br />
2<br />
0 0<br />
2 2 2<br />
0<br />
9<br />
1 1<br />
2<br />
1 0<br />
2 2<br />
− 1 2<br />
0<br />
13<br />
1<br />
2<br />
0 1<br />
2<br />
− 1 3<br />
2 2<br />
0<br />
5<br />
1<br />
2<br />
0 0<br />
2<br />
− 1 2<br />
− 5 2<br />
1<br />
j 1 j 2 j 3<br />
Das Tabellenverfahren hat (für Handrechnung) den vordergründigen Vorteil, dass der Basiswechsel<br />
mit einer einheitlichen Vorschrift für alle Daten des Linearen Programms durchgeführt<br />
werden kann. Für große Probleme ist aber ein wesentlicher Nachteil, dass immer wieder die ganze<br />
Matrix umgeformt (und damit zerstört) wird und sich die Pivotwahl nicht nach der Größe von<br />
h sl richtet. Insbesondere können kleine Pivotwerte h sl<br />
∼ = 0 zu großen Rundungsfehlern führen<br />
und die Fehler der Schritte summieren sich in H. Außerdem ist der Aufwand für einen Schritt<br />
immer (2m + 1)(n + 1) Operationen.
2 SIMPLEX – VERFAHREN 24<br />
Beispiel 2.5.3 (Rechner-Demo) In dem gezeigten<br />
Transportnetz soll ein Produkt von den Produzenten<br />
F und G zu den Abnehmern C,D,E geliefert<br />
werden, die Knoten A und B sind nur Umschlagplätze<br />
mit Bedarf 0. Transporte verlaufen längs der<br />
numerierten Kanten j in der angezeigten Richtung<br />
(Menge x j ≥ 0). Das zugehörige (LP3) ist in der<br />
folgenden Tabelle beschrieben, die Transportkosten<br />
der Kanten in der nullten Zeile, der Bedarf in den<br />
Knoten in der nullten Spalte. Die Kosten sollen minimiert<br />
werden. Die Restriktionen sind Bilanzgleichungen<br />
in den einzelnen Knoten, die Differenz aller<br />
eingehenden und ausgehenden Mengen entspricht<br />
dem Bedarf des Knotens. Die Zeile zu Knoten G<br />
fehlt, da sie redundant ist (Bedarf=−15), die Summe aller Zeilen der Gesamtmatrix ist null.<br />
53 18 29 8 60 28 37 5 44 38 98 14 23 59<br />
A : 0 −1 −1 −1 1 1<br />
B : 0 −1 −1 −1 −1 1 1<br />
C : 6 1 1 1<br />
D : 10 1 1 1<br />
E : 8 1 1 −1 1<br />
F : −9 −1 −1 −1 −1<br />
2.6 Anlaufrechnung<br />
Das Simplexverfahren setzt die Kenntnis einer zulässigen Startbasis voraus. Eine Startbasis<br />
konstruiert man durch Betrachtung von erweiterten Hilfsproblemen, welche die gleichen Restriktionen,<br />
aber eine andere Zielfunktion verwenden.<br />
Zwei-Phasen-Methode<br />
Diese basiert auf der Beobachtung, dass man beim Übergang von einem Problem (LP2) mit<br />
b ≤ 0 zur Form (LP3) durch Einführung von Schlupfvariablen Ax − y = b direkt eine Startbasis<br />
mit zulässiger Basislösung ¯x = 0, ȳ = −b ≥ 0 angeben kann (vgl. Beispiel 2.4.1). Diese Kenntnis<br />
nutzt man beim Problem (LP3)<br />
min{c T x : Ax = b, x ≥ 0},<br />
b ≥ 0 (oBdA),<br />
und führt dort künstliche Schlupfvariable ein. Da b die rechte Seite eines Gleichungssystems<br />
ist, ist die Vorzeichenbedingung an die b i keine Einschränkung. Zu (LP3) wird demnach mit
2 SIMPLEX – VERFAHREN 25<br />
1l = (1, . . . , 1) T ∈ R m das Hilfsproblem (Phase I)<br />
min 1l T y : Ax + y = b, x ≥ 0, y ≥ 0, (2.6.1)<br />
mit der Matrix D := (A, I m ) ∈ R m×(n+m) betrachtet. Die Variablen können zu einem Vektor<br />
z T = (x T , y T ) zusammengefaßt werden. Mit J = {n + 1, . . . , n + m} ist D J = I m eine Basis<br />
und die Basislösung ¯z J = ȳ = b ≥ 0 zulässig. Die neue Zielfunktion 1l T y = ∑ m<br />
i=1 y i ≥ 0 ist<br />
eine Straffunktion, sie bestraft die künstlichen Schlupfvariablen und ist nach unten durch null<br />
beschränkt, das Hilfsproblem also lösbar. Mit der Lösung ẑ T = (ˆx T , ŷ T ), die das Verfahren mit<br />
der Indexmenge J ⊆ {1, . . . , n + m} bestimmt, gilt die<br />
Fallunterscheidung:<br />
a) ŷ ≠ 0: Das Ausgangsproblem (LP3) ist inkonsistent.<br />
b) ŷ = 0: ˆx ist zulässig bei (LP3), dabei<br />
b1) J ⊆ {1, . . . , n}: A J bildet eine zulässige Basis für (LP3).<br />
b2) J ⊈ {1, . . . , n}: P := J ∩ {n + 1, . . . , n + m} ≠ ∅, die Lösung ẑ ist ausgeartet. Für<br />
p = j s ∈ P ist ẑ p = ŷ p−n = h s0 = 0 und ein Austauschschritt mit einem beliebigen<br />
Pivot h sl = w pl ≠ 0, l ∈ {1, . . . , n} \ J ändert wegen t l = 0 nicht die Basislösung<br />
ẑ, verkleinert aber P . Wenn bei P ≠ ∅ kein Austausch mehr möglich ist, gilt also<br />
h sj = w pj = 0, j = 1, . . . , n und die Matrix D −1 A hat eine Nullzeile, A also einen<br />
J<br />
Rangdefekt. Dann kann Zeile p − n (zur Schlupfvariable z p ) aus A entfernt werden.<br />
Im Fall b) kann die Rechnung mit dem Simplex-Verfahren aus §2.4 fortgesetzt werden, für das<br />
Tabellenverfahren aus §2.5 ist dazu die Steuerzeile aus c neu zu berechnen. Die Neuberechnung<br />
im Tabellenverfahren läßt sich umgehen, indem man zusätzlich zur der Steuerzeile h (0)T =<br />
(−1l T A, 0 T ) für das Hilfsproblem (2.6.1) die zusätzliche Zeile h (−1)T = (c T , 0 T ) mitführt und<br />
umformt. Nach Beendigung von Phase I ersetzt man dann h (0)T durch h (−1)T .<br />
Wenn das Ausgangsproblem (LP3) selbst schon Schlupfvariable enthält in einigen Gleichungen,<br />
muß an dieser Stelle evtl. nicht noch eine weitere eingeführt werden. →<br />
Groß-M-Methode<br />
Das Umschalten von Phase I auf Phase II (Originalproblem) erspart man sich, wenn man in<br />
(2.6.1) die gemischte Zielfunktion<br />
c T x + M1l T y = (c T , M1l T )z<br />
mit einer ”genügend großen” Konstanten M betrachtet. Diese muß die künstlichen Variablen<br />
y so stark bestrafen, dass sie im Optimum nicht mehr auftreten. Allerdings ist eine geeignete<br />
Wahl von M nicht einfach zu treffen, insbesondere, wenn (LP3) inkonsistent ist.<br />
Wenn allerdings ursprünglich das Problem (LP2) mit b ≰ 0 vorliegt, hat die Methode den<br />
Vorteil, dass nur eine Zusatzvariable benötigt wird. Dazu sei b q = max{b i : 1 ≤ i ≤ m} > 0.<br />
Im erweiterten System Ax − y = b subtrahiert man nun jede Zeile von der Zeile q, ihre rechte
2 SIMPLEX – VERFAHREN 26<br />
Seite b q − b i wird dadurch nichtnegativ. Die Zeile q selbst bleibt unverändert, bekommt aber<br />
eine zusätzliche Variable y m+1 ≥ 0. Damit ergibt sich das Problem<br />
min c T x +My m+1<br />
n∑<br />
(a qj − a ij )x j −y q +y i = b q − b i ≥ 0, i ≠ q,<br />
j=1<br />
n∑<br />
a qj x j −y q +y m+1 = b q > 0,<br />
j=1<br />
x j ≥ 0, y i , y q , y m+1 ≥ 0<br />
(2.6.2)<br />
Die Matrix mit den Spalten zu den Indizes J = {n+1, . . . , n+m+1}\{n+q} bildet eine zulässige<br />
Basis aus Einheitsvektoren mit Basislösung ¯x = 0, ȳ q = 0, ȳ i = b q −b i ≥ 0 (i ≠ q), ȳ m+1 = b q > 0.<br />
Wenn dann im Optimum (ˆx T , ŷ T ) die Zusatzvariable verschwindet, ŷ m+1 = 0, hat man natürlich<br />
auch eine Lösung des Ausgangsproblems gefunden. Im umgekehrten Fall ist allerdings nicht<br />
klar, ob nur M zu klein gewählt wurde, oder ob das Ausgangsproblem inkonsistent ist. Die<br />
Zwei-Phasen-Methode bietet hier eine verläßlichere Entscheidung.<br />
Beispiel 2.6.1 Beim folgenden Problem (LP2), einschließlich Schlupfvariablen,<br />
min 2x 1 −3x 2<br />
−2x 1 +3x 2 −y 1 = 5<br />
−x 1 +2x 2 −y 2 = 2<br />
−x 1 −2x 2 −y 3 = −6<br />
tritt das größte Element von b in der ersten Zeile auf. Subtraktion der übrigen Zeilen von der<br />
ersten und Einführung der Zusatzvariablen y 4 führt auf das folgende zulässige Tableau ¯H. Die<br />
Kosten für die Steuerzeile sind γ T = (c T , 0 T , M) − Me T q H, es wird also das M-fache der q-ten<br />
Gesamtzeile vom Zielvektor subtrahiert. Das M in der letzten Spalte hebt sich dabei auf.<br />
−5M 2 + 2M −3 − 3M M 0 0 0<br />
5 −2 3 −1 0 0 1<br />
3 −1 1 −1 1 0 0<br />
11 −1 5 −1 0 1 0<br />
→<br />
5 0 0 −1 0 0 M + 1<br />
5/3 −2/3 1 −1/3 0 0 1/3<br />
4/3 −1/3 0 −2/3 1 0 −1/3<br />
8/3 7/3 0 2/3 0 1 −5/3<br />
Der Wert von M ≥ 0 wurde nicht festgelegt, er war hier unwichtig. Nach einem Schritt ist die<br />
Zusatzvariable eliminiert und das Verfahren läßt sich mit der verkleinerten Tabelle fortsetzen.<br />
2.7 Ausgeartete Ecken und praktische Aspekte<br />
Die Steuerung beim Simplexverfahren erfolgt allein über die (Indexmenge der) Basen. Da zu einer<br />
ausgearteten Basislösung verschiedene Basen gehören, kann es vorkommen, dass das Verfahren<br />
zwar die Basis wechselt, aber in der gleichen Basislösung verharrt. Dann besteht auch die Gefahr,<br />
dass das Verfahren (bei unveränderter Pivotwahl) zu einer früheren Basis zurückkehrt und<br />
dann in dieser Schleife gefangen bleibt (”Kreisen” beim Simplexverfahren). Dieses Problem kann<br />
insbesondere bei Restriktionen mit kleinen ganzzahligen Koeffizienten wie im Beispiel 2.5.2 auftreten.<br />
Im Verfahren sind ausgeartete Ecken daran zu erkennen, dass das Minimum in Schritt 5
2 SIMPLEX – VERFAHREN 27<br />
bzw. (2.3.10), das die maximal mögliche Schrittweite<br />
t l = min{ ¯x i<br />
w il<br />
: i ∈ J, w il > 0}<br />
bestimmt, gleichzeitig in mehreren Indizes p 1 , p 2 , . . . angenommen wird. Dann gilt also x p1 (t l ) =<br />
x p2 (t l ) = . . . = 0 und x(t l ) ist wegen |J(x(t l ))| < m also ausgeartet. Eine einfache Abhilfe gegen<br />
das Kreisen besteht darin, dass man die Auswahl unter diesen Indizes durch Zusatzregeln wieder<br />
eindeutig macht. In der Literatur gibt es dazu unterschiedliche Strategien.<br />
Die folgenden kleinste Index -Regeln wählen jeweils den in Frage kommenden kleinsten Original-<br />
Index (Komponentenindex im R n ) und verhindert dadurch ein Kreisen. Die Schritte 2 und 5<br />
des Simplexverfahrens aus §2.4 sind dazu so zu präzisieren:<br />
2 bestimme l ∈ K : l = min{j ∈ K : γ j < 0}<br />
5 bestimme p ∈ J : p = min{i ∈ J : ¯x i /w il = t l }<br />
(2.7.1)<br />
Die Durchführung dieser Regel erfordert beim Tabellenverfahren und auch beim revidierten Verfahren<br />
(abhängig von der Indexverwaltung dort) einen geringen Organisationsaufwand (Index-<br />
Sortierung), da die zugehörigen Daten im Verfahren oft den Platz wechseln.<br />
Das Simplexverfahren basiert darauf, dass an mehreren Stellen eine Auswahl anhand des<br />
Vorzeichens berechneter Daten, etwa der Kosten γ K getroffen wird. Leider treten aber bei der<br />
Durchführung im Rechner Rundungsfehler auf und daher kann statt exakter Kosten γ j = 0 ein<br />
berechneter Wert ˜γ j < 0, ˜γ j<br />
∼ = 0 auftreten. In der Praxis müssen daher die Entscheidungen<br />
in (2.7.1) durch eine sorgfältig gewählte Toleranz ɛ ( ∼ = Rechengenauigkeit 10 −15 ) modifiziert<br />
werden: min{j ∈ K : γ j < −ɛ}. Analog ist bei der Bestimmung von p vorzugehen, es ist der<br />
minimale Index mit ¯x i /w il ≤ t l + ɛ zu verwenden.<br />
Bei sehr kritischen Anwendungen kann man versuchen, Rundungsfehler ganz zu vermeiden.<br />
Ein Gleichungssystem mit rationalen Koeffizienten kann durch Erweiterung ganzzahlig gemacht<br />
werden und die Gauß-Elimination kann dann divisionsfrei ganzzahlig durchgeführt werden. Die<br />
dann auftretenden Koeffizienten können allerdings eine erhebliche Größenordnung annehmen.<br />
Damit ist die Standardmethode zur Lösung von Linearen Programmen behandelt. Im Folgenden<br />
muß aber die Arbeitsgrundlage des Verfahrens, der Dekompositionssatz für Polyeder,<br />
noch erarbeitet werden. Außerdem werden weitere Eigenschaften von Ungleichungssystemen behandelt,<br />
etwa Lösbarkeits-Kriterien, die auf eine schlagkräftige Theorie über duale Programme<br />
führt. Damit werden strategische Diskussionen zu gestellten Optimierungsaufgaben möglich wie<br />
die, durch gezielte Änderungen bei einem gegebenen Problem eine zusätzliche Verkleinerung des<br />
Optimalwerts zu bewirken. Mit einem dualen Simplexverfahren lassen sich solche Änderungen<br />
auch effizient umsetzen.
3 KONVEXE GEOMETRIE 28<br />
3 Konvexe Geometrie<br />
Mit dem Simplex-Verfahren kann für jedes einzelne Programm (LP) eine Lösung berechnet werden<br />
oder es wird die Unlösbarkeit festgestellt. Die theoretische Grundlage für diese Behauptung<br />
ist aber noch offen, die geometrische Struktur der zulässigen Menge X muss geklärt werden,<br />
denn auf ihrem Rand liegen die Maxima der linearen Zielfunktion. Die zentrale Aussage für<br />
Polyeder wie X lautet, dass tatsächlich nur endlich viele Punkte bzw. Richtungen von X zu<br />
prüfen sind.<br />
3.1 Spezielle Teilmengen<br />
Die zulässigen Bereiche von (LP∗) lassen sich als Durchschnitte einfacher Gebilde darstellen.<br />
Jeder (n − 1)-dimensionale affine Unterraum H ⊆ R n ist eine Hyperebene. Sie kann durch eine<br />
einzelne lineare Gleichung charakterisiert werden<br />
H = {x : a T (x − y) = 0} = {x : a T x = α}, a ≠ 0, y ∈ H, α = a T y, (3.1.1)<br />
wobei a der (bis auf Skalierung eindeutige) Normalenvektor von H ist und y ∈ H beliebig.<br />
Kompaktschreibweise H = H(a, y) = H(a, α). Modifikationen der Darstellung H(a, α) führen<br />
auf die offenen Halbräume<br />
❆ H<br />
❆ H + (a, α) := {x : a T x > α},<br />
❆<br />
❆<br />
H − (a, α) := {x : a T (3.1.2)<br />
x < α}.<br />
❆<br />
❆ ✟ ✟✟✯ a<br />
❆<br />
Die Zerlegung R n = H − ∪H ∪H + ist damit disjunkt. Die entsprechenden<br />
abgeschlossenen Halbräume sind H ⊕ := H + ∪ H, H ⊖ := H − ∪ H.<br />
❆<br />
H −<br />
❆<br />
H +<br />
❆ Jeder r-dimensionale affine Unterraum, r < n, ist Durchschnitt von<br />
❆ n − r Hyperebenen.<br />
Zu einer beliebigen Menge M ⊆ R n , M ≠ ∅, wird die affine Hülle aff(M) definiert als<br />
kleinster affiner Unterraum U ⊆ R n mit M ⊆ U, also<br />
aff(M) = ⋂<br />
U (U ⊆ R n affiner Unterraum) (3.1.3)<br />
= {<br />
U⊇M<br />
k∑<br />
λ i x (i) : x (i) ∈ M, λ i ∈ R,<br />
i=1<br />
k∑<br />
λ i = 1, k ∈ N}. (3.1.4)<br />
Außerdem wird die (affine) Dimension dim M = dim aff(M) gesetzt. Umgekehrt ist der größte,<br />
bei jeder Verschiebung, in M ”passende” (lineare) Unterraum der Linealraum L(M) von M:<br />
i=1<br />
x + L(M) ⊆ M ∀x ∈ M. (3.1.5)<br />
Für 0 ∈ M ist offensichtlich L(M) ⊆ M, für beschränktes M ist L(M) = {0} trivial.<br />
Beispiel 3.1.1 Für eine Hyperebene H = H(a, α) ⊆ R n , a ≠ 0, ist dim H = n − 1 und für<br />
α ≠ 0, ist aff(H ∪ {0}) = R n und L(H) = H(a, 0).
3 KONVEXE GEOMETRIE 29<br />
Die beiden Darstellungen (3.1.3,3.1.4) können als Charakterisierungen der affinen Hülle von<br />
”außen” bzw. ”innen” gesehen werden, wobei die zweite affine Kombinationen von Vektoren<br />
verwendet. Da unterschiedliche Arten von Linearkombinationen auch im folgenden auftreten,<br />
werden sie gemeinsam eingeführt.<br />
Definition 3.1.2 Zu Vektoren x (1) , . . . , x (k) heißt die Linearkombination z :=<br />
λ i ∈ R eine<br />
— positive Kombination für λ i > 0, i = 1, . . . , k,<br />
— konische Kombination für λ i ≥ 0, i = 1, . . . , k,<br />
k∑<br />
— affine Kombination für λ i = 1,<br />
— konvexe Kombination für<br />
i=1<br />
k∑<br />
λ i = 1, λ i ≥ 0, i = 1, . . . , k.<br />
i=1<br />
k ∑<br />
i=1<br />
λ i x (i) mit<br />
Die k + 1 Punkte x (0) , . . . , x (k) ∈ R n heißen affin linear unabhängig bzw. in allgemeiner<br />
Lage, wenn die k Differenzen x (1) − x (0) , . . . , x (k) − x (0) linear unabhängig sind. Andernfalls<br />
sind x (0) , . . . , x (k) affin linear abhängig, was äquivalent zur Existenz eines nichttrivialen Tupels<br />
(λ 0 , . . . , λ k ) ≠ 0 ist mit<br />
k∑<br />
k∑<br />
λ i = 0, λ i x (i) = 0. (3.1.6)<br />
i=0<br />
i=0<br />
3.2 Konvexe Mengen<br />
Definition 3.2.1 Eine Menge M ⊆ R n heißt konvex, wenn<br />
[x, y] := {λx + (1 − λ)y : 0 ≤ λ ≤ 1} ⊆ M ∀x, y ∈ M.<br />
Zu jedem Paar von Punkten x, y ∈ M liegt hier die ganze Verbindungsstrecke<br />
[x, y] in M. Die ”offene” Strecke wird mit (x, y) = {λx + (1 − λ)y : 0 < λ < 1}<br />
bezeichnet (enthält Endpunkte nicht für x ≠ y). Das folgende Beispiel c) zeigt, dass Konvexität<br />
für uns eine zentrale Bedeutung besitzt.<br />
Beispiel 3.2.2<br />
a) Affine Unterräume U ⊆ R n sind konvex, da mit x, y ∈ U sogar [x, y] ⊆ aff(x, y) ⊆ U gilt.<br />
b) Der Durchschnitt ⋂ i∈I M i konvexer Mengen M i ⊆ R n , i ∈ I, ist konvex.<br />
c) Halbräume H ± , H ⊖ , H ⊕ sind konvex. Die Menge<br />
n∑<br />
X := {x ∈ R n : a ij x j ≥ b i , i ∈ I} = ⋂ H ⊕ (a (i) , b i )<br />
j=1 i∈I<br />
der Lösungen eines linearen Ungleichungssystems Ax ≥ b ist als Durchschnitt der Halbräume<br />
H ⊕ (a (i) , b i ) konvex.
3 KONVEXE GEOMETRIE 30<br />
d) Der Einheitssimplex ∆ n := {x ∈ R n : 1l T x = 1, x ≥ 0} ist ebenso konvex wie ∆ ′ n := {x ∈<br />
R n : 1l T x ≤ 1, x ≥ 0}.<br />
e) Streckung und Addition erhalten die Konvexität. Mit λ ∈ R und konvexen Mengen M, N ⊆<br />
R n sind auch folgende Mengen konvex<br />
λM := {λx : x ∈ M},<br />
M + N := {x + y : x ∈ M, y ∈ N}.<br />
Definition 3.2.3 Zu M ⊆ R n ist die konvexe Hülle konv(M) die kleinste konvexe Menge, die<br />
M enthält.<br />
Offensichtlich gilt für Mengen M ⊆ R n : M konvex ⇐⇒ M = konv(M). Den Zusammenhang<br />
zwischen Konvexität und Konvex-Kombinationen präzisieren die folgenden Sätze.<br />
Satz 3.2.4 M ⊆ R n ist genau dann konvex, wenn jede konvexe Kombination von endlich vielen<br />
Punkten aus M wieder in M liegt.<br />
Beweis ”⇐” Die Konvexität folgt aus dem Spezialfall k = 2.<br />
”⇒” induktiv, die Behauptung für k = 2 entspricht der Definition. Nun sei M konvex und x (1) , . . . , x (k+1) ∈<br />
M, k ≥ 2. Mit λ i ≥ 0, ∑ k+1<br />
i=1 λ i = 1 sei z := ∑ k+1<br />
i=1 λ ix (i) . Für λ k+1 = 1 ist z = x (k+1) ∈ M. Andererseits<br />
gilt für λ k+1 < 1<br />
z =<br />
k∑<br />
λ i x (i) + λ k+1 x (k+1) = (1 − λ k+1 )<br />
i=1<br />
= (1 − λ k+1 )<br />
k∑<br />
µ i x (i) +λ k+1 x (k+1) ,<br />
i=1<br />
} {{ }<br />
=:˜z<br />
k∑<br />
i=1<br />
λ i<br />
1 − λ k+1<br />
x (i) + λ k+1 x (k+1)<br />
mit µ i := λ i /(1 − λ k+1 ) ≥ 0, i = 1, . . . , k, und ∑ k<br />
i=1 µ i = 1. Damit ist ˜z ∈ M nach I.V. und auch z ∈ M<br />
als einfache Konvexkombination von ˜z und x (k+1) .<br />
Spezielle Charakterisierungen der konvexen Hülle von M sind auch:<br />
• von außen: Durchschnitt aller konvexen Obermengen:<br />
⋂<br />
konv(M) =<br />
(N konvex)<br />
M⊆N⊆R n N<br />
• von innen: Menge aller konvexen Kombinationen von Punkten aus M:<br />
konv(M) = ⋃ k∈N{<br />
k∑<br />
λ i x (i) : x (i) ∈ M, λ ∈ ∆ k }. (3.2.1)<br />
i=1<br />
Der Einheitssimplex ist die konvexe Hülle aller Einheitsvektoren ∆ n = konv({e 1 , . . . , e n }) und<br />
∆ ′ n = konv(∆ n ∪ {0}). Dieses Beispiel läßt erwarten, dass in der Darstellung (3.2.1) nur eine<br />
Höchstanzahl von Summanden zu betrachten ist. Das bestätigt folgender Satz.
3 KONVEXE GEOMETRIE 31<br />
Satz 3.2.5 (Caratheodory) Die Menge M ⊆ R n , M ≠ ∅, besitze Dimension m. Dann kann<br />
jeder Punkt z ∈ konv(M) durch höchstens m + 1 Punkte konvex kombiniert werden, d.h., es<br />
existieren x (1) , . . . , x (k) ∈ M, k ≤ m + 1, λ ∈ ∆ k so, dass z = ∑ k<br />
i=1 λ ix (i) gilt.<br />
Beweis Für beliebiges z ∈ konv(M) gibt es ein s ∈ N so, dass<br />
z =<br />
s∑<br />
λ i x (i) , (λ i ) ∈ ∆ s , x (i) ∈ M.<br />
i=1<br />
ZZ Für s > m + 1 können Punkte x (i) aus der Darstellung entfernt werden, nur der Fall λ i > 0∀i ist dabei<br />
nichttrivial. Tatsächlich sind für s > m + 1 die Vektoren x (2) − x (1) , . . . , x (s) − x (1) linear abhängig, da<br />
ihre Anzahl größer ist als dim(M). Nach (3.1.6) existiert daher (α 1 , . . . , α s ) ≠ 0 mit<br />
s∑<br />
α i x (i) = 0,<br />
i=1<br />
s∑<br />
α i = 0.<br />
i=1<br />
Man wählt den Index j so, dass |α j |/λ j = max{|α i |/λ i : 1 ≤ i ≤ s} und α j > 0 (oBdA). Dann ist<br />
x (j) = − ∑ i≠j α ix (i) /α j und somit auch<br />
z =<br />
s∑<br />
i=1<br />
i≠j<br />
(<br />
λi − α i<br />
λ j<br />
α j<br />
)<br />
x<br />
(i)<br />
λ<br />
(<br />
j<br />
mit λ i − α i = λ i 1 − α )<br />
iλ j<br />
≥ 0<br />
α j λ i α j<br />
eine konische Darstellung von z mit s − 1 Punkten. Die Darstellung ist auch konvex, da ∑ i≠j α i = −α j<br />
und ∑ i≠j (λ i − α i λ j /α j ) = ∑ i≠j λ i + λ j = 1 ist. Die Elimination kann solange wiederholt werden, bis<br />
höchsten m + 1 Punkte auftreten.<br />
Zum Zusammenspiel von Konvexität und Topologie:<br />
Satz 3.2.6 Bei einer nichtleeren konvexen Menge M ⊆ R n sind auch das Innere<br />
Abschluß ¯M konvex.<br />
◦ M und der<br />
Beweis Das Innere sei nicht leer und x, y ∈ ◦ M. Dann liegen auch ε-Kugeln um diese in ◦ M, also<br />
x + B ε (0) ⊆ ◦ M, y + B ε (0) ⊆ ◦ M, mit ε > 0. Zu λ ∈ [0, 1] ist n.V. z := λx + (1 − λ)y ∈ M, es gilt auch<br />
λ(x − z) + (1 − λ)(y − z) = 0.<br />
ZZ z ∈ M. ◦ Dazu sei ˜z ∈ z + B ε (0) beliebig, also ‖˜z − z‖ ≤ ε. Dann gilt tatsächlich auch ✗✔<br />
✗✔ <br />
✗✔<br />
˜z = λ(x + ˜z − z) + (1 − λ)(y + ˜z − z) ∈ M.<br />
<br />
} {{ }<br />
} {{ }<br />
✘ ✘✘ ✘ ✘✘ ✘<br />
✘ ✘✘ ✘ ˜z ✘✘ ✘ <br />
<br />
y<br />
z ✖✕<br />
x ✖✕<br />
∈ B ε (x)<br />
∈ B ε (y)<br />
✖✕<br />
¯M: zu ¯x, ȳ ∈ ¯M existieren Folgen mit x (i) , y (i) ∈ M und ¯x = lim i→∞ x (i) , ȳ = lim i→∞ y (i) . Zu λ ∈ [0, 1]<br />
ist dann z (i) = λx (i) + (1 − λ)y (i) ∈ M ∀i n.V.. Damit folgt<br />
und somit die Konvexität von ¯M.<br />
λ¯x + (1 − λ)ȳ = λ lim<br />
i→∞<br />
x (i) + (1 − λ) lim<br />
i→∞<br />
y (i) = lim<br />
i→∞<br />
z (i) = z ∈ ¯M<br />
Bei der Übertragung topologischer Eigenschaften auf die konvexe Hülle ist Vorsicht angebracht.<br />
Die Abgeschlossenheit von M überträgt sich nur bei beschränkten Mengen auf konv(M).
3 KONVEXE GEOMETRIE 32<br />
Satz 3.2.7 Die Menge M ⊆ R n sei<br />
⎫<br />
⎧<br />
offen ⎪⎬<br />
⎪⎨ offen<br />
beschränkt<br />
⎪⎭ ⇒ konv(M) ist beschränkt<br />
⎪ ⎩<br />
kompakt<br />
kompakt<br />
Beweis Sei M offen. Zu z ∈ konv(M) existiert k ∈ N und (λ i ) ∈ ∆ k , x (i) ∈ M mit z := ∑ k<br />
i=1 λ ix (i) .<br />
N.V. ist für ein ε > 0 auch B ε (x (i) ) ⊆ M ∀i = 1, . . . , k und für ein ˜z ∈ B ε (z) ist<br />
˜z = ˜z +<br />
k∑<br />
λ i (x (i) − z) =<br />
i=1<br />
eine Konvexkombination aus M heraus.<br />
k∑<br />
λ i (x (i) + ˜z − z),<br />
} {{ }<br />
∈ B ε (x (i) )<br />
Sei M kompakt, die Beschränktheit ist dann trivial. Ist nun z ∈ konv(M) ein Häufungspunkt von<br />
konv(M), so existiert eine Folge z (j) ∈ konv(M) mit lim j z (j) = z. Nach Satz 3.2.5 hat jedes Folgenelement<br />
eine konvexe Darstellung mit fester Anzahl n + 1:<br />
i=1<br />
i=1<br />
n+1<br />
∑<br />
z (j) = λ j,i x (j,i) , (λ j,i ) n+1<br />
i=1 ∈ ∆ n+1, x (j,i) ∈ M.<br />
Da auch das n+1-fache cartesische Produkt M ×. . .×M und ∆ n+1 kompakt sind, existieren konvergente<br />
Teilfolgen mit Indizes (j k ) für die Vektorfolgen<br />
( ) ( )<br />
(λ j,i ) n+1<br />
i=1 , (x (j,i) ) n+1<br />
i=1 .<br />
Deren Limites seien λ i := lim k→∞ λ jk ,i, x (i) := lim k→∞ x (j k,i) . Damit folgt<br />
j≥0<br />
j≥0<br />
n+1<br />
∑<br />
z = lim<br />
j→∞ z(j) = lim<br />
k→∞ z(j k) = λ i x (i) ∈ konv(M),<br />
denn es ist (λ i ) n+1<br />
i=1 ∈ ∆ n+1 und x (i) ∈ M, da M abgeschlossen ist.<br />
Zu einem beliebigen Punkt x ∈ R n gibt es in einer nichtleeren konvexen, abgeschlossenen Menge<br />
M einen eindeutigen, nächstgelegenen Punkt. Denn bei festem x ist y ↦→ f x (y) := ‖y − x‖ 2 eine<br />
stetige Funktion und muss mit einem beliebigen y 0 ∈ M nur auf der Kugel B r (x), r 2 = f x (y 0 ),<br />
z<br />
<br />
u x<br />
✏ ✏✏✏ y<br />
i=1<br />
bzw. der kompakten Menge M ∩ B r (x) betrachtet werden. Dieses Minimum<br />
ist eindeutig aufgrund der Parallelogrammgleichung<br />
‖ y + z<br />
2 ‖2 = 1 2 ‖y‖2 + 1 2 ‖z‖2 − 1 4 ‖y − z‖2 . (3.2.2)<br />
Bei zwei Minimalstellen mit ‖y − z‖ > 0 wäre f x in u := (y + z)/2 ∈ M<br />
echt kleiner: f x (u) < f x (y) = f x (z). Dies zeigt den<br />
Satz 3.2.8 Die Menge M ⊆ R n , M ≠ ∅, sei konvex und abgeschlossen. Dann gibt es zu jedem<br />
x ∈ R n einen eindeutigen, nächstgelegenen Punkt<br />
ŷ ∈ M :<br />
ŷ = arg min{f x (y) : y ∈ M}.<br />
Die Zuordnung p M : R n → M, x ↦→ ŷ wird die Projektion auf M genannt.
3 KONVEXE GEOMETRIE 33<br />
Fixpunkte dieser Projektion p M (x) = x sind genau die Punkte x ∈ M, daher ist die Abbildung<br />
p M auch idempotent, p M ◦p M = p M . Bei einem affinen Unterraum U ⊆ R n ist p U die orthogonale<br />
Projektion auf U, mit ŷ = p M (x) ist<br />
x = ŷ + (x − ŷ), wobei (x − ŷ) T (ŷ − y) = 0 ∀y ∈ U.<br />
Bei einem linearen Unterraum ist auch p U linear. Eine zur letzten Gleichung ähnliche Charakterisierung<br />
von p M (x) gilt im allgemeinen Fall.<br />
Satz 3.2.9 Die nichtleere Menge M ⊆ R n sei konvex und abgeschlossen und ŷ ∈ M. Dann gilt<br />
mit x ∈ R n ŷ = p M (x) ⇐⇒ (x − ŷ) T (ŷ − y) ≥ 0 ∀y ∈ M. (3.2.3)<br />
Für x ∉ M ist der nächstgelegene Punkt ŷ = p M (x) also dadurch charakterisiert, dass gilt<br />
M ⊆ H ⊖ , mit der Hyperebene H = H(x − ŷ, ŷ), die eingezeichneten Vektoren x − ŷ und ŷ − y<br />
aus (3.2.3) zeigen ungefähr in die gleiche Richtung.<br />
Beweis ′′ ⇒ ′′ Mit ŷ = p M (x) und bel. y ∈ M sowie λ ∈ [0, 1] ist z = λy + (1 −<br />
λ)ŷ = ŷ + λ(y − ŷ) ∈ M. Nach Voraussetzung gilt<br />
<br />
x❅■<br />
f x (ŷ) ≤ f x (ŷ + λ(y − ŷ)) = ‖ŷ − x + λ(y − ŷ)‖ 2<br />
❅ <br />
❅ ŷ<br />
= f x (ŷ) + 2λ(ŷ − x) T (y − ŷ) + λ 2 ‖y − ŷ‖ 2 .<br />
} {{ }<br />
❆❑<br />
❆ z M<br />
≥0<br />
❆y<br />
Für λ → 0 führt dies auf (x − ŷ) T (ŷ − y) ≥ 0.<br />
H<br />
′′ ⇐ ′′ Für ein ŷ ∈ M gelte (x − ŷ) T (ŷ − y) ≥ 0. Ist auch x ∈ M, führt die Wahl y = x auf −‖x − ŷ‖ 2 ≥ 0<br />
und zeigt ŷ = x = p M (x). Für x /∈ M ist ‖x − ŷ‖ > 0 und mit y ∈ M folgt nach Cauchy-Schwarz<br />
0 ≤ (x − ŷ) T (ŷ − y) = (x − ŷ) T (ŷ − x + x − y)<br />
= −‖x − ŷ‖ 2 + (x − ŷ) T ( )<br />
(x − y) ≤ ‖x − ŷ‖ −‖x − ŷ‖ + ‖x − y‖ .<br />
} {{ } } {{ }<br />
0<<br />
0≤<br />
Also gilt f x (ŷ) = ‖x − ŷ‖ ≤ ‖x − y‖ = f x (y) ∀y ∈ M, daher ist ŷ = p M (x).<br />
Wie im linearen Fall sind alle Elemente von M Fixpunkte der Abbildung p M . Diese ist auch<br />
nicht-expandierend, aber keine echte Kontraktion:<br />
Satz 3.2.10 Die Menge M ⊆ R n , M ≠ ∅, sei konvex und abgeschlossen. Dann gilt für x, y ∈ R n<br />
‖p M (x) − p M (y)‖ ≤ ‖x − y‖.<br />
Hyperebenen der in Satz 3.2.9 auftretenden Art sind im Folgenden ein wichtiges Hilfsmittel.<br />
Definition 3.2.11 Sei M ⊆ R n konvex, M ≠ ∅. Eine Hyperebene H = H(a, α) mit M ⊆ H ⊖ ,<br />
H ∩ ¯M ≠ ∅ heißt Stützebene für M und a T x ≤ α zulässige Ungleichung für M. Wenn B :=<br />
H ∩ M ≠ ∅ ist, heißt B Stützmenge.
3 KONVEXE GEOMETRIE 34<br />
In Satz 3.2.9 liegt also p M (x) für x /∈ M in der Stützmenge der dort zur abgeschlossenen(!) Menge<br />
M konstruierten Stützebene H. Diese trennt den Punkt x von der Menge M. Eine entsprechende<br />
Aussage gilt für beliebige disjunkte, konvexe Mengen.<br />
Definition 3.2.12 Zur Lage einer Hyperebene H = H(a, α) relativ zu nichtleeren Mengen<br />
M, N ⊆ R n verwendet man folgende Begriffe.<br />
H trennt M und N, wenn M ⊆ H ⊖ , N ⊆ H ⊕ (bzw.umgekehrt)<br />
H trennt M und N echt, wenn M ⊆ H ⊖ , N ⊆ H + (bzw.umgekehrt)<br />
H trennt M und N strikt, wenn M ⊆ H − , N ⊆ H + (bzw.umgekehrt)<br />
H trennt M und N stark, wenn für ein ɛ > 0 gilt<br />
a T x ≤ α − ɛ < α + ɛ ≤ a T y ∀x ∈ M, y ∈ N.<br />
Mit Satz 3.2.9 kann direkt eine Hyperbene konstruiert werden, die einen Punkt x ∉ ¯M außerhalb<br />
einer konvexen Menge von dieser strikt trennt. Etwas schwieriger wird der Nachweis, wenn x auf<br />
dem Rand von M liegt, die trennende Ebene ist dann eine Stützebene.<br />
Satz 3.2.13 Die nichtleere Menge M ⊆ R n sei konvex.<br />
a) Ist M abgeschlossen und x /∈ M, dann existiert eine Hyperebene mit M ⊆ H − (a, α), x ∈<br />
H + (a, α), d.h.,<br />
∀y ∈ M : a T y < α < a T x.<br />
b) Wenn x Randpunkt von M, x ∈ ¯M \ M, ◦ ist, existiert eine Hyperebene H mit x ∈ H, M ⊆ H ⊖ .<br />
Beweis a) In Satz 3.2.9 ist a := x − p M (x) ≠ 0. Mit ŷ = p M (x) gilt für alle y ∈ M nach (3.2.3)<br />
0 ≥ a T (y − ŷ) = a T (y − x + a) = a T y − a T x + ‖a‖ 2 ⇐⇒ a T x ≥ a T y + ‖a‖ 2 .<br />
Durch die Wahl α := a T x − 1 2 ‖a‖2 geht die Hyperebene H(a, α) genau durch den Mittelpunkt (x + ŷ)/2<br />
und trennt x strikt von M:<br />
a T x > a T x − 1 2 ‖a‖2 = α ≥ a T y + 1 2 ‖a‖2 > a T y ∀y ∈ M.<br />
b) Da x Randpunkt von M ist, existiert eine Folge (x (j) ) mit x (j) /∈ ¯M und x = lim j→∞ x (j) . Zu jedem<br />
dieser x (j) existiert nach Teil a) eine strikt trennende Hyperebene H(a (j) , α j ). Normiert man abweichend<br />
von Teil a) durch ‖a (j) ‖ = 1, ist diese Folge (a (j) ) beschränkt und besitzt daher eine konvergente Teilfolge<br />
Mit diesem a gilt ∀y ∈ M, dass<br />
lim<br />
k→∞ a(j k) = a, ‖a‖ = 1.<br />
a (j k) T y < a (j k) T x (j k)<br />
↓<br />
↓<br />
a T y ≤ a T x<br />
für k → ∞.<br />
Dies bedeutet aber gerade y ∈ H ⊖ (a, x) ∀y ∈ M.
3 KONVEXE GEOMETRIE 35<br />
Auch im Grenzfall sich berührender konvexer Mengen ist<br />
noch eine Trennung möglich.<br />
Theorem 3.2.14 Es seien M, N ⊆ R n nichtleere, disjunkte,<br />
konvexe Mengen, M ∩ N<br />
= ∅, und M offen. Dann<br />
existiert eine Hyperebene H, die M und N echt trennt,<br />
M ⊆ H − , N ⊆ H ⊕ .<br />
❅❅<br />
❅<br />
H<br />
N <br />
✜ ✜<br />
✜<br />
★<br />
★<br />
★<br />
M<br />
<br />
Beweis Die Menge aller Differenzen M − N := {u − v : u ∈ M, v ∈ N} ist konvex. Denn Punkte<br />
x, y ∈ M − N sind Differenzen x = u − v, y = w − z mit u, w ∈ M, v, z ∈ N. Für λ ∈ [0, 1] gilt tatsächlich<br />
λx + (1 − λ)y = ( ) )<br />
λu + (1 − λ)w − (λv + (1 − λ)z ∈ M − N.<br />
} {{ } } {{ }<br />
∈M<br />
∈N<br />
Da wegen M ∩ N = ∅ aber 0 /∈ M − N ist, existiert nach Satz 3.2.13 eine Hyperebene H(a, 0) ∋ 0, die<br />
die Null von M − N trennt, also M − N ⊆ H ⊖ (a, 0). Daher gilt<br />
∀w ∈ M, z ∈ N : y = w − z ∈ M − N ⇒ 0 ≥ a T y = a T w − a T z, d.h. a T w ≤ a T z.<br />
Offensichtlich ist daher w ↦→ a T w beschränkt auf der offenen Menge M, das Supremum α := sup{a T w :<br />
w ∈ M} existiert, wird aber nicht angenommem. Somit gilt a T w < α ≤ a T z ∀w ∈ M, z ∈ N.<br />
Bei ihrer Einführung wurde die konvexe Hülle als Durchschnitt allgemeiner konvexer Obermengen<br />
definiert. Mit den letzten Ergebnissen ist auch eine Charakterisierung nur mit Halbräumen<br />
(d.h. linearen Ungleichungen) möglich.<br />
Satz 3.2.15 M ⊆ R n sei eine konvexe, abgeschlossene, echte Teilmenge des R n , M ≠ ∅, M ≠<br />
R n . Bezeichnet H M die Menge der Stützebene an M, dann gilt<br />
M =<br />
⋂<br />
H ⊖ .<br />
H∈H M<br />
Beispiel 3.2.16 Bei der Einheitskugel M := B 1 (0) ist diese Aussage sofort nachvollziehbar.<br />
Für jedes a ∈ R n , a ≠ 0, ist H(a, ‖a‖) eine Stützebene an M. Man sieht hier auch sofort, dass<br />
in der Darstellung ⋂ H∈H M<br />
H ⊖ unendlich viele Halbräume auftreten.<br />
3.3 Randflächen und Ecken<br />
Bekanntlich sind bei der Suche nach Extrema von Funktionen die Ränder des zulässigen Bereichs<br />
gesondert zu prüfen, insbesondere bei linearen Zielfunktionen. Auch eine Stützebene berührt eine<br />
konvexe Menge in (mindestens einem) Randpunkt. Die Definition des Randes ist bei abgeschlossenen<br />
konvexen Mengen aber auch mit rein geometrischen Begriffen möglich.<br />
Definition 3.3.1 Sei R ≠ ∅ und beide Mengen R ⊆ M ⊆ R n konvex.<br />
Dann heißt R Randfläche von M, wenn<br />
∀x, y ∈ M : (x, y) ∩ R ≠ ∅ ⇒ x, y ∈ R.<br />
x<br />
y<br />
R
3 KONVEXE GEOMETRIE 36<br />
In der Definition tritt die offene Strecke (x, y) auf, Punkte einer Randfläche R können also nur<br />
aus Punkten von R selbst kombiniert werden. Abhängig von der Dimension einer Randfläche R<br />
verwendet man folgende Bezeichnungen:<br />
dim R = 0:<br />
dim R = 1:<br />
R = {y} ist Ecke von M<br />
R ist Kante von M<br />
dim R = n − 1: R ist Facette von M ⊆ R n .<br />
Satz 3.3.2 Sei M ⊆ R n nichtleer und konvex. Dann sind folgende Bedingungen äquivalent:<br />
a) z ∈ M ist Ecke von M,<br />
b) z ∈ (x, y), x, y ∈ M ⇒ x = y = z,<br />
c) z = 1 (x + y), x, y ∈ M ⇒ x = y = z,<br />
2<br />
d) M \ {z} ist konvex.<br />
Beweis Teil b) entspricht gerade der Definition des Begriffs a), gezeigt wird nur c) ⇒ b). Dazu sei<br />
x, y ∈ M, z = λx + (1 − λ)y. Für λ ∈ (0, 1) existiert ein ε > 0 so, dass 0 < λ − ε < λ + ε < 1. Damit sei<br />
}<br />
˜x = (λ + ε)x + (1 − λ − ε)y ∈ M<br />
⇒ z = 1 ỹ = (λ − ε)x + (1 − λ + ε)y ∈ M<br />
2 (˜x + ỹ). x z y<br />
˜x ỹ<br />
Aus dieser Darstellung folgt aber n.V. ˜x = ỹ = z und daher 0 = ˜x − ỹ = 2ε(x − y). Wegen 2ε > 0 hat<br />
das auch x = y = z, also die Eckeneigenschaft, zur Folge.<br />
Ecken sind die wichtigsten Teile des Randes, die Menge aller Ecken von M heißt E(M).<br />
Beispiel 3.3.3<br />
a) Die Eckenmenge der Einheitskugel M = B 1 (0) = {x : ‖x‖ ≤ 1} ist die Sphäre E(M) =<br />
{x : ‖x‖ = 1}. Dies folgt direkt aus der Parallelogrammgleichung (3.2.2) und Satz 3.3.2b.<br />
Die offene Kugel hat keine Ecken E( M) ◦ = ∅.<br />
b) Auch Unterräume U ⊆ R n haben keine Ecken, sind aber abgeschlossen.<br />
c) Im folgenden treten aber in der Regel Mengen mit endlich vielen Ecken auf. Dazu gilt<br />
etwa: für M = konv{x (1) , . . . , x (m) } ist E(M) ⊆ {x (1) , . . . , x (m) }.<br />
Jede nichtleere kompakte Menge M enthält mindestens eine Ecke (Satz, denn argmax{‖x‖ :<br />
x ∈ M} ist Ecke). E(M) enthält dann sogar so viele Punkte, dass die ganze Menge M daraus<br />
rekonstruiert werden kann (Theorem 3.3.7). Zum Beweis wird benötigt:<br />
Satz 3.3.4 Sei M ≠ ∅, M ⊆ R n konvex und kompakt und H eine Stützebene an M. Dann ist<br />
R := H ∩ M eine Randfläche von M und enthält eine Ecke von M.<br />
Beweis Als wichtigster Teil wird die Existenz der Ecke gezeigt. Da R = H ∩ M als nichtleerer Schnitt<br />
ebenfalls konvex und kompakt ist, besitzt R eine Ecke z ∈ M ∩ H. Es sei H = H(a, α).
3 KONVEXE GEOMETRIE 37<br />
ZZ z ist Ecke der Menge M. Dazu sei z = 1 2<br />
(x + y) mit x, y ∈ M, also<br />
a T x ≤ α, a T y ≤ α, a T z = α (da z ∈ H!).<br />
Daher gilt<br />
0 = a T z − α = 1 2 aT (x + y) − α = 1 2 (aT x − α) + 1 } {{ } 2 (aT y − α) ≤ 0.<br />
} {{ }<br />
≤0<br />
≤0<br />
Also sind beide Klammern null: x, y ∈ H ∩ M = R ⇒ x = y = z, da z Ecke von R war.<br />
Aufgrund des Satzes ist jede Stützmenge auch Randfläche,<br />
aber i.a. nicht umgekehrt:<br />
Beispiel 3.3.5 Bei der Vereinigung M = ([−1, 0] × [0, 1]) ∪<br />
(B 1 (0) ∩ R 2 +) von Quadrat und Viertelkreis ist e 2 = (0, 1) T<br />
zwar eine Ecke, aber selbst nur Ecke einer Stützmenge.<br />
<br />
<br />
✻<br />
E(M)<br />
✲<br />
Konvexität und Randflächen-Eigenschaft sind ”monotone” bzw. transitive Eigenschaften.<br />
Satz 3.3.6 a) M ⊆ R n , M ≠ ∅ sei konvex und kompakt. Dann ist jede Randfläche von M<br />
konvex und kompakt.<br />
b) Bei den konvexen Mengen S ⊆ R ⊆ M ⊆ R n , S ≠ ∅, sei S Randfläche von R und R<br />
Randfläche von M. Dann ist auch S Randfläche von M und E(R) ⊆ E(M).<br />
Beweis a) Betrachte zu einer Randfläche R ⊆ M den Schnitt M ∩ aff(R).<br />
b) Sei x, y ∈ M, (x, y) ∩ S ≠ ∅. Dann gilt auch (x, y) ∩ R ≠ ∅, da S ⊆ R. Wegen der Randeigenschaft<br />
von R in M ist dann x, y ∈ R und die Randeigenschaft von S in R liefert x, y ∈ S. Ecken sind der<br />
nulldimensionale Spezialfall.<br />
Theorem 3.3.7 (Krein-Milman) Sei M ≠ ∅, M ⊆ R n konvex und kompakt. Dann gilt<br />
M = konv(E(M)).<br />
Beweis Induktion über k = dim M, die Behauptung gilt für Punkt (k = 0) und Strecke (k = 1).<br />
Bei der folgenden Argumentation spielt die Existenz echter Stützebenen<br />
H von M mit M ⊈ H eine wesentliche Rolle. Daher<br />
wird M für k = dim M < n mit Hilfe des Komplementraums<br />
C := L(aff(M)) ⊥ zu einem volldimensionalen Zylinder M + C<br />
aufgeblasen (im Bild grün).<br />
Anahme: Es sei z ∈ M \ konv(E(M)) ≠ ∅. Da z keine Ecke ist,<br />
liegt es im Inneren einer Strecke z ∈ (x, y) zwischen Punkten<br />
z ≠ x, y ∈ M. Dabei können durch Verlängerung dieser Strecke x<br />
und y so gewählt werden, dass sie beide auf dem Rand von M liegen.<br />
Es sind aber nicht beide eine Ecke, da sonst z ∈ konv(E(M))<br />
wäre. Sei nun x keine Ecke. Nach Satz 3.2.13 existiert dann eine<br />
Stützebene H an M + C mit x ∈ H und M + C ⊆ H ⊖ . H ist<br />
insbesondere auch eine Stützebene an M mit M ⊈ H und für die<br />
Stützmenge R := H ∩ M gilt dim R < k = dim M.
3 KONVEXE GEOMETRIE 38<br />
Nach Ind.Voraussetzung ist dann aber x ∈ konv(E(R)) ⊆ konv(E(M)), vgl. Satz 3.3.6. Analog zeigt man<br />
y ∈ konv(E(M)). Dies liefert den Widerspruch mit z ∈ konv(E(M)).<br />
3.4 Polyeder, Polytope, Kegel<br />
Theorem 3.3.7 liefert für kompakte, konvexe Mengen eine vollständige, explizite Darstellung<br />
mit Hilfe der Ecken. Für unbeschränkte Mengen muss diese Darstellung aber ergänzt werden.<br />
Dazu konzentrieren wir uns jetzt auf Polyeder. Dieser Begriff wurde schon mehrfach informell<br />
für die Lösungsmengen von Ungleichungssystemen benutzt und wird nun zusammen mit einem<br />
verwandten Begriff eingeführt. Insbesondere werden auch die Ecken und Kanten des Polyeders<br />
über seine algebraische Definition mit Daten aus dem Simplexverfahren identifiziert. Deshalb<br />
werden sowohl die zulässigen Polyeder von (LP1) als auch (LP3) betrachtet.<br />
Definition 3.4.1 Es sei M ⊆ R n eine nichtleere Menge.<br />
a) M heißt Polyeder, wenn eine Matrix A ∈ R m×n und ein Vektor b ∈ R m existieren mit<br />
M = {x ∈ R n : Ax ≥ b}.<br />
b) M heißt Polytop, wenn (endlich viele) Punkte x (0) , . . . , x (k) ∈ R n existieren mit M =<br />
konv(x (0) , . . . , x (k) ). Wenn die Punkte x (0) , . . . , x (k) dabei affin linear unabhängig sind, nennt<br />
man M einen k-Simplex.<br />
Polyeder und Polytope sind natürlich konvex. Beim Polyeder treten insbesondere in Satz 3.2.15<br />
nur endlich viele (höchstens m) Halbräume auf. Ein Polytop M = konv(x (0) , . . . , x (k) ) ist nach<br />
Satz 3.2.7 kompakt, da die Eckenmenge E(M) ⊆ {x (0) , . . . , x (k) } kompakt ist. In einem k-<br />
Simplex S hat jeder Punkt z ∈ S eine eindeutige Darstellung<br />
z =<br />
k∑<br />
λ j x (j) , (λ j ) ∈ ∆ k+1 .<br />
j=0<br />
Die zugehörigen λ j sind die baryzentrischen Koordinaten von z in S, und ¯x = 1<br />
k+1<br />
∑ k<br />
j=0 x(j) der<br />
Schwerpunkt von S.<br />
Nach Theorem 3.3.7 ist ein Polytop durch seine Ecken explizit darstellbar. Im kompakten<br />
Fall gilt das auch für Polyeder, die zulässigen Bereiche von (LP):<br />
Satz 3.4.2 Ein nichtleeres, beschränktes Polyeder ist ein Polytop.<br />
Der Satz folgt direkt aus Theorem 3.3.7, wenn man weiß, dass jedes Polyeder nur endlich viele<br />
Ecken hat. Diese Tatsache wiederum folgt elementar aus dem jetzt hergeleiteten Zusammenhang<br />
(Satz 3.4.3) zwischen den Ecken von X = {x : Ax ≥ b} und ihrer algebraischen Charakterisierung<br />
durch die regulären n × n-Untermatrizen von A. Da es überhaupt nur ( m<br />
n)<br />
quadratische<br />
n × n-Untermatrizen gibt, ist diese Zahl auch eine obere Schranke für die der Ecken.
3 KONVEXE GEOMETRIE 39<br />
Dabei spielen reguläre Untermatrizen A (L) ∈ R n×n , L ⊆ {1, . . . , m}, n ≤ m, bei (LP1) bzw<br />
A J ∈ R m×m , J ⊆ {1, . . . , n}, n ≥ m, bei (LP3) eine entscheidende Rolle (zur Defin.vgl. §2.3).<br />
Satz 3.4.3 a) Das Polyeder X = {x : Ax ≥ b} zu (LP1) sei durch A ∈ R m×n , b ∈ R m , gegeben<br />
und es sei z ∈ X. Dann ist z genau dann Ecke, wenn es eine reguläre n × n-Untermatrix A (L) ,<br />
L ⊆ {1, . . . , m}, |L| = n, gibt mit A (L) z = b L .<br />
b) Das Polyeder X = {x : Ax = b, x ≥ 0} zu (LP3) sei durch A ∈ R m×n , b ∈ R m , gegeben<br />
und es sei z ∈ X. Dann ist z genau dann Ecke, wenn z ≥ 0 eine zulässige Basislösung ist,<br />
rang(A J(z) ) = |J(z)|.<br />
Bemerkung: a) Wenn die Matrix A bei (LP1) nicht vollen Spaltenrang hat, also ein nichttrivialer<br />
Kern existiert, besitzt das Polyeder überhaupt keine Ecken, da mit Ay = 0, y ≠ 0, und x ∈ X<br />
auch x + ty ∈ X ∀t ∈ R gilt. Tatsächlich ist dann der Linealraum L(X) = kern(A).<br />
b) Bei (LP1) definiert das Teilsystem A (L) z = b L aus ”straffen” Bedingungen eindeutig den<br />
Schnittpunkt der n Hyperebenen H(a (i) , b i ), i ∈ L. Für eine Ecke z müssen aber auch die<br />
übrigen Zulässigkeitsbedingungen A (K) z ≥ b K mit K = {1, . . . , m} \ L erfüllt sein. Diese sind<br />
i.d.R. ”locker”, A (K) z > b K .<br />
c) Die Aussage zu (LP3) kann wegen Satz 2.3.2 analog zum ersten Teil von Satz 3.4.3 formuliert<br />
werden: z ∈ X ist genau dann Ecke, wenn es eine reguläre m×m-Untermatrix A J , J ⊆ {1, . . . , n},<br />
|J| = m, gibt mit A J z J = b. Einzige Zusatzbedingung ist hier z ≥ 0.<br />
Beweis a) Nach Bemerkung a) ist oBdA m ≥ n und Rang(A) = n.<br />
”⇐” Für ein z ∈ X gelte A (L) z = b L und z = 1 2<br />
(x + y) mit x, y ∈ X. Dann folgt<br />
0 = A (L) z − b L = 1 2 A(L) (x + y) − b L =<br />
2( 1 A (L) x − b<br />
} {{ L<br />
}<br />
≥0<br />
)<br />
+<br />
1<br />
2<br />
(<br />
A (L) )<br />
y − b<br />
} {{ L ≥ 0.<br />
}<br />
≥0<br />
Beide Klammern sind also null, wegen der Regularität von A (L) ist daher x = z = y, also z Ecke.<br />
”⇒” Es sei z ∈ X Ecke. Die Ungleichungen des Systems teilt man in straffe und lockere:<br />
{<br />
A (L) z = b L ,<br />
A (K) K + L = {1, . . . , m}.<br />
z > b K ,<br />
Wenn RangA (L) < n wäre, gäbe es ein u ≠ 0 mit A (L) u = 0 und mit t ∈ [−ε, ε], ε > 0, gilt<br />
{<br />
A (L) (z + tu) = b L ,<br />
A (K) (z + tu) = A (K) z + tA (K) für A (K) z − ε|A (K) u| ≥ b K .<br />
u ≥ b K ,<br />
Dann ergibt sich aber ein Widerspruch, denn z = 1 2 (x(−) +x (+) ) ist echter Mittelpunkt der beiden Punkte<br />
x (−) = z − εu ≠ z + εu = x (+) .<br />
b) Hier sei J = J(z), also z J > 0, K := N \ J.<br />
”⇒” Es sei z Ecke und Rang(A J ) < |J|. Dann existiert ein u ≠ 0 mit A J u J = 0, u K = 0. Wie in Teil a)<br />
ist dann A J (z J + tu J ) = b ∀t ∈ R und mit ε := min{z j /|u j | : j ∈ J, u j ≠ 0} erhält man den Widerspruch<br />
aus<br />
x (−) = z − εu ≥ 0, x (+) = z + εu ≥ 0, z = 1 2 (x(−) + x (+) ).
3 KONVEXE GEOMETRIE 40<br />
”⇐” Für RangA J = |J| sei z = 1 2<br />
(x + y) mit x, y ∈ X. In den K-Komponenten folgt damit aber<br />
0 = z K = 1 2 ( x K + y<br />
}{{} K ) ⇒ x<br />
}{{} K = y K = 0.<br />
≥0 ≥0<br />
Damit bleiben die eindeutig lösbaren Systeme Ax = A J x J = b = A J y J ⇒ x J = z J = y J .<br />
Beispiel 3.4.4 Bei (LP1) sei m = 4, n = 2 und<br />
⎛ ⎞ ⎛ ⎞<br />
✻<br />
−1 1<br />
0<br />
A =<br />
−1 −1<br />
⎜<br />
⎝ 0 −1<br />
⎟<br />
⎠ , b = −4<br />
<br />
❅<br />
<br />
❅<br />
⎜<br />
⎝−3<br />
⎟<br />
❅<br />
⎠<br />
✟ ✟✟✟✟✟✟✟✟ ❅ <br />
1 −2 −6<br />
<br />
❅❅<br />
<br />
Es gibt ( 4<br />
X<br />
2)<br />
= 6 Indexmengen L mit |L| = 2, und da die<br />
<br />
<br />
zugehörigen Untermatrizen regulär sind, auch entsprechend<br />
viele Kreuzungspunkte von Hyperebenen (=Geraden). Allerdings<br />
sind nur drei davon zulässig, also Ecken von X:<br />
<br />
<br />
( ) ( ) ( )<br />
( )<br />
1) L = {1, 2} : A (L) −1 1 x 1 0<br />
x =<br />
= = b L : x (1) 2<br />
= ,<br />
−1 −1 x 2 −4<br />
2<br />
( ) ( ) ( )<br />
( )<br />
2) L = {2, 3} : A (L) −1 −1 x 1 −4<br />
x =<br />
= = b L : x (2) 1<br />
= ,<br />
0 −1 x 2 −3<br />
3<br />
( ) ( ) ( )<br />
( )<br />
3) L = {3, 4} : A (L) 0 −1 x 1 −3<br />
x =<br />
= = b L : x (3) 0<br />
= .<br />
1 −2 x 2 −6<br />
3<br />
✲<br />
Das Beispiel zeigt, daß die Ecken hier nicht ausreichen, um die Menge X zu beschreiben. Die<br />
Menge enthält zusätzlich bestimmte Richtungen, in denen sie sich unendlich weit trichterförmig<br />
ausdehnt. Diese Gestalt läßt sich durch Kegel beschreiben, welche gegenüber konischen Kombinationen<br />
(vgl. Defin. 3.1.2) abgeschlossen sind.<br />
Definition 3.4.5 a) Die nichtleere Menge K ⊆ R n heißt konvexer Kegel, wenn λx + µy ∈ K,<br />
∀x, y ∈ K, λ, µ ∈ R + .<br />
b) Der konvexe Kegel K ⊆ R n , K ≠ ∅, heißt spitz, wenn K ∩ (−K) = {0} ist.<br />
c) Zu einer beliebigen Menge M ⊆ R n ist<br />
keg(M) :=<br />
k∈N{<br />
⋃ k∑<br />
λ i x (i) : x (i) ∈ M, λ i ∈ R + }<br />
i=1<br />
der von M erzeugte Kegel. Ein Kegel K heißt endlich erzeugt, wenn K = keg(b 1 , . . . , b k ) ist,<br />
b 1 , . . . , b k ∈ R n , d.h.,<br />
K = B · R k + = {By : y ∈ R k +} mit B = (b 1 , . . . , b k ) ∈ R n×k . (3.4.1)
3 KONVEXE GEOMETRIE 41<br />
Bemerkung: a) K konvexer Kegel ⇐⇒ K = keg(K).<br />
b) Wenn M schon konvex war, gilt einfach keg(M) = R + · M = {λx : x ∈ M, λ ≥ 0}. Daher ist<br />
für beliebiges M auch keg(M) = R + · konv(M).<br />
c) Analog zur Situation bei konvexen Mengen sind Durchschnitte und Linearkombinationen von<br />
konvexen Kegeln wieder welche.<br />
d) Die Darstellung (3.4.1) besagt, dass K als lineares Bild des Standard-Kegels R k + darstellbar<br />
ist (unter der zu B gehörigen linearen Abbildung).<br />
e) Für einen konvexen Kegel K ist die affine Hülle aff(K) = K − K und der Linealraum L(K) =<br />
K ∩ (−K). Spitze Kegel haben also trivialen Linealraum.<br />
Beispiel 3.4.6 a) R n + ist natürlich ein endlich erzeugter konvexer Kegel.<br />
b) Lineare Unterräume U ⊆ R n sind endlich erzeugte konvexe Kegel. Mit einer Basismatrix<br />
B ∈ R n×l , U = B · R l , läßt sich U auch als Kegel schreiben, U = (B, −B) · R 2l<br />
+ (vgl. §1.3,<br />
Umformung 2).<br />
Der folgende Kegel hat für die Behandlung von Polyedern zentrale Bedeutung.<br />
Satz 3.4.7 Gegeben sei das Polyeder X = {x : Ax ≥ b}, A ∈ R m×n , b ∈ R m . Dann ist<br />
O + (X) := {x : Ax ≥ 0} ein konvexer Kegel. Er wird Ausdehnungskegel von X genannt, es gilt<br />
O + (X) = {y : x + λy ∈ X ∀x ∈ X, λ ∈ R + }. (3.4.2)<br />
Beweis a) Für y (j) ∈ O + (X) gilt also Ay (j) ≥ 0. Mit Vorfaktoren λ j ≥ 0 folgt aus<br />
( ∑<br />
A λ j y (j)) = ∑ λ j Ay (j) ≥ 0<br />
}{{} } {{ }<br />
j<br />
j<br />
≥0 ≥0<br />
die Kegel-Eigenschaft. Und mit Ax ≥ b, Ay ≥ 0, λ ≥ 0 gilt auch A(x + λy) = Ax + λAy ≥ Ax ≥ b.<br />
b) Sei x ∈ X, für y ∈ R n und λ > 0 gelte<br />
A(x + λy) = Ax + λAy ≥ b ⇒ Ay ≥ 1 (b − Ax) → 0 (λ → ∞).<br />
λ } {{ }<br />
≤0<br />
Das bedeutet Ay ≥ 0.<br />
Die Formel (3.4.2) läßt sich als Definition des Kegels<br />
O + (X) für beliebige konvexe Mengen verstehen. Dieser Kegel<br />
enthält alle Richtungen, in die sich X unendlich weit ausdehnt.<br />
Bei Polyedern ist O + (X) insbesondere die Lösungsmenge<br />
des homogenen Ungleichungssystems analog zur Situation<br />
bei Linearen Gleichungssystemen.<br />
Bemerkung: Für Polyeder X ≠ ∅ gilt offensichtlich<br />
a) X + O + (X) = X.<br />
b) X kompakt ⇐⇒ O + (X) = {0}.<br />
O + (X)<br />
✻<br />
✁ ✁✁<br />
✁ ✁✁ ✁ <br />
✁ ✁ ✁ ✁ <br />
✁<br />
✁ ✁ <br />
✁ ✁ ✁ X<br />
✁ <br />
✁ ✁ <br />
✁ ✁ <br />
✁<br />
✁<br />
❅ ✲
3 KONVEXE GEOMETRIE 42<br />
c) O + (X) ist spitz, wenn L(X) = kern(A) = {0}.<br />
d) Bedeutung für (LP1), min{c T x : x ∈ X}: Für nichttriviales c ∈ −O + (X) ist (LP) unbeschränkt,<br />
denn da dann mit ¯x ∈ X auch x = ¯x − λc ∈ X ∀λ ≥ 0 ist und c T (¯x − λc) = c T¯x − λ‖c‖ 2 , folgt<br />
inf{c T (¯x − λc) : λ ≥ 0} = −∞.<br />
Beispiel 3.4.8 Zum Beispiel 3.4.4 ist der Ausdehnungskegel O + (X) durch das homogene System<br />
⎛ ⎞<br />
−1 1<br />
−1 −1<br />
⎜<br />
⎝ 0 −1<br />
⎟<br />
⎠ y ≥ 0<br />
1 −2<br />
bestimmt. Dieses entspricht den Bedingungen y 1 ≤ y 2 ≤ 0, y 2 ≤ −y 1 , y 2 ≤ y 1 /2. Also kommt<br />
nur y 1 ≤ 0 in Frage und es bleiben nur y 1 ≤ y 2 ≤ 1 2 y 1. Das sind die Bedingungen zu A (L) y ≥ 0<br />
mit L = {1, 4}. Die beiden homogenen Lösungen zu a (j)T y (j) = 0, j ∈ L, erzeugen diesen Kegel<br />
( ) ( )<br />
−1 −2<br />
O + (X) = keg{y (1) , y (4) } = keg{ , }.<br />
−1 −1<br />
Im zentralen Dekompositionssatz wird der Ausdehnungskegel benötigt, um Theorem 3.3.7<br />
für unbeschränkte Polyeder zu ergänzen. Bisher ist aber nur die implizite Beschreibung von<br />
O + (X) aus Satz 3.4.7 durch das homogene Ungleichungssystem bekannt, unklar ist auch, ob<br />
eine endliche Erzeugermenge für ihn existiert.<br />
Satz 3.4.9 Der konvexe Kegel K := {x ∈ R n : Ax ≥ 0}, A ∈ R m×n , ist endlich erzeugt.<br />
Beweis Der Nachweis, dass K := {x : Ax ≥ 0} endlich erzeugt ist, wird über die Behauptung geführt,<br />
dass mit einem linearen Unterraum U ⊆ R n auch der Schnitt U ∩ R n + endlich erzeugt ist.<br />
a) Spezialfall: Y := Kern(B) ∩ R m + = {x : Bx = 0, x ≥ 0} ist endlich erzeugt. Durch eine Homogenisierung<br />
betrachtet man den kompakten Schnitt<br />
M := Y ∩ H(1l, 1) = Kern(B) ∩ R m + ∩ H(1l, 1) = Kern(B) ∩ ∆ m .<br />
Dabei ist ∆ m kompakt, also auch M (≠ ∅ oBdA). Daher ist M ein Polytop (Satz 3.4.2), ist also Hülle<br />
seiner endlichen Eckenmenge E(M), M = konv(E(M)). Durch Streckung von M bekommt man Y zurück:<br />
Y = R + M = keg(E(M)) ist endlich erzeugt.<br />
b) Anwendung für Y := AK ⊆ R m + : Jeder lineare Unterraum, auch U := Bild(A) = AR n = {Ax :<br />
x ∈ R n }, ist Kern einer linearen Abbildung, U = Kern(B). Nach Teil a) ist Y endlich erzeugt, daher<br />
existieren y (j) = Ax (j) ∈ U, j = 1, . . . , k, mit<br />
Y = U ∩ R m + = keg(y (1) , . . . , y (k) ) = keg(Ax (1) , . . . , Ax (k) ).<br />
Außerdem sei Kern(A) = span(z (1) , . . . , z (l) ). Für x ∈ K ist y := Ax ∈ Y und es gilt:<br />
y = Ax =<br />
k∑<br />
λ j Ax (j) , (λ j ) ≥ 0 ⇐⇒ A(x −<br />
j=1<br />
k∑<br />
λ j x (j) ) = 0.<br />
j=1<br />
} {{ }<br />
∈Kern(A)
3 KONVEXE GEOMETRIE 43<br />
⇒ x −<br />
k∑<br />
λ j x (j) =<br />
j=1<br />
l∑<br />
i=1<br />
(<br />
µ i z (i) ⇐⇒ x ∈ keg x (1) , . . . , x (k) , z (1) , . . . , z (l) , −z (1) , . . . , −z (l)) ,<br />
denn jedes Kernelement ist Linearkombination der z (i) , bzw. konische Kombination der ±z (i) .<br />
Bevor die Zerlegung von Polyedern weiter verfolgt wird, wird kurz ein abgeleiteter Kegel studiert,<br />
der die Interpretation einiger Ergebnisse erleichtert.<br />
Definition 3.4.10 Der Polarkegel (duale Kegel) zu einer nichtleeren Menge M ⊆ R n ist<br />
M ∗ := {x ∈ R n : y T x ≤ 0 ∀y ∈ M} = ⋂<br />
H ⊖ (y, 0).<br />
y∈M<br />
❆ y ⊥ ✻<br />
❅<br />
❆<br />
❅ ❆ z<br />
❅<br />
❆<br />
y<br />
❅<br />
❆<br />
❅ ❆<br />
<br />
❅<br />
❆<br />
❅ ❆<br />
✟ ✟✟✟✟✟✟✟✟ ❆<br />
✲<br />
❆ ✻<br />
❆<br />
✁ ✁✁<br />
❆<br />
✁<br />
✟<br />
❆<br />
❍<br />
✁ ✁ ❍❍❍❍❍❍❍❍❍❍❍❍❍❍❍❍❍❍❍<br />
❆<br />
M<br />
❆<br />
❆<br />
✁<br />
❆<br />
✟✁ ✁ ❆<br />
✟✟✟✟✟✟✟✟✟✟ ✲<br />
{y, z} ∗<br />
❅<br />
❆ ❅ ❆<br />
❅<br />
❆ ❅<br />
❆<br />
❅ ❆<br />
❆<br />
❆❆<br />
❅ z ⊥<br />
❅ M ∗<br />
❆<br />
❆<br />
❆<br />
❆<br />
❆<br />
❆<br />
❆❆<br />
Bemerkung: a) Für einen linearen Unterraum U ⊆ R n ist U ∗ = U ⊥ .<br />
b) Für M ≠ ∅ gilt M ∗ = ( keg(M) ) ∗ und M ⊆ M ∗∗ := (M ∗ ) ∗ .<br />
c) Der Definition nach entspricht der Polyeder-Kegel K = {x : Ax ≥ 0} = O + (X) gerade dem<br />
Polarkegel zu den negativen Zeilen von A, K = {−a (1) , . . . , −a (m) } ∗ = (−A T · R m + ) ∗ .<br />
Bemerkung b) kann für die hier interessierenden Kegel präzisiert werden (o.Bew.).<br />
Satz 3.4.11 Für einen endlich erzeugten konvexen Kegel K gilt K ∗∗ = K.<br />
Also ist für K = {x : Ax ≥ 0} der Polarkegel K ∗ = −A T · R m + und beide daher endlich<br />
erzeugt. Mit diesem Satz kann die obige Bemerkung d) zur Unbeschränkheit von (LP1) präzisiert<br />
werden. Für ¯x ∈ X, y ∈ O + (X) ist auf dem Strahl {x = ¯x + λy : λ ≥ 0} ⊆ X der Wert<br />
der Zielfunktion c T x = c T¯x + λc T y genau dann (nach unten) beschränkt, wenn c T y ≥ 0 gilt.<br />
Beschränkheit erfordert also c T v ≥ 0 ∀v ∈ O + (X). Dies heißt aber gerade, dass −c im Polarkegel<br />
(O + (X)) ∗ = −A T · R m + liegt. Dieses Ergebnis (LP1) beschränkt ⇐⇒ c ∈ A T · R m + wird in der<br />
Dualitätstheorie wieder auftauchen.
3 KONVEXE GEOMETRIE 44<br />
3.5 Der Dekompositionssatz für Polyeder<br />
Zur Ergänzung der Polyeder-Zerlegung muss auch der Ausdehnungskegel berücksichtigt werden.<br />
Bei der endlichen Darstellung von Polyeder-Kegeln, vgl. Satz 3.4.9, kann eine Minimalmenge<br />
erforderlicher Richtungen identifiziert werden, die Kanten des Kegels. Daher wird jetzt das<br />
dem Satz 3.4.3 (Eckendarstellung) entsprechende Resultat für die Kanten der der zu (LP1)<br />
bzw. (LP3) gehörenden zulässigen Mengen formuliert. Bei (LP1) wird die Aussage wegen des<br />
Dekompositionssatzes auf den Ausdehnungskegel beschränkt. Bei (LP3) wird dagegen konkret<br />
gezeigt, dass der elementare Strahl (2.3.7) gerade eine Polyeder-Kante darstellt, wenn er eine<br />
positive (evtl. unendliche) Länge hat. Letzteres ist an den Vorzeichen des Vektors w (J)<br />
l<br />
= A −1<br />
J<br />
a l<br />
erkennbar. Damit wird der Zusammenhang zu den Daten des Simplexverfahrens hergestellt.<br />
Satz 3.5.1 a) Es sei A ∈ R m×n , gegeben. Zu y ∈ {x : Ax ≥ 0} \ {0} ist keg(y) genau dann<br />
Kante, wenn eine Untermatrix A (L) maximalen Ranges |L| = n − 1 existiert mit A (L) y = 0.<br />
b) Das Polyeder X = {x : Ax = b, x ≥ 0} zu (LP3) sei durch A ∈ R m×n , b ∈ R m , gegeben und<br />
es sei z ∈ X Ecke mit Basis A J . Für l ∈ K = {1, . . . , n} \ J und den Spaltenvektor w l = A −1<br />
J<br />
a l<br />
der Matrix W K aus (2.3.6) gelte<br />
Dann ist {z − tw l : t ≥ 0} ∩ X Kante von X.<br />
J + (w l ) ⊆ J(z), d.h. w il > 0 ⇒ z i > 0 ∀i ∈ J.<br />
Beweis a) ist analog zum Beweis von Satz 3.4.3a), wegen des eindimensionalen Kerns ist der Vorfaktor<br />
bei ty frei.<br />
b) Nach (2.3.7) wird das Gleichungssystem Ax(t) = b durch jeden Punkt des Strahls<br />
(<br />
)<br />
A −1<br />
J<br />
x(t) = z − tw l =<br />
(b − ta l)<br />
te (K)<br />
l<br />
erfüllt. Zu prüfen ist das Vorzeichen x(t) ≥ 0, ∀t ∈ [0, ε], ε > 0. Dabei ist der Fall<br />
• w il ≤ 0: keine Einschränkung an t,<br />
• z i > 0, w il > 0: erfüllbar mit t > 0,<br />
• z i = 0, w il > 0: unerfüllbar für t > 0.<br />
✻<br />
Nach Voraussetzung tritt der letzte (rote) Fall nicht auf und die Kante<br />
hat daher eine positive Länge t l > 0, vgl. (2.3.10).<br />
ZZ S := {x(t) : t ∈ [0, ∞)} ∩ X ist Kante. Für festes t > 0 ist J(x(t)) ⊆<br />
J ∪ {l} mit l ∈ K. Nun sei x(t) = 1 2<br />
(u + v) mit u, v ∈ X.<br />
Wie früher folgt daraus J(u), J(v) ⊆ J ∪ {l}, denn für einen Index k ∈ K gilt, wenn<br />
k = l : x l (t) = t = 1 2 (u l + v l ) ⇒ u l = αt, v l = (2 − α)t, α ∈ [0, 2],<br />
k ≠ l : x k (t) = 0 = 1 2 (u k + v k ) ⇒ u k = v k = 0.<br />
Mit der Basisdarstellung (2.3.5) überträgt sich das auf die J-Komponenten:<br />
u J = z J − αtA −1<br />
J a l ∈ S, v J = z J − (2 − α)tA −1<br />
J a l ∈ S,<br />
somit kann x(t) nur aus Elementen von S konvex kombiniert werden, S ist daher Kante.<br />
z i − tw il<br />
✏<br />
<br />
❍<br />
✏ ❍❍❍❍❍❍❍❍<br />
✏✏✏✏✏✏✏<br />
<br />
<br />
✲ t
3 KONVEXE GEOMETRIE 45<br />
Nur spitze Kegel besitzen Ecken. Eine wichtige Schlußweise in spitzen Kegeln K ist, dass für<br />
die Null nur die triviale konische Kombination möglich ist,<br />
k∑<br />
λ i y (i) = 0, mit y (i) ∈ K, λ i ≥ 0 ⇒ (λ i ) = 0.<br />
i=1<br />
Denn andernfalls wäre für λ j > 0 mit y (j) auch −y (j) = ∑ i≠j (λ i/λ j )y (i) ∈ K und K hätte<br />
nichttrivialen Linealraum, da keg(y (j) , −y (j) ) = span(y (j) ) ⊆ L(K).<br />
Satz 3.5.2 Wenn der konvexe Kegel K := {x : Ax ≥ 0}, A ∈ R m×n , spitz ist, kann K durch<br />
die Richtungen seiner Kanten erzeugt werden.<br />
Beweis Nach Satz 3.4.8 ist K = keg(y (1) , . . . , y (k) ) darstellbar. Diese Darstellung sei oBdA minimal,<br />
also kein y (i) als konische Kombination der anderen darstellbar. Alle y ∈ K \ {0} besitzen eine konische<br />
Darstellung y = ∑ k<br />
i=1 λ iy (i) , λ i ≥ 0. Wenn dabei mindestens zwei λ i > 0 sind, ist keg{y} keine Kante.<br />
ZZ Strahl S := keg(y (j) ) = {αy (j) : α ≥ 0} ist Kante von K. Dazu wird für α > 0 eine beliebige<br />
Konvexkombination betrachtet mit x = ∑ k<br />
i=1 µ iy (i) , z = ∑ k<br />
i=1 ν iy (i) , (µ i ), (ν i ) ∈ R k +, und λ ∈ (0, 1) für<br />
αy (j) = λx + (1 − λ)z =<br />
⇒ (α − λ j )y (j) = ∑ i≠j<br />
k∑<br />
i=1<br />
(λµ i + (1 − λ)ν i<br />
)<br />
y (i) =<br />
λ i y (i) , λ i = λµ i + (1 − λ)ν i ≥ 0.<br />
k∑<br />
λ i y (i)<br />
i=1<br />
Fall α − λ j > 0: Division durch α − λ j > 0 ergibt konische Kombination von y (j) , Widerspruch<br />
zur Minimalannahme.<br />
λ j − α > 0: 0 = (λ j − α)y (j) + ∑ i≠j λ iy (i) ist nichttriviale konische Kombination der Null,<br />
die aber n.V. nur trivial möglich ist,<br />
λ j − α = 0 und λ i = 0 für i ≠ j ist die einzige mögliche Situation<br />
⇒ αy (j) = λ j y (j) ist nur durch x, z ∈ S selbst darstellbar, also ist S Kante.<br />
Für das folgende Theorem wird keg(∅) := {0} verabredet.<br />
Theorem 3.5.3 (Dekompositionssatz) Es sei X := {x ∈ R n : Ax ≥ b} ≠ ∅ das durch A ∈<br />
R m×n , b ∈ R m bestimmte Polyeder, und L(X) = {0}. Dann ist X die Summe eines Polytops und<br />
eines endlich erzeugten Kegels. Mit den Ecken x (i) , i = 1, . . . , k, von X und Kantenrichtungen<br />
y (j) , j = 1, . . . , l, von O + (X) gilt<br />
X = konv ( E(X) ) + O + (X)<br />
= konv ( x (1) , . . . , x (k)) + keg ( y (1) , . . . , y (l)) .<br />
Beweis Der Beweis verläuft analog zum Satz von Krein-Milman unter Einbeziehung des Ausdehnungskegels<br />
durch Induktion über q = dim X. Für die Existenz nichttrivialer Stützebenen wird bei Bedarf<br />
wieder mit dem volldimensionalen konvexen Polyeder X + C, C = L(aff(X)) ⊥ , gearbeitet. Für Punkt<br />
oder Strecke/Strahl gilt die Aussage mit q ≤ 1. Nun sei z ∈ X beliebig. Dann gilt einer der Fälle
3 KONVEXE GEOMETRIE 46<br />
a) z ∈ Rd(X + C): nach S. 3.2.13 existiert eine Stützebene H mit<br />
z ∈ H ∩ X, (X + C) ⊆ H ⊖ und X ⊈ H. Dann ist dim(X ∩ H) < q<br />
und die Behauptung folgt aus der I.V.<br />
b) z liegt im Inneren von X +C. Dann existiert eine Gerade G := {z+<br />
tu : t ∈ R} durch z, die ein Stück weit in X verläuft, G∩(X\{z}) ≠ ∅.<br />
Dabei ist u ∈ L(aff(X)). Wegen L(X) = {0} kann G nicht vollständig<br />
zu X gehören, G ⊈ X, und schneidet daher den Rand von X + C.<br />
b1) Es gibt zwei Schnittpunkte x, y mit dem Rand und z = λx + (1 −<br />
λ)y, λ ∈ (0, 1). Für x und y trifft Fall a) zu.<br />
b2) Es gibt einen Schnittpunkt x mit dem Rand und x + tu ∈ X<br />
∀t ≥ 0. Dann ist u ∈ O + (X) = keg(y (1) , . . . , y (l) ) nach Satz 3.5.2<br />
und zeigt die Behauptung, denn für x trifft wieder Fall a) zu.<br />
Der Dekompositionssatz verallgemeinert den Satz über Lösungsmengen von Linearen Gleichungssystemen,<br />
verwendet aber mehrere spezielle inhomogene Lösungen E(X) und die allgemeine<br />
homogene Lösung im Kegel O + (X).<br />
LGS Ax = b : X = {ˆx} + Kern(A)<br />
UGlS Ax ≥ b : X = konv(E(X)) + O + (X).<br />
Beispiel 3.5.4 Zusammenfassung der Beispiele 3.4.4/8: das Polyeder X := {x : Ax ≥ b} mit<br />
⎛ ⎞ ⎛ ⎞<br />
−1 1<br />
0<br />
✻<br />
A =<br />
−1 −1<br />
⎜<br />
⎝ 0 −1<br />
⎟<br />
⎠ , b = −4<br />
⎜<br />
⎝−3<br />
⎟<br />
⎠<br />
❍<br />
<br />
❍❍❍❍❍<br />
1 −2 −6<br />
<br />
♣ ♣ ♣ ♣ ♣ ♣ <br />
♣ ♣ ♣<br />
❅<br />
❅❅<br />
✟<br />
✟ ✟✟✟✟<br />
♣ ♣ ♣<br />
♣ ♣<br />
♣ ♣<br />
♣ ♣<br />
läßt sich darstellen in der Form<br />
♣<br />
♣<br />
♣ ♣<br />
<br />
✟<br />
<br />
( ( ( ( ) ( ) X<br />
2 1 0 −1 −2<br />
<br />
X = konv{ , , } + keg{ , }.<br />
2)<br />
3)<br />
3)<br />
−1 −1<br />
✟ ✟✟✟✟✟✟✟✟✟✟ <br />
✲<br />
Im Bild zeigt der punktierte Teil das Polytop konv(E(X)),<br />
unten ist schraffiert der Ausdehnungskegel O + (X) eingezeichnet,<br />
welcher im Theorem an jeden Punkt des Polytops<br />
✟ ✟✟✟✟✟<br />
<br />
”angeheftet” wird. Die zwei extremalen verschobenen Kegel<br />
sind ebenfalls angedeutet.<br />
Bedeutung für das Simplex-Verfahren: Der Dekompositions-Satz 3.5.3 ist die Arbeitsgrundlage<br />
für das Simplexverfahren. Da das Minimum der linearen Zielfunktion von (LP), wenn<br />
es existiert, auch auf den Ecken angenommen wird, müssen daher nur diese untersucht werden.<br />
Und Satz 3.4.3 bestätigt, dass diese gerade durch Basislösungen gegeben sind. Um zusätzlich<br />
die Beschränktheit sicherzustellen, sind auch diejenigen Kanten des Polyeders, auf denen die<br />
Zielfunktion wächst, auf endliche Länge zu prüfen. Satz 3.5.1 stellt hierfür die Verbindung zum<br />
Simplexverfahren her.
3 KONVEXE GEOMETRIE 47<br />
3.6 Existenzsätze für Ungleichungssysteme<br />
Die bisherigen Sätze bezogen sich naturgemäß auf den Fall nichtleerer zulässiger Bereiche X.<br />
Kriterien für die Gültigkeit dieser Voraussetzung, d.h., die Lösbarkeit der Ungleichungssysteme,<br />
werden jetzt als weitere Anwendung der Trennungssätze aus §3.2 hergeleitet. Grundlage ist das<br />
folgende Lemma von Farkas, es bildet insbesondere auch die Basis für die wichtige Dualitätstheorie<br />
linearer Programme. Die klassische Form orientiert sich an (LP3):<br />
Satz 3.6.1 (Farkas) Mit A ∈ R m×n , b ∈ R m gilt<br />
(<br />
{x ∈ R n : Ax = b, x ≥ 0} ≠ ∅ ⇐⇒ y T A ≤ 0 T ⇒ y T b ≤ 0 ∀y ∈ R m) . (3.6.1)<br />
Beweis ”⇒” Wenn ein ˆx ≥ 0 existiert mit Aˆx = b ergibt sich direkt<br />
y T A ≤ 0 ⇒ y T b = (y T A)<br />
}{{}<br />
ˆx ≤ 0.<br />
≥0<br />
”⇐” Nun gelte die Folgerung ”y T A ≤ 0 T ⇒ y T b ≤ 0 ∀y ∈ R m ”, die Lösungsmenge sei aber leer. Dann liegt<br />
also b nicht im abgeschlossenen Kegel K := AR n + = {Ax : x ≥ 0} = keg{a 1 , . . . , a n }. Nach Satz 3.2.13<br />
existiert daher eine strikt trennende Hyperebene H(q, α) mit<br />
K ⊆ H − (q, α) und b ∈ H + (q, α) ⊆ H + (q, 0).<br />
Denn wegen 0 ∈ K ist dabei 0 < α und daher q T b > α > 0. Für alle Strahlen y (j) := λa j = λAe j , λ > 0,<br />
j ∈ N, gilt natürlich y (j) ∈ K ⊆ H − , also<br />
q T y (j) = λq T a j < α ⇒ q T α<br />
a j ≤ inf = 0 ∀j = 1, . . . , n.<br />
λ>0 λ<br />
Damit ist aber q T A ≤ 0 und n.V. q T b ≤ 0, also b ∈ H ⊖ (q, 0) im Widerspruch zu b ∈ H + (q, 0).<br />
Geometrische Interpretation: Die Lösbarkeit des Systems auf der linken Seite bedeutet, dass<br />
b als konische Kombination der Spalten von A ausgedrückt werden kann, b ∈ AR n + =: K. Die<br />
rechte Seite von (3.6.1) heißt, dass y ∈ H ⊖ (b, 0) = {b} ∗ gilt für jeden Vektor y ∈ {a 1 , . . . , a n } ∗<br />
aus dem Polarkegel K ∗ = (AR n +) ∗ . Also entspricht (3.6.1) der einfachen Aussage:<br />
b ∈ A · R n + = keg{a 1 , . . . , a n } ⇐⇒ {a 1 , . . . , a n } ∗ ⊆ {b} ∗ = H ⊖ (b, 0).<br />
❆<br />
Beispiel 3.6.2 Bei<br />
❆<br />
✁ ✁✁<br />
b ⊥ ❆ a 2<br />
( )<br />
✁ K<br />
❆<br />
3 1 1<br />
❍ ❆<br />
✁ ✁✕<br />
A =<br />
❍<br />
❍ ❆<br />
✁ a 3<br />
1 2 1<br />
b ✏✶<br />
❍<br />
❍ ❆<br />
❍ ❆<br />
✁<br />
ist a 3 = 1 5 a 1 + 2 5 a ❍<br />
2, also K := AR 3 ❍<br />
+ = keg{a 1 , a 2 }.<br />
❆<br />
✟✏ ✏✏✏✏✏✏✏✏✏<br />
✟✟✟✟✟✯ ✁ ✒ a1<br />
✁<br />
❇<br />
Daher ist der Polarkegel K ∗ ❆<br />
= {y : 3y 1 + y 2 ≤ 0, y 1 +<br />
❇<br />
2y 2 ≤ 0}, und ist darstellbar als K ∗ = keg{y (1) , y (2) K ∗ ❆<br />
❇<br />
}<br />
mit y (1) = ( )<br />
1<br />
−3 , y (2) = ( ❆<br />
)<br />
❇<br />
−2<br />
❆<br />
1 . Es liegt K ∗ ⊆ {b} ∗ , wenn<br />
❇<br />
❆<br />
alle Erzeugenden y (i) ❇<br />
dies tun. Also gilt b ∈ K ⇐⇒<br />
❆<br />
❇ ❆<br />
b T y (i) ≤ 0, i = 1, 2.<br />
❇❇<br />
❆
3 KONVEXE GEOMETRIE 48<br />
Analoge Lösbarkeitssätze gibt es auch für die allgemeine Standardform.<br />
Satz 3.6.3 Mit A ij ∈ R m i×n j<br />
, b i ∈ R m i<br />
, i, j = 1, 2, sind äquivalent:<br />
∃ x 1 ∈ R n 1<br />
, x 2 ∈ R n 2<br />
mit<br />
⎧<br />
⎪⎨<br />
⎪⎩<br />
A 11 x 1 + A 12 x 2 ≥ b 1<br />
A 21 x 1 + A 22 x 2 = b 2<br />
x 1 ≥ 0<br />
und<br />
∀ y 1 ∈ R m 1<br />
, y 2 ∈ R m 2<br />
mit<br />
⎧<br />
⎪⎨<br />
⎫<br />
⎪⎬<br />
y1 TA 11 + y2 TA 21 ≤ 0 T<br />
y1 ⎪⎩<br />
TA 12 + y2 TA 22 = 0 T<br />
⎪⎭ ⇒ yT 1 b 1 + y2 T b 2 ≤ 0.<br />
y 1 ≥ 0<br />
Beweis Umformung mit Schlupfvariablen z ≥ 0 und der Zerlegung x 2 = x + 2 − x− 2 , x± 2<br />
Form A¯x = b, ¯x ≥ 0 mit<br />
(<br />
)<br />
A 11 A 12 −A 12 −I<br />
A =<br />
, b =<br />
A 21 A 22 −A 22 0<br />
( )<br />
b 1<br />
, ¯x =<br />
b 2<br />
⎛<br />
⎜<br />
⎝<br />
x 1<br />
x + 2<br />
x − 2<br />
z<br />
⎞<br />
⎟<br />
⎠<br />
≥ 0, ergibt die<br />
Dieses ist genau dann lösbar, wenn die Folgerung gilt:<br />
⎛<br />
0 ≥ A T y = ⎜<br />
⎝<br />
A T 11y 1 + A T 21y 2<br />
A T 12y 1 + A T 22y 2<br />
−A T 12y 1 − A T 22y 2<br />
−y 1<br />
⎞<br />
⎟<br />
⎠ ⇒ yT b = y1 T b 1 + y2 T b 2 ≤ 0.<br />
Die mittleren Ungleichungen bedeuten natürlich A T 12y 1 + A T 22y 2 = 0.<br />
Die anderen Formen der Standardprogramme sind darin als Spezialfälle enthalten, als Übersicht:<br />
(LP1) {x ∈ R n : Ax ≥ b} ≠ ∅ ⇐⇒ {y T A = 0 T ⇒ y T b ≤ 0 ∀y ∈ R m + }<br />
(LP2) {x ∈ R n : Ax ≥ b, x ≥ 0} ≠ ∅ ⇐⇒ {y T A ≤ 0 T ⇒ y T b ≤ 0 ∀y ∈ R m + }<br />
(LP3) {x ∈ R n : Ax = b, x ≥ 0} ≠ ∅ ⇐⇒ {y T A ≤ 0 T ⇒ y T b ≤ 0 ∀y ∈ R m }<br />
(LGS) {x ∈ R n : Ax = b} ≠ ∅ ⇐⇒ {y T A = 0 T ⇒ y T b = 0 ∀y ∈ R m }<br />
Als vierte Variante wurden Gleichungssysteme aufgenommen. Das Lösbarkeitskriterium dort ist<br />
bekanntlich b ∈ (A · R n ) = kern(A T ) ⊥ und wird oft als Fredholm-Alternative formuliert. Auch<br />
die obigen Kriterien können als Alternativsätze formuliert werden, z.B.:<br />
(LGS) Entweder ist Ax = b lösbar, oder y T A = 0 T , y T b = 1<br />
(LP1) Entweder ist Ax ≥ b lösbar, oder y T A = 0 T , y ≥ 0, y T b = 1<br />
(LP3) Entweder ist Ax = b, x ≥ 0 lösbar, oder y T A ≤ 0 T , y T b = 1<br />
Die Merkregeln für den Zusammenhang zwischen den Alternativsystemen entsprechen denen bei<br />
der Dualität und werden dort formuliert.
4 DUALE PROGRAMME 49<br />
4 Duale Programme<br />
4.1 Optimalitätskriterien<br />
Im letzten Abschnitt konnte die Lösbarkeit eines Ungleichungssystems mit Eigenschaften eines<br />
davon abgeleiteten Systems in Beziehung gesetzt werden. Dieser Zusammenhang kann auf<br />
vollständige Lineare Programme durch Betrachtung ihrer dualen Versionen ausgeweitet werden.<br />
Als wichtige Arbeitshilfe für die Praxis werden dabei Kriterien für die Optimalität eines zulässigen<br />
Punktes x hergeleitet, die (etwa durch einen Auftraggeber) effektiv nachprüfbar sind, da sie<br />
nur wenige Berechnungsschritte erfordern (”Einsetzen”).<br />
Ansatzpunkt ist eine Standardmethode bei Extremalproblemen mit Nebenbedingungen, die<br />
Verwendung von Lagrange-Multiplikatoren. Beim Problem (LP1) hat man m Nebenbedingungen<br />
Ax − b ≥ 0, verwendet dazu also Multiplikatoren y ∈ R m und bildet die Lagrangefunktion<br />
φ(x, y) = c T x + y T (b − Ax) = y T b + (c T − y T A)x.<br />
Die rechte Version zeigt, dass φ auch als Lagrangefunktion eines Extremalproblems für y, des<br />
dualen Problems, interpretiert werden kann. Beim Umgang damit sind aber auch Vorzeichenbedingungen<br />
zu berücksichtigen. Der Vollständigkeit halber wird die duale Form (LP*) zunächst<br />
zum allgemeinen primalen Programm (LP) angegeben.<br />
⎫ ⎧<br />
min c T 1 x 1 + c T 2 x 2<br />
max b T 1<br />
A 11 x 1 + A 12 x 2 ≥ b<br />
⎪⎬ ⎪⎨<br />
y 1 + b T 2 y 2<br />
1<br />
A T 11<br />
(LP)<br />
y 1 + A T 21 y 2 ≤ c 1<br />
A 21 x 1 + A 22 x 2 = b 2<br />
A T 12<br />
x 1 ≥ 0<br />
⎪⎭ ⎪⎩<br />
y 1 + A T 22 y 2 = c 2<br />
y 1 ≥ 0<br />
In der Regel betrachtet man aber eine der Standardformen (LP1..3), für diese ist<br />
(LP1)<br />
(LP2)<br />
(LP3)<br />
min<br />
Ax<br />
min<br />
Ax<br />
min<br />
Ax<br />
c T x<br />
≥ b<br />
c T x<br />
≥ b<br />
x ≥ 0<br />
c T x<br />
= b<br />
x ≥ 0<br />
max<br />
A T y<br />
max<br />
A T y<br />
max<br />
A T y<br />
b T y<br />
= c<br />
y ≥ 0<br />
b T y<br />
≤ c<br />
y ≥ 0<br />
b T y<br />
≤ c<br />
(LP1*)<br />
(LP2*)<br />
(LP3*)<br />
(LP*)<br />
Die Übersicht zeigt jetzt den Grund, warum die Form (LP2) überhaupt betrachtet wird. Es ist<br />
dasjenige Programm, bei dem das duale i.w. die gleiche Gestalt hat. Die Übergänge (LP) → (LP*)<br />
und (LP*) → (LP**)=(LP) sind symmetrisch. Die Begründung für die Details der dualen Form<br />
liefern die im Anschluß folgenden Sätze, der Übergang geschieht nach folgenden Merkregeln:<br />
1. Aus einem Minimum-Problem wird ein Maximierungsproblem,
4 DUALE PROGRAMME 50<br />
2. die Koeffizientenmatrix wird transponiert,<br />
3. der Gradientenvektor der Zielfunktion wird mit der rechten Seite des (Un-) Gleichungssystems<br />
getauscht,<br />
4. Ungleichungsrestriktionen werden ausgetauscht durch vorzeichenbeschränkte Variable, Gleichungen<br />
durch freie Variable und umgekehrt.<br />
Für die Zielfunktionen in zulässigen Punkten von primalem und dualem Programm gibt es<br />
einen grundlegenden Zusammenhang:<br />
Satz 4.1.1 Der Vektor x T = (x T 1 , xT 2 ) sei zulässig für (LP) und yT = (y1 T, yT 2 ) zulässig für<br />
(LP*). Dann gilt für die Zielfunktionen c T x = c T 1 x 1 +c T 2 x 2 und b T y = b T 1 y 1 +b T 2 y 2 die Beziehung<br />
c T x ≥ b T y.<br />
Bei Gleichheit, c Tˆx = b T ŷ, ist ˆx optimal für (LP) und ŷ optimal für (LP*).<br />
Beweis Für primal zulässige x ∈ X ⊆ R n bzw. dual zulässige y ∈ Y ⊆ R m gilt<br />
y T b = y1 T b 1 + y2 T b 2 ≤ y1<br />
T (A 11 x 1 + A 12 x 2 ) + y2 T (A 21 x 1 + A 22 x 2 )<br />
}{{}<br />
≥0<br />
= (y1 T A 11 + y2 T A 21 ) x<br />
}{{} 1 +(y1 T A 12 + y2 T A 22 )x 2 ≤ c T 1 x 1 + c T 2 x 2 = c T x.<br />
≥0<br />
Für Punkte ˆx ∈ X und ŷ ∈ Y mit c Tˆx = b T ŷ ist dann insbesondere auch c T x ≥ b T ŷ = c Tˆx ∀x ∈ X und<br />
b T y ≤ c Tˆx = b T ŷ ∀y ∈ Y , also ˆx, ŷ extremal.<br />
Anwendung Bei Kenntnis von zulässigen Punkten ˆx, ŷ ist die Prüfung auf Optimalität, ”c Tˆx =<br />
b T ŷ?”, trivial (z.B., für Auftraggeber). Und trivialerweise erhält man mit jedem dual zulässige<br />
y aus b T y eine untere Schranke für den Optimalwert bei (LP).<br />
Einzelne Eigenschaften der Programme haben eine bestimmte Bedeutung für das dazu duale.<br />
Es sei daran erinnert, dass mit der Lösung eines Programms eine Optimallösung gemeint ist.<br />
Ein Problem mit nichtleerem zulässigem Bereich nennt man konsistent, ansonsten inkonsistent.<br />
Die folgenden Sätze werden jeweils nur für dasjenige Standardprogramm (LPi) bewiesen, dessen<br />
Form sich dazu anbietet. Sie gelten aber natürlich für (LP). In den folgenden Beweisen spielt<br />
das Lemma von Farkas eine zentrale Rolle.<br />
Satz 4.1.2 Die Probleme (LP) und (LP*) seien beide konsistent. Dann existieren auch Lösungen<br />
für beide Programme.<br />
Beweis Der Nachweis erfolgt für das symmetrisch aufgebaute Programm (LP2). Mit dem Satz von<br />
Farkas, (3.6.1) ist die Voraussetzung X ≠ ∅, Y ≠ ∅ äquivalent mit<br />
{<br />
∀u ≥ 0 mit u T A ≤ 0 ⇒ u T b ≤ 0,<br />
∀v ≥ 0 mit −Av ≤ 0 ⇒ −v T (4.1.1)<br />
c ≤ 0.
4 DUALE PROGRAMME 51<br />
Und mit Satz 4.1.1 entspricht die Behauptung der Lösbarkeit des Systems<br />
⎛ ⎞ ⎛ ⎞<br />
A 0 ( ) b ( )<br />
⎜<br />
⎝ 0 −A T ⎟ x ⎜ ⎟ x<br />
⎠ ≥ ⎝−c⎠ , ≥ 0. (4.1.2)<br />
−c T b T y<br />
y<br />
0<br />
Man beachte, dass dabei in der letzten Zeile wegen Satz 4.1.1 nur Gleichheit in Frage kommt. Nach<br />
Farkas, (3.6.1) ist diese Lösbarkeit äquivalent mit<br />
{<br />
}<br />
u T A ≤ λc T<br />
∀u ≥ 0, v ≥ 0, λ ≥ 0 mit<br />
⇒ u T b ≤ v T c. (4.1.3)<br />
Av ≥ λb<br />
Wenn dabei λ = 0 ist, entspricht dies der Voraussetzung (4.1.1), ist deshalb erfüllt und zeigt die Lösbarkeit.<br />
Im Fall λ > 0 kann man aber die Folgerung von (4.1.3) direkt aus den Prämissen von (4.1.3)<br />
schließen, indem man diese mit v, u ≥ 0 multipliziert:<br />
}{{}<br />
λ c T v ≥ (u T A)v = u T (Av) ≥<br />
>0<br />
}{{}<br />
λ<br />
>0<br />
Also gilt auch im Fall λ > 0: u T b ≤ v T c in (4.1.3) und zeigt die Lösbarkeit von (4.1.2).<br />
Man beachte, dass in (4.1.2) die Lösung von (LP) und (LP ∗ ) auf ein reines Ungleichungssystem<br />
zurückgeführt wurde.<br />
Der folgende Satz nutzt die Tatsache aus, dass in einer Lösung von Problem (LP1) nur ein Teil<br />
der Restriktionen straff sind, vgl. Satz 3.4.3. Im Beweis wird ein Zusammenhang zwischen den<br />
Lösungen von Primal- und Dual-Problem konstruiert, der weitergehende Bedeutung hat.<br />
u T b.<br />
Satz 4.1.3 Es sei ˆx ∈ R n eine Lösung von (LP1) und A ∈ R m×n , b ∈ R m .<br />
a) Mit L ⊆ {1, . . . , m}, K = {1, . . . , m} \ L gelte dabei<br />
A (L)ˆx = b L , A (K)ˆx > b K .<br />
Dann ist ˆx auch Lösung des reduzierten Programms min{c T x : A (L) x ≥ b L }.<br />
b) Dann hat das duale Programm (LP1*) eine Lösung.<br />
Beweis a) Da im reduzierten Programm weniger Restriktionen gelten, hat es keinen größeren Wert als<br />
(LP1). Nun sei angenommen, es besitze eine Lösung ¯x mit Wert c T¯x < c Tˆx. Damit werden die Punkte<br />
x(λ) := λ¯x + (1 − λ)ˆx = ˆx + λ(¯x − ˆx), λ ∈ [0, 1], betrachtet. Diese erfüllen die L-Restriktionen, denn<br />
A (L) x(λ) = λA (L)¯x + (1 − λ)A (L)ˆx ≥ (λ + 1 − λ)b L = b L .<br />
Wegen des Spielraums in den lockeren Restriktionen gibt es aber ein ɛ > 0 so, dass auch noch<br />
A (K) x(ɛ) = A (K)ˆx + ɛA (K) (¯x − ˆx) ≥ b K<br />
gilt, also ist x(ɛ) zulässig bei (LP1). Nach Annahme ist dort aber die Zielfunktion<br />
c T x(ɛ) = c Tˆx + ɛ (c T¯x − c Tˆx) < c Tˆx<br />
} {{ }<br />
4 DUALE PROGRAMME 52<br />
echt kleiner und widerspricht der Voraussetzung über ˆx.<br />
b) Für ein beliebiges zulässiges Element x des reduzierten Programms gilt nach Teil a) A (L) x ≥ b L =<br />
A (L)ˆx und c T x ≥ c Tˆx, also die Folgerung<br />
A (L) (ˆx − x) ≤ 0 ⇒ c T (ˆx − x) ≤ 0 ∀x ∈ R n .<br />
Nach Satz 3.6.3 (Farkas) ist daher die Menge Y L := {y L : y T L A(L) = c T , y L ≥ 0} ≠ ∅. Daraus folgt aber<br />
sofort, dass der zulässige Bereich Y := {y ∈ R m : y T A = c T , y ≥ 0} von (LP1*) ebenfalls nicht leer ist.<br />
Denn mit y L ∈ Y L liegt y T := (y T L , yT K ), y K := 0 K in Y , es gilt<br />
y T A = y T LA (L) + 0 T KA (K) = c T , sowie y T b = y T Lb L + 0 T Kb K = y T LA (L)ˆx = c Tˆx. (4.1.4)<br />
Da die Zielfunktionen gleiche Werte haben, ist nach Satz 4.1.1 jedes solche y optimal bei (LP1*).<br />
Im Beweis wurde also mit den straffen Restriktionen eine duale Lösung konstruiert. Wenn die<br />
zugehörige Untermatrix A (L) maximalen Rang hat, besteht Y L aus genau einem Punkt y L , der<br />
durch Nullen zu einer Lösung y T = (yL T, 0T K<br />
) von (LP1*) ergänzt werden kann.<br />
Theorem 4.1.4 (Dualitätssatz)<br />
Das Lineare Programm (LP) ist genau dann lösbar, wenn (LP*) lösbar ist.<br />
Beweis Der Beweis wird bei (LP1) geführt, im Satz 4.1.3 wurde dazu schon die Lösbarkeit von (LP1 ∗ )<br />
bei Lösbarkeit von (LP1) gezeigt. Umgekehrt sei (LP1 ∗ ) lösbar, also auch das äquivalente Programm<br />
⎛ ⎞ ⎛ ⎞<br />
A T c<br />
min(−b T ⎜<br />
y) : ⎝−A T ⎟ ⎜ ⎟<br />
⎠ y ≥ ⎝−c⎠ =: d.<br />
I 0<br />
Dieses hat die Standardform (LP1) und nach Satz 4.1.3 ist dann dessen Dual auch lösbar, also existiert<br />
ẑ T = (z T −, z T +, u T ) ≥ 0 T mit<br />
max d T z = d T ẑ = c T (z − − z + ) mit − b T = (z−, T z+, T u T ⎜<br />
) ⎝−A T ⎟<br />
⎠ = z−A T T − z+A T T + u T .<br />
I<br />
Der Vektor ˆx := z + − z − ∈ R n erfüllt also Ax = A(z + − z − ) = b + u ≥ b und ist Maximalstelle von −c T x,<br />
also Lösung von (LP1).<br />
Wenn beide Probleme inkonsistent sind, ist die Situation klar. Andernfalls gilt:<br />
⎛<br />
A T<br />
⎞<br />
Satz 4.1.5 Wenn nur eines der Programme (LP) oder (LP*) zulässige Punkte hat, dann ist<br />
dessen Zielfunktion unbeschränkt.<br />
Beweis Ist (LP1 ∗ ) inkonsistent, also {y : A T y = c, y ≥ 0} = ∅, gibt es aufgrund der Farkas-Alternative<br />
in §3.6 ein u ∈ R n mit<br />
−u T A T ≤ 0 T und (−u T )c = 1 ⇐⇒ Au ≥ 0, c T u = −1.
4 DUALE PROGRAMME 53<br />
Dann ist u ∈ O + (X) und mit beliebigem zulässigem x ist auch x + tu, t ≥ 0, zulässig: A(x + tu) =<br />
Ax + tAu ≥ Ax ≥ b. Die Zielfunktion aber ist unbeschränkt, c T (x + tu) = c T x − t → −∞ (t → ∞).<br />
Die Beschränktheit von (LP1) wurde schon am Ende von §3.4 behandelt, dort wurde das Kriterium<br />
c ∈ A T R m + über Polarkegel hergeleitet. Es entspricht gerade der Lösbarkeit des Systems<br />
A T y = c, y ≥ 0.<br />
Insgesamt ergibt sich folgende Situation:<br />
Zusammenfassung (LP) hat zulässige Punkte (LP) inkonsistent<br />
(LP*) hat zulässige Punkte (LP) und (LP*) lösbar (LP*) unbeschränkt<br />
(LP*) inkonsistent (LP) unbeschränkt keine Lösungen<br />
4.2 Komplementarität<br />
Zur Vorbereitung des Dualitätssatzes wurde in Satz 4.1.3 i.w. die Konstruktion einer dualen<br />
Optimallösung aus der primalen durchgeführt. Ansatzpunkt war die Erkenntnis, dass in Optimallösungen<br />
bestimmte Restriktionen straff sind, d.h., Gleichheit gilt. Eine analoge Formulierung<br />
bzw. Schlußweise verwendet dazu die folgende strukturelle Orthogonalität bei nicht-negativen<br />
Vektoren:<br />
u, v ≥ 0, u T v = 0 ⇒ ∀i :<br />
{<br />
}<br />
u i = 0 oder v i = 0<br />
Satz 4.2.1 (Komplementarität)<br />
a) Es sei x zulässig für (LP1), y für (LP1*). Beide Punkte sind genau dann optimal, wenn gilt<br />
{<br />
y T y i > 0 ⇒ a (i)T x = b i<br />
(Ax − b) = 0, d.h., für i = 1, . . . , m :<br />
a (i)T x > b i ⇒ y i = 0 .<br />
b) Es sei x zulässig für (LP) und y für (LP*). Beide Punkte sind genau dann optimal, wenn gilt<br />
y T (Ax − b) = 0 und (c T − y T A)x = 0. (4.2.1)<br />
Beweis Für zulässige x, y gilt beim allgemeinen Problem<br />
y T (Ax − b) = y1 T (A 11 x 1 + A 12 x 2 − b 1 ) + y2 T (A 21 x 1 + A 22 x 2 − b 2 ) ≥ 0<br />
(c T − y T A)x = (c T 1 − y1 T A 11 − y2 T A 21 )x 1 + (c T 2 − y1 T A 12 − y2 T A 22 )x 2 ≥ 0<br />
Addition der beiden Formeln liefert<br />
0 ≤ y T (Ax − b) + (c T − y T A)x = y T Ax − y T b + c T x − y T Ax = c T x − y T b,<br />
und die Differenz verschwindet nach Satz 4.1.1 genau dann, wenn x und y optimal sind.<br />
Anmerkung: In Teil b) des Satzes wurde zur einfacheren Darstellung eine etwas verkürzte<br />
Schreibweise gewählt. Die Anteile der Gleichungsrestriktionen an den Innenprodukten verschwinden<br />
von vorneherein. In den restlichen bedeutet (4.2.1) ausführlich<br />
y1 T (A 11 x 1 + A 12 x 2 − b 1 ) = 0, (c T 1 − y1 T A 11 − y2 T A 21 )x 1 = 0.
4 DUALE PROGRAMME 54<br />
Damit markieren die nichtverschwindenen Komponenten von y 1 die straffen Restriktionen von<br />
(LP) und die nichttrivialen bei x 1 die straffen bei (LP*).<br />
Man redet im Zusammenhang mit Satz 4.2.1 auch von komplementärem Schlupf. Denn die Ungleichungen<br />
in (LP) und (LP*) können durch Einführung von Schlupfvariablen u 1 ≥ 0, v 1 ≥ 0<br />
zu Gleichungsrestriktionen gemacht werden, A 11 x 1 + A 12 x 2 − u 1 = b 1 , A T 11 y 1 + A T 21 y 2 + v 1 = c 1 .<br />
Damit entspricht die Bedingung (4.2.1) einfach der Aussage<br />
y1 T u 1 = 0, v1 T x 1 = 0,<br />
dass je Komponente die Schlupfvariable im { primalen<br />
dualen<br />
Problem verschwindet.<br />
Problem oder die Variable im {<br />
dualen<br />
primalen<br />
Schattenpreise: Außer den Existenzaussagen zu Lösungen können aus dem dualen Problem<br />
auch quantitative Angaben zum Primalproblem abgeleitet werden. Die Größe b enthält in (LP1)<br />
die unteren Grenzen für die einzelnen Restriktionen (Resourcen bei Produktionsplanung in §1.2),<br />
die einer Verringerung der Kosten c T x im Wege stehen. In einem Lösungs-Paar ˆx, ŷ wird die<br />
Aufteilung der Restriktionen wie in Satz 4.1.3 benutzt,<br />
A (L)ˆx = b L , A (K)ˆx > b K ,<br />
L ∪ K = {1, . . . , m}.<br />
Die Restriktionen zu L sind also straff, die zu K locker und aus dem Komplementaritätssatz<br />
folgt ŷ K = 0. Für die Zielfunktion gilt damit W := c Tˆx = b T ŷ = b T LŷL. Für eine Verringerung der<br />
Kosten ist es sicher nicht sinnvoll, lockere Restriktionen aus K weiter zu lockern. In dem dualen<br />
Wert b T ŷ kommt das dadurch zum Ausdruck, dass eine Verkleinerung von b K wegen ŷ K = 0<br />
keine Auswirkung hätte. Dagegen stellen die straffen Restriktionen aus L Flaschenhälse dar. Bei<br />
einer kleinen Verringerung b L → b L −¯b L ≤ b L (‖¯b L ‖ ≤ ɛ) bleibt die zugehörige Lösung ˆx−¯x in der<br />
Regel (z.B., im generischen Fall |L| = n, A (L) regulär) weiterhin zulässig mit A (K) (ˆx − ¯x) ≥ b K ,<br />
und die Zielfunktion verändert sich gemäß<br />
c T (ˆx − ¯x) = (b L − ¯b L ) T ŷ L = W − ¯b T Lŷ L . (4.2.2)<br />
Also gibt die Komponente ŷ i für i ∈ L an, welche direkte Auswirkung eine Verkleinerung der<br />
Schranke b i auf den Zielwert hätte.<br />
Geometrische Interpretation Die nichttrivialen Werte ŷ L<br />
der dualen Variablen erfüllen die Bedingungen ŷ T L A(L) =<br />
c T , ŷ L ≥ 0. Geometrisch bedeutet das, dass der Zielgradient<br />
c konische Kombination der L-Zeilen von A ist, also<br />
in dem davon erzeugten Kegel liegt, c ∈ keg{a (j) : j ∈ L}.<br />
Dies ist auch geometrisch klar, denn da die a (j) die nach<br />
innen (!) zeigenden Normalen auf den Randflächen H j des<br />
Polyeders X sind, würde andernfalls das Minimum überhaupt<br />
nicht in ˆx (roter Punkt) angenommen. Verringert<br />
✻❆ H 1 X<br />
❆ <br />
❆<br />
❆ c<br />
❆<br />
❆ y 2 a (2)<br />
❆ ✒<br />
❆ ✻<br />
H 2 ❆✟ ✟✟✟✟✯ y 1 a (1)<br />
<br />
❆ ❜<br />
❆<br />
❆<br />
✲H 2<br />
′
4 DUALE PROGRAMME 55<br />
man im Bild (J = {1, 2}) den Wert b 2 etwas, entspricht die neue Nebenbedingung der gestrichelten<br />
Ebene H 2 ′ und der Optimalpunkt bewegt sich mit (offener Kreis). Der Wert cT x ändert<br />
sich aber nicht im gleichen Ausmaß, nur proportional zu y 2 , da a (2) im Bild nur einen kleineren<br />
Anteil an c hat.<br />
Ökonomische Interpretation Man nennt die Komponenten ŷ i der dualen Variablen auch<br />
Schattenpreise, da ihr Wert angibt, bei welchem Preis sich für den Nutzer eine Verkleinerung<br />
von b i lohnt, da die Änderung der Kostenfunktion c T x nach (4.2.2) gerade −ŷ i multipliziert mit<br />
der Änderung ¯b i ist. Diese Interpretation läßt sich anhand der Beispiele aus §1.2 erläutern.<br />
Beispiel 4.2.2 Die Produktionsplanung ist ein Maximierungsproblem, wobei c j der Gewinn für<br />
das Produkt P j und b i der Umfang der begrenzten Resource R i ist. Mit einer Lösung y des<br />
dualen Programms<br />
m∑<br />
min b T y, y i a ij ≥ c j , j = 1, . . . , n, y ≥ 0,<br />
i=1<br />
kann y i als innerer oder Schattenpreis der Resource R i interpretiert werden. Nach der Vorüberlegung<br />
darf die (Vergrößerung der) Resource R i höchstens diesen Preis y i kosten, damit beim<br />
Verkauf ein Zugewinn bleibt. Das duale Programm bestimmt diese Preise so, dass der innere<br />
Gesamtpreis der verwendeten Resourcen ∑ i b iy i = c T x beim Verkauf der Produkte (x j ) exakt<br />
erzielt wird. Dabei unterschreitet der innere Einzelpreis ∑ i y ia ij von Produkt P j nicht den beim<br />
Verkauf erzielten äußeren Preis c j . Die Folgerungen des Komplementaritätssatzes<br />
{ n∑<br />
j=1<br />
}<br />
a ij x j < b i ⇒ y i = 0 ,<br />
{ m ∑<br />
i=1<br />
}<br />
y i a ij > c j ⇒ x j = 0<br />
können so interpretiert werden:<br />
• Eine Resource, die nicht ausgeschöpft wird, ist im Überfluß vorhanden und bekommt den<br />
inneren Preis null.<br />
• Ein Produkt, dessen innerer Preis höher als der außen erzielbare ist, wird nicht hergestellt.<br />
Beispiel 4.2.3 Beim Transportproblem aus §1.2 war s i die Kapazität von Produzent P i und r j<br />
der Bedarf von Abnehmer V j . Für die Formulierung mit Ungleichungen min{ ∑ m ∑ n<br />
i=1 j=1 c ijx ij :<br />
∑ n<br />
j=1 x ij ≤ s i , ∑ m<br />
i=1 x ij ≥ r j , x ij ≥ 0} hat das duale Problem die Form<br />
( n∑<br />
max v j r j −<br />
j=1<br />
m∑ )<br />
u i s i : v j − u i ≤ c ij , u i , v j ≥ 0.<br />
i=1<br />
Interpretiert man u i als Herstellungspreis bei P i und v j als Abnahmepreis bei V j , bedeutet diese<br />
Form, dass zwar der Gesamtgewinn ∑ v j r j − ∑ u i s i maximiert wird, aber die Gewinnspannen<br />
v j − u i im Einzelfall nicht über den Transportkosten c ij liegen.
5 DUALITÄT BEIM SIMPLEXVERFAHREN 56<br />
5 Dualität beim Simplexverfahren<br />
Die Dualitätsaussagen aus §4 liefern wichtige Hintergrundinformation zu den Eigenschaften eines<br />
linearen Programms. Tatsächlich kann zwischen den Daten des Simplexverfahrens zum Primalproblem<br />
(LP3) und dessen Dualprogramm (LP3*) ein direkter Zusammenhang hergestellt<br />
werden, der zusätzliche Möglichkeiten bei der Implementierung von Simplexverfahren eröffnet.<br />
Bei (LP3) sind die beiden Programme<br />
min{c T x : Ax = b, x ≥ 0}, max{y T b : y T A ≤ c T }<br />
zueinander dual. Im Simplexverfahren aus §2.4 wird ein Hilfsvektor y T = c T J A−1 J<br />
berechnet.<br />
Wenn A J Basis zu einer (Optimal-) Lösung ˆx ist, gilt damit für den Vektor γ der reduzierten<br />
Kosten die Ungleichung<br />
0 ≤ γ T = c T − c T J A −1<br />
J A = cT − y T A, d.h. y T A ≤ c T . (5.0.1)<br />
Also ist dieser Vektor y eine dual zulässige Lösung. Wenn man die Lagrangefunktion φ = c T x +<br />
y T (b − Ax) aus der Einleitung von §4.1 betrachtet, ist der Kostenvektor gerade deren Gradient<br />
bezgl. x, γ T = ∇ x φ(x, y) = c T −y T A. Wegen γ J = 0 sind die J-Ungleichungen straff, y T A J = c T J ,<br />
was genau der Aussage des Komplementaritätssatzes 0 = (y T A − c T )ˆx = 0 entspricht. Damit<br />
stimmen auch die Zielfunktionen y T b = c T J A−1 J<br />
b = cTˆx überein und der Vektor y ist daher sogar<br />
(Optimal-) Lösung von (LP3*).<br />
5.1 Duales Simplexverfahren<br />
Vollkommen unabhängig von der Zulässigkeit des primalen Vektors A −1<br />
J<br />
b gehört zu jeder Basis,<br />
die (5.0.1) erfüllt, ein dual zulässiger Vektor y.<br />
Definition 5.1.1 Eine Basis A J heißt dual zulässig, wenn (5.0.1) gilt mit y T = c T J A−1 J<br />
, sie<br />
heißt primal zulässig, wenn ¯x J = A −1 b ≥ 0, und optimal, wenn sie primal und dual zulässig ist.<br />
J<br />
Beim dualen Simplexverfahren arbeitet man mit den gleichen Basen A J wie in §2.4, startet<br />
aber mit einer dual zulässigen Basis. In Bezug auf das Primal-Problem ist der zugehörige Vektor<br />
¯x J = A −1 b zwar ”optimal”, aber i.A. nicht zulässig. Beim Basisaustausch werden daher negative<br />
J<br />
Komponenten ¯x p < 0 eliminiert.<br />
Mit dieser Variante gewinnt man zusätzliche Wahlmöglichkeiten der Verfahrensgestaltung.<br />
Z.B. gehört beim Problem (LP2),<br />
min{c T x : Ax − z = b, x ≥ 0, z ≥ 0},<br />
das hier durch Schlupfvariablen ergänzt wurde, mit D = (A, −I) zu J = {n + 1, . . . , n + m} die<br />
Basis D J mit c J = 0. Die Basislösungen sind (¯x, ¯z) = (0, −b) und ȳ = 0. Daher<br />
ist die Basis D J = −I m<br />
{<br />
primal zulässig für b ≤ 0,<br />
dual zulässig für c ≥ 0.
5 DUALITÄT BEIM SIMPLEXVERFAHREN 57<br />
Im zweiten Fall läßt sich die Anlaufrechnung also durch Verwendung des jetzt entwickelten<br />
dualen Simplexverfahrens einsparen.<br />
Zur Herleitung sei jetzt also A J eine dual zulässige Basis mit<br />
y T = c T J A −1<br />
J<br />
, γT = c T − y T A ≥ 0, ¯x J = A −1 b, K = {1, . . . , n} \ J.<br />
Ist nun ¯x p < 0 für ein p ∈ J, so ist die duale Zielfunktion<br />
y T b = c T J A −1<br />
J<br />
b = cT J ¯x J<br />
noch nicht maximal. Der negative ”duale Schattenpreis” x p < 0 zeigt an, dass durch eine virtuelle<br />
Verkleinerung von c p , p ∈ J, eine Vergrößerung dieser Zielfunktion y ↦→ y T b erfolgen kann. Unter<br />
Inkaufnahme zusätzlichen Schlupfs in der Ungleichung c p − y T a p ≥ 0 betrachtet man analog zu<br />
(2.3.7) daher den Strahl<br />
y(λ) T := (c − λe p ) T J A −1<br />
J<br />
Für die duale Zielfunktion gilt dort tatsächlich<br />
J<br />
= y T − λ(e p ) T J A −1<br />
J<br />
, λ ≥ 0. (5.1.1)<br />
y(λ) T b = y T b − λ(e p ) T J A −1<br />
J b = yT b − λ¯x p > y T b für λ > 0.<br />
Allerdings muß dabei, wieder analog zu (2.3.10), die duale Zulässigkeit von y(λ) geprüft werden.<br />
Es ist zu fordern<br />
0 T ! ≤ c T − y(λ) T A = c T − y T A + λ(e p ) T J A −1<br />
J A = γT + λu T p , u T p := (e p ) T J A −1<br />
J A.<br />
Wegen γ J = 0 ist diese Bedingung für Indizes aus J automatisch erfüllt, γ T J + λ(e p) T J A−1 J A J =<br />
λ(δ pj ) j∈J ≥ 0 T . Auch ist für u p ≥ 0 zu erkennen, dass λ beliebig groß werden darf. In diesem<br />
Fall ist (LP3*) unbeschränkt und (LP3) inkonsistent, vgl. §4.1. Nur für negative Komponenten<br />
von u p = (u pj ) j ergeben sich Einschränkungen und führen zum maximal zulässigen Wert<br />
λ p := min{ γ j<br />
−u pj<br />
: u pj < 0, j ∈ K} =<br />
γ l<br />
−u pl<br />
. (5.1.2)<br />
Wenn das Minimum, wie angegeben, im Index l ∈ K angenommen wird, wird die entsprechende<br />
Ungleichung straff,<br />
0 = γ l + λ p u pl = c l − y T a l + λ p (e p ) T J A −1<br />
J a l = c l − y(λ p ) T a l .<br />
Der Index l wandert also in die Stützmenge J der straffen Ungleichungen bei (LP3 ∗ ), vgl.<br />
Satz 3.4.3. Umgekehrt ist für λ p > 0 in der Ungleichung zu p ∈ J nach Konstruktion das<br />
Gegenteil der Fall, 0 < c p − y(λ p ) T a p = λ p . Daher ist y(λ p ) die duale Basislösung zur Basis<br />
A J ′,<br />
J ′ = J \ {p} ∪ {l}.<br />
Analog zu Satz 2.3.5 läßt sich zeigen, dass A J ′ wegen u pl < 0 tatsächlich regulär ist. Die obigen<br />
Überlegungen werden zusammengefaßt zum folgenden Algorithmus:
5 DUALITÄT BEIM SIMPLEXVERFAHREN 58<br />
Duales Simplex-Verfahren<br />
Eingabe: Dual zulässige Basis A J , J ⊆ {1, . . . , n}<br />
Schritt 1 x J := A −1<br />
J<br />
b, yT := c T J A−1 J<br />
, K := {1, . . . , n} \ J,<br />
2 suche x p < 0 unter x i , i ∈ J.<br />
3 wenn x i ≥ 0 ∀i ∈ J: STOP, Optimum!<br />
4 u pj := (e p ) T J A−1 J a j, j ∈ K, wenn u pj ≥ 0 ∀j ∈ K: STOP, (LP3) inkonsistent!<br />
5<br />
γ j := c j − y T a j , j ∈ K, suche l ∈ K:<br />
−γ l /u pl = min{−γ j /u pj : u pj < 0, j ∈ K} = λ p<br />
6 J := J \ {p} ∪ {l}, weiter mit 1<br />
Zur Durchführung sind wie beim Primalverfahren drei Gleichungssysteme zu lösen, etwa mit einer<br />
fortlaufend angepaßten LR-Zerlegung von A J . Dies sind zunächst wieder die drei Systeme<br />
A J x J = b, y T A J = c T J , und f T A J = (e p ) T J . Der Aufwand dafür liegt wieder bei O(m2 ) einschließlich<br />
der LR-Anpassung. Dann sind folgende Innenprodukte zu berechnen<br />
u pj = f T a j , j ∈ K, sowie c j − y T a j , für u pj < 0.<br />
Hierfür sind zwischen 2m(n − m) und 4m(n − m) Operationen nötig, dieser Anteil ist also etwa<br />
doppelt so groß wie beim primalen Verfahren aus §2.4. Bei vorhandener Wahlmöglichkeit hat<br />
das Primalverfahren also einen Effizienzvorteil.<br />
Beispiel 5.1.2 Für das Problem<br />
min 2x 1 + x 2 + 3x 3<br />
x 1 + x 2 + x 3 ≥ 1<br />
2x 1 − x 2 + 2x 3 ≤ −2<br />
x 1 + 2x 2 − 2x 3 ≥ 1<br />
x i ≥ 0<br />
⎫<br />
⎪⎬<br />
⎪⎭<br />
⇐⇒<br />
⎧<br />
⎪⎨<br />
⎪⎩<br />
min 2x 1 + x 2 + 3x 3<br />
−x 1 − x 2 − x 3 +x 4 = −1<br />
2x 1 − x 2 + 2x 3 +x 5 = −2<br />
−x 1 − 2x 2 + 2x 3 +x 6 = −1<br />
x i ≥ 0<br />
gehört zu J = {4, 5, 6} eine dual, aber nicht primal zulässige Basis. Das duale Simplexverfahren<br />
führt hier mit den folgenden Daten in 2 Schritten zum Ziel:<br />
B-1 1. J = {4, 5, 6}, A J = I, ¯x T J = (−1, −2, −1), y = 0, yT b = 0.<br />
2. wähle p = 4, u T = (e 4 ) T J A−1 J A = eT 1 A = (−1, −1, −1, 1, 0, 0), (γ 1, γ 2 , γ 3 ) = (2, 1, 3);<br />
λ p = min{2, 1, 3} = 1 angenommen in l = 2.<br />
⎛ ⎞<br />
−1 0 0<br />
B-2 1. J = {2, 5, 6}, A −1<br />
J<br />
= A J =<br />
(−1, 0, 0), y T b = −b 1 = 1 = c T¯x.<br />
⎜<br />
⎝−1 1<br />
⎟<br />
0⎠ = B, x J<br />
−2 0 1<br />
= A −1<br />
J b = (1, −1, 1)T , y T =<br />
2. wähle p = 5, u T = (e 5 ) T J A−1 J A = eT 2 BA = (3, 0, 3, −1, 1, 0), γ 4 = 1, λ p = −γ 4 /u p4 = 1<br />
mit l = 4.<br />
⎛ ⎞<br />
0 −1 0<br />
B-3 1. J = {2, 4, 6}, A −1<br />
J<br />
=<br />
⎜ ⎟<br />
⎝1 −1 0⎠, ¯x J = A −1<br />
J<br />
0 −2 1<br />
b = (2, 1, 3)T optimal, y T b = c T¯x = 2.<br />
} {{ }<br />
>0
5 DUALITÄT BEIM SIMPLEXVERFAHREN 59<br />
Auch beim dualen Verfahren besteht die Gefahr des Kreisens, wenn das Minimum bei (5.1.2)<br />
nicht in einem einzigen Index l angenommen wird. Diese Gefahr läßt sich auch hier wieder durch<br />
kleinste Index -Regeln ausschalten. Diese lauten in Schritt 2 und 5:<br />
2 bestimme p ∈ J : p = min{i ∈ J : x i < 0}<br />
5 bestimme l ∈ K : l = min{j ∈ K : −γ j /u pj = λ p }<br />
5.2 Problem-Modifikationen<br />
In die Formulierung praktischer Probleme gehen oft Daten ein, deren Wert nicht genau bekannt<br />
oder vorhersehbar ist (z.B., die Preis- oder Zinsentwicklung bei einer Produktions- oder Finanzplanung).<br />
Dann ist es klug, auch Varianten des Ausgangsproblems zu lösen (”was passiert, wenn<br />
der Euro über 1.40 Dollar steigt?”), etwa in Abhängigkeit von einem künstlichen Parameter<br />
t ∈ R (”parametrische Optimierung”). Oft will man auch unerwünschte Lösungen nachträglich<br />
durch weitere Restriktionen ausschließen, etwa nicht-ganzzahlige in der ganzzahligen Optimierung.<br />
In diesen Fällen kann man durch eine geschickte Kombination aus primalem und dualem<br />
Simplexverfahren eine bekannte Lösung dem veränderten Problem anpassen. Wir betrachten<br />
vier Situationen, Ausgangspunkt sei jeweils eine bekannte (Optimal-) Lösung ˆx mit Basis A J .<br />
• Änderung der Zielfunktion c. Die Untersuchung einer parametrischen Änderung c(t) =<br />
c + t˜c, t ≥ 0, (zur Vereinfachung) ist vorteilhaft, da Änderungen der Ausgangssituation<br />
dann schrittweise eintreten. Es sei daher<br />
W (t) := min{(c + t˜c) T x : Ax = b, x ≥ 0}.<br />
Die Lösung ˆx zu t = 0 ist auch primal zulässig für t ≠ 0. Der Kostenvektor ist allerdings<br />
γ(t) T = c(t) T − c J (t) T A −1<br />
J A = γ(0)T + t˜γ T , ˜γ T = ˜c T − ˜c T J A −1<br />
J A.<br />
Da ˆx optimal in t = 0 war, ist γ(0) ≥ 0 und ˆx bleibt solange optimal, wie<br />
γ(t) = γ(0) + t˜γ ≥ 0 ⇐⇒ t ≤ min{ γ j(0)<br />
−˜γ j<br />
: ˜γ j < 0, j ∈ K} =: t max ,<br />
(γ J (t) ≡ 0 gilt weiterhin). Wenn t max > 0 ist, ist ˆx für t ∈ [0, t max ] optimal und daher<br />
W (t) = W (0) + t˜c Tˆx dort linear (insgesamt ist W (t) stückweise linear). Bei Vergrößerung<br />
von t über t max hinaus verliert ˆx seine Optimalität und im reduzierten Kostenvektor tauchen<br />
negative Komponenten auf. Ausgehend von der primal zulässigen Basis A J kann mit<br />
dem primalen Verfahren aus §2.4 nachoptimiert werden.<br />
• Änderung des (Resourcen-) Vektors b(t) = b + t˜b, wieder parametrisiert mit t ≥ 0. Also sei<br />
W (t) := min{c T x : Ax = b + t˜b, x ≥ 0}.<br />
Dann löst x(t) mit den Nichtbasisvariablen x K (t) = 0 und der Basislösung<br />
x J (t) = A −1<br />
J (b + t˜b) = ˆx J + tξ J , ξ J := A −1˜b,<br />
J
5 DUALITÄT BEIM SIMPLEXVERFAHREN 60<br />
immer noch das Gleichungssystem Ax = b + t˜b. Dabei ist x(t) primal zulässig, solange<br />
ˆx J + tξ J ≥ 0 ⇐⇒ t ≤ min{ ˆx i<br />
−ξ i<br />
: ξ i < 0, i ∈ J} =: t max .<br />
Wenn ˆx nicht ausgeartet ist, ist t max > 0 und die Zielfunktion W (t) = W (0) + tc T J ξ J =<br />
W (0)+ty T˜b (y = Schattenpreise!) im Intervall [0, tmax ] also wieder linear. Der Kostenvektor<br />
γ ist hier unabhängig von t, da er nur von c und A abhängt. Wenn jetzt also t über t max<br />
hinaus vergrößert wird, bleibt x(t) immer noch dual zulässig, verliert aber seine primale<br />
Zulässigkeit. Ausgehend von der dual zulässigen Basis A J<br />
Simplexverfahren aus §5.1 nachoptimiert werden.<br />
kann jetzt mit dem dualen<br />
• Einführung zusätzlicher Ungleichungen, etwa a (m+1)T x ≥ b m+1 . Das Programm (LP3) wird<br />
also erweitert um die Gleichung a (m+1)T x − x n+1 = b m+1 , x n+1 ≥ 0, in der Zielfunktion<br />
ist c n+1 = 0. Mit der entsprechend erweiterten Matrix à und J ′ := J ∪ {n + 1} ist<br />
( )<br />
(<br />
)<br />
AJ 0<br />
A −1<br />
à J ′ =<br />
a (m+1) T ⇒ (ÃJ ′)−1 J<br />
0<br />
=<br />
J −1 a (m+1) T . (5.2.1)<br />
J A<br />
−1<br />
J<br />
−1<br />
Wegen c n+1 = 0 liefert die letzte Zeile keinen Beitrag zum erweiterten Kostenvektor<br />
(c T , 0) − c T J A−1 J<br />
(A, 0) = (γT , 0) ≥ 0 und der ergänzte Vektor (ˆx T , ¯x n+1 ) T bleibt weiterhin<br />
dual zulässig, allerdings nicht mehr primal zulässig für<br />
¯x n+1 = a (m+1)Tˆx − b m+1 < 0.<br />
Dies ist also mit p = n + 1 wieder ein Fall für das duale Simplexverfahren aus §5.1.<br />
Dieser Fall hat eine große Bedeutung in der ganzzahligen und nichtlinearen Optimierung.<br />
Dort werden lineare (Hilfs-) Programme gelöst und schrittweise unerwünschte Lösungen<br />
durch Schnittebenen, d.h. zusätzliche Ungleichungen eliminiert.<br />
Beispiel 5.2.1 Im Einführungsbeispiel 1.2.1 zur Produktionsplanung<br />
min −4x 1 − 3x 2<br />
A : x 1 + x 2 +x 3 = 15,<br />
L : x 2 +x 4 = 12,<br />
E : 3x 1 + x 2 +x 5 = 36, x i ≥ 0,<br />
wurde die Schranke für Resource A auf b 1 = 15<br />
geändert, mit J = {1, 2, 4} lautet die Lösung<br />
dann ˆx T J<br />
= (10.5, 4.5, 7.5), W = −55.5. Wenn<br />
nur ganze Einheiten produziert werden, ist diese<br />
Lösung unbrauchbar. Eine Rundung dieser<br />
Werte ist auch keine Hilfe, da die Zulässigkeit<br />
dann nicht gesichert ist. Mit Hilfe der zusätzlichen<br />
Ungleichung 2x 1 +x 2 ≤ 25 kann diese Ecke<br />
des zulässigen Bereichs abgeschnitten werden.<br />
x 2<br />
❵ ✻❵<br />
❅<br />
❵ ❵ ❵ ❵ ❵ ❵ ❇<br />
❇<br />
❵ ❵ ❵ ❵ ❵ ❵ ❵<br />
❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ L❵<br />
❵<br />
❵ ❵ ❵ ❵ ❅ ❵ ❵ ❵ ❵ ❵<br />
❵ ❅<br />
❇ ❵ ❵ ❵ ❵ ❵ ❵<br />
❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵<br />
❵ ❵<br />
❇ ❵ ❵ ❵ ❵ ❵ ❵<br />
❵ ❵ ❵ ❵ ❵ ❵ ❵ E❵<br />
❵ ❵ ❵ ❵ ❵<br />
❵ ❵ ❵ ❵ ❵ ❵ ❅❵<br />
❵ ❵ ❇❵<br />
❵ ❵ ❵ ❵ ❵<br />
❵ ❵ ❵ ❵ ❵ ❵ ❵ ❅❵<br />
❵ ❵ ❇ ❵ ❵ ❵ ❵<br />
❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❅ ❇<br />
c<br />
❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❅ ❇ ✚ ✚✚❃<br />
❵<br />
❵ ❵ ❵ ❵ ❵ ❵ ❵<br />
❵ ❵ ❵ ❵ ❵ ❵ ❵<br />
❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❅❇<br />
❵ ❵ ❵ ❵<br />
❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵<br />
❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵<br />
❇<br />
❵<br />
❵<br />
❅<br />
❵ ❵ ❵<br />
❵ ❵ ❵<br />
❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❇ ❵ ❅❵<br />
❵ A<br />
❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❵ ❇❵<br />
❵ ❅❵<br />
✲<br />
❇ ❅ x1
5 DUALITÄT BEIM SIMPLEXVERFAHREN 61<br />
Die Konstruktion solcher Ungleichungen wird in der ganzzahligen Optimierung behandelt.<br />
Im erweiterten Problem ist jetzt ˆx 6 = 25 − 2ˆx 1 − ˆx 2 = −1/2 < 0, J ′ = {1, 2, 4, 6}. Mit<br />
⎛ ⎞<br />
A −1<br />
J<br />
= 1 −1 0 1<br />
⎜ ⎟<br />
⎝ 3 0 −1⎠<br />
2<br />
−3 2 1<br />
wird u p zu p = 6 aus der letzten Zeile von (5.2.1) berechnet, wegen des Schlupfes +x 6 aber<br />
mit anderem Vorzeiechen u T p = ( − a (4) T<br />
J A<br />
−1<br />
J , 1) Ã = (− 1 2 , 0, − 1 2 , 1)Ã = (0, 0, − 1 2 , 0, − 1 2 , 1).<br />
Der (alte) Kostenvektor ist γ T = (0, 0, 5 2 , 0, 1 2 ) und führt auf λ 6 = 1 bei l = 5. Zu den<br />
neuen Basisindizes J ′′ = {1, 2, 4, 5} gehört die ganzzahlige Lösung x T = (10, 5, 0, 7, 1, 0)<br />
mit W = −55.<br />
• Einführung einer zusätzlichen Variablen x n+1 . Es sei à = (A, a n+1 ), ˜c T = (c T , c n+1 ).<br />
Der Vektor (ˆx T , 0) ist dann auch primal zulässig beim erweiterten Problem. In Bezug auf<br />
Optimalität ist mit der dualen Lösung y T = c T J A−1 J<br />
γ n+1 ≥ 0 bleibt der erweiterte Punkt opimal. Für<br />
γ n+1 = c n+1 − y T a n+1 < 0<br />
nur der Wert γ n+1 zu prüfen. Für<br />
kann wieder das primale Verfahren aus §2.4 mit der primal zulässigen Basis ÃJ = A J<br />
angewendet werden.<br />
Beispiel 5.2.2 Das Einführungsbeispiel 1.2.1 zur Produktionsplanung hatte die Form<br />
min −4x 1 − 3x 2<br />
A : x 1 + x 2 +x 3 = 16,<br />
L : x 2 +x 4 = 12,<br />
E : 3x 1 + x 2 +x 5 = 36, x i ≥ 0,<br />
und die Lösung ˆx T = (10, 6, 0, 6, 0) zu J = {1, 2, 4} mit c Tˆx = −58. Die Ungleichungen<br />
zu Arbeitsaufwand (ˆx 3 = 0) und Energiebedarf (ˆx 5 = 0) sind straff, die Schattenpreise<br />
der dualen Lösung y T = (− 5 2 , 0, − 1 2<br />
) zeigen, dass der Wert verringert werden kann, wenn<br />
eine Erhöhung von Arbeitsleistung nicht mehr als −y 1 = 5 2<br />
bzw. der Energiekosten um<br />
mehr als −y 3 = 1 2<br />
pro Einheit kostet. Nun werde angenommen, dass zusätzliche Energie zu<br />
einem Preis von c 6 > 0 erhältlich ist. Am besten kauft man zusätzliche Energie nicht blind,<br />
sondern erweitert das Problem um den zusätzlichen Energieanteil x 6 ≥ 0. Die geänderte<br />
Bedingung E: 3x 1 + x 2 ≤ 36 + x 6 führt zur Restriktion<br />
E : 3x 1 + x 2 + x 5 − x 6 = 36, sowie c T x = −4x 1 − 3x 2 + c 6 x 6 .<br />
Also ist a 6 = −e 3 und γ 6 = c 6 − y T a 6 = c 6 − 1 2 . Für c 6 < 1 2<br />
sind die Kosten γ 6 negativ.<br />
Die inverse Basismatrix ist die aus Beisp. 5.2.1. Ein Austauschschritt mit l = 6,<br />
w (J)<br />
l<br />
= A −1<br />
J<br />
a 6 = −A −1<br />
J<br />
e 3 = 1 2 (−1, 1, −1)T ergibt p = j 2 = 2 und führt zur neuen Lösung<br />
(16, 0, 0, 12, 0, 12) T mit J ′ = {1, 5, 6} und Zielfunktionswert −64+12c 6 (< −58 für c 6 < 1 2 ).
5 DUALITÄT BEIM SIMPLEXVERFAHREN 62<br />
Praktischer Ausblick<br />
Professionelle Computerprogramme (”Dynamische Simplex-Verfahren”) bringen beim allgemeinen<br />
Problem (LP) beide Varianten des Simplexverfahrens adaptiv zum Einsatz, teilweise auch<br />
als Ersatz für eine Anlaufrechnung. Ansatzweise sei das am Programm (LP) ohne freie Variable<br />
erläutert, d.h. bei<br />
min{c T x : Ax = b, Mx ≥ d, x ≥ 0}.<br />
(LP)<br />
Dabei seien A ∈ R m×n und M ∈ R µ×n sehr große Matrizen. Um dennoch mit annehmbaren<br />
Aufwand arbeiten zu können, betrachtet man Teilprobleme, in denen nur ein Teil der Variablen<br />
und ein Teil der Ungleichungen aktiviert ist ([Padberg]). Mit P ⊆ {1, . . . , n}, L ⊆ {1, . . . , µ}<br />
sind das Probleme der Form<br />
min{c T P x P : A P x P = b, M (L)<br />
P x P ≥ d L , x P ≥ 0}, (LP L P )<br />
nur die Gleichungsrestriktionen werden also alle berücksichtigt. Schrittweise werden nun solche<br />
Teilprobleme gelöst und danach durch Suche nach negativen Kosten γ j < 0 neue Variable mit<br />
Index j /∈ P , oder verletzte Ungleichungen /∈ L aktiviert. Für die Einheitsvektoren zu den<br />
Schlupfvariablen der Ungleichungen M (L)<br />
P<br />
x P ≥ d L wird natürlich kein Speicherplatz reserviert,<br />
sie werden bei Bedarf erzeugt. Die Anpassung der Lösung der neuen Teilprobleme kann, wie<br />
gerade besprochen, mit dem primalen bzw. dualen Verfahren durchgeführt werden. Umgekehrt<br />
können Variable zu j ∈ P (für γ j ≫ 0) bzw. Ungleichungen aus L auch wieder deaktiviert werden,<br />
wenn Kosten oder Schlupfvariable bestimmte Schwellenwerte unter- bzw. überschreiten. Sehr<br />
große Probleme können insbesondere dann so gelöst werden, wenn die Suche zur Aktivierung<br />
algorithmisch erfolgen kann. Dies ist z.B. bei Schnittebenenverfahren der Fall.<br />
Ähnliches gilt beim TSP, wo die ∼ = 2 n Ungleichungen (1.2.2) sicherstellen, dass die Tour<br />
zusammenhängend ist. Für eine vorliegende Näherungslösung x kann eine verletzte Ungleichung<br />
(1.2.2) graphentheoretisch durch Bestimmung eines sogenannten minimalen Schnitts generiert<br />
werden, was mit einem polynomiellen Aufwand geschehen kann. Oft sind Lösungen des relaxierten<br />
Problems (1.2.3) ganzzahlig, andernfalls müssen zusätzlich Schnittebenen eingeführt werden.<br />
Beispiel 5.2.3 Anwendung der Verfahren auf das (TSP), Start mit den Gleichheitsrestriktionen<br />
(1.2.1). Diese Tour besteht i.d.R. aus vielen kleinen Schleifen. Anschließend wird jeweils<br />
eine kurze Schleife gesucht (kein minimaler Schnitt!) und eine Ungleichung (1.2.2), welche diese<br />
ausschließt, in (LP L P<br />
) aufgenommen. In einigen Fällen führt dies zum Erfolg, etwa im gezeigten<br />
Beispiel. Das Problem mit 31 Orten hat 465 Wege (d.h. n = 465 Variable, m = 31 Gleichungen).<br />
Anschließend werden 16 zusätzliche Ungleichungen (von ∼ = 2 31 ∼ = 10 10 möglichen) generiert, bis<br />
eine zusammenhängende (und sogar ganzzahlige) Lösung erreicht ist. Das Bild zeigt die Tour<br />
und in der Mitte oben die Struktur der Matrix im Ungleichungssystem.
5 DUALITÄT BEIM SIMPLEXVERFAHREN 63
6 INNERE-PUNKT-METHODEN 64<br />
6 Innere-Punkt-Methoden<br />
Das Simplex-Verfahren startet mit einer Ecke des zulässigen Polyeders X und wandert dann zu<br />
Nachbar-Ecken mit fallender Zielfunktion. Insbesondere<br />
bewegt sich das Verfahren ausschließlich auf dem Rand des<br />
Polyeders. Obwohl das Verfahren in einer endlichen Zahl von<br />
Schritten endet, kann dies in einigen (Ausnahme-?) Fällen<br />
bei hohen Dimensionen wegen der großen Eckenzahl zu sehr<br />
langen Laufzeiten des Verfahrens führen. Ein alternativer<br />
Zugang sind neuere Verfahren, die eine Iterationsfolge konstruieren,<br />
welche sich durch das Innere des Polyeders auf die<br />
optimale Ecke zu bewegt.<br />
6.1 Der zentrale Pfad<br />
Betrachtet man mit dem primalen Programm, A ∈ R m×n , b ∈ R m ,<br />
(LP 3) min c T x : Ax = b, x ≥ 0<br />
gleichzeitig dessen duales max{y T b : A T y ≤ c} und führt dabei Schlupfvariablen z ein,<br />
(LP 3 ∗ ) max y T b : A T y + z = c, z ≥ 0,<br />
dann kann man deren Lösung wegen des Komplementaritäts-Satzes 4.2.1,<br />
(c T − y T A)<br />
} {{ } }{{} x<br />
≥0 ≥0<br />
= z T x = 0<br />
(”komplementärer Schlupf”) auch als ein reines Un-Gleichungssystem schreiben,<br />
Ax = b, x ≥ 0,<br />
A T y + z = c, z ≥ 0,<br />
z T x = 0.<br />
(6.1.1)<br />
Man beachte, dass dabei (nur) die letzte Bedingung nichtlinear ist und tatsächlich wegen der<br />
Nichtnegativität eine strukturelle Orthogonalität darstellt, x j z j = 0, j = 1, . . . , n. Dies läßt sich<br />
mit Hilfe der Diagonalmatrizen<br />
⎛ ⎞<br />
⎛<br />
⎞<br />
z 1 x 1 Z = diag(z j ) = ⎜ . .. ⎟<br />
⎝ ⎠ , X = diag(x j) = ⎜ . .. ⎟<br />
⎝<br />
⎠<br />
z n x n<br />
besser in der Form Zx = Xz = 0 zum Ausdruck bringen. Wenn man zwei beliebige zulässige<br />
Punkte x (0) von (LP 3) und y (0) von (LP 3 ∗ ) hat, gilt 0 ≤ z (0)T x (0) =: nµ 0 . Für x (0) > 0 und<br />
z (0) > 0 (komponentenweise) ist sogar z (0)T x (0) = nµ 0 > 0.
6 INNERE-PUNKT-METHODEN 65<br />
Formuliert man die Bedingung x T z = nµ > 0 für jede Komponente einheitlich zu x T j z j =<br />
µ, j = 1, . . . , n, bzw Xz = µ1l mit 1l = (1, . . . , 1) T bekommt man folgendes Problem, das den<br />
Innere-Punkte-Verfahren zugrunde liegt:<br />
⎛<br />
⎞<br />
Ax − b<br />
⎜<br />
F µ (x, y, z) := ⎝ A T ⎟<br />
y + z − c ⎠ = ! 0, x > 0, z > 0. (6.1.2)<br />
Xz − µ1l<br />
Da unter geeigneten Voraussetzungen zu jedem µ > 0 eine<br />
Lösung existiert, bildet die Menge dieser Punkte einen stetigen(!)<br />
zentralen Pfad ( x(µ), y(µ), z(µ) ) , der bei Variation des<br />
Parameters µ durchlaufen wird. Mit zulässigen Lösungen x (0) ,<br />
wie oben kennt man insbesondere einen (Start-) Punkt<br />
(<br />
x(µ0 ), y(µ 0 ), z(µ 0 ) ) mit µ 0 > 0 und kann versuchen, diesen<br />
y (0)<br />
bis zum Ziel, der Lösung ( x(0), y(0), z(0) ) zu verfolgen.<br />
x 2<br />
✻<br />
<br />
zentraler<br />
Pfad<br />
✁ ✁✁<br />
<br />
<br />
✲<br />
x 1<br />
Das Problem (6.1.2) läßt sich durch folgende Umformungen anders interpretieren. Aus den<br />
beiden letzen Gleichungen A T y + z − c = 0, x j z j = µ∀j eliminiert man z und x,<br />
z j = c j − a T j y, x j = µ µ<br />
=<br />
z j c j − a T , j = 1, . . . , n, (6.1.3)<br />
j<br />
y<br />
und reduziert das Problem (6.1.2) dadurch auf einen Satz von nichtlinearen Gleichungen<br />
g i (y) := b i − µ<br />
n∑<br />
j=1<br />
a ij<br />
c j − a T j y !<br />
= 0, i = 1, . . . , m. (6.1.4)<br />
Diese Umformung ist sehr hilfreich, denn g ist der Gradient der folgenden Funktion.<br />
Definition 6.1.1 Die Menge der dual strikt zulässigen Punkte<br />
Ŷ := {y ∈ R m : A T y < c}<br />
sei nicht leer. Für µ > 0 wird dort die (duale) Barrierefunktion b µ : Ŷ ↦→ R m definiert durch<br />
n∑<br />
b µ (y) := b T y + µ log(c j − a T j y).<br />
j=1<br />
Der Name Barrierefunktion veranschaulicht die Gestalt von b µ . Wenn sich y dem Rand von Ŷ<br />
nähert, also 0 < c j −a T j y → 0 geht für ein j, geht der Summand µ log(c j −a T j y) → −∞ und baut<br />
eine unüberwindliche Barriere (Graben) am Rand auf. Im Inneren von Ŷ ist b µ aber beliebig oft<br />
differenzierbar. Zum Zusammenhang mit g gilt tatsächlich<br />
∂b µ<br />
∂y i<br />
= b i − µ<br />
n∑<br />
j=1<br />
a ij<br />
c j − a T j y = g i(y), i = 1, . . . , m.
6 INNERE-PUNKT-METHODEN 66<br />
Die zweiten Ableitungen sind<br />
∂ 2 b µ<br />
∂y i ∂y k<br />
= −µ<br />
n∑<br />
j=1<br />
a ij a kj<br />
(a T j y − c , 1 ≤ i, k ≤ m.<br />
2<br />
j)<br />
Durch Einführung der nicht-negativen Diagonalmatrix N := diag((a T j y − c j) 2 ) ≥ 0 läßt sich die<br />
Hesse-Matrix dieser 2. Ableitungen einfach darstellen als<br />
H µ (y) = −µAN −1 A T . (6.1.5)<br />
Für y ∈ Ŷ ist (c j − a T j y)2 > 0, j = 1, . . . , m und daher N positiv definit, also ist −µAN −1 A T<br />
negativ definit, wenn A vollen Rang besitzt. Daher ist die Funktion b µ überall in Ŷ streng<br />
konkav.<br />
Satz 6.1.2 Es gelte Rang(A) = m, die Menge Ŷ sei nichtleer und beschränkt. Dann besitzt das<br />
Problem<br />
max b µ (y) : y ∈ Ŷ<br />
für jedes µ > 0 genau eine Lösung y(µ), die mit (6.1.3) Komponente einer Lösung von (6.1.2),<br />
F µ = 0, ist. Diese vollständige Lösung (x(µ), y(µ), z(µ)) heißt zentraler Pfad des primal-dualen<br />
Problems (6.1.1).<br />
Beweis Nach Voraussetzung existiert ein y (0) ∈ Ŷ . Da Ŷ beschränkt ist n.V., ist die Niveaumenge<br />
M := {y ∈ Ŷ : b µ(y) ≥ b µ (y (0) )} kompakt und b µ dort stetig. Also existiert eine Maximalstelle<br />
ŷ ∈ Ŷ . In dieser verschwindet der Gradient, g(ŷ) = 0. Nach dem Satz von Taylor gibt es daher<br />
zu jedem y ≠ ŷ, y ∈ Ŷ eine Zwischenstelle η ∈ Ŷ so, dass<br />
b µ (y) = b µ (ŷ) + g(ŷ) T (y − ŷ) + (y − ŷ) T H<br />
} {{ }<br />
µ (η)(y − ŷ) < b µ (ŷ).<br />
} {{ }<br />
=0<br />