28.04.2014 Aufrufe

Skript

Skript

Skript

MEHR ANZEIGEN
WENIGER ANZEIGEN

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 />

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!