Skriptum Mathematik des Operations Research 2011

Werbung
Einführung in die
Mathematik des Operations Research
Ulrich Faigle
Skriptum zur Vorlesung
Sommersemester 2011
Universität zu Köln
Universität zu Köln
Mathematisches Institut
Weyertal 80
[email protected]
www.zaik.uni-koeln.de/AFS
Inhaltsverzeichnis
Kapitel 0. Notationen und Terminologie
1. Lineare Algebra
2. Ordnungsrelationen
3. Topologie
4. Mathematische Optimierungsprobleme
3
3
5
6
8
Kapitel 1. Lineare Theorie
1. Lineare Funktionale, Polyeder, Konvexität
2. Die Stützfunktion
3. Stützpunkte und Seitenflächen
4. Dualität und Kegel
11
11
13
16
19
Kapitel 2. Lineare Ungleichungen und die Struktur von Polyedern
1. Zeilen- und Spaltenoperationen
2. Elimination nach Fourier-Motzkin
3. Die Struktur von Polyedern
25
25
25
31
Kapitel 3. Optimalitätsbedingugen
1. Notwendige Bedingung
2. Strafmethoden und Lagrangefunktion
3. Lagrange-Dualität
4. Barrieremethoden
41
41
46
54
57
Kapitel 4. Methoden der Linearen Programmierung
1. Rationale lineare Programme
2. Die Methode innerer Punkte (IPM)
3. Die Ellipsoidmethode
4. Die Simplexmethode
59
59
62
68
76
Kapitel 5. Unimodulare lineare Programme
1. Unimodulare und total unimodulare Matrizen
2. Total unimodulare lineare Programme
3. Zirkulationen und das MAX-Flow-MIN-Cut-Theorem
4. Kombinatorische Optimierung
89
89
93
97
101
Kapitel 6. Schnittebenenverfahren und Heuristiken
105
1
2
INHALTSVERZEICHNIS
1.
2.
3.
4.
Schnittebenen
Heuristische Verfahren
Enumeration
Relaxierung
105
111
113
114
KAPITEL 0
Notationen und Terminologie
1. Lineare Algebra
Für beliebige Mengen R und N notiert man die Menge aller Abbildungen
von N nach R so:
RN = {f : N → R}.
Für f ∈ RN und i ∈ N setzt man auch fi = f (i) und nennt fi die ite
Koordinate von f .
Besonders anwendungsrelevant sind die Skalarbereiche R = N, R = Z,
R = Q oder R = R, wo man die Elemente (Funktionen) in RN koordinatenweise miteinander addieren und mit Skalaren mutliplizieren kann.
Im Fall N = {1, . . . , n} schreibt man oft kurz: Rn = RN .
1.1. Vektoren und Matrizen. Die Elemente von Rn heissen n-dimensionale Parametervektoren. Im Skriptum wird ein solches x ∈ Rn typischerweise fett notiert und als Spaltenvektor verstanden:
 
x1
x =  ...  (xi ∈ R).
xn
Als Zeilenvektor wird der Parametervektor meistens transponiert notiert:
xT = [x1 , . . . , xn ].
0 = [0, . . . , 0]T ist der Nullvektor. Wenn der formale Unterschied zwischen
Spalten- und Zeilenvektor nicht so wichtig ist, wird ein Parametervektor
auch mit runden Klammern notiert:
x = (x1 , . . . , xn ).
Rm×n ist die Menge aller (m × n)-Matrizen. Ein A = [aij ] ∈ Rm×n kann
man entweder als n-Tupel von m-dimensionalen Spaltenvektoren A·j oder
als m-Tupel von n-dimensionalen Zeilenvektoren Ai· auffassen:

 

a11 . . . a1n
A1·
..  =  .. 
[A·1 , . . . , A·n ] =  ...
.
.
am1 . . . amn
Am·
3
4
0. NOTATIONEN UND TERMINOLOGIE
Für A = [a1 , . . . , an ] ∈ Rm×n und x = [x1 , . . . , xn ]T ∈ Rn notiert man die
entsprechende Linearkombination der Spaltenvektoren als
Ax = x1 a1 + . . . + xn an =
n
∑
xj aj .
j=1
Für y ∈ Rm ist yT A = (AT y)T die analoge Linearkombination der Zeilenvektoren von A.
Ist B = [b1 , . . . , bk ] ∈ Rn×k eine weitere Matrix, so kann man das folgende
Matrixprodukt bilden:
AB = [Ab1 , . . . , Abk ] ∈ Rm×k .
1.2. Analytische Geometrie. Rn kann man auch als Menge der Koordinatenvektoren eines n-dimensionalen Universums“ von Punkten“ anse”
”
hen. Geometrische Punkte P, Q kann man eigentlich“ nicht addieren oder
”
subtrahieren. Die Differenz Q−P der entsprechenden Koordinatenvektoren
ist aber mathematisch sinnvoll. Man fasst
−→
PQ = Q − P
dann als einen Vektor auf, der eine Wirkung“ beschreibt, die den Ortszu”
stand P in den Ortszustand Q verändert.
1.3. Affine und lineare Teilräume. Ein Hyperebene in Rn ist eine
Teilmenge der Form
H = {x ∈ Rn | aT x = b}
(a ∈ Rn \ {0}, b ∈ R).
Ein affiner Teilraum A ist ein Durchschnitt von Hyperebenen. Insbesondere
ist ∅ ⊆ Rn ein affiner Teilraum. Aus der linearen Algebra weiss man:
L EMMA 0.1. Für eine beliebige nichtleere Teilmenge S ⊆ Rn sind die
Aussagen äquivalent:
(0) S ist ein affiner Teilraum.
(1) Es gibt ein m ∈ N und eine Matrix A ∈ Rm×n und einen Vektor
b ∈ Rm so dass S = {x ∈ Rn | Ax = b}.
n
(2) Es gibt Vektoren
∑k v0 , v1 , . . . , vk ∈ R so, dass
S = {v0 + i=1 λi vi | λi ∈ R}.
(3) Für beliebige u, v ∈ S und Skalare α ∈ R gilt:
z = αu + (1 − α)v ∈ S.
⋄
Ein affiner Teilraum A heisst linear im Fall 0 ∈ A.
2. ORDNUNGSRELATIONEN
5
2. Ordnungsrelationen
2.1. Koordinatenordnung. Für Vektoren x = [x1 , . . . , xn ]T und y =
[y1 , . . . , yn ]T schreibt man
x≤y
⇐⇒
xi ≤ yi
für alle i = 1, . . . , n
x<y
⇐⇒
xi < yi
für alle i = 1, . . . , n.
und
N OTA B ENE : Bei dieser Ordnungsrelation gibt es (im Fall n ≥ 2) immer
Vektoren a, b ∈ Rn , die nicht miteinander vergleichbar sind, d.h.
a ̸≤ b
und
b ̸≤ a.
2.2. Lexikographische Ordnung. x ist lexikographisch kleiner (Notation: x ≺ y) als y, wenn es einen Index 1 ≤ ℓ ≤ n gibt mit der Eigenschaft
x ℓ < yℓ
und
xj = yj
für alle j < ℓ.
L EMMA 0.2. Für beliebige a, b ∈ Rn gilt genau eine der drei Aussagen:
(0) a = b
(1) a ≺ b
(2) b ≺ a.
⋄
2.3. Mengenoperationen.
2.3.1. Minkowski-Summe. Man kann Mengen im Rn z.B. folgendermassen addieren. Die Minkowski-Summe der Teilmengen S, T ⊆ Rn ist die
Teilmenge
S + T = {s + t | s ∈ S, t ∈ T } ⊆ Rn .
Im Spezialfall einer einelementigen Menge T = {t} erhält man die Translation von S um den Vektor t:
S + t = S + {t} = {s + t | s ∈ S}.
L EMMA 0.3. Die Minkowski-Summe zweier affiner Teilräume in Rn ist selber ein affiner Teilraum.
⋄
6
0. NOTATIONEN UND TERMINOLOGIE
2.3.2. Koordinatenprojektionen. Sei N = {1, . . . , n} und ∅ ̸= I ⊂ N .
Für x ∈ RN bezeichnet xI die Restriktion von x auf die Koordinaten in I.
In einer etwas lockeren (aber bequemen) Schreibweise haben wir dann:
[ ]
x
x = xN = I
mit J = N \ I.
xJ
Diese Schreibweise ist auch vorteilhaft bei allgemeiner Matrixnotation:
Ax = AN xN = AI xI + AN \I xN \I .
(Hier ist AI natürlich die Restriktion von A auf die I entsprechenden Spalten.)
Für beliebiges S ⊆ Rn erhalten wir die Projektion πI (S) von S auf die
Koordinatenmenge I als die Menge
πI (S) = {xI | x ∈ S} ⊆ RI .
B EISPIEL 0.1. Sei I = {2, 3, . . . , n}. Dann gilt für S ⊆ Rn :
πI (S) = {(x2 , x3 , . . . , xn ) | ∃x1 ∈ R : (x1 , x2 , x3 , . . . , xn ) ∈ S}.
3. Topologie
Sei (xk ) eine Folge von Vektoren xk ∈ R. Wir schreiben
xk → x bzw. x = lim xk ,
k→∞
wenn (xk ) (komponentenweise) gegen x ∈ Rn konvergiert. Bzgl. der euklidischen Norm
√
√
∥x∥ = xT x = x21 + . . . + x2n
kann man das auch so ausdrücken:
xk → x
⇐⇒
∥xk − x∥2 → 0.
Eine Menge S ⊆ Rn heisst abgeschlossen, wenn für jede Folge (xk ) mit
xk ∈ S gilt:
xk → x =⇒ x ∈ S.
S ist beschränkt, wenn es eine Schranke c > 0 mit der Eigenschaft
∥x∥ ≤ c ∀x ∈ S
gibt. Eine beschränkte und abgeschlossene Menge S ⊆ Rn ist kompakt.
3. TOPOLOGIE
7
3.1. Stetigkeit. Eine Funktion f : S → R heisst stetig, wenn für alle
x ∈ S und Folgen (xk ) mit xk ∈ S gilt:
xk → x
=⇒
f (xk ) → f (x).
Aus der Analysis weiss man:
L EMMA 0.4. Sei ∅ ̸= S ⊆ Rn kompakt und f : S → R stetig. Dann
existieren Punkte (Vektoren) xmin , xmax ∈ S mit der Eigenschaft
f (xmin ) ≤ f (x) ≤ f (xmax )
für alle x ∈ S.
⋄
Quadratische und lineare Funktionen. Offenbar sind Summen und Produkte stetiger Funktionen wieder stetig. Also ist insbesondere jede quadratische Funktion f : Rn → R, d.h. Funktion mit der Darstellung
f (x1 , . . . , xn ) =
n ∑
n
∑
aij xi xj −
i=1 j=1
n
∑
ck x k
k=1
für geeignete skalare Koeffizienten aij und ck , stetig. Im Fall aij = 0 für
alle i, j heisst eine quadratische Funktion linear.
In Matrixschreibweise kann man mit A = [aij ] ∈ Rn×n die Funktion f auch
so notieren:
f (x) = xT Ax − cT x.
3.2. Gradienten und Differenzierbarkeit. Sei S ⊆ Rn eine offene
Menge, f : S → R eine Funktion und x0 ∈ S ein Punkt, wo alle partiellen
Ableitungen von f existieren. Dann bezeichnet man den (Zeilen-)Vektor
der partiellen Ableitungen
[
]
∂f (x0 )
∂f (x0 )
∇f (x0 ) =
,...,
∂x1
∂x1
als den Gradienten von f an der Stelle x0 .
Sind die partiellen Ableitungen x 7→ ∂f (x)/∂xj stetige Funktionen (und
somit x → ∇f (x) eine stetige vektorwertige Funktion auf S), dann kann
man in jedem Punkt x0 zu jedem d ∈ Rn (mit den Komponenten dj ) die
Richtungsableitung von f mit Hilfe der Kettenregel berechnen:
f (x0 + td) − f (x0 ) ∑ ∂f (x0 )
=
dj = ∇f (x0 )d.
∂d f (x0 ) = lim
t→0
t
∂xj
j=1
n
8
0. NOTATIONEN UND TERMINOLOGIE
B EISPIEL 0.2. Sei A = [aij ] ∈ Rn×n eine symmetrische Matrix. Dann ist
die quadratische Funktion
x → f (x) = x Ax =
T
n ∑
n
∑
aij xi xj
i=1 j=1
auf Rn stetig differenzierbar und hat den Gradienten
[ n
]
n
∑
∑
∇f (x) = 2xT A =
2ai1 xi , . . . ,
2ain xi .
i=1
i=1
4. Mathematische Optimierungsprobleme
Ein Optimierungsproblem“ ist im allgemeinen umgangssprachlich nicht
”
so präzise formuliert, dass man es ohne weiteres mathematisch analysieren
(und lösen) kann. Es muss zuallerst in ein mathematisches“ Optimierungs”
problem umformuliert werden.
Zu einem mathematischen Optimierungsproblem gehören:
(1) eine Menge Ω (der sog. Zulässigkeitsbereich);
(2) eine Menge W (der sog. Wertebereich) und ausserdem eine Funktion f : Ω → W (die sog. Zielfunktion), welche die Elemente des
Zulässigkeitsbereichs bewertet.
In dieser Vorlesung nehmen wir meist an:
• W = R und Ω ⊆ Rn (für ein geeignetes n).
Die Optimierungsaufgabe ist dann so ausgedrückt:
max f (ω) oder
ω∈Ω
min f (ω).
ω∈Ω
Um mit Ω“ überhaupt rechnerisch umgehen zu können, muss der Zulässig”
keitsbereich numerisch spezifiziert werden. Oft sucht man dazu Funktionen
gi : Rn → R (i ∈ I), wobei I eine geeignete (endliche oder unendliche)
Indexmenge ist, mit der Eigenschaft
Ω = {x ∈ Rn | gi (x) ≤ 0 ∀i ∈ I}.
Die Funktionen gi (x) heissen in diesem Fall Restrikitionsfunktionen und
das mathematische Optimierungsproblem wird dann z.B.
maxn f (x)
x∈R
s.d. gi (x) ≤ 0 ∀i = 1, . . . , m.
Die Forderungen gi (x) ≤ 0 sind die sog. Nebenbedingungen des Problems.
B EMERKUNG. Die Formulierung eines Optimierungsproblems aus dem Anwendungsbereich als mathematisches Optimierungsproblem ist im allgemeinen auf
4. MATHEMATISCHE OPTIMIERUNGSPROBLEME
9
sehr viel verschiedene Arten möglich. Es ist nicht immer klar, welches die be”
ste“ ist.
B EISPIEL 0.3. Es gibt n Objekte mit Gewichten a1 , . . . , an . Es sollen möglichst viele Objekte gewählt werden, deren Gesamtgewicht die gegebene
Schranke b aber nicht überschreiten darf.
1. Formulierung: Repräsentiere die Objekte mit (0, 1)-Variablen xi und
der Zielfunktion
n
∑
f (x1 , . . . , xn ) = x1 + . . . + xn =
xi
i=1
und erhalte
max
n
∑
xi s.d.
i=1
n
∑
ai xi
≤
b
i=1
x1 , . . . , xn ∈ {0, 1}.
2. Formulierung:
maxn
x∈R
n
∑
i=1
xi s.d.
n
∑
ai xi
≤ b
i=1
xi (1 − xi ) = 0 (i = 1, . . . , n).
In dieser Formulierung hat man 2n + 1 viele auf dem gesamten Rn differenzierbare Restriktionsfunktionen (und damit entsprechend viele Nebenbedingungen):
n
(∑
)
g0 (x1 , . . . , xn ) =
ai xi − b
i=1
gi (x1 , . . . , xn ) = +xi (1 − xi ) (i = 1, . . . , n)
hi (x1 , . . . , xn ) = −xi (1 − xi ) (i = 1, . . . , n).
KAPITEL 1
Lineare Theorie
1. Lineare Funktionale, Polyeder, Konvexität
Eine skalarwertige Funktion f : Rn → R ist ein Funktional. Eine vektorwertige Funktion f : Rn → Rm besteht aus m Komponentenfunktionen
fi : Rn → R, die selber Funktionale sind:


f1 (x)
f (x) =  ...  .
fm (x)
Ein lineares Funktional auf Rn ist (bekanntlich) von der Form
f (x1 , . . . , xn ) = c1 x1 + . . . + cn xn = cT x
für einen geeigneten Koeffizientenvektor c = (c1 , . . . , cn ) und ist eine stetige Funktion. Also gilt für jedes z ∈ Rn :
• H(c, z) := {x ∈ Rn | cT x = z} = f −1 (z) ist eine abgeschlossene Menge.
• P (c, z) := {x ∈ Rn | cT x ≤ z} = f −1 (−∞, z] ist eine abgeschlossene Menge.
• f −1 (z, ∞) = {x ∈ Rn | cT x > z} ist eine offene Menge.
1.1. Halbräume und Polyeder. Im Fall c ̸= 0 ist H(c, z) eine Hyperebene, P (c, z) ist ein (abgeschlossener) Halbraum. f −1 (z, ∞) ist ein
offener Halbraum.
B EMERKUNG. Vereinbarungsgemäss werden der gesamte Raum Rn = P (0, 0)
und die leere Menge ∅ = P (0, −1) als triviale Halbräume mitgezählt.
Geometrische Terminologie. Ein affiner Raum ist ein Durchschnitt von
endlich vielen Hyperebenen. Auch Rn = H(0, 0) wird als affiner Raum
betrachtet.
Ein Polyeder ist ein Durchschnitt von endlich vielen Halbräumen. So sind
z.B. Rn und ∅ insbesondere Polyeder.
11
12
1. LINEARE THEORIE
Algebraische Terminologie. Ein affiner Raum ist die Lösungsmenge eines
linearen Gleichungssystems
a11 x1 + a12 x2 + . . . + a1n xn = b1
a21 x1 + a22 x2 + . . . + a2n xn = b2
..
..
.
.
am1 x1 + am2 x2 + . . . + amn xn = bm
In Matrixnotation mit A = [aij ] ∈ Rm×n und b ∈ Rm notieren wir den
affinen Lösungsraum auch als
H(A, b) := {x ∈ R | Ax = b} =
n
m
∩
H(aTi , bi ),
i=1
wobei die aTi die Zeilenvektoren der Matrix A sind.
Analog erhalten wir ein Polyeder als Lösungsmenge eines endlichen linearen Ungleichungssystems
a11 x1 + a12 x2 + . . . + a1n xn ≤ b1
a21 x1 + a22 x2 + . . . + a2n xn ≤ b2
..
..
.
.
am1 x1 + am2 x2 + . . . + amn xn ≤ bm
Wir notieren das Polyeder entsprechend auch als
P (A, b) := {x ∈ R | Ax ≤ b} =
n
m
∩
P (aTi , bi ).
i=1
B EMERKUNG. Aus der linearen Algebra weiss man, dass ein unendliches lineares
Gleichungssystem in n Variablen xj immer zu einem endlichen linearen Teilsystem
äquivalent ist (d.h. denselben Lösungsraum hat).
Vorsicht: Bei unendlichen linearen Ungleichungssystemen ist dies nicht notwendigerweise der Fall !!!
1.2. Konvexität. Eine Menge S ⊂ Rn ist konvex, wenn gilt
x, y ∈ S
λx + (1 − λ)y ∈ S
für alle reellen Paramter 0 ≤ λ ≤ 1.
Man macht sich leicht klar (Beweis?):
• Jeder Halbraum des Rn ist konvex.
• Beliebige Durchschnitte konvexer Mengen ergeben eine konvexe
Menge.
Da ebensolches auch für abgeschlossen“ gilt, finden wir:
”
2. DIE STÜTZFUNKTION
13
• Beliebige Durchschnitte von Halbräumen ergeben konevexe abgeschlossene Mengen. Insbesondere ist jedes Polyeder konvex und
abgeschlossen.
Zur Illustration betrachen wir ein (möglicherweise unendliches) lineares
Ungleichungssystem:
a11 x1 + a12 x2 + . . . + a1n xn ≤ b1
a21 x1 + a22 x2 + . . . + a2n xn ≤ b2
..
..
..
..
..
..
..
..
.
.
.
.
.
.
.
.
am1 x1 + am2 x2 + . . . + amn xn ≤ bm
..
..
..
..
..
..
..
..
.
.
.
.
.
.
.
.
Die Lösungsmenge des Systems besteht aus all den Parametervektoren x ∈
Rn , die jede einzelne dieser Ungleichungen erfüllen, also aus denjenigen
x, die im Durchschnitt sämtlicher entsprechender Halbräume liegen. Wir
sehen:
• Die Lösungsmenge eine beliebigen linearen Ungleichungssystems
mit n Variablen bildet eine konvexe abgeschlossene Teilmenge des
euklidischen Raums Rn .
B EMERKUNG. Die Lösungsmengen beliebiger linearer Ungleichungssysteme sind
nicht notwendigerweise Polyeder. Hier liegt der entscheidende Unterschied zur linearen Algebra:
Zu jedem n-dimensionalen linearen Gleichungssystem gibt es ein endliches Teilsystem mit demselben Lösungsraum. Bei linearen Ungleichungssystemen ist das aber
nicht immer der Fall.
2. Die Stützfunktion
Sei S ⊆ Rn eine gegebene Menge. Wir untersuchen nun Optimierungsprobleme mit linearer Zielfunktion. Das sind Probleme vom Typ
(1)
max cT x (mit c ∈ Rn ).
x∈S
Wir interessieren uns für die Optimalwerte und betrachten dazu die sog.
Stützfunktion δ(S, ·) : Rn → R := R ∪ {−∞, +∞} von S, wobei
{
−∞
wenn S = ∅
δ(S, c) :=
sup cT x sonst,
x∈S
14
1. LINEARE THEORIE
B EISPIEL 1.1 (Minkowskisummen). Minkowskisummation von Mengen reflektiert sich einfach in der Summation der Stützfunktionen:
δ(S + T, c) = sup{cT (s + t) | s ∈ S, t ∈ T }
= sup cT s + sup cT t
s∈S
t∈T
= δ(S, c) + δ(T, c).
Allgemein setzen wir weiter
S 0 := {c ∈ Rn | δ(S, c) < ∞}
= {c ∈ Rn | sT c ≤ δ(S, c) < ∞ ∀s ∈ S}
und
S := {x ∈ Rn | cT x ≤ δ(S, c) ∀c ∈ Rn }
= {x ∈ Rn | cT x ≤ δ(S, c) ∀c ∈ S 0 }.
Aus der Definition ersieht man sofort:
• S 0 und S sind Lösungsmengen linearer Ungleichungssysteme und
folglich konvex und abgeschlossen.
Ausserdem gilt für alle Teilmengen S, T ⊆ Rn :
S⊆T
=⇒
S ⊆ S ⊆ T und T 0 ⊆ S 0 .
Mengen dieses Typs spielen eine zentrale Rolle in der Optimierungstheorie.
Insbesondere für die (später noch zu diskutierende) diskrete Optimierung ist
die folgende einfache Beobachtung von enormer Wichtigkeit.
L EMMA 1.1. δ(S, c) = δ(S, c) für alle c ∈ Rn .
Beweis. Wegen S ⊆ S gilt sicher δ(S, c) ≤ δ(S, c). Andererseits gilt (nach der
Definition!)
cT x ≤ δ(S, c) für alle x ∈ S
und deshalb δ(S, c) ≤ δ(S, c).
⋄
2.1. Der Fundamentalsatz.
S ATZ 1.1 ( Fundamentalsatz“). Sei S ⊆ Rn nichtleer und c ∈ Rn . Dann
”
ist das Optimierungsproblem
max cT x
x∈S
2. DIE STÜTZFUNKTION
15
entweder nach oben unbeschränkt oder es existiert ein x∗ ∈ S mit der
Eigenschaft
cT x∗ = sup cT x = δ(S, c).
x∈S
Beweis. Sei Ω0 = {(x0 , x) ∈ Rn+1 | x ∈ S, x0 = cT x} der Graph der Funktion f (x) = cT x. Ω0 ist eine abgeschlossene Menge (Beweis?). Wir nehmen das
Optimierungsproblem als beschränkt an und setzen
δ ∗ := sup x0 = δ(S, c) < ∞.
x∈Ω0
Betrachten wir nun die Projektion von Ω0 auf R:
Π0 := {x0 | (x0 , x1 , . . . , xn ) ∈ Ω0 } ⊆ R.
Π0 ist als Projektion des Graphen der linearen Funktion f (x) abgeschlossen (Beweis?). Ausserdem ist Π0 nicht leer, da es (nach Annahme) einen Parametervektor
x̂ ∈ Ω0 gibt. Also ist
Ω̂0 = Π0 ∩ [x̂0 , δ ∗ ]
eine kompakte Menge und enthält somit das Element
x∗ = sup x0 = δ ∗
(d.h. Ω̂0 = [x̂0 , δ ∗ ]).
x0 ∈Ω̂0
Folglich existiert ein x∗ ∈ S mit cT x∗ = δ ∗ .
⋄
2.2. Der Trennungssatz. Sei S ⊆ Rn beliebig und y ∈
/ S. Dann gibt
es ein c ∈ Rn mit der Eigenschaft
(i) cT y > δ(S, c).
(ii) cT x ≤ δ(S, c) für alle x ∈ S (d.h. S ⊆ P (c, δ(S, c))).
In diesem Sinn trennt die Hyperebene
H(c, δ(S, c)) = {x ∈ Rn | cT x = δ(S, c)}
den Punkt y von der Menge S. Nach dem Fundamentalsatz existiert ausserdem ein x∗ ∈ S mit cT x∗ = δ(S, c). Wegen seiner grundlegenden Bedeutung formulieren wir diesen Zusammenhang als Satz.
S ATZ 1.2 ( Trennungssatz“). Sei S ̸= ∅ und y ∈ Rn \ S ein beliebiger
”
Punkt. Dann existiert ein Vektor c ∈ Rn und der Punkt x∗ ∈ S derart, dass
(i) cT y > cT x∗ , d.h. y ∈
/ P (c, cT x∗ ).
(ii) cT x ≤ cT x∗ für alle x ∈ S, d.h. S ⊆ P (c, cT x∗ ).
⋄
S ATZ 1.3. S ist die kleinste konvexe und abgeschlossene Menge, die S
enthält.
16
1. LINEARE THEORIE
Beweis. Sei S̃ die kleinste konvexe abgeschlossene Menge, die S enthält. Dann
gilt S̃ ⊆ S (denn Durchschnitte von konvexen und abgeschlossenen Mengen sind
immer konvex und abgeschlossen). Ausserdem ist sicherlich ist die Aussage des
Satzes im Fall S = ∅ richtig (denn es gilt ja: ˜∅ = ∅ = ∅).
Nehmen wir also S̃ ̸= ∅ an und unterstellen, dass ein y ∈ S \ S̃ existiert. Wir
wollen diese Unterstellung zu einem Widerspruch führen. Dazu wählen wir ein
R > 0 so gross, dass
S̃R = {x ∈ S̃ | ∥y − x∥ ≤ R} ̸= ∅.
Die Funktion f (x) = ∥x − y∥ ist stetig und S̃R kompakt (warum?). Also existiert
ein x∗ ∈ S̃, das f (x) minimiert und wir haben
0 < ∥y − x∗ ∥2 ≤ ∥y − x∥2
für alle x ∈ S.
Mit c := y − x∗ ergibt sich daraus
0 < (y − x∗ )T (y − x∗ ) = cT (y − x∗ ) und somit cT x∗ < cT y.
Wenn wir nun δ(S, c) = cT x∗ nachweisen können, haben wir (wegen y ∈ S und
somit cT y ≤ δ(S, c)) einen Widerspruch konstruiert.
Zu diesem Nachweis betrachten wir ein beliebiges x ∈ S \ {x∗ }, schreiben es in
der Form
x = x + λd mit ∥d∥ = 1 und λ > 0,
erschliessen
∥c∥2 ≤ ∥y − x∥2 = (c − λd)T (c − λd) = ∥c∥2 − 2λcT d + λ2
und folgern (nach Division durch 2λ)
λ/2 − cT d ≥ 0 und deshalb (mit λ → 0)
cT d ≤ 0.
Das bedeutet aber cT x = cT x∗ + λcT d ≤ cT x∗ . Da x beliebig war, finden wir
cT x ≤ cT x∗
für alle x ∈ S.
⋄
Aus Satz 1.3 ergibt sich insbesondere: Die konvexen abgeschlossenen Mengen des Rn sind genau die Lösungsmengen von (endlichen oder unendlichen) linearen Ungleichungssystemen mit n Variablen.
3. Stützpunkte und Seitenflächen
Wir nennen eine Hyperebene H(c, z) eine Stützhyperebene zur Menge S ⊆
Rn , wenn gilt:
(1) S ⊆ P (c, z) (d.h. S liegt ganz im entsprechenden Halbraum P (c, z).
(2) S ∩ H(c, z) ̸= ∅.
3. STÜTZPUNKTE UND SEITENFLÄCHEN
17
Die Punkte x∗ ∈ S ∩ H(c, z) heissen dann Stützpunkte und sind Optimallösungen des Problems
max cT x.
x∈S
T
∗
Insbesondere gilt c x = z = δ(S, c).
Generell nennen wir eine Teilmenge F ⊆ S eine Seitenfläche von S, wenn
es eine Hyperebene H = (c, z) gibt mit den Eigenschaften
F =S∩H
und S ⊆ P (c, z).
Damit schliessen wir ∅ und S als triviale Seitenflächen von S mit ein. Aus
der Sicht der Optimierung ist wichtig:
• Seitenflächen von S sind genau die Teilmengen F ⊆ S, die als
Lösungsmengen von linearen Optimierungsproblemen über S auftreten können.
(In der Sichtweise von Satz 1.2 ist also z.B. H(c, cT x∗ ) eine Stützhyperebene und x∗ ein Stützpunkt der Menge S.)
Ein Punkt x∗ ∈ S heisst Randpunkt der Menge S, wenn es eine Folge von
Punkten yk ∈ Rn \ S gibt mit der Eigenschaft yk → x∗ .
P ROPOSITION 1.1. Sei S ⊆ Rn eine Menge mit der Eigenschaft S = S und
x∗ ein Randpunkt von S. Dann ist x∗ ein Stützpunkt von S.
Beweis. Sei yk → x∗ mit y ∈
/ S. Dann existieren Vektoren ck und Skalare δk ∈ R
derart, dass für alle x ∈ S und k gilt:
cTk x ≤ δk < cTk yk .
OBdA dürfen wir ∥ck ∥ = 1 annehmen. Die ck liegen dann in der kompakten
Menge B1 (0) = {x ∈ Rn | ∥x∥ ≤ 1} und haben somit einen Häufungspunkt c∗ .
Also dürfen wir auch
ck → c∗
und somit
annehmen. Also ist
punkt.
(c∗ )T x = lim cTk x ≤ lim cTk yk = (c∗ )T x∗
H(c∗ , (c∗ )T x∗ )
k→∞
k→∞
eine Stützhyperebene und somit x∗ ein Stütz⋄
Die Randpunkte einer konvexen und abgeschlossenen Menge sind also mit
ihren Stützpunkten identisch.
Ü BUNG 1.1. Zeigen Sie anhand eines Beispiels, dass die Aussage der Proposition 1.1 falsch sein kann, wenn die Eigenschaft S = S nicht vorausgesetzt wird.
18
1. LINEARE THEORIE
L EMMA 1.2. Seien F1 und F2 Seitenflächen von S. Dann ist auch ihr Durchschnitt F = F1 ∩ F2 eine Seitenfläche von S.
Beweis. Im Fall F = ∅ ist die Behauptung per Definition richtig. Im Fall F ̸= ∅
nehmen wir oBdA an:
F1 = {x ∈ S | cT1 x = δ(S, c1 )}
F2 = {x ∈ S | cT2 x = δ(S, c2 )}
und setzen c = c1 + c2 . Offenbar gilt dann für jedes x ∈ S:
cT x ≤ δ(S, c1 ) + δ(S, c1 )
und somit
cT x = δ(S, c)
⇐⇒
cT1 x = δ(S, c1 ) und cT2 x = δ(S, c2 ),
d.h. F1 ∩ F2 ist eine Seitenfläche.
⋄
Ü BUNG 1.2. Zeigen Sie anhand eines Beispiels, dass die Vereinigung von
zwei Seitenflächen einer Menge keine Seitenfläche des Menge zu sein braucht.
Ein Punkt x0 ∈ S ist ein Extrempunkt, wenn F = {x0 } eine (ein-elementige) Seitenfläche von S ist.
B EMERKUNG. Bei Polyedern spricht man auch gerne von Eckpunkten anstelle
von Extrempunkten.
B EISPIEL 1.2. Die trivialen Seitenflächen der Einheitskugel (mit Mittelpunkt 0)
B1 (0) := {x ∈ Rn | ∥x∥ ≤ 1}
sind B1 (0) und ∅. Extrempunkte sind die Punkte v ∈ B1 (0) mit ∥v∥ = 1
als Schnittpunkte von B1 (0) mit den Tangential(hyper)ebenen
Hv = {x ∈ Rn | vT x = 1}.
Es gibt keine weiteren Seitenflächen.
Ü BUNG 1.3. Geben Sie ein Beispiel einer beschränkten konvexen Menge
S ̸= ∅ in R2 , die keine nichttrivialen Seitenflächen besitzt.
4. DUALITÄT UND KEGEL
19
4. Dualität und Kegel
Wir beweisen nun eine wichtige Dualitätsrelation. Dazu definieren wir zu
jedem S ⊆ Rn die konvexen und abgeschlossenen Mengen
S pol := {x ∈ Rn | sT x ≤ 1 ∀s ∈ S}
S ⊥ := {x ∈ Rn | sT x ≤ 0 ∀s ∈ S}.
S pol ist dies sog. Polare der Menge S. S ⊥ ist die zu S duale Menge. Offenbar hat man immer:
0 | S⊥
und S ⊥ ⊆ S pol .
B EISPIEL 1.3. Sei S = {s1 , . . . , sm } ⊆ Rn eine endliche Menge und A ∈
Rm×n die (m×n)-Matrix mit den m Zeilenvektoren s1 , . . . , sm . Dann haben
wir
S ⊥ = {x ∈ Rn | Ax ≤ 0}.
S ⊥ ist also eine Verallgemeinerung des Kerns ker A der Matrix A.
S ATZ 1.4 (Dualitätssatz). Sei S ⊆ Rn eine Menge mit 0 ∈ S. Dann gilt
(S pol )pol = S.
Beweis. (S pol )pol ist konvex und abgeschlossen und enthält S. Also gilt S ⊆
(S pol )pol (da S die kleinste konvexe abgeschlossene Menge ist, die S enthält). Nehmen wir an, die Enthaltenseinsrelation ist echt und ein y ∈ (S pol )pol \ S existiert.
Wir wollen daraus einen Widerspruch ableiten.
Wir wählen eine Hyperebene H(c, z), welche y von S trennt, mit z derart, dass
cT y > z > cT x
für alle x ∈ S.
Insbesondere gilt z > 0 (wegen 0 ∈ S). OBdA dürfen wir z = 1 annehmen. (Sonst
dividieren wir c und z durch z und erhalten ein c′ und z ′ = 1, die genausogut
funktionieren.)
Daraus folgt aber c ∈ S pol und deshalb cT y ≤ 1 (wegen y ∈ (S pol )pol ). Das ist
ein Widerspruch zu cT y > z = 1.
⋄
Ü BUNG 1.4. Zeigen Sie an einem Beispiel, dass die Aussage von Satz 1.4
im Fall 0 ∈
/ S falsch ist.
20
1. LINEARE THEORIE
4.1. Kegel. Wir nennen eine Menge K ⊆ Rn einen Kegel, wenn gilt
(K0) 0 ∈ K.
(K1) λx ∈ K für alle x ∈ K and Skalare λ > 0.
L EMMA 1.3. Sei K ⊆ Rn ein Kegel. Dann gilt
K pol = K ⊥
Insbesondere ist K pol = K ⊥ ein konvexer abgeschlossener Kegel.
Beweis. Wir beoachten zunächst, dass bei einem Kegel K immer gilt:
δ(K, c) < ∞
=⇒
δ(K, c) = 0.
Denn wegen 0 ∈ K haben wir auf jeden Fall δ(K, c) ≥ 0. Gäbe es ein x ∈ K mit
cT x > 0, dann kämen wir zu einem Widerspruch:
lim cT (λx) = (cT x) lim λ = +∞.
λ→+∞
λ→+∞
Also finden wir
K pol = {c ∈ Rn | cT x ≤ δ(K, c)} = {c ∈ Rn | cT x ≤ 0 ∀x ∈ K} = K ⊥ .
⋄
F OLGERUNG :
• (S ⊥ )⊥ ist der kleinste konvexe und abgeschlossene Kegel, der S
enthält.
• Der Kegel K ist genau dann konvex und abgeschlossen, wenn
K = (K ⊥ )⊥ .
4.1.1. Rezessionskegel. Der Rezessionskegel einer Menge ∅ ̸= S ⊆ Rn
ist die Menge
RK(S) := {y ∈ Rn | S + λy ⊆ S ∀λ ≥ 0}.
P ROPOSITION 1.2. Sei ∅ ̸= S ⊆ Rn die Lösungsmenge eines (endlichen
oder unendlichen) linearen Ungleichungssystems
Ax ≤ b
←→
ai1 x1 + ai2 x2 + . . . + ain xn ≤ bi
(i ∈ I).
Dann ist der Rezessionskegel von S gleich der Menge aller Lösungen des
zugeordneten homogenen Systems:
RK(S) = {y ∈ Rn | Ay ≤ 0} = A⊥ .
4. DUALITÄT UND KEGEL
21
Beweis. Offenbar gilt y + S ⊆ S für jedes y ∈ A⊥ . Umgekehrt bedeutet z ∈
/ AT ,
dass z (mindestens) eine Ungleichung
ai1 z1 + ai2 z2 + . . . + ain zn > 0
provoziert. Sei nun x ∈ S irgendeine zulässige Lösung von Ax ≤ b. Dann gilt
ai1 (x1 + λz1 ) + ai2 (x2 + λz2 ) + . . . + ain (xn + λzn ) > bi ,
wenn λ → ∞. Also hat man z ∈
/ RK(S).
⋄
S ATZ 1.5. Sei S ⊆ Rn konvex und abgeschlossen. Genau dann ist S unbeschränkt, wenn der Rezessionskegel von S nichttrivial ist.
Beweis. OBdaA nehmen wir S ̸= ∅ an. Existiert ein y ∈ RK(S) mit y ̸= 0, dann
ist S unbeschränkt, denn S enthält (per Definition) die Halbgeraden
{x + λy | λ ≥ 0}
für alle x ∈ S und y ∈ RK(S).
Sei umgekehrt S unbeschränkt und (xk ) eine Folge von Elementen xk ∈ S mit
∥xi ∥ → ∞. Wir schreiben die xk in der Form
xk = λi dk
mit λk ≥ 0 und ∥dk ∥ = 1.
und somit λk → ∞. Sei
Ax ≤ b
←→
ai1 x1 + ai2 x2 + . . . + ain xn ≤ bi
(i ∈ I)
ein Ungleichungssystem mit S als Lösungsmenge. Gilt Adk ≤ 0 für mindestens
ein k, dann ist ein nichttriviales Element im Rezessionskegel gefunden. Andernfalls betrachten wir die Parameter
εk := sup ai1 dk1 + ai2 dk2 + . . . + ain dkn .
i∈I
und den Limes d := limk→∞ dk , dessen Existenz wir oBdA annehmen dürfen
(warum?). Wegen λk → +∞ und Axk ≤ b muss gelten:
lim εk = 0
k→∞
und folglich
Ad ≤ 0.
Also gilt d ∈ RK(S). Wegen ∥d∥ = 1 ist RK(S) also nichttrivial.
⋄
B EISPIEL 1.4 (Lineare Gleichungssysteme). Lösungsbereiche linearer Gleichungssysteme sind Spezialfälle von Lösungsbereichen linearer Ungleichungssysteme:
{
ai1 x1 + . . . + ain xn ≤ ≤ bi
ai1 x1 + . . . + ain xn = bi ←→
−ai1 x1 − . . . − ain xn ≤ −bi
Auf diesen Spezialfall angewendet, besagt Satz 1.5, dass ein lineares Gleichungssystem Ax = b einen beschränkten Lösungsbereich hat, wenn gilt
ker A = {y ∈ Rn | Ay = 0} = A⊥ = {0}.
22
1. LINEARE THEORIE
4.2. Endlich erzeugte konvexe Mengen und Kegel. Seien a1 , . . . , am ∈
Rn beliebige Vektoren. Wir bezeichnen mit conv(a1 , . . . , am ) die Menge aller Vektoren z der Form
m
m
∑
∑
z=
yi ai mit y1 , . . . , ym ≥ 0 und
yi = 1.
i=1
i=1
Die Linearkombination z selber ist eine sog. Konvexkombination der Vektoren a1 , . . . , am .
B EMERKUNG. In der Wahrscheinlichkeitsrechnung bezeichnet man einen
Parametervektor y = (y1 , . . . , ym ) mit nichtnegativen Komponenten yi ≥ 0
und Komponentensumme 1 als eine Wahrscheinlichkeitsverteilung. In dieser Interpretation kann man die Konvexkombination
m
∑
z=
y i ai
i=1
als den Erwartungswert der Vektoren ai bzgl. der Wahrscheinlichkeitsverteilung y ansehen.
Mit cone(a1 , . . . , am ) bezeichnen wir die Menge aller nichtnegativer Linearkombinationen (das sind die sog. konischen Linearkominationen) , d.h.
aller Vektoren z der Form
m
∑
z=
yi ai mit y1 , . . . , ym ≥ 0.
i=1
Allgemeiner definiert für beliebiges S ⊆ Rn man die konvexe Hülle conv(S)
als die die kleinste konvexe Menge, die S enthält:
∩
conv(S) := {K ⊆ Rn | K konvex und S ⊆ K}.
Da jede konvexe Menge auch alle ihre Konvexkombinationen enthalten
muss ist conv{a1 , . . . , am }, wie oben definiert, sicherlich die kleinste konvexe Menge, die a1 , . . . , am enthält. Die allgemeine Begriffsbildung ist also
konsistent.
A BER : Wenn S ⊆ Rn unendlich ist, ist die konvexe Menge conv(S) nicht
notwendigerweise abgeschlossen (Beispiel?).
Unsere bisherige Analyse zeigt:
L EMMA 1.4. Sei A ∈ Rm×n die Matrix mit den m Zeilenvektoren aTi . Dann
gilt
(i) cone(AT )⊥ = {x ∈ Rn | Ax ≤ 0} = P (A, 0) = A⊥ .
(ii) P (A, 0) ist ein polyedrischer Kegel (d.h. ein Polyeder, das gleichzeitig ein Kegel ist).
4. DUALITÄT UND KEGEL
23
⋄
Wir werden später (genauer: im nächsten Kapitel) beweisen, dass konvexe
Mengen vom Typ conv(S) und cone(S) sogar Polyeder sind, wenn |S| < ∞
garantiert werden kann.
Polytope. Wir nennen eine konvexe Menge
P = conv(S) mit S ⊆ Rn endlich
ein Polytop. Polytope werden sich als in der Optimierungstheorie besonders
wichtige Polyeder erweisen.
B EISPIEL 1.5 (Symmetrische und positiv semidefinite Matrizen). Wir betrachten eine quadratische Matrix X = [xij ] ∈ Rn×n als einen Vektor mit
2
n2 Komponenten xij und können so Rn×n mit Rn identifizieren. X ist genau
dann symmetrisch, wenn das endliche lineare Gleichungssystem
(2)
xij − xji = 0
(1 ≤ i < j ≤ n)
erfüllt wird. Die Menge der symmetrischen Matrizen bildet also einen konvexen und abgeschlossenen polyedrischen Kegel (tatsächlich sogar einen
linearern Teilraum), nämlich genau die Lösungsmenge des (endlichen) linearen Systems (2).
Eine symmetrische Matrix X = [xij ] ∈ Rn×n heisst positiv semidefinit,
wenn für alle Parametervektoren a ∈ Rn gilt:
n ∑
n
∑
(3)
aT Xa =
ai aj xij ≥ 0.
i=1 j=1
Auch die Menge aller positiv semidefiniten Matrizen ist ein konvexer und
abgeschlossener Kegel als die Lösungsmenge des aus (2) und (3) zusammengesetzten unendlichen linearen Systems – aber im allgemeinen nicht
polyedrisch.
KAPITEL 2
Lineare Ungleichungen und die Struktur von Polyedern
Wir betrachten in diesem Kapitel endliche lineare Ungleichungssysteme
und deren Lösungsmengen (d.h. Polyeder). Wir erinnern daran, dass lineare Gleichungssysteme als Spezialfälle linearer Ungleichungssysteme aufgefasst werden können.
M AN B EACHTE : Ein lineares Ungleichungssystem Ax ≤ b lässt allerdings
sich typischerweise nicht mit dem Gauss’schen Algorithmus lösen!
1. Zeilen- und Spaltenoperationen
Sei A ∈ Rm×n eine Matrix. Wendet man die fundamentalen Operationen
der linearen Algebra auf die Zeilenvektoren von A an, so spricht man von
elementaren Zeilenoperation. Sie sind:
• Multiplikation eines Zeilenvektors aTi mit einem Skalar yi ̸= 0;
• Addition eines Zeilenvektors aTi zu einem Zeilenvektor aTi .
Bekanntlich lässt sich eine elementare Zeilenoperation algebraisch als Produkt P A mit einer (von links multiplizierten) invertierbaren Matrix P beschreiben. Das Produkt AP T (mit der von rechts multiplizierten transponierten Matrix P T ) beschreibt die analoge elementare Spaltenoperation.
Unter einem (r, k)-Pivot verstehen wir die Folge von elementaren Zeilenoperationen:
(1) Dividiere eine Zeile r durch ark ;
(2) Subtrahiere das aik -fache der neuen Zeile r von den übrigen Zeilen
i ̸= r.
N OTA B ENE : Genau im Fall ark ̸= 0 ist ein (r, k)-Pivot durchführbar.
2. Elimination nach Fourier-Motzkin
Die Methode von Fourier-Motzkin zur Lösung linearer Ungleichungssysteme beruht auf folgender Beobachtung. Zwei Ungleichungen vom Typ
(4)
(+1)x1 + a12 x2 + . . . +a1n xn ≤ b1
(−1)x1 + a22 x2 + . . . +a2n xn ≤ b2
25
26
2. LINEARE UNGLEICHUNGEN UND DIE STRUKTUR VON POLYEDERN
sind äquivalent zu
(5)
−b2 +
n
∑
a2j xj ≤ x1 ≤ b1 −
n
∑
j=2
a1j xj .
j=2
Ausserdem ist die Ungleichung
(6)
n
∑
−b2 +
a2j xj ≤ b1 −
j=2
n
∑
a1j xj .
j=2
äquivalent zur Summe der Ungleichungen in (4):
(7)
n
∑
(a1j + a2j )xj ≤ b1 + b2 .
j=2
L EMMA 2.1. Die Lösungen von (4) erhält man folgendermassen:
• Man bestimme eine Lösung (x2 , . . . , xn ) für (7)
und ergänze diese mit einem x1 , das (5) erfüllt.
Insbesondere ist (4) genau dann lösbar, wenn (7) lösbar ist.
Die Idee ist nun, nach der Variablen x1 der Reihe nach die übrigen Variablen
x2 , . . . , xn zu eliminieren. Am Ende erweist sich dann das System entweder
trivialerweise als unlösbar, weil man einen Widerspruch
0 ≤ b′ < 0
abgeleitet hat, oder man kann jede Lösung des Endsystems auf eine Lösung
von (4) (wie in Lemma 2.1 beschrieben) der Reihe nach zurückrechnen.
2.1. Das allgemeine Verfahren. Wir betrachten das lineare Ungleichungssystem
(8)
n
∑
aij xi ≤ bi
(i ∈ I)
j=1
mit endlicher Indexmenge I. Um z.B. x1 zu eliminieren, teilen wir I in die
Teilmengen I+ , I− und I0 danach auf, ob der Koeffizient ai1 von x1 positiv,
negativ oder 0 ist.
2. ELIMINATION NACH FOURIER-MOTZKIN
27
Wir dividieren die Ungleichungen in I+ ∪ I− jeweils durch |ai1 | > 0. Damit
erhalten wir das äquivalente System
n
∑
(+1)x1 +
a′sj xj ≤ b′s (s ∈ I+ )
j=2
(−1)x1 +
(9)
n
∑
a′tj xj ≤ b′t (t ∈ I− )
j=2
n
∑
aij xj ≤ bi
(i ∈ I0 )
j=2
und bemerken
(10)
(
max −
t∈I−
b′t
+
n
∑
a′tj xj
)
j=2
≤ x1 ≤ min
s∈I+
(
b′s
−
n
∑
a′sj xj
)
j=2
Nun ersetzen wir die Ungleichungen in I+ ∪ I− durch alle Summen von
Paaren und erhalten das System
n
∑
(a′sj + atj )xj ≤ b′s + b′t (s ∈ I+ , t ∈ I− )
(11)
j=2
n
∑
aij xj
≤
bi
(i ∈ I0 )
j=2
S ATZ 2.1. (x1 , . . . , xn ) ist genau dann eine Lösung von (8), wenn gilt
(i) (x2 , . . . , xn ) löst das lineare System (11);
(ii) x1 genügt der Bedingung (10).
⋄
B EMERKUNG. Die Bestimmung von x1 aus einer Lösung (x2 , . . . , xn ) von (11)
gemäss (10) heisst Rücksubstitution.
Zur Lösung des Ungleichungssystems (8) kann man nun so vorgehen:
(1) Man eliminiert der Reihe nach die Variablen x1 , . . . , xn ;
(2) Das Endsystem erkennt man entweder trivialerweise als unzulässig
oder zulässig. Im zulässigen Fall gelangt man vom Endystem der
Reihe nach durch Rücksubstitutionen zu einer Lösung von (8).
Mit der Methode von Fourier-Motzkin kann man im Prinzip jedes endliche
lineare Ungleichungssystem in endlich vielen Schritten lösen. Allerdings ist
das Verfahren in der Praxis oft sehr ineffizient. Denn:
• In einem Eliminationsschritt kann (beim Übergang von (9) zu (11))
die Anzahl der Ungleichungen sehr stark wachsen!
28
2. LINEARE UNGLEICHUNGEN UND DIE STRUKTUR VON POLYEDERN
B EMERKUNG. Wie der Gauss’sche Algorithmus beruht auch das FM-Verfahren
auf elementaren Zeilenoperationen: Addition von 2 Ungleichungen und Multiplikation einer Ungleichung mit einem Skalar. Allerdings werden bei der skalaren
Multiplikation (im Gegensatz zum Gauss-Verfahren) nur positive Skalare zugelassen.
2.1.1. Das Erfüllbarkeitsproblem. Wir rechnen über dem Zahlbereich
{0, 1} mit den Operationen
⊕ 0 1
0 0 1
1 1 1
⊙ 0 1
0 0 0
1 0 1
−
0 1
1 0
Eine Boolesche Funktion ist eine Funktion φ : {0, 1}n → {0, 1}. Es ist bekannt, dass eine Boolesche Funktion φ(x1 , . . . , xn ) in einer sog. konjuktiven
Normalform (KNF) dargestellt werden kann:
φ(x1 , . . . , xn ) =
m
∏
Ci ,
i=1
wobei die Klauseln Ci die Form haben
Ci = ai1 y1 ⊕ . . . ⊕ ain yn
mit aij ∈ {0, 1} und yi ∈ {xi , xi }.
B EISPIEL 2.1. φ(x1 , x2 , x3 ) = (x1 ⊕ x2 ) ⊙ (x1 ⊕ x2 ⊕ x3 ) ⊙ x3 .
E RF ÜLLBARKEITSPROBLEM : Man entscheide, ob die per KNF gegebene
Boolesche Funktion φ den Wert 1 annehmen kann. Das heisst: Kann eine
Belegung der Variablen gefunden werden derart, dass jede Klausel Ci den
Wert 1 annimmt?
Das Problem kann man mit Ungleichungssystemen modellieren. In der Klausel Ci = ai1 y1 + . . . ain yn ersetzen wir xj durch 1 − xj und haben dann das
Problem: Gibt es eine Lösung mit ganzahligen xj ∈ {0, 1} derart, dass
ai1 y1 + . . . ain yn ≥ 1 ?
B EISPIEL 2.2. Sei C = x2 ⊕ x5 ⊕ x7 . Dann ist C erfüllbar, wenn es eine
ganzzahlige (0, 1)-Lösung der Ungleichung
x2 + (1 − x5 ) + x7 ≥ 1
gibt.
←→
−x2 + x5 − x7 ≤ 0
2. ELIMINATION NACH FOURIER-MOTZKIN
29
Das Erfüllbarkeitsproblem fragt also nach einer ganzahligen (0, 1)-Lösung
des aus allen Klauseln gebildeten Ungleichungssystems.
2-SAT: Das Erfüllbarkeitsproblem für Boolesche Funktionen in KNF, bei
denen jede Klausel höchstens 2 Variablen enthält.
2-SAT kann mit dem FM-Verfahren effizient(!) gelöst werden. Um das einzusehen, betrachten wir das folgende typische Beispiel:
B EISPIEL 2.3 (Resolvente).
C1 = xk ⊕ xs
C2 = xk ⊕ xl
C = xs ⊕ xl
←→
−xk − xs
≤ −1
xk
− xl ≤ 0
− xs − xl ≤ −1
C ist die sog. Resolvente der Klauseln C1 und C2 . Offensichtlich sind C1
und C2 genau dann gleichzeitig erfüllt, wenn ihre Resolvente C erfüllt ist.
Im Ungleichungssystem entspricht C der Summe der aus C1 und C2 gewonnenen Ungleichungen.
M AN ERKENNT: Die Resolventenbildung resultiert in einer Klausel mit
höchstens 2 Variablen. Insgesamt sind aber sicher nicht mehr als 2n2 solcher Klauseln überhaupt möglich.
P ROPOSITION 2.1. Wendet man das FM-Verfahren auf ein 2-SAT-Problem
mit n Variablen an, so werden insgesamt höchstens 2n2 verschiedene Ungleichungen erzeugt.
⋄
B EMERKUNG. Für das allgemeine Erfüllbarkeitsproblem ist beim gegenwärtigen
Stand der Wissenschaft kein effizienter Lösungsalgorithmus bekannt.
2.1.2. Das Lemma von Farkas. Nehmen wir an, wir hätten das FMVerfahren auf das Ungleichungssystem
Ax ≤ b
angewandt und alle Variablen eliminiert. Dann haben wir insgesamt auf der
linken Seite den Nullvektor als nichtnegative Linearkombination der Zeilen
von A erzeugt. Ist y ≥ 0 der zugehörige Koeffizientenvektor, dann haben
wir die Situation
yT Ax = 0T x ≤ yT b.
Genau im Fall yT b < 0 liegt eine Widersprüchlichkeit vor. Das heisst:
Ax ≤ b erweist sich als unlösbar.
Daraus folgt die Aussage des Farkas-Lemmas:
30
2. LINEARE UNGLEICHUNGEN UND DIE STRUKTUR VON POLYEDERN
L EMMA 2.2 (Farkaslemma). Auf das lineare Ungleichungssystem Ax ≤ b
trifft genau eine der Aussagen zu:
(I) Ax ≤ b besitzt eine zulässige Lösung x;
(II) Es gibt einen Koeffizientenvektor y mit den Eigenschaften
y ≥ 0, yT A = 0T und yT b < 0.
⋄
2.2. Gültige und implizierte Ungleichungen. Man sagt, eine (lineare)
Ungleichung cT x ≤ z gilt für die Menge S (bzw. wird von der Menge S
impliziert), wenn gilt
cT s ≤ z
für alle s ∈ S,
d.h. wenn S ganz im Halbraum P (c, z) enthalten ist.
B EISPIEL 2.4. Sei Ax ≤ b ein lineares Ungleichungssystem mit A ∈ Rm×n
und y ∈ Rm
+ ein beliebiger nichtnegativer Koeffizientenvektor. Wir setzen
T
T
c := y A und wählen ein beliebiges z ≥ cT b. Dann ist cT x ≤ z gültig
für P (A, b). (Beweis?)
Ein für die allgemeine (auch nichtlineare!) Optimierungstheorie (enorm!)
wichtige Charakterisierung implizierter Ungleichungen folgt aus dem Farkaslemma:
S ATZ 2.2. Sei ∅ ̸= S = P (A, b). Genau dann ist cT x ≤ z von Ax ≤ b
impliziert, wenn ein y ≥ 0 existiert mit der Eigenschaft
cT = y T A
und
yT b ≤ z.
Beweis. Eine Richtung der Behauptung folgt aus Beispiel 2.4. Zum Beweis der
anderen Richtung nehmen wir an, cT x ≤ z sei impliziert, aber es gebe kein y der
behaupteten Art. Dann wäre das folgende System unlösbar:
AT y
−AT y
−Iy
bT y
≤
≤
≤
≤
c
−c
0
z.
Es gibt also (nach Farkas) nichtnegative Vektoren u, v, w ≥ 0 und einen Skalar
λ ≥ 0 derart, dass
uT AT − vT AT − wT + λbT = 0T
uT c − vT c − wT 0 + λz < 0.
Mit x := v − u folgt daraus:
Ax ≤ λb
und cT x > λz
3. DIE STRUKTUR VON POLYEDERN
31
und somit λ = 0. (Sonst würde Division durch λ > 0 ja zeigen, dass die Ungleichung cT x ≤ z gar nicht von Ax ≤ b impliziert ist!) Das bedeutet aber andererseits auch x ̸= 0.
Sei nun x∗ ∈ P (A, b). Dann gilt auch x∗ + tx ∈ P (A, b) für jedes t ≥ 0. Das
steht aber im Widerspruch der Gültigkeit von cT x ≤ z:
lim cT (x∗ + tx) = cT x∗ + (cT x) lim t = ∞
t→∞
t→∞
> z.
⋄
B EMERKUNG. In der Literatur wird auch die Aussage von Satz 2.2 als Farkas”
lemma“ bezeichnet.
3. Die Struktur von Polyedern
3.1. Endlich erzeugte Kegel und Polytope. Aus dem FM-Verfahrens
leiten wir zunächst ab, dass Projektionen von Polyedern wieder Polyeder
sind.
Sei N = {1, . . . , n} die Menge der Indizes des betrachteten Koordinatenraums und S ⊆ N eine feste Teilmenge. Zu einem gegebenen x ∈ RN
bezeichnen wir mit xS die Einschränkung von x auf die Koordinaten in S.
Ist X ⊆ RN eine beliebige Teilmenge, so nennen wir die Menge
XS = {xS | x ∈ X} ⊆ RS
die Projektion von X auf den Koordinatenraum RS .
L EMMA 2.3 ( Projektionslemma“). Die Projektion PS eines beliebigen Po”
lyeders P ⊆ RN ist ein Polyeder.
Beweis. Sei P die Lösungsmenge des Ungleichungssystems Ax ≤ b. Wir versuchen, dieses mit dem FM-Verfahren zu lösen und eliminieren zuerst die Variablen xi mit Index i ∈ N \ S. Dann ist PS = {xS | x ∈ P (A, b)} genau
die Lösungsmenge des vom FM-Verfahren bis dahin berechneten Ungleichungssystems Ãx̃ ≤ b̃, d.h.
PS = P (Ã, b̃).
⋄
Wir beweisen nun die fundamentale Aussage, dass endlich erzeugte konvexe Kegel und konvexe Mengen immer Polyeder sind.
S ATZ 2.3. Sei V = {v1 , . . . , vk } ⊆ Rn eine endliche Menge. Dann gilt
(a) Die Menge cone(V ) aller konischen Linearkombinationen ist ein
Polyeder.
(b) Die Menge conv(V ) aller Konvexkombinationen ist ein Polyeder.
32
2. LINEARE UNGLEICHUNGEN UND DIE STRUKTUR VON POLYEDERN
Beweis. Wir zeigen (a). (Die Behauptung (b) beweist man ganz analog.) Sei
P = cone(V ) = {
k
∑
λi vi | λ1 , . . . , λk ≥ 0}.
i=1
Wir bezeichnen mit I die Einheitsmatrix und bilden die Matrix V = [v1 , . . . , vk ]
mit den Spaltenvektoren vi . Nun betrachten wir die Menge P aller (n + k)-dimensionalen Vektoren (z, x) ∈ Rn+k derart, dass
Iz − V x = 0
x ≥ 0
(12)
P ist Lösungsmenge eines linearen Systems und somit ein Polyder. P ist die Projektion von P auf die z-Koordinaten und folglich auch ein Polyeder.
⋄
N OTA B ENE . Mit dem FM-Verfahren kann man eine Matrix B berechnen
mit der Eigenschaft
cone(V ) = P (B, 0),
indem man einfach die x-Variablen aus dem System (12) eliminiert. Ganz
analog ergibt sich aus dem FM-Verfahren eine Matrix C und ein Vektor b
mit der Eigenschaft
conv(V ) = P (C, b).
B EMERKUNG. Offen ist die Suche nach einer algorithmisch effizienteren Methode als das FM-Verfahren zur Berechnung einer Darstellung
cone(V ) = P (B, 0) bzw. conv(V ) = P (C, b).
Mit Hilfe des Projektionslemmas lässt sich ebenso zeigen:
P ROPOSITION 2.2. Die Minkowskisumme S = P + Q zweier beliebiger
Polyeder P, Q ⊆ Rn ist selber ein Polyeder in Rn .
Beweis. Übung.
⋄
3.2. Der Darstellungssatz von Weyl-Minkowski. Wir betrachten ein
beliebiges Polyeder P , das sich als Lösungsmenge eines endlichen Systems
von linearen Ungleichungen aTi x ≤ bi (mit Indexmenge I) schreiben lässt:
P = {x ∈ Rn | aTi x ≤ bi , i ∈ I}.
Wir betrachten zuerst den Spezialfall
• 0 ∈ P und folglich bi ≥ 0 für alle bi ∈ I.
3. DIE STRUKTUR VON POLYEDERN
33
Dividieren wir nun im Fall bi > 0 die entsprechende Ungleichung durch bi ,
so erhalten wir ein P definierendes System von Ungleichungen aTi x ≤ bi
mit bi ∈ {0, +1} es gibt also Matrizen A, B derart, dass
[ ]
[ ]
A
1
n
P = {x ∈ R |
x≤
},
B
0
wobei 1 = (1, 1, . . . , 1)T . Wir erinnern an die Polare:
S pol = {x ∈ Rn | sT x ≤ 1 für alle s ∈ S}.
Ist S endlich, so stellen wir uns S T als die Matrix mit den Zeilenvektoren
sT vor und erkennen dann die Polare als Polyeder
S pol = P (S T , 1).
L EMMA 2.4. Sei P ein Polyeder und A und B Matrizen mit der Eigenschaft
P = {x | Ax ≤ 1, Bx ≤ 0}.
Dann ist die Polare von P die Minkowskisumme des von den Zeilenvektoren
von A und dem Ursprung 0 bestimmten Polytops und des von den Zeilenvektoren von B erzeugten konvexen Kegels:
P pol = conv(AT , 0) + cone(B T )
Insbesondere ist P pol ein Polyeder (da die Minkowskisumme von Polyedern
nach Proposition 2.2 immer ein Polyeder ergibt).
Beweis. Ein Vektor c liegt in P pol genau dann, wenn die Ungleichung cT x ≤ 1
von dem linearen System
[ ]
[ ]
A
1
x≤
B
0
impliziert wird. Das ist genau dann der Fall, wenn es Vektoren y, z ≥ 0 gibt mit
der Eigenschaft
cT = yT A + zT B
und yT 1 ≤ 1.
Wegen AT y ∈ conv(AT , 0) und B T z ∈ cone(B T ) folgt dann
c ∈ P pol
⇐⇒
c ∈ conv(AT , 0) + cone(B T ).
⋄
34
2. LINEARE UNGLEICHUNGEN UND DIE STRUKTUR VON POLYEDERN
3.3. Der Dekompositionssatz.
S ATZ 2.4 (Weyl-Minkowski). Genau dann ist eine nichtleere Menge P ⊆
Rn ein Polyeder, wenn es endliche Mengen V, W ⊆ Rn gibt mit der Eigenschaft
(13)
P = conv(V ) + cone(W ).
Beweis. Da conv(V ) und cone(W ) Polyeder sind, ist deren Minkowskisumme ein
Polyeder. Die Bedingung ist also hinreichend. Wir beweisen die Notwendigkeit
und nehmen oBdA P ̸= ∅ an.
Wir betrachten zuerst den Fall 0 ∈ P . Dann kann P in der Form
P = {x | Ax ≤ 1, Bx ≤ 0}
ausgedrückt werden. Nach Lemma 2.4 ist Q = P pol ein Polyeder und wir finden
P = (P pol )pol = Qpol .
Wiederum aus Lemma 2.4 schliessen wir nun, dass P als Minkowskisumme einer
endlich erzeugten konvexen Menge und eines endlich erzeugten konvexen Kegels
ausgedrückt werden kann.
Im Fall 0 ∈
/ P wählen wir irgendein t ∈ P und betrachten die Translation (Minkowskisumme)
P = P + {−t}.
Wegen 0 ∈ P gibt es endliche Mengen V und W derart, dass
P = conv(V ) + cone(W ).
Nun verifiziert man leicht für V = V + {t} und W = W :
P = conv(V ) + cone(W ).
⋄
Aus dem Dekompositionssatz folgt sofort eine wichtige Charakterisierung
von Polytopen:
KOROLLAR 2.1. Ein Polyeder P ⊆ Rn ist genau dann ein Polytop, wenn
P beschränkt ist.
Beweis. Wir nehmen P = conv(V ) + cone(W ) an. Ist nun P beschränkt, so kann
W keinen Vektor w ̸= 0 enthalten. Daraus folgt die Darstellung
P = conv(V ) + {0} = conv(V ),
die P als Polytop erweist. Umgekehrt macht man sich leicht klar, dass ein Polytop
nicht nur ein Polyeder ist sondern auch beschränkt sein muss (Beweis?).
⋄
3. DIE STRUKTUR VON POLYEDERN
35
3.4. Dualität von Darstellungen. Der Satz von Weyl-Minkowski zeigt,
dass ein Polyeder P zwei zueinander duale Sichtweisen erlaubt:
I MPLIZIT:
E XPLIZIT:
P ist Lösungsmenge eines endlichen linearen Ungleichungssystems Ax ≤ b;
P ist die Menge aller Vektoren (bzw. Punkte), die von den
endlichen Mengen V und W gemäss (13) erzeugt werden.
Die Situation verallgemeinert damit die bei linearen oder affinen Teilräumen A ⊆ Rn bekannte. Einerseits ist A Lösungsmenge eines linearen Gleichungssystems Ax = b. Andererseits gibt es eine endliche Menge S =
{s1 , . . . , sk } derart, dass A die Menge aller affinen“ Linearkombinationen
”
k
∑
x = λ1 s1 + . . . + λk sk mit
λi = 1
i=1
ist. Die Umrechnung von einer Darstellung zur anderen ist im linearen/affinen Fall effizient möglich (z.B. mit dem Gauss-Verfahren).
N OTA B ENE . Im linearen (und affinen) Fall sind alle minimalen Erzeugendensysteme (Basen) gleichmächtig. Bei Ungleichungssystemen ist dies nicht notwendigerweise so!
Im allgemeinen Fall ist die Umrechnung nicht so einfach möglich. Wie der
Beweis des Dekompositionssatzes zeigt, ist im Prinzip eine Umrechnung
mit Hilfe des Fourier-Motzin-Verfahrens erreichbar. Diese Methode ist aber
nicht effizient. Ein effizienter Algorithmus für das Umrechnungsproblem ist
nicht bekannt.
Zur Illustration betrachten wir ein lineares Optimierungsproblem
max cT x s.d Ax ≤ b
mit dem Optimalwert −∞ < δ(P (A, b, c) < +∞. Haben wir die Darstellung
P (A, b) = P = conv(V ) + cone(W ),
so erhalten wir für die Stützfunktion
δ(P (A, b), c) = δ(conv(V ), c) + δ(cone(W ), c) = δ(conv(V ), c)
= δ(V , c) = δ(V, c)
= max cT v.
v∈V
F OLGERUNG :
• Im Fall V ̸= ∅ ist jede Ecke x∗ von P in V enthalten.
36
2. LINEARE UNGLEICHUNGEN UND DIE STRUKTUR VON POLYEDERN
(Denn: Die lineare Funktion f (x) = cT x, welche die Seitenfläche F =
{x∗ } bestimmt, wird ja in einem Element von V optimiert.)
3.5. Ecken von Polyedern. Wir betrachten ein Polyeder P = P (A, b)
in der Darstellung von Weyl-Minkowski:
P = conv(V ) + cone(W ).
und nehmen an, dass V nichtleer ist. (Den Fall V = ∅ untersuchen wir im
nächsten Abschnitt 3.5.1.) Wir wissen dann schon, dass die Ecken von P in
der Menge V enthalten sind. Also genügt es, sich auf Polytope zurückzuziehen und dort die Frage nach den Ecken zu untersuchen.
S ATZ 2.5 (Ecken von Polyedern). Sei V ̸= ∅ eine minimale Menge mit der
Eigenschaft
P = P (A, b) = conv(V ) + cone(W )
Dann ist V genau die Menge der Ecken von P .
Beweis. Wir dürfen oBdA P = conv(V ) annehmen. Wir haben schon gesehen,
dass im Fall V ̸= ∅ alle Ecken von P in V enthalten sind. Sei nun umgekehrt
v∗ ∈ V und V ′ = V \ {v∗ }. Wir setzen
P ′ = conv(V ′ ).
Aus der Minimalität von V folgt nun P ′ ̸= P und insbesondere v∗ ∈
/ P ′ (Beweis?). Der Hauptsatz über abgeschlossene konvexe Mengen garantiert somit eine
Hyperebene, die v∗ von P ′ trennt. D.h. es gibt einen Parametervektor c mit den
Eigenschaften
• cT x∗ > cT v für alle v ∈ V ′ .
v∗ ist somit der einzige Punkt in P , der f (x) = cT x über P maximiert. Folglich
ist v∗ eine Ecke von P .
⋄
KOROLLAR 2.2. Jedes Polytop ist die konvexe Hülle seiner Ecken.
⋄
3.5.1. Spitze Kegel. Wir betrachten nun den Fall eines polyedrischen
Kegels
K = cone(W ) = P (A, 0),
wobei A ∈ Rm×n eine geeignete Matrix ist. Wegen δ(K, c) ∈ {0, +∞}
ist klar, dass 0 ∈ K der einzige Kandidat für eine Ecke ist. Wir nennen K
spitz, wenn 0 tatsächlich eine Ecke ist.
S ATZ 2.6. Der polyedrische Kegel K ⊆ Rn ist genau dann spitz, wenn K
keinen nichttirivialen linearen Teilraum von Rn enthält.
3. DIE STRUKTUR VON POLYEDERN
37
Beweis. Ist K spitz, so gibt es ein c ∈ Rn derart, dass gilt:
cT x < 0
für alle x ∈ K \ {0}.
Dann kann K keinen nichttrivialen linearen Teilraum enthalten (da mit jedem
Punkt x eines linearen Teilraums auch der Punkt (−x) zu dem Teilraum gehört).
Ist K nicht spitz, so kann A nicht vollen Rang rgA = n besitzen. Sei nämlich
m
∑
T
c =
aTi
i=1
die Summe der Zeilenvektoren
von A. Dann ist cT x ≤ 0 eine für K gültige
Ungleichung, die nur von x = 0 mit Gleichheit erfüllt wird, wenn A vollen Rang
hat. Damit wäre aber 0 eine Ecke und folglich K spitz.
aTi
Also gilt rg(A) ≤ n − 1 und folglich ker A ̸= {0}. Wegen ker A ⊆ K enthält K
somit einen nichttrivialen linearen Teilraum von Rn .
⋄
3.6. Basislösungen. Wir betrachten ein System Ax ≤ b mit A ∈
R
und b ∈ Rm mit den einzelnen Ungleichungen
m×n
aTi x
←→
ai1 x1 + . . . + ain xn ≤ bi .
Einem x ∈ P (A, b) ordnen wir nun das Teilsystem der Ungleichungen zu,
das von x mit Gleichheit erfüllt wird:
J(x) := {i ∈ {1, . . . , m} | aTi x = bi }.
AJ(x) bezeichne die entsprechende (Zeilen-)Teilmatrix von A. Wir nennen
x ∈ P (A, b) eine (zulässige) Basislösung, wenn gilt
rg(AJ(x) ) = n.
L EMMA 2.5. Die Basislösungen x ∈ P (A, b) sind genau die Ecken von
P (A, b).
∑
∑
Beweis. Sei cT = i∈J(x) aTi und z = i∈J(x) bi . Dann ist cT x ≤ z sicherlich
eine gültige Ungleichung für P (A, b) (warum?). Folglich ist
F = {x ∈ P (A, b) | cT x = z} = {x ∈ P (A, b) | AJ(x) x = bJ(x) }
eine Seitenfläche mit x ∈ F . Da die Matrix AJ(x) vollen Rang n hat, kann F nur
einen Punkt enthalten.
Sei umgekehrt v ∈ P (A, b) eine Ecke und cT x ≤ z eine gültige Ungleichung mit
der Eigenschaft
{x ∈ P (A, b) | cT x = z} = {v}.
Damit ist die Gleichung cT x = z von dem System
Ax ≤ b, AJ(v) x = bJ(v)
38
2. LINEARE UNGLEICHUNGEN UND DIE STRUKTUR VON POLYEDERN
impliziert. Jeder Vektor w, der dieses System erfüllt, erreicht also den Wert
cT w = z.
Wir behaupten, dass ker AJ(v) = {0} gelten muss. Denn zu jedem anderen Vektor
d ∈ ker AJ(v) \ {0} könnten wir sicherlich ein ε > 0 finden mit der Eigenschaft
aTi (v + εd) = bi
wenn aTi v = bi
aTi (v + εd) ≤ bi
wenn aTi v < bi .
Damit hätten wir Aw ≤ b und AJ(v) w = bJ(v) und folglich cT w = z. Das
würde aber der Eckeneigenschaft von v widersprechen!
ker AJ(v) = {0} bedeutet nun, dass die Matrix AJ(v) vollen Spaltenrang n besitzt.
Also ist v eine Basislösung.
⋄
3.7. Nichtnegative Lösungen linearer Gleichungen. Wir interessieren uns für nichtnegative Lösungen linearer Gleichungssysteme d.h. für Polyeder P der Form
P = {x ∈ Rn | Ax = b, x ≥ 0},
(14)
wobei A ∈ Rm×n und b ∈ Rm . P ist also genau die Lösungsmenge von
Ax ≤ b
−Ax ≤ −b
−Ix ≤ 0.
Sei x ∈ P . Dann besteht J(x) aus allen Indizes, die den Zeilen von A entsprechen (da diese ja immer mit Gleichheit zu erfüllen sind). Dazu kommen
noch die entsprechenden Zeilen der (n × n)-Matrix (−I):
N (x) := {j ∈ {1, . . . , n} | xj = 0}.
Wir setzen weiterhin
B(x) = {j ∈ {1, . . . , n} | xj > 0}.
Also erhalten wir in diesem Kontext:
L EMMA 2.6. x ∈ P ist genau dann eine Basislösung des Systems
Ax = b, x ≥ 0,
wenn die Teilmatrix AB (x) der Spaltenvektoren Aj mit Index j ∈ B(x)
linear unabhängig sind, d.h. wenn
rg(AB(x) ) = |B(x)| = n − |N (x)|.
⋄
3. DIE STRUKTUR VON POLYEDERN
39
Für die lineare Programmierung (extrem!) wichtig ist der Umstand, dass
man ohne grosse Mühe eine gute Basislösung konstruieren kann, sofern
man schon eine gute Lösung hat.
S ATZ 2.7. Sei x(0) ∈ P = {x ∈ Rn | Ax = b, x ≥ 0} gegeben. Dann
kann man in höchstens n Iterationen eine Basislösung x ∈ P konstruieren.
Beweis. Wir bezeichen mit A0 x = b0 das lineare Gleichungssystem
Ax = b
und xj = 0
für alle j ∈ N (x(0) ).
Ist x(0) keine Basislösung, dann existiert ein d ̸= 0 derart, dass
A0 d = 0.
Dann gilt sicherlich
+ λd) = b für jedes λ ∈ R. Wegen d ̸= 0 gibt es
(0)
einen Index j1 ∈ B(x ) und ein λ1 ̸= 0 mit der Eigenschaft
A(x(0)
x(1) + λ1 d ∈ P
(1)
und xj1 = 0.
Daraus folgt |N (x(1) | ≥ |N (x(0) | + 1.
Nun gehen wir von x(1) in gleicher Weise aus und konstruieren der Reihe nach
Vektoren x(2) , x(3) , . . . bis eine Basislösung gefunden ist. Wegen
|N (x(0) | + k ≤ N (x(k) | ≤ n
werden wir nach weniger als n Schritten eine Basislösung gefunden haben.
⋄
Den Algorithmus im Beweis von Satz 2.7 kann man so modifizieren, dass
man eine Basislösung erhält, die bzgl. einer gegebenen Zielfunktion f (x) =
cT x mindestens so gut ist wie x(0) – sofern δ(P, c) endlich ist. Dazu versuchen wir, das modifizierte System
cT d = 1
A0 d = 0
zu lösen. Wenn eine Lösung d existiert, dann gilt für jedes λ ∈ R:
cT (x(0) + λd) = cT x(0) + λ.
Wegen δ(P, c) < ∞ gibt es somit ein λ1 > 0 derart, dass
x(1) = x(0) + λ1 d ∈ P
und
|J(x(1) | ≥ |J(x(0) | + 1.
Ausserdem gilt cT x(1) = cT x(0) + λ1 > cT x(0) . Wie zuvor können wir nun
ein x(2) versuchen zu konstruieren usw.
Existiert das gewünschte d mit cT d = 1 nicht, so haben wir
cT d = 0
für alle d ∈ ker A0 .
40
2. LINEARE UNGLEICHUNGEN UND DIE STRUKTUR VON POLYEDERN
Wir können dann den Algorithmus genau wie im Beweis von Satz 2.7 ausführen
und erhalten
cT x(0) = cT x(1) = cT x(2) = . . .
Der Zielfunktionswert verschlechtert sich also auf keinen Fall.
3.8. Der Satz von Carathéodory. Als Anwendung der garantierten
Existenz von Basislösungen leiten wir einen berühmten geometrischen Satz
ab.
S ATZ 2.8 (Carathéodory). Sei X ⊆ Rd eine beliebige nichtleere Menge von
Vektoren und z ∈ conv(X). Dann lässt sich z als Konvexkombination von
höchstens d + 1 Vektoren aus X darstellen.
Beweis. Seien x1 , . . . , xn ∈ X und y1 , . . . , yn so, dass
x1 y1 + . . . + xn yn = z, y1 + . . . + yn = 1
und y1 . . . , yn ≥ 0.
Dann ist y = (y1 , . . . , yn ) nichtnegative Lösung des obigen linearen Gleichungssystems mit d + 1 Zeilen. Also existiert auch eine entsprechende Basislösung y.
y hat als Basislösung höchstens d + 1 Komponenten y j ̸= 0 und liefert somit die
gewünschte Konvexkombination für z.
⋄
Ü BUNG 2.1. Zeigen Sie anhand eines Beispiels, dass eine Verbesserung“ der
”
Behauptung des Satzes 2.8 von d + 1“ auf d“ im allgemeinen nicht
”
”
möglich ist.
KOROLLAR 2.3. Sei X ⊆ Rd eine beliebige nichtleere Menge von Vektoren
und z ∈ cone(X). Dann lässt sich z als Kegelkombination von höchstens d
Vektoren aus X darstellen.
Beweis. Übung.
KAPITEL 3
Optimalitätsbedingugen
Wir betrachten ein mathematisches Optimierungsproblem der Form
min f (x)
(15)
x∈S
und nehmen an:
• Es gibt eine offene Teilmenge F ⊆ Rn , die den Zulässigkeitsbereich S enthält, und f : F → R ist eine stetig differenzierbare
Funktion.
Ein Vektor d ∈ Rn der Länge ∥d∥ = 1 heisst zulässige Richtung zum Punkt
x ∈ S, wenn es ein ε > 0 gibt derart, dass
x + td ∈ S
für alle 0 ≤ t ≤ ε.
1. Notwendige Bedingung
S ATZ 3.1. Sei d eine zulässige Richtung zu x ∈ S derart, dass ∇f (x)d <
0. Dann existiert ein t > 0 mit der Eigenschaft
y = x + td ∈ S
und
f (y) < f (x).
Insbesondere ist x keine Optimallösung des Optimierungsproblems (15).
Beweis. Sei ε > 0 so, dass [x, x + εd] ⊆ S gilt, und fd : [0, ε] → R definiert
durch
fd (t) := f (x + td) mit Ableitung fd′ (0) = ∇f (x)d.
Nach Voraussetzung haben wir fd′ (0) < 0. Somit ist t0 = 0 keine Optimallösung
für das Problem
min fd (t).
0≤t≤ε
Anders ausgedrückt: Es gibt ein y = x + td ∈ [x, x + εd] mit der Eigenschaft
f (y) = fd (t) < fd (0) = f (x).
⋄
KOROLLAR 3.1. Sei x∗ ∈ S eine Optimallösung des Problems (15). Dann
gilt notwendigerweise
∇f (x∗ )d ≥ 0
für alle zulässigen Richtungen d zu x∗ .
⋄
41
42
3. OPTIMALITÄTSBEDINGUGEN
1.1. Gradientenverfahren. Satz 3.1 liefert die Motivation für sog. Gradientenverfahren in der mathematischen Optimierung. Dabei versucht man,
das Problem (15) nach folgendem Muster zu lösen:
(1) Man bestimme (so man kann) ein Startelement x0 ∈ S.
(2) Man bestimme (so man kann) eine zulässige Richtung d ∈ Rn mit
∇f (x0 )d < 0.
(3) Man suche ein x1 ∈ S der Form x1 = x0 + td mit der Eigenschaft
f (x1 ) < f (x0 ).
(4) Nun verfährt man mit x1 wie eben mit x0 .
(5) Man wiederholt (so man kann) diese Prozedur so lange, bis man
ein xk ∈ S mit einem guten “ Wert f (xk ) gefunden hat.
”
In dieser Allgemeinheit kann man vorab keinerlei mathematische Garantie abgeben, dass ein Gradientenverfahren funktioniert. Dennoch zeigt die
Erfahrung, dass Gradientenverfahren (oder Verfahren, die nach einem ähnlichen Muster gestrickt sind) in der Praxis oft ganz passable Ergebnisse
produzieren können.
Wenn einem im konkreten Fall sonst nichts besseres einfällt, sollte man deshalb durchaus auch Gradientenverfahren für eine praktische Problemlösung
in Erwägung ziehen.
B EMERKUNG. Die Vorlesung wird auf eine weitere Detaildiskussion möglicher
Implementationen von Gradientenverfahren und deren Varianten nicht eingehen
können.
1.2. Hinreichende Bedingungen und Konvexität. Wir geben nun eine Klasse von Zielfunktionen an, bei denen die für Optimalität notwendige
Bedingung aus Korollar 3.1 auch hinreichend ist.
Die (nach wie vor als stetig differenziebar vorausgesetzte) Zielfunktion f :
F → R heisst S-konvex (oder einfach konvex, wenn der Kontext klar ist),
wenn gilt:
(i) S ist eine konvexe Menge.
(ii) f (y) − f (x) ≥ ∇f (x)(y − x) ∀x, y ∈ S.
S ATZ 3.2. Es sei die Zielfunktion f des Optimierungsproblems (15) konvex
und x∗ ∈ S ein beliebiger Punkt. Dann sind die beiden Aussagen äquivalent:
(i) x∗ ist eine Optimallösung.
(ii) Es gilt ∇f (x∗ )d ≥ 0 für alle zulässigen Richtungen d.
⋄
1. NOTWENDIGE BEDINGUNG
43
B EISPIEL 3.1. Sei S = Rn und x∗ ∈ S beliebig. Dann ist jeder Einheitsvektor (und seine Negation) eine zulässige Richtung. In diesem Fall reduziert
sich (ii) in Satz 3.2 auf die Eigenschaft
∂f (x∗ )
∇f (x∗ ) = 0T d.h.
= 0 (j = 1, . . . , n).
∂xj
Als Beispiel für Konvexität sei eine symmetrische Matrix A ∈ Rn×n gegeben. Wir betrachten die quadratische Funktion
f (x) = xT Ax
über dem Definitionsbereich F = Rn . Schreiben wir y = x+d, dann lautet
die Konvexitätsbedingung
dT Ad + 2xT Ad = f (x + d) − f (x) ≥ ∇f (x)d = 2xT Ad.
Also ist f (x) = xT Ax genau dann konvex, wenn gilt
dT Ad ≥ 0 für alle d ∈ Rn .
M.a.W.: f ist genau dann Rn -konvex, wenn A positiv semidefinit ist.
Ü BUNG 3.1. Man zeige:
(1) Jede konstante oder lineare Funktion f : Rn → R ist konvex.
(2) Sei p ∈ Rn fest und f (x) = ∥x − p∥2 . Dann ist f konvex.
(3) Seien f, g : F → R konvex und λ, µ ≥ 0 beliebige nichtnegative
Skalare. Dann ist h := λf + µg konvex.
Ü BUNG 3.2. Seien a < b reelle Zahlen und f : (a, b) → R stetig differenzierbar. Man zeige die Äquivalenz der Aussagen
(1) f ist konvex.
(2) Die Ableitungsfunktion f ′ ist monoton wachsend auf (a, b).
1.2.1. Das Regressionsproblem. Als Beispiel betrachten wir den folgenden Aufgabentyp:
• Man sucht die beste“ Lösung des linearen Gleichungssystems
”
Ax = b
nach dem Kriterium minimaler Fehlerquadrate.
Das soll heissen: Man sucht eine Lösung des Problems
min ∥b − Ax∥2 = bT b − 2bT Ax + xT AT Ax.
x∈Rn
Setzen wir cT = bT A und Q = AT A, dann ist das Problem äquivalent mit
1
minn f (x) = xT Qx − cT x.
x∈R
2
44
3. OPTIMALITÄTSBEDINGUGEN
Q = AT A ist positiv semidefinit und folglich f konvex. Also finden wir:
• x ∈ Rn löst das Regressionsproblem genau dann, wenn gilt:
Qx = c bzw. AT Ax = AT b.
Das Regressionsproblem reduziert sich also auf das Lösen des linearen
Gleichungssystems Qx = c.
B EISPIEL 3.2 (Interpolation). Seien von der Funktion f : R → R nur die
Werte yi = f (tj ) bei den Stützstellen t1 , . . . , tn bekannt. Man sucht eine
Linearkombination
m
∑
ˆ
f (t) =
âi fi (t)
i=1
von gegebenen Funktionen f1 (t), . . . , fm (t), die f an den Stützstellen tj
bestmöglich interpoliert. D.h. man will die beste Lösung â1 , . . . , âm des
folgenden linearen Gleichungssystems (in den Unbekannten a1 , . . . , am ):
a1 f1 (t1 ) + a2 f2 (t1 ) + . . . + am fm (t1 ) = y1
a1 f1 (t2 ) + a2 f2 (t2 ) + . . . + am fm (t2 ) = y2
..
..
..
..
.
.
.
.
a1 f1 (tn ) + a2 f2 (tn ) + . . . + am fm (tn ) = yn
Im Fall {f1 (t), f2 (t)} = {1, t} spricht man von linearer Regression und
nennt
fˆ(t) = â1 + â2 t
die Regressionsgerade. Im Fall {f1 (t), f2 (t), f3 (t)} = {1, t, t2 } erhält man
das quadratische Regressionspolynom
fˆ(t) = â1 + â2 t + â3 t2 .
B EISPIEL 3.3 (Fourier-Interpolation). Sei f : [0, L] → R eine periodische
Funktion mit f (0) = f (L). Dann bietet sich eine Interpolation von f mit
z.B. folgenden Baukasten von Funktionen an:
F = {cos(kωt), sin(kωt) | k = 0, . . . , m} (mit ω := 2π/L).
1. NOTWENDIGE BEDINGUNG
45
1.2.2. Allgemeine konvexe Funktionen. Eine möglicherweise nicht differenzierbare Funktion F → R heisst konvex, wenn gilt:
(1) F ⊆ Rn ist eine konvexe Menge.
(2) Für beliebige Punkte x, y ∈ F und Skalare 0 ≤ λ ≤ 1 gilt:
f (x + λ(y − x)) ≤ f (x) + λ(f (y) − f (x)).
Ü BUNG 3.3 (Epigraph). Sei F ⊆ Rn und f : F → R. Der Epigraph von f
ist definiert als die Menge
epi(f ) := {(z, x) | x ∈ F , z ≥ f (x)}.
M AN ZEIGE : Eine Funktion f ist konvex genau dann, wenn ihr Epigraph
epi(f ) eine konvexe Menge ist.
Man demonstriere ausserdem anhand eines Beispiels, dass die analoge Aussage bzgl. des Graphen von f falsch sein kann.
Man macht sich leicht klar, dass eine stetig differenzierbare konvexe Funktion f auch konvex im Sinne der allgemeinen Definition ist. Denn es gilt
dann für den Punkt z = x + λ(y − x) = y + (1 − λ)(x − y):
f (x) − f (z) ≥ ∇f (z)(x − z) = −λ∇f (z)(x − y)
f (y) − f (z) ≥ ∇f (z)(y − z) = (1 − λ)∇f (z)(x − y)
Multipizieren wir die erste Ungleichung mit (1 − λ) und die zweite mit λ,
dann ergibt deren Addition:
(1 − λ)f (x) + λf (y) − f (z) ≥ 0
d.h. die Eigenschaft (2) der Konvexität in der allgemeinen Definition.
1.3. Lineare Nebenbedingungen. Wir nehmen nun an, dass der Zulässigkeitsbereich S durch lineare Ungleichungen beschrieben ist:
S = P (A, b) = {x ∈ Rn | Ax ≤ b},
wobei A = [aij ] ∈ Rm×n und b = (b1 , . . . , bm )T ∈ Rm . Sei x ∈ S ein fester
Punkt. Wir betrachten die Menge aller Ungleichungen, die unter x scharf
sind:
J(x) := {i ∈ {1, . . . , m} | ai1 x1 + . . . + ain xn = bi }.
Ax ≤ b sei das Teilsystem von Ax ≤ b, das genau aus den Ungleichungen
mit Index i ∈ J(x) besteht. Nun ergibt d ̸= 0 offenbar genau dann eine
zulässige Richtung, wenn
Ad ≤ 0.
Nach dem Farkaslemma über implizierte Ungleichungen sind folgende Aussagen gleichwertig:
46
3. OPTIMALITÄTSBEDINGUGEN
(a) ∇f (x)d ≥ 0 ist von Ad ≤ 0 impliziert.
T
(b) Es gibt y ≥ 0 derart, dass yT A = −∇f (x).
S ATZ 3.3. Ist der Punkt x ∈ P (A, b) ist eine Optimallösung des Problems
min f (x) s.d.
Ax ≤ b,
dann gibt es notwendigerweise ein y ≥ 0 mit der Eigenschaft
∇f (x) + yT A = 0T .
⋄
KOROLLAR 3.2. Sei f konvex und x ∈ P (A, b). Dann sind äquivalent:
(i) Der Punkt x ist eine Optimallösung des Problems
min f (x) s.d.
Ax ≤ b,
(ii) Es gibt ein y ∈ RJ(x) mit der Eigenschaft
y≥0
und
∇f (x) + yT A = 0T .
⋄
2. Strafmethoden und Lagrangefunktion
Wir betrachten ein Optimierungsproblem mit m expliziten Nebenbedingungen:
(16)
min f (x) s.d.
g1 (x) ≤ 0, . . . , gm (x) ≤ 0,
wobei f, g1 , . . . , gm : Rn → R.
Die Idee ist nun, daraus ein Optimierungsproblem ohne explizite Nebenbedingungen zu machen. Um dennoch (hoffentlich) den Nebenbedingungen
zu genügen, werden der Zielfunktion Terme zugefügt, welche die Zielfunktion verschlechtern ( bestrafen“), wenn die Nebenbedingungen nicht einge”
halten werden. Dazu gibt es verschiedene Möglichkeiten.
B EISPIEL 3.4. Wir betrachten einen Strafparameter ρ > 0 und das Problem
min fρ (x) = f (x) + ρ
x∈Rn
m
∑
i=1
max{0, gi (x)}.
2. STRAFMETHODEN UND LAGRANGEFUNKTION
47
N OTA B ENE : Es ist keinesfalls immer garantiert, dass eine Optimallösung des
modifizierten Problems auch eine Optimallösung des Ausgangsproblems darstellt!
Klassisch“ ist die sog. Lagrangefunktion, die dem Optimierungsproblem
”
(16) folgendermassen zugeordnet wird:
(17)
m
∑
T
L(x, y) := f (x) + y g(x) = f (x) +
yi gi (x) (x ∈ Rn , y ∈ Rm
+ ).
i=1
2.1. Sattelpunkte und KKT-Bedingungen. Sei L : X × Y → R eine
beliebige reellwertige Funktion. Ein Punktepaar (x, y) ∈ X × Y ist ein
Sattelpunkt von L, wenn für alle x ∈ X und y ∈ Y gilt:
L(x, y) ≤ L(x, y) ≤ L(x, y).
(18)
Uns interessieren hier vor allem Sattelpunkte von Lagrangefunktionen, die
sich aus Optimierungsproblemen ergeben.
L EMMA 3.1. Ist (x, y) ein Sattelpunkt der Lagrangefunktion L des Problems (16), dann ist x eine zulässige Lösung und es gilt
L(x, y) = f (x) = min f (x).
g(x)≤0
Beweis. gi (x) > 0 ist unmöglich, da sonst die Sattelpunkteigenschaft
sup f (x) + yT g(x) ≤ f (x) + yT g(x) < ∞
y≥0
verletzt wäre. Also ist x eine zulässige Lösung. Gleichermassen finden wir
yT g(x) =
m
∑
y j gi (x) = 0
i=1
und folgern
f (x) = L(x, y) ≤ L(x, y) = f (x) ∀x ∈ Rn .
⋄
Ein Sattelpunkt (x, y) (sofern er existiert) muss also die Lagrangefunktion
L(x, y) in den x-Komponenten minimieren, d.h., es muss gelten
0T = ∇x L(x, y) = ∇f (x) +
m
∑
y i ∇gi (x).
i=1
Ausserdem muss die im Beweis festgestellte Eigenschaft des komplementären
Schlupfs erfüllt sein:
(19)
yT g(x) = 0 bzw. y i > 0 =⇒ gi (x) = 0 (i = 1, . . . , m) .
48
3. OPTIMALITÄTSBEDINGUGEN
Daraus ergeben sich die sog. KKT-Bedingungen1:
g(x)
∇f (x) + yT ∇g(x)
yT g(x)
y
(20)
≤
=
=
≥
0
0T
0
0.
Eine Lösung (x∗ , y∗ ) der KKT-Bedingungen heisst KKT-Punkt.
VORSICHT: Eine Lösung der KKT-Bedingungen ergibt nicht notwendigerweise
einen Sattelpunkt. Ausserdem sind die KKT-Bedingungen im allgemeinen weder
notwendig noch hinreichend für Optimalität. In der Praxis erhält man aber aus
KKT-Punkten oft recht gute Lösungen.
2.2. Lineare Nebenbedingungen. Setzen wir g(x) := Ax − b, dann
ist die Optimierungsaufgabe
min f (x)
(21)
x∈Rn
s.d. Ax ≤ b
(mit A ∈ Rm×n , c ∈ Rn , b ∈ Rm ) das Problem
min f (x)
x∈Rn
s.d. g(x) ≤ 0.
ist das lineare Programm gleichwertig mit der Aufgabe
min f (x)
x∈Rn
s.d. g(x) ≤ 0.
Die KKT-Bedingungen sind:
Ax
∇f (x) + yT A
yT (Ax − b)
y
≤
=
=
≥
b
0T
0
0.
S ATZ 3.4. Ein Punkt x ∈ P (A, b) erfüllt die notwendigen Optimalitätsbedingungen für (21) genau dann, wenn es ein y ≥ 0 gibt derart, dass (x, y)
ein KKT-Punkt ist.
Beweis. Wenn x ∈ P (A, b) die Optimalitätsbedingungen erfüllt, so gibt es einen
J(x)
Vektor y ∈ R+ mit der Eigenschaft
∇f (x) + yT A = 0T .
Wobei A die J(x) entsprechende Zeilenteilmatrix von A ist. Wir setzen y zu einem
Vektor in Rm
+ fort vermöge
y i := 0
1
nach Karush, Kuhn und Tucker
für alle i ∈
/ J(x).
2. STRAFMETHODEN UND LAGRANGEFUNKTION
49
Man sieht leicht(?), dass (x, y) nun ein KKT-Punkt ist.
Ist umgekehrt (x, y) ein KKT-Punkt, dann folgt aus den komplementären Schlupf:
yi > 0
=⇒
i ∈ J(x).
bzw.
Also haben wir (mit
aTi
y i = 0 für alle i ∈
/ J(x).
als den Zeilenvektoren von A)
−∇f (x) = yT A =
m
∑
∑
y i aTi =
i=1
y i aTi
i∈J(x)
und erkennen, dass die notwendige Optimalitätsbedingung aus Satz 3.3 erfüllt ist.
⋄
KOROLLAR 3.3. Sei f : P (A, b) → R konvex. Genau dann ist der Punkt
x ∈ P (A, b) optimal für das Problem (21), wenn es ein y gibt derart, dass
(x, y) ein KKT-Punkt ist.
⋄
Korollar 3.3 hat eine wichtige Konsequenz. Im Prinzip kann man ein konvexes Minimierungsproblem mit linearen Nebenbedingungen folgendermassen lösen:
(i) Formuliere die KKT-Bedingungen.
(ii) Berechne einen KKT-Punkt.
2.3. Ein paar Anwendungen. Als Illustration und Anwendung der KKTBedingungen leiten wir ein paar (auch in der Physik und Informationstheorie wichtige) Aussagen ab.
2.3.1. Entropie. Wir betrachten das Polytop
∆n := {x ∈ Rn+ | x1 + . . . + xn = 1}
aller n-dimensionalen Wahrscheinlichkeitsverteilungen. Einem x ∈ ∆n
ordnet man die Entropie (als Masszahl für den Ordnungszustand bzw. den
Informationsgehalt)
n
∑
H(x1 , . . . , xn ) := −
xj ln xj
j=1
zu (mit xj ln xj := 0 wenn xj = 0). Um abzuschätzen, wie gross die Entropie werden kann, betrachten wir das Optimierungsproblem
min −H(x)
x>0
s.d. x1 + . . . + xn = 1.
Die Funktion f (x) = −H(x) ist konvex (Beweis?) auf der Menge
∆>
n = {x ∈ ∆n | x > 0}.
50
3. OPTIMALITÄTSBEDINGUGEN
Die zugehörige Lagrangefunktion ist
n
n
∑
∑
L(x, y) =
xj ln xj + y − y
xj
j=1
(x > 0, y ∈ R)
j=1
und ergibt z.B. die KKT-Bedingung
∂L(x, y)
= 1 + ln xj − y = 0 (j = 1, . . . , n).
∂xj
Die Komponenten einer Optimallösung x∗ müssen also alle den gleichen
Wert
x∗j = ey−1
∑
annehmen. Wegen j x∗j = 1 ergibt sich x∗ = (1/n, . . . , 1/n) und die
maximale Entropie als
H(1/n, . . . , 1/n) = ln n.
B EMERKUNG. In der Informationstheorie definiert man die Entropie gewöhnlich
über den Logarithmus zur Basis 2 (d.h. log2 x anstelle des natürlichen Logarithmus
ln x).
2.3.2. Boltzmann-Verteilungen. Seien A1 , . . . , An sich gegenseitig ausschliessende Ereignisse, von denen eines garantiert mit einer gewissen Wahrscheinlichkeit eintritt. Wir nehmen an, dass uns der Eintritt von Aj durch
eine Beobachtungsvariable X signalisiert wird, die dann den Wert
X(Aj ) = wj
(j = 1, . . . , n)
annimmt. Wenn Aj mit der Wahrscheinlichkeit xj = Pr(Aj ) eintritt, ist der
Erwartungswert von X:
n
∑
(22)
E(X) =
wj Pr(Aj ) = w1 x1 + . . . wn xn .
j=1
Wir fragen: Welche ist unter allen Wahrscheinlichkeiten x ∈ ∆n mit dem
vorgegebenen Erwartungswert w = E(X) diejenige mit der grössten Entropie?
Die Frage führt uns auf das konvexe Optimierungsproblem
{
}
x1 + . . . + xn = 1
min −H(x) s.d.
w1 x1 + . . . + wn xn = w
x>0
und die KKT-Bedingungen
1 + ln xj = y1 + y2 wj
(j = 1, . . . , n)
und somit (im optimalen Fall)
x∗j = e(y1 −1)+y2 wj = ey1 −1 · eθwj = Kθ · eθwj
2. STRAFMETHODEN UND LAGRANGEFUNKTION
51
mit θ = y2 und Kθ = ey1 −1 . Da es sich bei x∗ um eine Wahrscheinlichkeitsverteilung handelt, ergibt sich die Konstante Kθ folgendermassen:
1=
n
∑
x∗j
= Kθ
j=1
n
∑
eθwj
=⇒
1
.
θwj
je
Kθ = ∑
j=1
Also finden wir die Form einer sog. Boltzmann-Verteilung:
(23)
x∗j = Kθ eθwj
(j = 1, . . . , n).
B EMERKUNG.Man kann zeigen, dass sich die Konstante θ eindeutig aus der Erwartungswertbedingung
n
∑
w = Kθ
wj eθwj
j=1
ergibt. In der Physik geht in die Masszahl θ die Temperatur T eines durch eine
Boltzmannverteilung beschriebenen Systems ein (T ∼ 1/θ). Die Parameter wj
entsprechen möglichen Energiezuständen des Systems.
2.3.3. Simulated Annealing. Boltzmannverteilungen lassen sich auf dem
Computer leicht simulieren. Aus diesem Umstand kann man Algorithmen
für diskrete Optimierungsprobleme gewinnen, die in der Praxis oft gute Erfolge zeigen (s. Übung 3.4). Solche Algorithmen sind unter dem Begriff
Simulated Annealing bekannt.
Ü BUNG 3.4. Es seien die numerischen Parameter w1 , . . . , wn ∈ R gegeben.
Dann ist der Boltzmann-Erwartungswert zur Temperatur“ T = 1/θ:
”
n
∑
b(θ) = Kθ
wj eθwj .
j=1
M AN ZEIGE :
lim b(θ) = max{w1 , . . . , wn } .
θ→∞
2.4. Lineare Programme. Generell ist ein lineares Programm ( LP“)
”
ein mathematisches Optimierungsproblem mit endlich vielen Nebebedingungen derart, dass
(1) die Zielfunktion linear ist und
(2) die Nebenbedingungen lineare Gleichungen oder Ungleichungen
sind.
Zum Beispiel ist das folgende Problem ein lineares Programm:
(24)
maxn cT x s.d. Ax ≤ b
x∈R
52
3. OPTIMALITÄTSBEDINGUGEN
(mit A ∈ Rm×n , c ∈ Rn , b ∈ Rm ). Dieses LP ist gleichwertig mit dem
konvexen Minimierungsproblem
min f (x)
x∈Rn
s.d. Ax ≤ b.
Die KKT-Bedingungen lauten:
Ax
AT y
cT x − b T y
y
≤
=
=
≥
b
c (←→ −cT + yT A = 0T )
0 (denn: (yT A)x − yT b = 0)
0.
S ATZ 3.5. Genau dann ist x ∈ Rn eine Optimallösung des linearen Programms (24), wenn es ein y gibt derart, dass (x, y) ein KKT-Punkt ist.
⋄
Man bemerke, dass im Fall linearer Programme die KKT-Bedingungen auf
ein endliches System linearer Ungleichungen (in den Unbekannten x und
y) führen. ALSO:
• Lineare Programme können im Prinzip mit dem Fourier-MotzkinVerfahren gelöst werden.
B EMERKUNGEN :
(1) Das FM-Verfahren ist nicht das effizienteste Verfahren zum Lösen
von linearen Programmen. (Geschicktere Methoden werden später
diskutiert werden.)
(2) Im allgemeinen führen KKT-Bedingungen nicht(!) auf lineare Ungleichungssysteme. KKT-Punkte sind deshalb typischerweise nicht
einfach zu berechnen.
B EISPIEL 3.5. Der kürzeste Vektor in einem Polyeder P (A, b) sei zu berechnen. Das entsprechende Optimierungsproblem
min f (x) = ∥x∥2 s.d. Ax ≤ b
∑
führt auf die (wegen xT x = j x2j quadratischen) KKT-Bedingungen
Ax ≤ b
x + y AT
= 0T
xT x + y T b = 0
y ≥ 0.
T
T
2. STRAFMETHODEN UND LAGRANGEFUNKTION
53
2.5. Das Newton-Verfahren. Sei F ⊆ Rk und F : F → Rℓ eine
beliebige Funktion. Man betrachtet das Nullstellenproblem
F (x) = 0
(25)
(x ∈ F).
B EISPIEL 3.6. Die KKT-Bedingungen führen z.B. auf folgendes Nullstellenproblem (in den Unbekannten (x, y)):
∇f (x) + yT ∇g(x) = 0T
yT g(x) = 0
(x, y) ∈ F .
mit F = {(x, y) ∈ Rn+m | g(x) ≤ 0, y ≥ 0}.
Newtons Methode versucht, das Nullstellenproblem (25) iterativ zu lösen.
Dabei beginnt man bei einem Startpunkt x0 ∈ F (den man irgendwie zu
konstruieren hat) und stoppt im Fall F (x0 ) = 0. Andernfalls sucht man
nach einem Lösungskandidaten ∆x für die Gleichung
F (x0 + ∆x) = 0
und
x0 + ∆x ∈ F .
Den bestimmt man dadurch, dass man das Gleichungssystem linear relaxiert. D.h. man wählt eine Matrix A0 in der Hoffnung
F (x0 + h) ≈ F (x0 ) + A0 h
und löst das linearisierte System
F (x0 ) + A0 h = 0
bzw. A0 h = −F (x0 ).
Ist h0 eine solche Lösung, so setzt man x1 = x0 + h0 und verfährt nun mit
x1 genauso wie eben mit x0 usw.
Auf diese Weise erzeugt man eine Folge x0 , x1 , . . . von Vektoren. Man
stoppt in Iteration K, wenn
F (xK ) ≈ 0
und
xK ∈ F .
B EMERKUNG. Obwohl man im allgemeinen (ohne starke Zusatzannahmen) keine Konvergenzgarantie geben kann, funktioniert die Methode in der Praxis überraschend gut.
B EISPIEL 3.7. Sei f (x) = x2 − 2 = 0 in der Variablen x ∈ R zu lösen. Die
Wahl Ak = f ′ (xk ) ergibt
hk =
−x2k + 2
2xk
und
xk+1 = xk + hk =
xk
1
+ .
2
xk
54
3. OPTIMALITÄTSBEDINGUGEN
2.6. Nichtlineare Nebenbedingungen. Bei allgemeinen Optimierungsproblemen der Form
min f (x) s.d. g(x) ≤ 0
sind die KKT-Bedingungen weder notwendig noch hinreichend für Optimalität. Trotzdem stellt man fest, dass KKT-Punkte oft (erstaunlich?) gute
Lösungen ergeben. Viele algorithmische Verfahren der nichtlinearen Optimierung sind nach dem Prinzip konstruiert, dass sie versuchen, KKT-Punkte
aufzuspüren2.
3. Lagrange-Dualität
Sei L : X × Y → R eine beliebige Funktion. Dann gilt für jedes Paar
(x, y) ∈ X × Y immer
min L(x, y) ≤ L(x, y) ≤ max L(x, y)
x
y
und damit allgemein die sog. schwache Dualitätsrelation
max min L(x, y) ≤ min max L(x, y).
(26)
y
x
x
y
Genau wenn (x, y) ein Sattelpunkt von L ist, wird Gleichheit und somit
starke Dualität erreicht:
(27)
max min L(x, y) = L(x, y) = min max L(x, y).
y
x
x
y
Die Suche nach einem Sattelpunkt ergibt unter diesem Aspekt zwei Teilprobleme:
P RIMALES P ROBLEM :
(28)
min L1 (x)
x
mit L1 (x) := max L(x, y)
y
D UALES P ROBLEM :
(29)
max L2 (y) mit
y
L2 (y) := min L(x, y)
x
In diesem Zusammenhang bedeutet die schwache Dualität:
L2 (y) ≤ L(x, y) ≤ L1 (x)
Also ist (x, y) genau dann ein Sattelpunkt, wenn gilt:
L2 (y) = L(x, y) = L1 (x)
2
Die Vorlesung hat leider nicht die Zeit, tief in die nichtlineare Optimierung
einzusteigen.
3. LAGRANGE-DUALITÄT
55
L EMMA 3.2. Ist L die Lagrangefunktion des Optimierungsproblems
s.d. g1 (x) ≤ 0, . . . , gm (x) ≤ 0,
min f (x)
dann ist das primale Langrangeproblem äquivalent zum Optimierungsproblem.
Beweis. Sei S = {x ∈ Rn | gi (x) ≤ 0, i = 1, . . . , m}. Es gilt
m
∑
L1 (x) = max f (x) +
yi gi (x) (y ≥ 0).
y
i=1
{
also haben wir
+∞ wenn x ∈
/S
f (x) wenn x ∈ S.
Also ist die Aufgabe, L1 (x) zu minimieren, gleichbedeutend mit der Aufgabe,
f (x) über S zu minimieren.
⋄
L1 (x) =
Das duale Lagrangeproblem ist im allgemeinen jedoch nicht äquivalent zum
ursprünglichen Optimierungsproblem. Seine Bedeutung für die Optimierung liegt in der folgenden Eigenschaft3:
• Eine Lösung des dualen Lagrangeproblems ergibt eine Untergrenze für den zu erwartenden Zielfunktionswert des ursprünglichen
Optimierungsproblems.
3.1. Dualität linearer Programme. Wir betrachten jetzt ein lineares
Programm in der sog. Normalform
min cT x s.d. Ax = b.
(30)
x≥0
Die zugehörige Lagrangefunktion ist nun
L(x, y) = cT x + yT (b − Ax) = yT b + (cT − yT A)x
für x ∈ Rn+ und y ∈ Rm .
B EMERKUNG. Man beachte, dass in dieser Formulierungs des LPs die dualen
”
Variablen“ y – wegen der Gleichheitsrestriktionen b − Ax = 0 im Vorzeichen
nicht beschränkt sind.
Die duale Lagrangefunktion ist
{
L2 (y) = min b y + (c − y A)x =
T
T
T
x≥0
−∞ wenn (cT − yT A) ̸≥ 0T
yT b wenn (cT − yT A) ≥ 0T
Das duale Lagrangeproblem kann im vorliegenden Fall also so formuliert
werden:
max bT y
(31)
3
s.d.
welche aus der schwachen Dualität folgt!
AT y ≤ c.
56
3. OPTIMALITÄTSBEDINGUGEN
M AN SIEHT: Das duale Problem ist wieder ein lineares Programm. Wir
nennen es das zu (30) duale lineare Programm.
Schwache Dualität impliziert für jede zulässige Lösung x von (30) und
zulässige Lösung y von (31):
bT y ≤ cT x.
(x, y) ist ein KKT-Punkt für (30) (bzw. für (31)), wenn gilt:
(1) x ist eine zulässige Lösung von (30).
(2) y ist eine zulässige Lösung von (31).
(3) Die Zielfunktionswerte sind gleich: bT y = cT x.
Insbesondere finden wir bei linearen Programmen:
• Ein KKT-Punkt löst immer zwei lineare Programme gleichzeitig
(nämlich das primale und das duale).
3.2. Der Hauptsatz der linearen Programmierung.
S ATZ 3.6 ( Hauptsatz der linearen Programmierung“). Für das lineare Pro”
gramm (30) (bzw. sein duales (31)) Gilt genau eine der drei Aussagen:
(1) Es existiert keine zulässige Lösung.
(2) Es existieren zulässige Lösungen mit beliebig gutem Zielfunktionswert.
(3) Es existiert (mindestens) ein KKT-Punkt (x, y) (und somit optimale Lösungen von (30) und (31) mit demselben Zielfunktionswert.
Beweis. Wir betrachten die Aussagen von der dualen Seite und setzen
S := {y ∈ Rm | AT y ≤ c} = P (AT , c).
Im Fall des Stützfunktonswerts δ(S, c) = −∞ gilt S = ∅ (d.h. Aussage 1 bzgl.
(31)). δ(S, c) = +∞ entspricht Aussage 2.
δ(S, y) < ∞ bedeutet im Fall S ̸= ∅, dass (31) eine Optimallösung y besitzt. Aus
den KKT-Bedingung wissen wir, dass dann auch eine Optimallösung x von (30)
existiert und (x, y) ein KKT-Punkt ist.
⋄
KOROLLAR 3.4. Das lineare Programm (30) (bzw. das lineare Programm
(31)) besitzt eine Optimallösung genau dann, wenn sowohl (30) als auch
(31) zulässige Lösungen besitzen.
Beweis. Die eine Richtung ist klar (welche?). Wir zeigen die andere Richtung der
Äquivalenzbehauptung. Seien x und y entsprechende zulässige Lösungen. Dann
ist die Aussage 1 des Hauptsatzes unzutreffend. Nach der schwachen Dualität gilt
ausserdem
cT x ≥ bT y.
4. BARRIEREMETHODEN
57
Die primale Zielfunktion ist also von unten und die duale Zielfunktion von oben
beschränkt. Damit scheidet auch Aussage 2 aus. Aussage 3 ergibt die Behauptung.
⋄
4. Barrieremethoden
Eine weitere Idee, ein Optimierungsproblem mit Nebenbedingungen auf ein
Optimierungsproblem ohne Nebenbedingungen zurückzuführen, besteht darin, durch eine Modifikation der Zielfunktion eine Barriere“ zu errichten,
”
der einen etwaigen Lösungsalgorithmus daran hindern würde, über den Zulässigkeitsbereich hinauszutreten.
Dazu gibt es verschiedene Ansätze. In dieser Vorlesung konzentrieren wir
uns auf eine Methode, die sich vor allem in der linearen Programmierung
bewährt hat.
4.1. Die Frisch-Funktion. Wir betrachten ein Optimierungsproblem
der Form
min f (x)
x≥0
s.d. Ax = b
mit A ∈ Rm×n und b ∈ Rm .
Die zugeordnete Frisch-Funktion ist die Funktion
(32)
fµ (x) = f (x) − µ
m
∑
ln xi ,
i=1
mit einem frei zu wählenden Parameter µ > 0. Tatsächlich ist fµ (x) nur für
solche x definiert, die in jeder Komponente xi strikt positiv sind. Je mehr
sich x dem Rand des Gebietes
Rn+ = {x ∈ Rn | x ≥ 0}
nähert, explodiert“ fµ (x) gegen +∞. Ein Algorithmus, der fµ (x) mini”
mieren will, wird sich also tunlichst im (strikten) Inneren von Rn+ aufhalten
wollen.
Wir betrachten nun das Optimierungsproblem
min fµ (x)
x>0
s.d. Ax = b
mit der Lagrangefunktion
Lµ (x, y) = fµ (x) + yT (b − Ax)
(x > 0, y ∈ Rm
+ ).
58
3. OPTIMALITÄTSBEDINGUGEN
Die KKT-Bedingungen sind (weil wir im strikten Inneren von Rn+ optimieren):
m
∂f (x)
µ ∑
−
−
yi aij = 0 (j = 1, . . . , n)
∂xj
xj
i=1
Ax = b
x > 0.
4.2. Lineare Zielfunktionen. Das lineare Programm
min cT x
x≥0
s.d. Ax = b
ergibt nach dem Ansatz von Frisch das Problem
m
∑
T
(33)
min c x − µ
ln xi s.d. Ax = b
x>0
i=1
Das Problem (36) ist nicht mehr linear – aber immer noch zumindest konvex. Die KKT-Bedingungen kann man dann so schreiben:
m
∑
(cj −
yi aij )xj = µ (j = 1, . . . , n)
i=1
Ax = b
x > 0.
Setzen wir weiter sT := cT − yT A zur Abkürzung, so erhalten wir die
KKT-Form
sj xj = µ (j = 1, . . . , n)
s + AT y = c
Ax = b
s, x > 0.
Sei (x, y, s) ein KKT-Punkt. Dann gilt (Beweis?):
(i) x ist eine zulässige Lösung des ursprünglichen linearen Programms.
(ii) y ist eine zulässige Lösung des dazu dualen linearen Programms.
Wie weit weicht cT x vom erzielbaren Optimalwert cT x∗ höchstens ab?
Die schwache Dualität liefert folgende Abschätzung:
0 ≤ cT x − cT x∗ ≤ cT x − yT b = sT x = nµ.
Bei einem kleinen µ ≈ 0 wäre also x eine schon fast optimale Lösung!
KAPITEL 4
Methoden der Linearen Programmierung
Wir betrachten ein lineares Programm in Normalform:
min cT x s.d. Ax = b, x ≥ 0.
(34)
Dabei ist A ∈ Rm×n eine geeignete Koeffizientenmatrix und c ∈ Rn und
b ∈ Rm sind geeignete Parametervektoren, die als bekannt vorausgesetzt
werden.
M AN BEACHTE : Jedes lineare Programm ist äquivalent zu einem LP in
Normalform, wenn wir zusätzliche nichtnegative Variablen einführen. Zum
Beispiel haben wir
max cT x ←→ min(−cT )x
x∈S
m
∑
x∈S
aij xj ≤ bi ←→ zi +
i=1
m
∑
aij xj = bi , zi ≥ 0.
i=1
Eine im Vorzeichen nicht beschränkte Variable xj kann durch die Differenz
−
von zwei nichtnegativen Variablen x+
j , xj ersetzt werden:
−
+
−
xj = x+
j − xj , xj ≥ 0, xj ≥ 0.
1. Rationale lineare Programme
Ein lineares Programm heisst rational, wenn es mit ausschliesslich rationalen Parametern ausgedrückt werden kann:
min cT x s.d. Ax = b, A ∈ Qm×n , c ∈ Qn , b ∈ Qm .
x≥0
Wenn wir die Restriktionsgleichungen und die Zielfunktion mit natürlichen
Zahlen multiplizieren, erhalten wir ein äquivalentes lineares Programm mit
demselben Lösungsbereich. Deshalb dürfen wir oBdA annehmen, dass ein
rationales LP in Normalform mit ganzzahligen Parametern vorliegt:
min cT x
x≥0
s.d. Ax = b, A ∈ Zm×n , c ∈ Zn , b ∈ Zm .
(Andernfalls multiplizieren wir die Restriktionsungleichungen und die Zielfunktion einfach mit geeigneten Hauptnennern durch.)
59
60
4. METHODEN DER LINEAREN PROGRAMMIERUNG
In der Anwendungspraxis wird man es immer(!) mit rationalen linearen Programmen zu tun haben, da irrationale Zahlen auf dem Computer immer gerundet werden müssen. Also machen wir fürderhin die Annahme:
• Alle von jetzt an betrachteten linearen Programme sind rational.
Für die Analyse dürfen wir weitherhin oBdA annehmen, dass A vollen Zeilenrang hat:
rgA = m.
(Sonst entfernen wir einfach linear abhängige Gleichungen bis ein linear
unabhängiges System mit demselben Lösungsraum erreicht ist.)
Im Fall n = rgA = m ist das lineare Programmierproblem trivial, da dann
Ax = b nur eine eindeutig bestimmte Lösung x∗ = A−1 b besitzt. Wir
werden also nur Probleme mit
m = rgA ≤ n − 1
genauer unter die Lupe nehmen müssen.
1.1. Komplexität rationaler linearer Programme. Wir betrachten das
(rationale) lineare Programm in Normalform
min cT x
x≥0
s.d. Ax = b
mit A = [aij ] ∈ Zm×n , c ∈ Zn und b ∈ Zm und rgA = m ≤ n − 1. Wir
setzen
γ(A, c, b) := min{k ∈ N | |aij | < 2k , |cj | < 2k , |bi | < 2k für alle i, j}
und nennen γ = γ(A, c, b) die (numerische) Komplexität des linearen Programms.
B EMERKUNG. γ(A, c, b) ist in etwa die Anzahl der Stellen, die benötigt werden,
um die Koeffizienten von A, c und von b jeweils in Binärdarstellung auszudrücken.
Die Komplexität γ hilft uns, wichtige Grobabschätzungen der zu erwartenden Grösse der Koeffizienten einer Optimiallösung oder des Wertes der
Zielfunktion vorzunehmen. Dazu benutzen wir die folgende Beobachtung.
L EMMA 4.1. Sei A ∈ Zm×m eine beliebige Matrix und γ = γ(A). Dann
gilt entweder det A = 0 oder
1 ≤ |det A| < 2m(γ+log2 m) .
1. RATIONALE LINEARE PROGRAMME
61
Beweis. Wir betrachten die Determinatenformel
∑
∑
|det A| = |
sgn(π)a1π(1) · · · amπ(m) | ≤
|a1π(1) · · · amπ(m) |
π∈Πm
π∈Πm
wobei Πm die Menge aller Permuationen der Indexmenge {1, . . . , m} ist. Also
finden wir (wegen m! ≤ mm ):
|det A| < m!(2γ )m ≤ mm 2γm = 2m(γ+log2 m) .
Da A ganzzahlig ist, ist auch det (A) eine ganze Zahl. Im Fall det (A) ̸= 0 haben
wir folglich |det (A)| ≥ 1.
⋄
B EMERKUNG. Lemma 4.1 besagt, dass |det (A)| eine kleine“ Zahl ist. Liest man
”
sie in Binärdarstellung in den Computer ein, hat man nicht mehr als
log2 (1 + |det (A)|) ≤ mγ + m log2 m
Stellen zu berücksichtigen.
1.2. Komplexität von Basislösungen. Sei z.B. x eine Basislösung. Dann
existiert eine (m × m)-Untermatrix AB mit der Eigenschaft
AB xB = b
bzw. xB = A−1
B b.
Rechnen wir die Komponenten von x nach der Cramerschen Regel aus, so
ergibt sich
|det ÂjB |
xj =
|det AB |
für alle j ∈ B(x).
Die übrigen Komponenten sind xj = 0, wenn j ∈ N (x). ÂjB ist dabei die
Matrix, die man aus AB erhält, wenn man die j-Spalte durch b ersetzt.
Damit ergibt sich für die einzelnen Komponenten xj der Basislösung x:
xj = 0
oder
2−m(γ+log2 m) ≤ xj ≤ 2m(γ+log2 m) .
Die nächste Beobachtung zeigt, dass wir bei rationalen linearen Programmen durchaus mit einer gewissen Fehlertoleranz rechnen dürfen.
L EMMA 4.2. Seien x und x̃ beliebige Basislösungen mit der Eigenschaft
|cT x − cT x̃| ≤
Dann gilt cT x = cT x̃.
1
4m(γ+log2 m)
62
4. METHODEN DER LINEAREN PROGRAMMIERUNG
Beweis. Es gibt ganze Zahlen c, D, c̃ und D̃ mit der Eigenschaft
c
c̃
und cT x̃ =
und |D|, |D̃| < 2m(γ+log2 m) .
D
D̃
Sind die beiden Zielfunktionswerte verschieden, so schliessen wir aus der Ganzzahligkeit der Parameter:
T
cD̃ − c̃D 1
1
T
c x − c x̃ = > m(γ+log m) .
≥
2
DD̃ |DD̃|
4
cT x =
⋄
F OLGERUNG Ist x∗ eine Basislösung, deren Zielfunktionswert cT x∗ vom
optimalen Wert z ∗ um höchstens
cT x∗ − z ∗ ≤ 4−m(γ+log2 m)
abweicht, dann muss x∗ schon eine Optimallösung sein!
Ganz analog sieht man:
L EMMA 4.3. Sei x eine beliebige Basislösung. Dann gilt
|cT x| < 2(m+1)(γ+log2 (m+1)) .
⋄
Wegen m + 1 ≤ n erhalten wir somit für Basislösungen x und deren nichttriviale Komponenten xj ̸= 0 die Abschätzungen (im Parameter n):
2−n(γ+log2 n) ≤ xj ≤ 2n(γ+log2 n)
und
|cT x| < 2n(γ+log2 n)
2. Die Methode innerer Punkte (IPM)
Wir betrachten die Aufgabe, ein lineares Gleichungssystem in n nichtnegativen Unbekannten xj lösen:
(35)
Ãx = b̃, x ≥ 0.
Zum Beispiel sind ja KKT-Systeme linearer Programme von diesem Typ.
Wir nehmen oBdA b̃ ̸= 0 an. (Sonst wäre ja x = 0 schon trivialerweise
eine Lösung.)
Wir wissen, dass (35) eine Basislösung gestattet, falls überhaupt eine Lösung
existiert. Also brauchen wir nur nach Lösungen x ≥ 0 zu suchen, deren
Komponenten beschränkt sind:
xj ≤ 2m(γ̃+log2 m)
(j = 1, . . . , n).
2. DIE METHODE INNERER PUNKTE (IPM)
63
Somit dürfen wir oBdA annehmen, dass der Lösungsbereich ein Polytop ist.
Ansonst würden wir die Koordinatenbeschränkung einfach in die Problemformulierung (35) mit zusätzlichen Variablen einbauen:
xj + zj = 2m(γ̃+log2 m) , zj ≥ 0.
Wir machen im Folgenden also (oBdA!) die Annahme, dass der zugehörige
Rezessionskegel trivial ist, d.h.:
• Ãx = 0 und x ≥ 0 impliziert x = 0.
2.1. Der Barriere-Ansatz. Wir machen einen (Barriere-)Ansatz mit
der Frisch-Funktion und erweitern (35) künstlich“ zu einem konvexen Op”
timierungsproblem, bei dem wir zumindest schon eine zulässige Lösung
kennen:
∑
min
x0 − µ nj=1 ln xj
s.d. Ã0 x0 +
Ãx
− b̃xn+1 =
0
(36)
x0 +
1T x
+ xn+1 = n + 2
x0 ,
x 1 , . . . , xn
,
xn+1 ≥
0.
Hier ist µ > 0, 1T = (1, 1, . . . , 1) und Ã0 := b̃ − Ã1. In der Tat ist
(x0 , x1 , . . . , xn+1 ) = (1, 1, . . . , 1)
offenbar eine zulässige Lösung für (36).
Wir suchen eine Lösung x∗ = (x∗0 , x∗1 , . . . , x∗n , x∗n+1 ) mit x∗0 = 0. Eine
solche Lösung x∗ wird automatisch x∗n+1 > 0 erfüllen. Denn sonst hätten
wir ja mit
(x∗1 , . . . , x∗n )
(wegen 1T x∗ = n + 2) einen nichttrivialen Vektor im Rezessionskegel von
(35) vorliegen. Folglich ist dann auch der Vektor
(x′1 , . . . , x′n ) mit
x′j := x∗j /x∗n+1
(j = 1, . . . , n)
wohldefiniert und eine Lösung des Ausgangsproblems (35). Gibt es eine
solche Lösung x∗ nicht, dann hat das Ausgangsproblem auch keine Lösung.
Der einfacheren Notation halber schreiben wir (36) als
min c x − µ
T
x≥0
n+1
∑
ln xj
s.d. Ax = b
j=0
mit z.B.
(
T
c x = x0
und
b=
)
0
.
n+2
64
4. METHODEN DER LINEAREN PROGRAMMIERUNG
Mit s := c − AT y erhalten wir die KKT-Bedingung zu (36) als
xj sj
Ax
T
A y + s
x, s,
(37)
=
=
=
≥
µ (j = 0, . . . , n + 1)
b
c
0
Diese wollen wir nun mit einem Iterationsverfahren im Geiste des Newtonverfahrens lösen.
2.2. Der Iterationsschritt. Als ersten Schritt relaxieren wir das KKTSystem (37) zu einem Gleichungsystem. Dazu lassen wir einfach die Ungleichungen x ≥ 0 und s ≥ 0 weg und erhalten das (quadratische) System
xj sj = µ (j = 0, . . . , n + 1)
Ax = b
AT y + s = c,
(38)
das wir für ein gegebenes µ > 0 lösen wollen. Seien Parametervektoren
x, y, s gegeben, welche das folgende Gleichungssystem erfüllen:
(39)
AT y +
Ax = b
s = c
N OTA BENE : Solche Parametervektoren gibt es immer! Wir können z.B. wählen
x0 = (1, 1, . . . , 1)T
y0 = (0T , −1)T
s
0
T
= (1 , 1, 2)
und folglich (nachrechnen!):
T
und haben dann sogar auch noch x0 > 0 und s0 > 0 garantiert.
Dann erfüllen x+ = x + ∆x, y+ = y + ∆y und s+ = s + ∆s das System
(38) genau dann, wenn das quadratische System
(40)
∆xj ∆sj + sj ∆xj + xj ∆sj = µ − sj xj (j = 0, . . . , n + 1)
A∆x =
0
T
A ∆y + ∆s =
0
erfüllt ist. Als Linearisierung des Systems lassen wir einfach die quadratischen Terme weg und berechnen Vektoren ∆x, ∆y und ∆s als Lösung
von
sj ∆xj + xj ∆sj = µ − sj xj (j = 0, . . . , n + 1)
A∆x =
0
(41)
T
A ∆y + ∆s =
0
L EMMA 4.4. Das System (41) besitzt immer eine Lösung.
2. DIE METHODE INNERER PUNKTE (IPM)
65
Beweis. Die zweite und dritte Zeile des System besagt:
(1) ∆x liegt im Kern ker A von A.
(2) ∆s liegt im Zeilenraum lin AT von A.
Die erste Zeile bedeutet:
√
√
s
x
µ1 − xs
∆x +
∆s = √
.
x
s
xs
Wir betrachten nun die linearen Unterräume
{√
}
s
U :=
∆x | ∆x ∈ ker A
x
{√
}
x
T
V :=
∆s | ∆s ∈ lin A
.
s
Offensichtlich gilt:
dim U = (n + 2) − rgA und
dim V = rgA.
Ausserdem sieht man leicht (nachrechnen!), dass die Vektoren in U und die Vektoren in V zueinander orthogonal sind. Also sind U und V orthogonale Komplemente:
U + V = Rn+2 .
Folglich gibt es insbesondere Vektoren u ∈ U und v ∈ V derart, dass
µ1 − xs
u+v = √
.
xs
⋄
Wir wollen nun Bedingungen ableiten, unter denen die Konvergenz zu einer
Lösung der tatsächlichen KKT-Bedingungen garantiert werden kann.
B EMERKUNG. Der Name innere Punkte“ kommt daher, dass wir nur mit Lösun”
gen x > 0 und s > 0 arbeiten werden, bei denen alle(!) Komponenten sj bzw. xj
echt positiv sind.
2.3. Konvergenzanalyse. Wir schreiben
√ bekanntlich u > 0, wenn alle
Komponenten ui echt grösser als 0 sind. u ist der Vektor mit den Kompo√
nenten ui . Das Produkt uv der Vektoren u, und v definieren wir als den
Vektor mit den Komponenten ui vi . Wir nehmen im folgenden x > 0 und y
mit s = c − AT y > 0 als gegeben an.
Wir messen die Qualität einer positiven approximativen Lösung (x, s) mit
dem Parameter
2
xs − µ1 1
= 1 ∥u + v∥2 .
δ = δ(x, s, µ) = √
µ
µ
xs Zur Analyse benötigen wir eine technische Hilfsaussage.
66
4. METHODEN DER LINEAREN PROGRAMMIERUNG
L EMMA 4.5. Für beliebige orthogonale Vektoren u, v ∈ Rk gilt:
1
∥uv∥ ≤ ∥u + v∥2 .
2
Beweis. Wegen uT v = 0 gilt ∥u−v∥2 = ∥u+v∥2 . Aus der allgemeinen Identität
4αβ = (α + β)2 − (α − β)2
folgt 4|uj vj | = |(uj + vj )2 − (uj − vj )2 | ≤ (uj + vj )2 + (uj − vj )2 und somit
∑
4∥uv∥ ≤ 4
|uj vj | ≤ ∥u + v∥2 + ∥u − v∥2 = 2∥u + v∥2 .
j
⋄
S ATZ 4.1. Sei µ > 0 und δ = δ(x, s, µ) ≤ 1. Dann gilt
(a) x+ = x + ∆x > 0 und s+ = s + ∆s > 0.
(b) δ + = δ(x+ , s+ , µ) ≤ 12 δ 2 .
Beweis. Nach Lemma 4.5 haben wir für jede Komponente j:
1
1
|∆xj ∆sj | = |uj vj | ≤ ∥uv∥ ≤ ∥u + v∥2 = µδ ≤ µ/2.
2
2
+
und folglich x+
j sj = µ + ∆xj ∆sj ≥ µ/2 > 0. Daraus ergibt sich (b):
+ +
2
uv 2
1
1
x
s
−
µ1
1
2 1
≤ √
√
δ = ≤ 2 · ∥u + v∥4 = δ 2 .
µ
µ µ/2 µ 4
2
x + s+
+
+
+ +
Aussage (a) sieht man so ein: Wäre x+
j < 0, dann auch sj < 0 (denn xj sj > 0).
Das ergäbe aber wegen xj > 0 und sj > 0 den Widerspruch
+
µ = xj sj + xj ∆sj + sj ∆xj = xj s+
j + sj xj − xj sj < 0.
⋄
Die Analyse zeigt bisher: Wenn man mit den Vektoren x0 > 0 und s0 > 0
beginnt und dann nach Newton iteriert, so gilt
δ0 = δ(x0 , s0 , µ) ≤ 1
=⇒
δk = δ(xk , sk , µ) ≤
1
→0
2k
d.h. man hat Konvergenz xk sk → µ1 und somit Konvergenz zu einer Lösung
von (37).
2. DIE METHODE INNERER PUNKTE (IPM)
67
2.4. Die erweiterte Methode IPM. Wir betrachten nun die Erweiterung der Methode, wo in jedem Iterationsschritt zusätzlich µ zu θµ mit einem geeigneten Faktor 0 < θ < 1 reduziert wird.
Wir nehmen δ(x, s, µ) ≤ 1 an und beobachten zunächst
√
(n + 2)µ = (x+ )T s+ = ∥ x+ s+ ∥2 .
Nun rechnet man
+ +
2
x
s
−
θµ1
1
√
δ(x+ , s+ , θ) =
θµ x+ s + 2
+ +
√
1 x
s
−
µ1
(1 − θ) x+ s+ + θ √
=
θµ x+ s + + +
2
2
√
1 x
s
−
µ1
1 +
+
θ √
=
(1 − θ) x s +
θµ
θµ
x+ s + (1 − θ)2
(n + 2) + θδ(x+ , s+ , µ)
θ
(1 − θ)2
θ
≤
(n + 2) +
(Satz 4.1(b)).
θ
2
=
B EMERKUNG. Die dritte Gleichheit folgt aus der Orthogonalität der Vektoren
( Satz des Pythagoras“).
”
KOROLLAR 4.1. Für θ∗ = 1 −
1
n+2
gilt:
δ(x+ , s+ , θ∗ µ) ≤
1
θ∗
+
≤1:
n+1
2
⋄
2.5. Konvergenz. Seien x0 ,s0 so, dass δ(x0 , s0 , µ0 = 1) ≤ 1 erfüllt ist.
Dann ist nach K Iterationen des IPM-Algorithmus der momentane µ-Wert
(θ∗ )K und es gilt
lim (θ∗ )K = 0.
K→∞
Sei nun irgendein Präzisionsparameter ε > 0 vorgegeben. Dann ist der momentane µ-Wert nach
⌈
⌉
(n + 2)
(42)
K = (n + 2) · ln
ε
Iterationen kleiner als ε/(n + 2)1. Für die entsprechende Iterationslösung
(xK , yK ) gilt dann
1
bei dieser Abschätzung benutzt man wieder die Ungleichung (1 − 1/n)n ≤ 1/e.
68
4. METHODEN DER LINEAREN PROGRAMMIERUNG
0 ≤ cT xK − bT yK = (xK )T sK ≤ ε.
(43)
2.6. Lösung des Systems Ãx = b, x ≥ 0. Sei γ die Komplexität des
linearen Programms
min x0
(44)
x≥0
s.d. Ax = b.
Eine optimale Basislösung x∗ von (44) hat die Eigenschaft
x∗0 = 0,
falls Ãx = b̃ überhaupt eine nichtnegative Lösung hat. Also genügt es, IPM
solange iterieren zu lassen bis ein Komponentenwert
1
xK
0 < n(γ+log2 n)
2
erzielt ist. Danach sucht man eine beliebige Basislösung x∗ mit x∗0 ≤ xK
0
nach der schon früher diskutierten Methode.
• Im Fall x∗0 = 0 ist das Problem gelöst (wie anfangs schon gesehen).
• Im Fall x∗0 ̸= 0 gibt es keine Lösung.
Wählen wir den Präzisionsparameter ε der IPM als
1
ε = n(γ+log n) ,
2
2
dann zeigen (42) und (43), dass wir nach spätestens
K = ⌈(n + 2)(log2 (n + 2) + n(γ + log2 n))⌉
d.h. (grössenordnungsmässig)
K = O(n2 (γ + log2 n))
Iterationen entweder unser Ziel erreicht haben oder wissen, dass keine Lösung
existiert.
3. Die Ellipsoidmethode
Die Ellipsoidmethode versucht, einen Punkt in einer abgeschlossenen konvexen Menge C ⊆ Rn zu identifizieren. Dabei nehmen wir an, dass C
Lösungsmengeeines (hier möglicherweise unendlichen) linearen Ungleichungssystem Ax ≤ b ist, dessen Zeilenindexmenge wir mit I bezeichnen:
C = {x ∈ Rn | Ax ≤ b}
(A ∈ RI×n , b ∈ RI ).
W IR NEHMEN AN : Es steht eine Subroutine2 SEP zur Verfügung, die bei
Eingabe eines Parametervektors x ∈ Rn folgendes produziert:
2
eine sog. Separationsroutine für C
3. DIE ELLIPSOIDMETHODE
69
(i) Im Fall x ̸∈ C eine Ungleichung aTk x ≤ bk , die von x0 verletzt
wird (d.h. aTk x > bk );
(ii) Im Fall x ∈ C die Bestätigung, dass x eine zulässige Lösung ist.
B EISPIEL 4.1. Sei I = {1, . . . , m} (d.h. C = P (A, b) ist ein Polyeder).
Dann ist z.B. folgender Vorgang eine zulässige Separationsroutine:
• Man setzt x ein und prüft der Reihe nach die m Ungleichungen
aTi x ≤ bi , bis eine verletzte Ungleichung aTk x > bk gefunden ist.
Findet sich keine verletzte Ungleichung, so ist x ∈ C bestätigt.
Die Idee hinter der Ellipsoidmethode ist recht einfach:
• Man beginnt mit einem Ellipsoid E, das so gross ist, dass es C
enthält. Man testet den Mittelpunkt t ∈ E auf Zugehörigkeit zu C.
• Im Fall (i) (d.h. aTk t > bk ) ersetzt man E durch ein kleineres Ellipsoid, das die Menge
E(a, b) = {x ∈ E | aTk x ≤ bk }
(⊇C!)
enthält und wiederholt den Vorgang bis ein x ∈ C gefunden ist.
B EMERKUNG. Die Frage erhebt sich, ob man nicht erfolgreich nach der gleichten Art mit anderen geometrischen Objekten (anstelle von Ellipsoiden) vorgehen
könnte. Es zeigt sich in der Tat, dass zum Beispiel spezielle Polytope (Simplexe)
einen analogen Algorithmus gestatten3. Vom rechnerischen Standpunkt aus sind
Ellipsoide jedoch etwas einfacher zu untersuchen.
3.1. Ellipsoide. Ein Ellipsoid E ist definiert als das Bild der Einheitskugel Bn ⊆ Rn unter einer affinen Transformation f (x) = F x + t, wobei
t ∈ Rn beliebig (aber fest) und F ∈ Rn×n invertierbar ist:
E = {t + F x | xT x ≤ 1} = {y ∈ Rn | (y − t)T Q−1 (y − t) ≤ 1},
wobei die Matrix Q = F F T positiv definit ist. t = f (0) ist der Mittelpunkt
von E.
L EMMA 4.6. Sei f : Rn → Rn eine beliebige affine Transformation und
S, T ⊆ Rn beliebige Mengen. Dann gilt:
((a) f (S) ist genau dann ein Ellipsoid, wenn S ein Ellipsoid ist.
(b) S ⊆ T ⇐⇒ f (S) ⊆ f (T ).
Beweis. Übung.
3
vgl. U. Faigle et al. in: Math. Models of Oper. Research 46 (1997), 131-142.
70
4. METHODEN DER LINEAREN PROGRAMMIERUNG
3.1.1. Das Löwner-Ellipsoid. Das Löwner-Ellipsoid4 ist das Bild EL
der Einheitskugel unter der affinen Transformation fL (x) = tL + FL x mit
(
)
(
)
1
n
n
n
T
tL =
, 0, . . . , 0 , FL = diag
,√
,..., √
.
n+1
n + 1 n2 − 1
n2 − 1
L EMMA 4.7. Das Löwner-Ellipsoid EL enthält alle Punkte x ∈ Bn mit
nichtnegativer erster Koordinate x1 ≥ 0:
{x ∈ Rn | xT x ≤ 1, eT1 x = x1 ≥ 0} ⊆ EL .
Beweis. Übung.
B EMERKUNG. Man kann zeigen, dass EL das kleinste Ellipsoid ist, das die Menge {x ∈ Rn | xT x ≤ 1, eT1 x ≥ 0} enthält.
3.1.2. Das allgemeine Löwner-Ellipsoid. Wir betrachten ein allgemeines Ellipsoid
E = {t + F x | xT x ≤ 1} = {y ∈ Rn (y − t)T Q−1 (y − t) ≤ 1}
und einen Halbraum H = P (aT , bt ) ̸= Rn mit bt = aT t (d.h. der Mittelpunkt t ∈ E liegt auf der zugehörigen Hyperebene). Wir suchen ein kleines
Ellipsoid E ′ , das die Menge
E(aT , bt ) = {y ∈ E | aT y ≤ bt }
enthält. Wir nehmen zuerst t = 0 (und somit bt = 0) an und setzen aT =
−aT F . Für y = F x hat man dann
aT y ≤ 0
⇐⇒
aT x ≥ 0
Wir setzen ferner r1 = a/∥a∥ und ergänzen r1 zu einer Orthonormalbasis,
die wir als Matrix R = [r1 , . . . , rn ] auffassen. Für die Variablensubstitution
z = RT x finden wir somit
aT y ≤ 0
⇐⇒
aT x ≥ 0
⇐⇒
eT1 z ≥ 0.
Für das aus dem Löwner-Ellipsoid EL abgeleitete Ellipsoid
E ′ = F (R(EL ))
haben wir (wegen RT = R−1 und x = Rz) deshalb
E(aT , 0) = {F x | x ∈ Bn , aT x ≥ 0}
= {F Rz | z ∈ Bn , eT1 z ≥ 0} ⊆ E ′ .
(45)
Im Fall t ̸= 0 leistet natürlich das Ellipsoid
E ′ = t + F (R(EL ))
4
Karl Löwner war 1928-1930 Mathematikprofessor in Köln.
3. DIE ELLIPSOIDMETHODE
71
das Gewünschte.
3.1.3. Aufdatierungsformeln. Es stellt sich heraus, dass man zur Bestimmung von E ′ die Matrix R im vorigen Abschnitt gar nicht explizit berechnen muss: Die positiv definite Strukturmatrix Q′ von E ′ kann direkt aus
der Strukturmatrix Q von E und dem Vektor a gewonnen werden. Um dies
zu sehen, schreiben wir die Strukturmatrix das Löwner-Ellipsoids EL als
)
(
n2
n2
n2
QL = diag
,
,..., 2
(n + 1)2 n2 − 1
n −1
[
]
2
n
2
=
I−
e1 eT .
2
n −1
n+1
Nun rechnet man
Q′ = (F RFL )(F RFL )T = F RQL RT A
[
]
n2
2
T
=
FR I −
e1 e1 R T F T
2
n −1
n+1
[
]
2
n
2
T
T T T
=
FF −
F Re1 e1 R F
n2 − 1
n+1
[
]
n2
2
T
=
Q−
bb
n2 − 1
n+1
mit
b = F Re1 =
−1
−Qa
T
√
.
F
F
a
=
∥F T a∥
aT Qa
Analog berechnet man den Mittelpunkt von E ′ als
t′ = t +
1
b.
n+1
3.2. Volumen. Wir definieren das Volumen einer kompakten konvexen
Menge S ⊆ Rn als
vol(S) =
max
v0 ,v1 ,...,vn ∈S
|det (v1 − v0 , . . . , vn − v0 )|.
Da det (x1 , . . . , xn ) stetig ist, ist dieses Volumen für kompakte Mengen
wohldefiniert (und endlich). Ausserdem macht man sich (aufgrund des Determinantenmultiplikationssatzes det (AB) = (det A)(det B)) sofort klar:
(0) S ⊆ T =⇒ vol(S) ≤ vol(T );
(i) Für jede affine Abbildung f (x) = t + F x gilt
vol(f (S)) = |det F | · vol(S) .
72
4. METHODEN DER LINEAREN PROGRAMMIERUNG
B EMERKUNG. Dieser Volumenbegriff ist etwas schwächer als der in der Geometrie übliche. Er reicht aber für unsere Zwecke völlig aus.
B EISPIEL 4.2. Sei Bn die Einheitskugel. Dann ergibt sich aus der Hadamardschen Ungleichung
|det (v1 − v0 , . . . , vn − v0 )| ≤
n
∏
∥vi − v0 ∥
i=1
die Abschätzung
vol(Bn ) ≤
n
∏
max
v0 ,v1 ,...,vn ∈Bn
∥vi − v0 ∥ ≤ 2n .
i=1
Mit dem Volumenbegriff können wir abschätzen, wie klein das LöwnerEllipsoid E ′ im Vergleich zu dem Ausgangsellipsoid E ist. Wegen det R =
±1 erhalten wir
vol(E ′ )
|(det F )(det R)(det FL )|vol(Bn )
=
= det FL ,
vol(E)
|det F |vol(Bn )
wobei
n
det FL =
n+1
(
n2
n2 − 1
)(n−1)/2
(
= 1−
1
n+1
)(
1
1+ 2
n −1
)(n−1)/2
Mit Hilfe der Ungleichung 1 + x ≤ ex finden wir nun
det FL ≤ e−1/(n+1) · e(n−1)/2(n
2 −1)
= e−1/2(n+1) < 2−1/2(n+1)
und fassen zusammen:
volE ′ ≤ 2−1/2(n+1) volE
3.3. Der Ellipsoid-Algorithmus. Wir nehmen an, dass wir eine Zahl
r > 0 kennen mit der Eigenschaft
C ⊆ E0 = {x ∈ Rn | xT x ≤ r2 }.
Wir starten die Ellipsoidmethode mit dem Ellipsoid E0 und iterieren folgendermassen:
• Verletzt der Mittelpunkt tk des aktuellen Ellipsoids Ek die für abgeschlossene konvexe Menge C gültige Ungleichung aT x ≤ b,
dann setzen wir bt = aT tk und wählen als Ek+1 das entsprechende Löwnerellipsoid
Ek+1 ⊇ Ek (a, bt ) ⊇ C.
3. DIE ELLIPSOIDMETHODE
73
P ROPOSITION 4.1. Sei vol(C) > 0. Dann ist nach
K ≤ 2(n + 1)[n + n log2 r − log2 vol(C)]
Iterationen ein Ellipsoid EK gefunden mit Mittelpunkt tK ∈ C.
Beweis. Ist nach K Iterationen noch kein zulässiges tK ∈ C gefunden, so gilt
wegen C ⊆ EK :
0 < vol(C) ≤ vol(EK ) ≤ 2−K/2(n+1) vol(E0 ) ≤ 2n log2 2r−K/(2(n+1)
und folglich log2 vol(C) ≤ n log2 (2r) − K/2(n + 1), d.h
K ≤ 2(n + 1)[n + n log2 r − log2 vol(C)].
⋄
Die Endlichkeit des Ellipsoidverfahrens ist nur im Fall vol(C) > 0 von
vornherein garantiert. Oft kann man im Fall vol(C) = 0 dieses Problem
mit einem Kniff umgehen, der am Beispiel endlicher linearer Systeme mit
rationalen Koeffizienten später demonstriert wird5.
M AN B EACHTE : Wir haben noch nicht diskutiert, wie man die Ellipsoidmethode überhaupt startet (d.h. wie man das erste Ellipsoid der Iterationsfolge
wählen sollte! (Das kommt jetzt gleich.)
3.4. Nichtnegative Lösung von linearen Gleichungssystemen. Wir
wollen das folgende (rationale) lineare System lösen:
(46)
Ãx = b̃, x ≥ 0
(Ã ∈ Zm×n , b̃ ∈ Zm ).
Das könnte man – wie schon beschrieben – mit der IPM. Wir wollen hier
ausführen, wie man das Problem auch mit der Elliposidmethode bewältigen
könnte.
3.4.1. Die Basismethode. Wir wissen: Entweder hat (46) eine Basislösung
oder es existiert überhaupt keine Lösung. Wir suchen nun eine Basislösung
nach folgendem Prinzip:
• Entferne eine (beliebige) Spalte aus à und teste, ob das Restsystem
noch lösbar ist.
(i) Wenn das Restsystem lösbar ist, fahren wir in gleicher Weise mit
dem Restsystem fort.
(ii) Wenn das Restsystem nicht lösbar ist, so tritt die eben betrachtete Spalte notwendigerweise in jeder zulässigen Basislösung aktiv
auf. Wir markieren nun diese Spalte und wählen eine andere Spalte, um wie eben vorzugehen.
5
eine ausführliche Diskussion der Ellipsoidmethode im Fall vol(C) = 0 findet sich in
dem Buch von Grötschel, Lovász und Schrijver: G EOMETRIC A LGORITHMS AND C OM BINATORIAL O PTIMIZATION (Springer 1993)
74
4. METHODEN DER LINEAREN PROGRAMMIERUNG
• Nach höchstens n Schritten ist eine linear unabhängige Spaltenmenge ÃB gefunden. Die zugehörige (nun eindeutige!) Lösung
kann man nun (z.B. mit dem Gaussverfahren) durch Lösen von
ÃB xB = b̃
ermitteln.
N OTA B ENE : Bei dieser Vorgehensweise wird die Ellipsoidmethode nicht(!) benutzt, um eine konkrete Lösung von (46) zu berechnen. Diese wird erst ganz am
Schluss als Lösung von ÃB xB = b̃ bestimmt.
Die Ellipsoidmethode wird nur eingesetzt, um zu testen, ob gewisse Teilsysteme
von (46) überhaupt lösbar sind. Jede andere effiziente Methode, die dieses leistet,
könnte an dieser Stelle ebensogut verwendet werden!
3.4.2. Lösbarkeit linearer Ungleichungssysteme. Wir überlegen nun,
wie man die Lösbarkeit eines linearen Systems
(47)
Ax ≤ b
(A ∈ Zm×n , b ∈ Zm )
mit der Ellipsoidmethode testen kann. Wir bezeichnen dazu mit γ = γ(A, b)
die Komplexität des Systems. r := rg(A) sei der Rang der Matrix A. Für
diesen gilt bekanntlich:
r (= rg(A)) ≤ min{m, n}.
L EMMA 4.8. Entweder gilt P (A, b) = ∅) oder es gibt ein x ∈ P (A, b) mit
Komponenten
|xj | ≤ r!(2γ )r < 2r log2 r+γr ≤ 2r(γ+log2 r)
(j = 1, . . . , n).
Beweis. Mit der Einheitsmatrix I ∈ Rm×m betrachten wir das lineare System
(48)
Au − Av + Iz = b , u, v, z ≥ 0 .
Offenbar“ (Beweis?) entsprechen die x ∈ P (A, b) den Lösungen (u, v, z) von
”
(48) vermöge x = u − v. Im Fall P (A, b) ̸= ∅ hat (48) eine Basislösung. Diese
erweist die Behauptung.
⋄
Wir dürfen also oBdA annehmen, dass P (A, b) ein Polytop ist. (Sonst
schreiben wir die Komponentenrestriktionen von Lemma 4.8 einfach noch
dazu, ohne damit das Problem geändert zu haben.)
L EMMA 4.9. Entweder gilt vol(P (A, b) = 0 oder es gilt
vol(P (A, b)) >
1
2(n+1)r(γ+log2 r)
3. DIE ELLIPSOIDMETHODE
75
Beweis. Wir nehmen vol(P (A, b) > 0. Es gibt somit n + 1 Ecken v0 , . . . , vn
derart, dass die Differenzvektoren v1 − v0 , . . . , vn − v0 linear unabhänging sind.
Somit gilt
[
]
1 . . . 1 vol(P (A, b)) ≥ |det (v1 − v0 , . . . , vn − v0 )| = det
.
v0 . . . vn Sei di der gemeinsame Nenner der Komponenten von vi (nach der Cramerschen
Regel). di ist der Wert der Determinante einer Untermatrix von A. Die Zähler ganze
Zahlen sind. Folglich findet man:
(
)n+1
1
1
1
≥
> (n+1)n(γ+log n) .
vol(P (A, b)) ≥
γr
2
|d0 d1 . . . dn |
r!2
2
⋄
Nun können wir die Ellipsoidmethode folgendermassen anwenden:
(0) Wir wählen E0 als die Kugel BR (0) mit Radius
v
u∑
u n
√
R = t (2n(γ log2 n) )2 = n · 2n(γ+log2 n) .
j=1
(E0 umfasst alle Ecken und folglich das gesamte Polytop P (A, b).)
(i) Wir iterieren bis das momentane Ellipsoid EK ein Volumen
1
vol(EK ) ≤ (n+1)n(γ+log n)
2
2
hat. (Entweder ist bis dahin ein Punkt in P (A, b) gefunden oder
wir wissen, dass P (A, b) leer ist!)
Ü BUNG 4.1. Mit wieviel Iterationen kommt die Ellipsoidmethode im Fall
vol(P (A, b)) ̸= 0 aus?
Wir beobachten schliesslich, dass man das System Ax ≤ b immer zu einem
System Ax ≤ b′ modifizieren kann mit der Eigenschaften:
• Ax ≤ b ist lösbar genau dann, wenn vol(P (A, b′ )) ̸= 0.
F OLGERUNG :
• Wir können die Lösbarkeit von Ax ≤ b testen, indem wir die
Ellipsoidmethode auf das modifizierte System Ax ≤ b′ anwenden!
Nun zu den Details der letzten Beobachtung. Wir wählen
ε = 1/Λ
mit Λ = ⌈(n + 1)2n(γ+log2 n) ⌉
und betrachten das System
Ax ≤ b + ε1
bzw. ΛAx ≤ Λb + 1.
76
4. METHODEN DER LINEAREN PROGRAMMIERUNG
Offensichtlich haben wir:
P (A, b) ̸= ∅
=⇒
vol(P (A, b + ε1)) > 0.
⇐⇒
vol(P (A, b + ε1)) > 0.
L EMMA 4.10. Es gilt:
P (A, b) ̸= ∅
Beweis. Die Richtung ⇐“ der Behauptung ist noch zu beweisen. Wir nehmen an,
”
dass Ax ≤ b nicht lösbar ist (d.h. P (A, b) = ∅)). Nach dem Farkas-Lemma gibt
es dann ein y ≥ 0 mit der Eigenschaft
yT A = 0T
und yT b = −1.
OBdA dürfen wir y als Basislösung annehmen. Es gibt also höchstens n + 1 Komponenten yi ̸= 0. Für diese gilt
∑
(n + 1)2n(γ+log2 n)
≤ 0.
Λ
Λ
Wieder nach dem Farkas-Lemma erweist sich dann auch Ax ≤ b + ε1 als nicht
lösbar.
⋄
y (b + ε1) = −1 +
T
i yi
< −1 +
4. Die Simplexmethode
Wir gehen wieder von einem LP in Normalform aus:
(49)
min cT x
x≥0
s.d. Ax = b
(A ∈ Rm×n , c ∈ Rn , b ∈ Rm )
OBdA nehmen wir vollen Zeilenrang m = rgA an. Wir stellen uns vor,
dass unser Optimierungsproblem gewisse Kosten“ minimieren will, und
”
beziehen uns deshalb auf c als den Vektor von Kostenkoeffizienten.
Das dazu duale lineare Programm ist:
(50)
max bT y
s.d.
AT y ≤ c.
Die KKT-Bedingungen sind:
cT x
Ax
AT y
x
= bT y
= b
≤ c
≥ 0
Wir wissen: Ein KKT-Paar (x∗ , y∗ ) liefert gleichzeitig optimale Lösungen
für beide lineare Programme.
4. DIE SIMPLEXMETHODE
77
Die zentrale Idee des Simplexalgorithmus ist, die Ecken (d.h. die Basislösungen) der beiden Zulässigkeitsbereiche
P = {x ∈ Rn | Ax = b, x ≥ 0}
P ∗ = {y ∈ Rm | yT A ≤ cT }
zu untersuchen.
4.1. Basen. Sei B = {j1 , . . . , jm } ⊆ {1, . . . , n} eine Indexmenge derart, dass die aus den entsprechenden Spalten von A gebildete (m × m)Matrix AB eine Spaltenbasis von A (bzw. ATB eine Zeilenbasis von AT ) ist.
Wir nennen oft kurz die Indexmenge B selber eine Basis.
Zur leichteren Notation setzen wir N = {1, . . . , n} \ B und bezeichnen mit
cB den Teilvektor von c, der nur aus den B-Komponenten besteht etc. Wir
ordnen B die folgenden Kandidaten für Optimallösungen zu:
x ∈ Rn mit xB = A−1
B b, xN = 0N .
y ∈ Rm mit yT = cTB A−1
B .
Dann gilt auf jeden Fall die Gleichheit
cT x = cTB xB + cTN xN = (ATB y)T xB = yT AB x = yT b.
Ausserdem beobachtet man
⇐⇒
xB ≥ 0B .
(Z) x ∈ P
(Z∗ ) y ∈ P ∗ ⇐⇒ cTN − yAT ≥ 0TN .
L EMMA 4.11. Im Fall xB ≥ 0B ist x eine Basislösung von P . Umgekehrt
existiert zu jeder Basislösung x∗ ∈ P eine Basis B ∗ ⊆ {1, . . . , n} derart,
dass
x∗B ∗ = A−1
und x∗N ∗ = 0.
B∗ b
Die analoge Aussage gilt für Basislösungen von P ∗ .
Beweis. Es gilt sicherlich B(x) ⊆ B. Ist AB eine Spaltenbasis von A, dann sind
insbesondere die Spalten in AB(x) linear unabhängig und x ∈ P ist folglich eine
Basislösung.
Ist umgekehrt x∗ ∈ P eine Basislösung, so sind die Spalten der Matrix AB(x∗ )
linear unabhängig und können somit zu einer Basis AB ∗ des Spaltenraums von A
erweitert werden. Da das Gleichungssystem
AB(x∗ ) xB(x∗ ) = b und xN (x∗ ) = 0N (x∗ )
eindeutig lösbar ist (denn: x∗ ist Basislösung!), muss x∗ auch die eindeutige Lösung
sein von
AB ∗ xB ∗ = b und xN ∗ = 0N ∗ .
⋄
78
4. METHODEN DER LINEAREN PROGRAMMIERUNG
Ziel ist es nun, eine Basis B ⊆ {1, . . . , n} (bzw. eine Spaltenbasis AB von
A) zu bestimmen, die sowohl Zulässigkeit bzgl. P als auch Zulässigkeit
bzgl. P ∗ zur Folge hat. Denn wir wissen von den KKT-Bedingungen:
• Im Fall (i) x ∈ P (d.h. xB ≥ 0)
und (ii) y ∈ P ∗ (d.h. cT = cT − yT A ≥ 0T )
ist x eine primal optimale und y eine dual optimale Lösung.
Die Simplexmethode“ ist eine Sammlung von systematischen Verfahren,
”
um zu einer (in diesem Sinn) optimalen Basis B zu gelangen, indem man
sich am bekannten Gauss-Algorithmus orientiert.
T
T
T ERMINLOGIE : Ist B eine Basis, A = A−1
B A und y = cB A, dann ist der
duale Schlupfvektor
cT = cT − cTB A = cT − yT A = cT − cTB A−1
B A
der Vektor der sog. reduzierten Kosten. Wir suchen also eine primal zulässige Basis B mit nichtnegativen reduzierten Kosten.
4.2. Das Simplextableau. Bezgl. einer Basis B fassen wir die Ausgangsdaten des linearen Programms in einem Matrixschema zusammen:
[
]
z = cT x
0 cTB cTN
←→
b = Ax
b AB AN
Nun benutzen wir elementare Zeilenoperationen (genau wie beim GaussVerfahren der linearen Algebra!) um das Schema in die folgende Form zu
bringen (wobei IB = A−1
B AB die Einheitsmatrix ist):
[
] [
]
−z 0TB cTN
−z cT
(51)
=
b IB AN
b A
Das Schema (51) ist das Simplextableau zur Basis B. Aus der linearen Algebra (Gauss-Verfahren) ist nun klar:
(1) b = A−1 b und A = A−1
B A.
T
(2) z = cB b.
(3) cT = cT − cTB A = cT − (cTB A−1
B )A.
Im Fall b ≥ 0 ist das Tableau primal zulässig und im Fall cT ≥ 0T dual
zulässig. Das Tableau ist optimal, wenn es primal und dual zulässig ist.
M AN
BEACHTE : In der linken oberen Ecke des Simplextableaus steht der nega-
tive Zielfunktionswert bzgl. der gerade betrachteten Basisvektoren x und y! Um
diesen Schönheitsfehler“ auszugleichen, findet man in der Literatur das Simplex”
tableau oft mit den negativen Kostenkoeffizienten angegeben:
[
]
[
]
z 0TB −cTN
0 −cTB −cTN
−→
AN
b AB
b IB
AN
4. DIE SIMPLEXMETHODE
79
(Man kann diese zweite Version des Simplextableaus natürlich auch direkt von der
Darstellung
z −cT x = 0
Ax = b
her motivieren, wenn man möchte.)
T ERMINOLOGIE . Die Variablen xj mit Index j ∈ B heissen Basisvariablen
(bzgl. B). Die xj mit j ∈ N sind die Nichtbasisvariablen.
N OTA B ENE . Bei einem Simplextableau gehen wir immer von einer Problemformulierung vom Typ (49) aus. Insbesondere unterstellen wir automatisch, dass
sämtliche Variablen xj nichtnegativ sein sollen.
4.3. Der primale Iterationsschritt. Wir betrachten die Zeilenvektoren
des Simplextableaus (51):
α0 = (−z, c1 , . . . , cn )
αi = (bi , ai1 , . . . , ain ) (i = 1, . . . , m)
Wir nennen das Tableau lexikographisch positiv, wenn jeder der Zeilenvektoren αi mit i ≥ 1 lexikographisch positiv ist. Im lexikographisch positiven
Fall gilt natürlich insbesondere bi ≥ 0 für i = 1, . . . , m. Also:
• Ein lexikographisch positives Tableau ist primal zulässig.
Wir nehmen nun im weiteren an:
(i) Das Tableau ist lexikographisch positiv.
(ii) Das Tableau ist nicht dual zulässig, d.h.
es gibt eine Spalte j mit reduzierten Kosten cj < 0.
L EMMA 4.12. Enthält die jte Spalte Aj = A−1
B Aj (im primal zulässigen
Simplextableau) kein positives Element, dann ist das lineare Programm unbegrenzt (und es ist folglich sinnlos, nach einer Optimallösung“ zu su”
chen).
Beweis. Im Fall Aj ≤ 0 betrachten wir ein beliebiges λ > 0 und setzen
x′j
= λ
x′i
x′ℓ
= bi − aij λ (i ∈ B)
= 0
(ℓ ∈ N \ {j}).
Man macht sich leicht klar, dass x′ primal zulässig ist. Der Zielfunktionswert ist
cT x′ = cTB b − cTB Aj λ + cj λ = cTB b + cj λ → −∞
(wenn λ → +∞),
den cj ist ja als echt negativ angenommen.
⋄
80
4. METHODEN DER LINEAREN PROGRAMMIERUNG
Im Fall, wo Aj mindestens ein positives Element hat, wählen wir nun ein
Pivotelement akj > 0 nach der sog. primalen lexikographischen Regel, d.h.
derart, dass gilt
{
}
αk
αi
= lexmin
| aij > 0 .
(52)
akj
aij
Z UR E RINNERUNG : Das lexikographische Minimum einer Menge von Vektoren
ist der eindeutig bestimmte kleinste Vektor bzgl. der lexikographischen Ordnung.
Wir pivotieren darauf das Simplextableau mit ajk , d.h. wir berechnen ein
neues Matrixschema mit den Zeilen:
αk′ = a−1
kj · αk
αi′ = αi − aij · αk′
für alle i ̸= k.
Das neue Schema hat die Eigenschaften
(1) In der Spalte j steht der Einheitvektor mit a′kj = 1.
(2) In den Spalten ℓ ∈ B \ {k} der alten Basisindexmenge B stehen
unverändert die alten Einheitsvektoren.
Damit sieht man:
• Das neue Schema ist genau das Simplextableau zur neuen Basis
B ′ = (B \ {k}) ∪ {j}.
L EMMA 4.13. Pivotiert man ein lexikographisch positives Simplextableau
mit negativem reduzierten Kostenkoeffizienten cj < 0 nach der primalen
lexikographischen Regel, dann gilt
(1) Das neue Simplextableau ist wieder lexikographisch positiv.
(2) Die Zeile α0′ des neuen Tableaus ist lexikographisch echt grösser
als die alte Zeile α0 .
Beweis. Wegen akj > 0 bleibt die Zeile k lexikographisch positiv:
αk′ = a−1
ij · αk .
Ansonsten hat man für i ̸= k:
aij
αi′ = αi −
αk
akj
[
]
αi
αk
= aij
−
aij
akj
(lex. pos., falls aij ≤ 0)
(lex. pos., falls aij > 0).
Daraus folgt (1) und im Spezialfall i = 0 wegen α0j = cj < 0 auch (2).
⋄
4. DIE SIMPLEXMETHODE
81
4.4. Der Algorithmus. Wenn einmal eine lexikographisch positive Basis zur Verfügung steht, dann iteriert man nach der primalen lexikographischen Regel solange, bis man zu einer Basis B gekommen ist, bei der alle
reduzierten Kosten nichtnegativ sind. Eine Optimallösung ist dann gefunden mit
xB = b und xN = 0N .
P ROPOSITION 4.2. Iteriert man nach der primalen lexikographischen Regel, dann terminiert der Algorithmus nach endlich vielen Schritten.
Beweis. Findet man kein Pivotelement in Spalte Aj , dann stoppt man das Iterationsverfahren, weil man weiss, dass überhaupt keine Optimallösung existiert.
Ansonsten erhält man eine neue lexikographisch positive Basis B ′ und ein Tableau
mit einer lexikographisch echt grösseren Zeile α0′ . Da aber ein Tableau vollständing
von der gerade betrachteten Basis bestimmt ist, bedeutet dies:
• Alle auftretenden Basen sind verschieden.
Nun gibt es aber nur endlich viele verschiedene mögliche Basen. Also führt man
auch nur endlich viele Iterationen aus.
⋄
Der Algorithmus in der Praxis. Um den Rechenaufwand zu reduzieren,
wählt man das Pivotelement akj > 0 oft nach der vereinfachten Regel
{
}
bk
bi
(53)
= min
| aij > 0 .
akj
aij
A BER VORSICHT: Bei dieser vereinfachten Regel kann es gelegentlich vorkommen, dass eine Basis wiederholt auftritt, der Algorithmus also zykelt“.
”
(In diesem Fall müsste man dann auf die lexikographische Regel umschalten, um den Algorithmus zu einem Ende zu führen.)
4.5. Die 2-Phasen-Methode. Wie kommt man überhaupt zu einer lexikographisch positiven Basis B0 , um den Simplexalgorithmus nach der
primalen Pivotregel ablaufen zu lassen?
Oft ergibt sich eine solche aus der Problemstellung. Man betrachte z.B. ein
LP der Form
min cT x s.d. Ax ≤ b, x ≥ 0
mit nichtnegativem b ≥ 0. (VORSICHT: Dieses ist noch nicht die vom
Simplexalgorithmus erwartete Form!) Mit dem Schlupfvariablenvektor
x = b − Ax ≥ 0
erhalten wir nun das äquivalente Problem
min 0T x + cT x
s.d. Ix + Ax = b, x ≥ 0, x ≥ 0,
82
4. METHODEN DER LINEAREN PROGRAMMIERUNG
das sofort auf das lexikographisch positive Simplextableau
[
]
0 0 T cT
b I A
mit Basismatrix I führt.
4.5.1. Allgemeine Methode. Wir betrachten nun ein LP der Form
(54)
min cT x
s.d. Ax = b, x ≥ 0.
Dabei darf man oBdA b ≥ 0 annehmen. (Im Fall bi < 0 kann man ja
einfach die Zeile i mit (−1) multiplizieren, ohne den Lösungsbereich zu
verändern.) Mit dem Vektor von Hilfsvariablen
x = b − Ax
betrachten wir das Hilfs-LP
(55)
min 1T x s.d. Ix + Ax = b, x ≥ 0, x ≥ 0.
Bei diesem Hilfs-LP führt die Basis I auf ein lexikographisch positives
Simplextableau. (55) kann also mit dem Simplexverfahren in endlicher Zeit
gelöst werden. Offenbar gilt
L EMMA 4.14. Das LP (54) besitzt eine zulässige Lösung genau dann, wenn
das Hilfs-LP (55) den Optimalwert 0 aufweist.
⋄
Bei einer Optimallösung von (54) mit Zielfunktionswert 0 müssen alle Hilfsvariablen xi den Wert 0 annehmen. Die aus dem Simplexverfahren für (54)
gewonnene optimale Basis B ∗ erlaubt dann die Konstruktion einer geeigneten Startbasis B0 für das Ausgangsproblem (54) in folgender Weise:
• Entferne alle Spalten bzgl. B ∗ , die zu Hilfsvariablen gehören.
• Ergänze die restlichen Spalten in beliebiger Weise zu einer Spaltenbasis AB0 von A.
• B0 führt auf ein lexikographisch positives Simplextableau.
4.5.2. Methode. Wenn keine geeignete Startbasis sofort ersichtlich ist,
durchlaufe man die Phase I:
(I) Ausgehend von der Form (54) löse man das Hilfs-LP (55).
Hat das Hilfs-LP keine keine Optimallösung mit Zielfunktionswert 0, dann
S TOPP. Andernfalls starte man nun Phase II:
(II) Konstruiere gemäss Lemma 4.14 eine lexikographisch positive Basis B0 und löse das tatsächliche lineare Programm (54) mit der
Simplexmethode.
4. DIE SIMPLEXMETHODE
83
Die 2-Phasen-Methode (+ lexikographische Pivotregel) zeigt:
• Das Simplexverfahren kann grundsätzlich so implementiert werden, dass es nach einer endlichen Anzahl von Pivotiterationen zu
einem Ende gekommen ist.
4.6. Die duale Strategie. Wir nehmen nun an, die momentane Basis B
im Simplexverfahren ist dual zulässig, d.h. die reduzierten Kosten cℓ sind
alle nichtnegativ (bzw. der Vektor y liegt in P ∗ ).
Ist Optimalität noch nicht gegeben, existiert ein bk < 0. Wir suchen nun
ein Pivotelement akj (in der k-Zeile der gegenwärtigen Simplextableaus)
derart, dass
B ′ = (B \ {k}) ∪ {ℓ}
wieder eine dual zulässige Basis ist. Wir wählen die Spalte j (und folglich
das Pivotelement akj < 0) nach der Pivotregel
}
{
cj
cℓ
(56)
= max
| akℓ < 0
ℓ
akj
akℓ
L EMMA 4.15. Gilt akℓ ≥ 0 für ℓ = 1, . . . , n, dann besitzt Problem (49)
keine zulässige Lösung. Ist der Index j gemäss der Pivotregel (56) bestimmt,
dann ist B ′ = (B ∪ {j}) \ {k} dual zulässig.
Beweis. Eine zulässige Lösung x1 , . . . , xn ist nichtnegativ, also hätte man im Fall
akℓ ≥ 0:
n
∑
0 > bk =
akℓ xℓ ≥ 0,
ℓ=1
was nicht sein kann. Sei nun akj gemäss (56) gewählt. Datieren wir das Simplextableau wieder so auf, dass die jte Spalte zum jten Einheitsvektor wird, so ergibt
sich die erste Zeile des aufdatieren Tableaus so:
• Subtrahiere cj mal die neue Zeile k vom reduzierten Kostenvektor
cT ≥ 0T .
Der neue Koeffizient in Spalte ℓ ist also
c′ℓ = cℓ − cj akℓ /akj ≥ 0.
⋄
B EMERKUNG. Um Endlichkeit des dualen Verfahrens zu garantieren, kann man
wieder die Pivotregel durch eine lexikographische Ordnung verschärfen. Das geht
völlig analog zur primalen lexikographischen Regel und wird deshalb hier nicht im
Detail ausgeführt.
84
4. METHODEN DER LINEAREN PROGRAMMIERUNG
4.7. Die revidierte Simplexmethode. Es ist nicht notwendig, immer
das gesamte Simplextableau zu berechnen. Zu der Basis B ⊆ {1, . . . , n}
kann man die für eine Iteration notwendige Information direkt aus den Ausgangsparametern gewinnen:
′
• Berechne b = A−1
B b als Lösung der Gleichung AB x = b.
T
T −1
T ′
• Berechne y = cB AB als Lösung der Gleichung AB y = cB .
Dann erhalten wir für die reduzierten Kosten
m
∑
T
cj < 0 ⇐⇒ cj − y Aj < 0 d.h. cj <
yi aij .
i=1
Nun kann z.B. bei der primalen Strategie sofort ein Pivotelement akj nach
der Regel (53) in der Spalte Aj = A−1
B Aj gewonnen und die Basisaufdatierung
B → B ′ = (B ∪ {j}) \ {k}
durchgeführt werden. Diese frugale Version der Simplexmethode ist als revidierte Simplexmethode bekannt.
A NWENDUNGSBEISPIEL :
Das Schnittmusterproblem. Es seien Stoffballen der Länge ℓ gegeben. Davon sollen bi Schnittstücke der Länge ℓi (i = 1, . . . , m) gewonnen werden,
sodass insgesamt möglichst wenig Ballen angeschnitten werden.
Zur Modellierung des Problems definieren wir als Schnittmuster einen Vektor
 
a1
m
∑
.
 ..  mit ai ∈ N und
ai ℓi ≤ ℓ.
i=1
am
Sei A die Matrix, deren Spalten sämtliche möglichen Schnittmuster sind.
Mit der Notation 1T = [1, 1, . . . , 1] ergibt sich das Schnittmusterproblem
dann in Matrixform:
min 1T x s.d Ax = b, x ≥ 0 und ganzzahlig.
Wegen der Ganzzahligkeitsrestriktion ist dieses Problem kein lineares Programm. Wir betrachten deshalb statt dessen die zugeordnete LP-Relaxierung
(57)
min 1T x s.d Ax = b, x ≥ 0,
die zumindest eine Untergrenze für den gesuchten Optimalwert liefert. Die
Lösung hat typischerweise Komponenten, die nicht ganzzahlig sind. Durch
Runden erhält man daraus meist eine recht gute praktische Lösung.
Da A sehr viele Spalten haben kann, ist ein explizites Auflisten nicht erstrebenswert. Wir lösen (57) darum mit der revidierten Simplexmethode.
4. DIE SIMPLEXMETHODE
85
Haben wir schon eine Basis B von Schnittmustern gefunden und den entsprechenden Vektor y berechnet, so ergibt die Suche nach einem Schnittmuster mit negativen reduzierten Kosten das Problem, a1 , . . . , am ∈ N zu
ermitteln mit der Eigenschaft
(58)
1<
m
∑
yi a i
i=1
und
m
∑
ai ℓi ≤ ℓ.
i=1
B EMERKUNG. Problem (58) ist (wegen der Ganzzahligkeitsbedingung) ein sog.
NP-schweres Problem, also theoretisch schwierig. (In der Literatur ist es als Knapsack-Problem bekannt.) In der Praxis lässt sich dieses Problem aber sehr gut lösen.
4.8. Sensitivitätsanalyse. Sei B eine primal zulässige Basis für das
lineare System
Ax = b, x ≥ 0.
F RAGE : Für welche Zielfunktionsparameter c ∈ Rn ist die zu B gehörige
Basislösung x optimal?
Wir wissen: B ist optimal, wenn die reduzierten Kosten nichtnegativ sind:
T
cTN = cTN − cTB A−1
B AN ≥ 0
T
bzw. (A−1
B A)N cB − IN cN ≤ 0N .
Die dieser Ungleichung genügenden c sind genau die Elemente des polyedrischen Kegels
T
P ([(A−1
B AN ) , −IN ], 0).
Man kann daraus ablesen, welche Veränderungen der Zielfunktionsparameter zulässig sind, wenn man weiterhin die Optimalität einer gefundenen
Lösung garantieren will.
Ist B dual zulässig bzgl. den festen Zielfunktionsparametern c, so stellt sich
dual die
F RAGE : Für welche Restriktionsparameter b ∈ Rm ist die zu B gehörige
Basislösung x optimal?
Wir fragen also, wann b = A−1
B b ≥ 0 gilt. Wieder erhalten wir die Elemente eines polyedrischen Kegels:
P (−A−1
B , 0).
86
4. METHODEN DER LINEAREN PROGRAMMIERUNG
4.9. Die primal-duale Methode. Wir betrachten ein Paar dualer linearer Programme:
min cT x
Ax = b
x ≥ 0
←→
max yT b
y T A ≤ cT
Wir möchten nun das Konzept des komplementären Schlupfes ausnutzen,
um zu einer Optimallösung zu kommen.
A NNAHME : Wir haben schon (irgend)eine dual zulässige Lösung y zur
Verfügung und kennen einen Vektor x = [x1 , . . . , xn ]T ≥ 0 mit der Eigenschaft
xj > 0
=⇒
yT Aj =
m
∑
yi aij = cj
(j = 1, . . . , n).
i=1
(Z.B. hat x = 0 trivialerweise diese Eigenschaft.) Dann wissen wir vom
komplementären Schlupf: Im Fall Ax = b ist x primal zulässig und folglich
optimal.
Sei oBdA b ≥ 0. Im Fall b = 0 ist x = 0 optimal. Wir unterstellen deshalb
m
∑
bi > 0.
i=1
Sei à die Teilmatrix aller Spalten Aj von A mit der Eigenschaft
y T Aj =
m
∑
aij yi = cj .
i=1
Wir betrachten das zugeordnete linearer Optimierungsproblem
min
(59)
1T z
Ãu + Iz = b
u, z
≥ 0
Dieses Problem (59) hat immer I als primal zulässige Anfangsbasis und
kann somit mit der primalen Strategie gelöst werden. Sei (u∗ , z∗ ) eine Optimallösung.
Im Fall ζ ∗ = 1T z∗ = 0, ist x = (u∗ , z∗ ) = (u∗ , 0) primal zulässig für
das Ausgangsproblem. Nach Wahl von à erfüllt x die komplementären
Schlupfbedingungen und ist folglich optimal.
Im Fall ζ ∗ > 0 betrachten wir die dual optimale Lösung w von (59). Diese
erfüllt
ζ ∗ = bT w und ÃT w ≤ 0, w ≤ 1.
4. DIE SIMPLEXMETHODE
87
Für jede Spalte Aℓ der Ausgangsmatrix A, die nicht zu à gehört, haben wir
nach Definition von Ã:
ATℓ y < cℓ .
Also erfüllt der Vektor y′ = y + εw die duale Zulässigkeitsbedingung
AT y ′ ≤ c
für ein genügend kleines ε > 0,
aber liefert einen besseren Zielfunktionswert als y:
bt y′ = bT y + εbT w = bT y + εζ ∗ > bT y.
Wir können nun in gleicher Weise mit y′ anstelle von y verfahren.
FAZIT:
Eine Iteration der primal-dualen Methode liefert entweder eine Optimallösung
(Fall ζ ∗ = 0) oder eine dual zulässige Lösung mit echt besserem Zielfunktionswert (Fall ζ ∗ > 0).
Bestimmung einer dualen Startlösung. Es bleibt die Frage, wie man zu
Anfang der primal-dualen Methode ein dual zulässiges y erhält. Das hängt
von der Matrix A und dem Vektor c ab. Im Fall c ≥ 0 kann man z.B.
trivialerweise mit y = 0 starten.
Ablesen einer dualen Optimallösung. Die primal-duale Methode ist vom
Simplexstandpunkt aus einfach. Das lineare Hilfprogramm (59) hat ja in I
eine sofort verwendbare primal zulässige Basis, mit der die primale Iterationsmethode gestartet werden kann.
Im Fall ζ ∗ > 0 kann man eine duale Optimallösung sofort aus dem optimalen Simplextableau ablesen:
Sei nämlich dT = (0T , 1T ) der Zielfunktionskoeffizientenvektor von (59).
Dann steht im optimalen Tableau in der 0-Zeile über den Spalten, die den
z-Variablen entsprechen, der reduzierte Kostenvektor
T
dz = dTz − wT I = 1Tz − wT .
Also berechnen wir aus dem reduzierten Kostenvektor:
w = 1z − dz .
Da d im optimalen Tableau nichtnegativ ist, schliessen wir ausserdem:
w ≤ 1z .
B EMERKUNG. Über den u-Variablen steht im optimalen Tableau auch ein nichtnegativer reduzierter Kostenvektor. Also:
T
du = dTU − wT Ã = 0T u − wT Ã ≥ 0Tu .
88
4. METHODEN DER LINEAREN PROGRAMMIERUNG
Daraus sieht man auch sogleich:
ÃT w ≤ 0.
KAPITEL 5
Unimodulare lineare Programme
Wir betrachten hier eine Klasse von linearen Programmen mit der schönen
Eigenschaft, dass Basislösungen automatisch ganzzahlige Komponenten haben.
1. Unimodulare und total unimodulare Matrizen
1.1. Unimodulare Matrizen. Wir nennen eine (ganzahlige) Matrix B ∈
Zk×k unimodular, wenn gilt
|det B| = 1
d.h. det B = +1 oder det B = −1.
Die Grundbeobachtung ist diese:
L EMMA 5.1. Sei B unimodular und b ∈ Zk beliebig. Dann hat der Vektor
b = B −1 b
ausschliesslich ganzzahlige Komponenten bj .
Beweis. b ist die eindeutige Lösung der linearen Gleichung Bx = b. Nach der
Cramerschen Regel erhalten wir für die j-te Komponente:
|bj | =
|det B̂ j |
= |det B̂ j |.
|det B|
B̂ j ist die Matrix, die man aus B erhält, wenn man die j-te Spalte durch b ersetzt.
Wegen B̂ j ∈ Zk×k ist die Determinante ganzzahlig.
⋄
1.2. Total unimodulare Matrizen. Eine Matrix A = [aij ] ∈ Rm×n
heisst total unimodular, wenn für jede quadratische Untermatrix B von A
gilt:
det B ∈ {−1, 0, +1}.
Da die Matrixkoeffizienten aij (1 × 1)-Untermatrizen darstellen, muss also
insbesondere gelten:
aij (= det aij ) ∈ {−1, 0 + 1}.
Diese Bedingung ist allerdings für totale Unimodularität i.a. nicht hinreichend.
89
90
5. UNIMODULARE LINEARE PROGRAMME
B EISPIEL 5.1. Man betrachte die Matrizen
[
]
[
]
[
]
1 1
1 −1
1 −1
A1 =
, A2 =
, A3 =
.
1 2
1 1
−1 1
A1 ist unimodular aber nicht total unimodular. A2 ist nicht unimodular. A3
ist total unimodular.
Aus der Definition folgt sofort:
• Jede Untermatrix einer total unimodularen Matrix ist total unimodular.
• A ist total unimodular ⇐⇒ AT ist total unimodular.
• A ist total unimodular ⇐⇒ −A ist total unimodular.
Wichtige Beispiele total unimodularer Matrizen kann man so konstruieren:
S ATZ 5.1. Sei A = [aij ] ∈ {−1, 0+1}m×n eine Matrix mit der Eigenschaft:
(i) Jede Spalte Aj enthält höchstens zwei Koeffizienten aij ̸= 0.
(ii) Für jede Spaltensumme gilt
m
∑
−1 ≤
aij ≤ +1.
i=1
Dann ist A total unimodular.
Beweis. Sei B eine quadratische Untermatrix von A. Enthält B keinen Einheitsvektor (oder sein Negatives) als Spalte, so sind die Spaltensummen 0. D.h. B hat
nicht vollen Rang und somit det B = 0.
Sei also oBDA ein Einheitsvektor e ein Spalte von B. Entwickeln wir det B nach
dieser Spalte, so ergibt sich
det B = ±1 · det B ′ ,
wobei B ′ die entsprechende Teilmatrix von B ist. B ′ ist kleiner als B. Also schliessen wir per Induktion“:
”
det B ′ ∈ {−1, 0, +1} und folglich det B ∈ {−1, 0, +1}.
⋄
Auf die gleiche Weise macht man sich leicht klar:
• Erweitert man eine total unimodulare Matrix A mit einem Einheitsvektor e oder −e als neue Spalte, so ist die resultierende Matrix [A, ±e] auch total unimodular.
• Erweitert man eine total unimodulare Matrix mit einem Einheitsvektor eT oder −eT als neuer Zeile, so erhält man wieder eine total
unimodulare Matrix.
1. UNIMODULARE UND TOTAL UNIMODULARE MATRIZEN
91
1.3. Inzidenzmatrizen. Ein Graph G besteht aus einer (hier: endlichen) Menge V von Knoten und einer (hier: endlichen) Menge E von Kanten und einer Inzidenzrelation
Γ⊆V ×E
so, dass für alle e ∈ E gilt:
(G) 1 ≤ |Γ(e)| ≤ 2, wobei Γ(e) := {v ∈ V | (v, e) ∈ Γ}.
Im Fall |Γ(e)| = 1 ist e eine sog. Schlinge von G. Im Fall Γ(e) = {v, w}
sind v und w die sog. Endpunkte der Kante e.
B EMERKUNG. Für v ∈ V definiert man Γ(v) := {e ∈ E | (v, e) ∈ Γ} als die
Menge der mit dem Knoten v inzidenten Kanten. Abhängig von G kann |Γ(v)|
beliebig gross werden. Im Fall Γ(v) = ∅ heisst der Knoten v isoliert.
Wir können G orientieren, indem wir bei einer Kante e mit Γ(e) = {v, w}
einen der der Endpunkte als positiv“ und den anderen als “negativ“ auszei”
chen. Das heisst, wir ordnen der Kante e (willkürlich) Inzidenzkoeffizienten
av,e , aw,e ∈ {−1, 0, +1} zu derart, dass
(60)
av,e + aw,e = 0
für alle e ∈ E.
B EMERKUNG. im Fall aw,e + 1 und av,e = −1 kann man sich (wenn man will) e
als Pfeil vorstellen, der von v nach w gerichtet ist:
e
v −→ w.
Für die resultierende Inzidenzmatrix A = [av,e ] ∈ RV ×E gilt dann offensichtlich (nach Satz 5.1:
• Die Inzidenzmatrix A des (orientierten) Graphen G ist total unimodular.
Natürlich kann man auch eine (oder mehrere) der Kanten e umorientieren:
(av,e , aw,e ) → (a′v,e , a′w,e ) = (aw,e , av,e ).
Die resultierende Inzidenzmatrix A′ entsteht A dadurch, dass die Spalten
der umorientierten Kanten mit (−1) multipliziert werden. Wichtig ist dabei
die Beobachtung:
• Bei einer Umorientierung änder sich die lineare Abhängigkeitsstruktur der Inzidenzmatrix nicht!
Folglich können wir unproblematisch den Rang des Graphen G als den
Rank (irgendeiner) seiner Inzidenzmatrizen A definieren:
(61)
rg(G) := rg(A).
92
5. UNIMODULARE LINEARE PROGRAMME
1.4. Wege und Wälder. Ein Weg (oder Pfad) im Graphen G = (V, E)
ist eine Folge von Knoten und Kanten
P = v0 e1 v1 e2 v2 . . . vk−1 ek vk
mit Γ(ei ) = {vi−1 , vi } für alle i = 1, . . . , k. Im Fall vk = v0 ist der Weg P
geschlossen
Eine Kantenteilmenge T ⊆ E, die keinen geschlossenen Weg enthält ist ein
sog. Wald. Ein Wald, der alle nichtisolierten Knoten von G berührt, heisst
aufspannend.
S ATZ 5.2. Eine Teilmenge T ⊆ E ist ein Wald von G, genau dann, wenn die
T entsprechenden Spalten der Inzidenzmatrix A linear unabhängig sind.
Beweis. Man macht sich leicht klar, dass die Spaltensumme der Kanten eines geschlossenen Wegs den Nullvektor ergibt (Beweis?). Folglich kann eine linear unabhängige Spaltenmenge keine Teilmenge umfassen, die zu einem geschlossenen
Weg gehört.
Sei umgekehrt T eine Menge von Spalten derart, dass entsprechende Spaltenteilmatrix AT der Inzidenzmatrix linear abhängig ist. Wir wählen T so klein wie
möglich (unter der linearen Abhängigkeitsbedingung) und bezeichnen mit V (T )
die Menge der Endknoten von T . Wir wollen zeigen, dass GT = (V (T ), T ) einen
geschlossenen Weg enthält.
Sei e1 ∈ T und {v0 , v1 } = G(e1 ). v1 muss Endpunkt einer Kante e2 ∈ T sein,
da sonst die Kante e1 von T \ {e1 } in der Inzidenzmatrix linear unabhängig wäre!
(Das würde der Minimalität von T widersprechen.)
So durchschreitet man der Reihe nach einen Weg
v0 e1 v1 e2 v3 . . .
Da es nur endlich viele Knoten gibt, erreicht man nach endlichen vielen Schritten einen Knoten, den man schon vorher besucht hatte. Damit ist der behauptete
geschlossene Weg nachgewiesen.
⋄
KOROLLAR 5.1. Ein Wald T des Graphen G ist genau dann aufspannend,
wenn gilt
|T | = rg(G).
Beweis. Gäbe es einen nichtisolierten Knoten v, der mit keiner Kante in T inzidiert, dann auch eine Kante e ∈ E mit v ∈ Γ(e), die von T linear unabhängig ist.
Also ist T ∪ {e} in der Inzidenzmatrix A linear unabhängig und folglich
|T | + 1 ≤ rg(G).
Sei umgekehrt T aufspannend. Es gäbe aber eine von T linear unabhängige Kante
e. Wir wollen daraus einen Widerspruch ableiten.
2. TOTAL UNIMODULARE LINEARE PROGRAMME
93
Dazu teilen wir V in die maximalen Blöcke V1 , . . . , Vk von Knoten auf, die paarweise durch Wege verbunden sind. e kann also nicht zwischen zwei verschiedenen
Blöcken verlaufen. Andererseits kann aber e auch nicht zwei Knoten innerhalb eines Blockes verbinden (da sonst T ∪ {e} einen geschlossenen Weg enthielte). Also
kann es eine solche Kante e nicht geben.
⋄
2. Total unimodulare lineare Programme
Wir betrachten das LP
min cT x s.d. Ax = b
(62)
x≥0
und nehmen an, dass die Matrix A ∈ Rm×n total unimodular ist.
Ist b ganzzahlig, dass folgern wir (wieder aus der Cramerschen Regel), dass
jede Basislösung des linearen Programms ganzzahlige Komponenten hat.
Das dazu duale LP ist
max bT y
(63)
s.d. AT y ≤ c.
Da auch AT total unimodular ist, folgern wir auf die gleiche Weise, dass
jede Basislösung des LP (63) ganzzahlige Komponenten hat – sofern der
Parametervektor c ganzzahlig ist. Denn das Problem ist äquivalent zu
max bT y
s.d. AT y − AT w + Is = c und y, w ≥ 0, s ≥ 0.
Die Koeffizientenmatrix [AT , −AT , I] des letzteren LP ist nämlich total unimodular.
Das Ganzzahligkeitsmodell kann noch weiter verallgemeinert werden, indem wir zustzlich Untergrenzen l und Obergrenzen u für die Variablen gestatten. Wir betrachten dann z.B. ein LP der Art
max cT x s.d. Ax ≤ b und
l ≤ x ≤ u.
Die Basislösungen auch dieses LP sind ganzzahlig, sofern b, l und u ganzzahlige Parametervektoren sind. Denn wir können die Restriktionen mit einer einer total unimodularen Koeffizientenmatrix so ausdrücken:
 
 
A
b
 I x ≤  u  .
−I
−l
94
5. UNIMODULARE LINEARE PROGRAMME
2.1. Zuordnungsprobleme. Seien S und T zwei disjunkte (endliche)
Mengen. Jedem s ∈ S steht eine Quantität bs zur Verfügung. Jedes t ∈ T
soll eine vorgeschriebene Quantität dt erhalten. Wir nehmen an, dass der
Transport“von xst ≥ 0 Einheiten von s nach t die Kosten cst xst verursacht.
”
Wir modellieren die Suche nach einem kostenminimalen Transportmodus
mit dem Graphen G = (S ∪ T, E = S × T ), dessen Kanten (s, t), wir als
von s nach t orientiert interpretieren. Dann ergibt sich das lineare Programm
∑
∑
min
cst xst s.d.
−xst ≥ −bs ∀s ∈ S
xst ≥0
(s,t)
t∈T
∑
xst ≥ dt
∀t ∈ T.
s∈S
mit einer total unimodularen Koeffizientenmatrix. Also finden wir:
• Sind die bs und dt ganze Zahlen, dann ist jede Basislösung des
Transportproblems ganzzahlig.
Ein Spezialfall ergibt sich aus dem sog. (bipartiten) Matchingproblem: Wir
suchen eine Menge M von paarweise disjunkten Kanten“ (s, t) ∈ S × T
”
derart, dass der Wert
∑
w(s, t)
w(M ) =
(s,t)∈M
möglichst gross ist. Dabei ist w : S × T → R eine vorgegebene Bewertungsfunktion der Kanten.
Dazu betrachten wir das lineare Programm
∑
∑
wst xst s.d.
−xst ≥ −1
max
xst ≥0
(s,t)
∀s ∈ S
t∈T
∑
xst ≤ 1
∀t ∈ T.
s∈S
Eine optimale Basislösung x ist ganzzahlig und hat deshalb alle Komponenten xst ∈ {0, 1}. Man macht sich leicht klar, dass eine Basislösung einem
Matching entspricht (und umgekehrt!).
2.2. Kürzeste Wege. Sei G = (V, E) ein gerichteter (d.h. orientierter)
Graph mit Inzidenzmatrix A. Der Weg
P = v0 e1 v1 e2 v3 . . . vk−1 ek vk
heisst gerichtet, wenn jede der Kanten ei ∈ P vom Endknoten vi−1 zum
Endknoten vi orientiert ist. Ausserdem sei mit d : E → R+ eine Distanzfunktion gegeben, welche die Länge“ einer Kante angibt. Wir definieren
”
2. TOTAL UNIMODULARE LINEARE PROGRAMME
95
die Länge von P
d(P ) := d(e1 ) + d(e2 ) + . . . + d(ek ).
Seien s, t ∈ V vorgegeben. Wir suchen einen gerichteten Weg kürzester
Länge von s nach t.
Dazu betrachten wir das lineare Programm
∑
(64)
min
de xe s.d Ax = b,
x≥0
e∈E
wobei b ∈ R der Vektor ist mit den Komponenten

 −1 für v = s
1 für v = t
bv =

0 sonst.
V
Jeder gerichtete Weg
P = se1 v1 e2 v3 . . . vk−1 ek t
ergibt eine zulässige Lösung x(P ) des linearen Programms mit den Komponenten
{
1 für e ∈ P
(P )
xe =
0 sonst.
L EMMA 5.2. Sei x ≥ 0 eine Basislösung des linearen Programms (64),
dann enthält die Menge
tr(x) = {e ∈ E | xe > 0}
einen gerichteten Weg von s nach t.
Beweis. Den behaupteten Weg kann man leicht konstruieren. Wegen
∑
ase xe = bs = 1
e
gibt es eine Kante e1 ∈ tr(x) mit Γ(e1 ) = {s, v1 }. Im Fall v1 = t, ist der Weg
gefunden. Ansonsten gibt es wegen
∑
∑
xe1 +
av1 e xe =
av1 e xe = bv1 = 0
e̸=e1
e
eine Kante e2 ∈ tr(x) mit Γ(e2 ) = {v1 , v2 }. Im Fall v2 = t ist der Weg gefunden.
Ansonsten folgt man einer Kante e3 tr(x) mit Γ(e3 ) = {v2 , v3 } usw.
Nach endlich vielen Schritten muss man t erreicht haben, da tr(x) keine geschlossenen Wege enthält.
⋄
B EMERKUNG. Man kann sich leicht davon überzeugen, dass bei einer zulässigen
Basislösung x der Träger tr(x) schon den Weg s nach t darstellt.
96
5. UNIMODULARE LINEARE PROGRAMME
2.2.1. Dijkstras Algorithmus. In der Praxis wird man einen kürzesten
Weg nicht mit allgemeiner LP-Software als Lösung von (64) berechnen,
sondern ein auf das Problem speziell zugeschnittenes Verfahren benutzen.
Es gibt viele solcher Verfahren. Eines der effizientesten ist der folgende
Algorithmus von Dijkstra.
OBdA gehen wir davon aus, dass es von einem Knoten v zu einem Knoten
w höchstens eine Kante e gibt, die wir somit als das Knotenpaar (v, w) eindeutig darstellen können. Wenn von v nach w keine Kante existiert, setzen
wir
dvw = ∞.
Dijkstras Algorithmus berechnet die kürzesten Wege von s zu allen übrigen
Knoten. Man stoppt natürlich, sobald man t erreicht hat.
(D0) Setze ys ← 0, S ← {s} und yv ← dsv für alle v ∈ V \ S.
(D1) Solange t ∈
/ S gilt, wähle ein v ∈ V \ S mit minimalem yv ,
setze S ← S ∪ {v} und datiere auf:
yw ← min{yw , yv + dvw } für alle w ∈ V \ S.
Man sieht leicht per Induktion (über |S|):
L EMMA 5.3. In jedem Stadium des Algorithmus von Dijkstra gilt:
• Die Werte yv der Knoten v ∈ S geben genau die minimale
Entfernung von s nach v an.
⋄
Aus der Dijkstra-Lösung y lässt sich leicht ein kürzester Weg von s nach t
durch Zurückrechnen“ gewinnen:
”
Man beginnt bei t und sucht ein v1 ∈ S \ {t} mit
yt = yv1 + dv1 ,t .
Nun sucht man ein v2 ∈ S \ {t, v1 } mit
yv1 = yv2 + dv2 ,v1
usw., bis man bei s angelangt ist.
3. ZIRKULATIONEN UND DAS MAX-FLOW-MIN-CUT-THEOREM
97
3. Zirkulationen und das MAX-Flow-MIN-Cut-Theorem
Der einfacheren Notation halber nehmen wir hier an, dass die Kanten des
gerichteten Graphen G = (V, E) genau den Knotenpaaren entsprechen.
D.h.
E = V × V.
Ein Fluss auf G ist ein Vektor x ∈ RE . Der (Netto-)Durchfluss von x im
Knoten v ist
∑
∑
∑
av,e xe ,
xuv =
xvw −
δv (x) =
w∈V
e∈E
u∈V
wobei A = [av,e ] die Inzidenzmatrix von G ist. Der Vektor aller Knotendurchflüsse ist somit in Matrixnotation
δ(x) = Ax.
Sind alle Nettodurchflüsse 0, so ist x eine sog. Zirkulation auf G. D.h.
x ist Zirkulation
⇐⇒
x ∈ ker A.
Sei nun f = (t, s) ∈ E eine festgewählte Kante und x eine Zirkulation auf
G = (V, E). Stellen wir uns vor, dass die Kante f in G blockiert wird. Dann
stellen die übrigen Kantenflusswerte xe (e ̸= f ) einen Fluss auf
Gf = (V, E \ {f })
dar, wo in s ein Nettoabfluss und bei t ein Nettozufluss in Höhe von xf
stattfindet. Mit anderen Worten:
• Die Einschränkung von x auf Gf beschreibt den Transport eines
Gutes“ der Quantität xf von der Quelle s zur Senke t entlang den
”
Kanten von Gf , wobei bei keinem Knoten v ∈ V \ {s, t} etwas
verloren geht oder hinzugewonnen wird.
Unter der Annahme, dass jede Kante e ∈ E \ {f } einer Kapazitätsschranke
ce ≥ 0 unterliegt, sucht man im Ford-Fulkerson-Problem nach einer nichtnegativen Zirkulation x, die den Transportwert xf maximiert:
(65)
max
s.d.
xf
δv (x) = 0
für alle v ∈ V
0 ≤ xe ≤ ce für alle e ∈ E \ {f }
Das zugehörige duale lineare Programm ist:
98
5. UNIMODULARE LINEARE PROGRAMME
min
∑
ce ze
e∈E
(66)
s.d.
− yv + ze ≥ 0 für alle e = (v, w) ̸= f
− y t + zf ≥ 1
ze ≥ 0.
yw
ys
3.1. Augmentierende Wege und Schnitte. Sei x ≥ 0 eine zulässige
Lösung von (65). Wie könnte man diese verbessern? Dazu betrachten wir
einen (nicht notwendig gerichteten) Weg
P = v0 e1 v1 e2 . . . vk−1 ek vk
von v0 = s nach vk = t. Im Fall ei = (vi−1 , vi ) ist ei eine sog. Vorwärtskante und im Fall ei = (vi , vi−1 ) eine Rückwärtskante von P . P + und P −
seien die Menge aller Vorwärts- bzw. Rückwärtskanten von P .
Wir setzen ε := min{ε+ , ε− }, wobei
ε+ := min{cvw − xvw | (v, w) ∈ P + }
ε− := min{xur | (u, r) ∈ P − },
und nennen P einen x augmentierenden Weg, wenn ε > 0 erfüllt ist.
Ist P augmentierend, dann können wir leicht eine bessere Zirkulation konstruieren:
• Wir erhören xe um ε auf der Kante e ∈ P + und erniedrigen xe um
ε auf jeder Kante e ∈ P − . (Die übrigen Kanten bleiben unberührt.)
Man sieht leicht: Es resultiert eine zulässige Zirkulation x′ mit Wert
x′f = xf + ε.
Suche nach augementierenden Wegen. Um einen x augmentierenden Weg
(sofern er existiert) gezielt zu suchen, betrachten wir den Hilfgraphen G(x)
auf den Knotenmenge V mit der Kantenmenge
E(x) = {(v, w) ∈ V × V | xvw < cvw oder xwv > 0}.
Man macht sich leicht klar:
• Die gerichteten Wege von s nach t in G(x) entsprechen genau den
x augmentierenden Wegen.
Ob t in G(x) von s erreichbar ist (d.h. ob ein augmentierender Weg existiert), kann man folglich mit dem Algorithmus von Dijkstra feststellen –
z.B. mit der Distanzfunktion
dvw = 1
für alle Kanten (vw) ∈ E(x).
3. ZIRKULATIONEN UND DAS MAX-FLOW-MIN-CUT-THEOREM
99
Schnitte. Sei allgemein S ⊆ V eine Knotenmenge mit s ∈ S. Dann bestimmt S einen sog. s-Schnitt
[S] = {(v, w) ∈ E | v ∈ S, w ∈
/ S}
der Kapazität
c[S] =
∑
ce .
e∈[S]
L EMMA 5.4 (Schnittlemma). Sei x eine zulässige Zirkulation auf G und
S ⊆ V mit s ∈ S und t ∈
/ S. Dann gilt Dann gilt
xf ≤ c[S]
Beweis. Wir setzen yv = 1 für alle v ∈ S und yv = 0 für v ∈
/ S. Ausserdem
wählen wir ze = 1 für e ∈ [S] und ze = 0 sonst.
Dann erhalten wir eine zulässige Lösung des dualen Problems (66) mit Zielfunktionswert
∑
ce ze = c[S].
e∈E
Die schwache Dualität der linearen Programmierung impliziert damit die behauptete Ungleichung.
⋄
Sei wie vorher x ≥ 0 eine zulässige Zirkulation und S die Menge aller von
s in G(x) erreichbaren Knoten. Im Fall t ∈
/ S ergibt sich nach Definition
von G(x) und der Knotenmenge S für eine Kante e = (v, w) ∈ E \ {f }:
{
c wenn v ∈ S und w ∈ V \ S
xe = e
0 wenn v ∈ V \ S und w ∈ S.
Also schliessen wir, dass x optimal ist. Denn
∑
xf =
xe = c[S] (Beweis?).
e∈[S]
S ATZ 5.3 (Ford-Fulkerson). Eine zulässige Zirkulation x ist optimal für
(65) genau denn, wenn es im Hilfsgraphen G(x) keinen augmentierenden
Weg von s nach t gibt.
⋄
Das lineare Programm (65) hat auf jeden Fall x = 0 als zulässige Lösung.
Also erhalten wir unter den obigen Voraussetzungen eine kombinatorische
(graphentheoretische) Form der LP-Dualität:
100
5. UNIMODULARE LINEARE PROGRAMME
KOROLLAR 5.2 (MAX-Flow-MIN-Cut).
max{xf | x zulässig für (65)} = min{c[S] | s ∈ S ⊆ V \ {t}}.
⋄
3.2. Der Algorithmus von Ford-Fulkerson. Die vorangegangene Analyse des Ford-Fulkerson-Problems (65) legt folgenden Algorithmus nahe:
(FF0) Beginne mit x = 0 als Startlösung und suche (über den Hilfsgraphen G(x)) einen augmentierenden Weg P von s nach t.
(FF1) S TOP, wenn P nicht existiert: x ist optimal.
(FF2) Wenn P existiert, modifiziere x entlang P zu dem verbesserten
zulässigen Fluss x′ mit x′f = xf +ε und iteriere nun mit x′ anstelle
von x.
S ATZ 5.4. Wenn man die augmentierenden Wege im FF-Algorithm mit dem
Dijkstra-Algorithmus berechnet, benötigt man insgesamt weniger als |V |3
Augementierungsschritte.
Beweis. Wir betrachten eine momentane Zirkulation x und nehmen an, dass der
kürzeste augmentierende Weg in G(x) k Kanten hat. Sei F (x) die Vereinigung
aller Kanten in kürzesten augmentierenden Wegen. P sei ein konkreter kürzester
augmentierender Weg.
Nach der Augmentierung entlang P erhält man eine Zirkulation x′ so, dass F (x′ )
mindestens eine der Kanten aus F (x) nicht mehr enthält.
Neue Kanten können natürlich bei E(x′ ) auftreten. Diese neuen Kanten sind aber
entweder parallel oder antiparallel zu Kanten in P . Man kann sich nun überlegen, dass mit diesen Kanten keine neuen augmentierenden Wege mit ≤ k Kanten
möglich werden (s. Lemma 5.5).
Also fallen die Kardinalitäten |F (x)| jeweils um mindestens eins bis E(x) keinen
augmentierenden Weg der Länge ≤ k mehr gestattet. Da ein kürzester augementierender Weg ≤ |V | Kanten durchläuft, gibt es insgesamt weniger als
|V | · |E| = |V |3
Iterationen.
⋄
L EMMA 5.5. Sei G = (V, E) ein gerichteter Graph und P ein gerichteter
Weg von s nach t mit einer minimalen Anzahl k von Kanten. Wenn man nun
zu E Kanten hinzufügt, die zu Kanten von P antiparallel sind, entsteht kein
neuer gerichteter Weg von s nach t mit ≤ k Kanten.
Beweis. Sei A die Inzidenzmatrix von G. Wir betrachten das LP, das Weglänge
minimiert,
min 1T x s.d. Ax = b,
x≥0
4. KOMBINATORISCHE OPTIMIERUNG
101
mit der Optimallösung x(P ) sowie das zugehörige duale LP
max yT b (= yt − ys ) s.d. yT A ≤ 1T .
(P )
Ist nun (v, w) eine Kante von P , dann hat (wegen xvw = 1 > 0 eine duale Optimallösung y∗ nach den Bedingungen des komplementären Schlupfes die Eigenschaft
∗
yw
− yv∗ = 1.
Wird nun die Kante (w, v) hinzugefügt, so ergibt sich bei dieser Kante
(67)
∗
yv∗ − yw
= yv∗ − 1 − yv∗ = −1 < 1.
Das heisst: y∗ ist auch im erweiteren dualen Problem eine zulässige Lösung und
auch (wegen yt∗ − ys∗ = k) weitherhin optimal.
Argumentieren wir nun mit dem komplementären Schlupf in die umgekehrte Richtung, so finden wir, dass (w, v) in keiner primalen Optimallösung nichttrivial vertreten sein kann.
⋄
4. Kombinatorische Optimierung
Die Techniken der vorangehenden Abschnitte können oft ausgebaut werden, um diskrete Optimierungsprobleme zu lösen und deren kombinatorische Struktur zu analysieren. Wir geben hier nur zwei kleine Beispiele.
4.1. Minimale aufspannende Wälder. Sei G = (V, E) ein (ungerichteter) Graph und c : E → R eine Kantengewichtsfunktion. Für jede Teilmenge K ⊆ E setzen wir
∑
c(K) :=
ce .
e∈K
Wir suchen einen aufspannenden Wald T ⊆ E mit möglichst kleinem
Gesamtgewicht c(T ). OBdA dürfen wir dabei annehmen, dass G zusammenhängend ist, d.h. dass je zwei Knoten in G über einen Weg verbunden
sind. (Sonst lösen wir das Problem separat auf jeder der Zusammenhangskomponenten.)
Im Algorithmus benutzen wir die Notation
δ(U ) := {e ∈ E | U ∩ Γ(e) ̸= ∅ ̸= (V \ U ) ∩ Γ(e)}.
P RIMS A LGORITHMUS :
(P0) Wähle ein s ∈ V und setze S := {s}, T := ∅.
(P1) Ist δ(S) =, stopp.
(P2) Wähle ein e ∈ δ(U ) mit minimalem Gewicht ce und datiere auf:
T ← [T ∪ {e}] und U ← [U ∪ Γ(e)].
(P3) Gehe zu (P1).
102
5. UNIMODULARE LINEARE PROGRAMME
S ATZ 5.5. Der Algorithmus von Prim produziert einen minimalen aufspannenden Wald T .
Beweis. Es ist klar, dass die Konstruktion von T an keiner Stelle einen geschlossenen Weg gestattet. Der Algorithmus gibt also am Ende einen aufspanndenden Wald
aus.
Wir zeigen nun induktiv, dass in jeder Iteration die konstruierte Menge T in einem
optimalen aufspannenden Wald enthalten ist. (Folglich muss T am Ende selber
optimal sein.)
Sei T ∗ also optimal mit T ∗ ⊃ T und e ∈ δ(S) die vom Algorithmus gewählte neue
Kante. Wenn e ∈ T ∗ gilt, hat man natürlich T ∪ {e} ⊆ T ∗ .
Sei also e ∈
/ T ∗ . Dann enthält T ∗ ∪{e} einen geschlossenen Weg P mit e ∈ P . Der
′
Weg P = P \ {e} verbindet einen Knoten v ∈ S mit einem Knoten w ∈ V \ S.
Also muss P ′ eine Kante f ∈ δ(S) enthalten. Da e ∈ δ(S) gewichtsminimal
gewählt war, haben wir cf ≥ ce . Folglich ist
T ′ = (T ∗ \ f ) ∪ e
auch ein gewichtsminimaler aufspannender Wald und es gilt: T ′ ⊇ (T ∪ e).
⋄
B EMERKUNG. Man beachte die formale Ähnlichkeit der Algorithmen von Prim
und Dijkstra!
Mit dem gleichen Argument lässt sich die Optimalität des folgenden Verfahrens zur Berechnung eines minimalen aufspannenden Waldes beweisen,
das als Kruksals Algorithmus1 bekannt ist:
K RUKSALS A LGORITHMUS :
(K0) Setze T := ∅.
(K1) Wähle ein e ∈ E \ T von minimalem Gewicht ce so, dass T ∪ {e}
keinen geschlossenen Weg enthält (d.h. einer linear unabhängigen
Spaltenmenge in der Inzidenzmatrix entspricht).
(K2) Gibt es kein solches e, stopp (das momentane T ist optimal).
(K3) Datiere auf: T ← [T ∪ {e}].
(K4) Gehe zu (K1).
B EMERKUNG. Prims Algorithmus ist in der Praxis dem Kruskalschen überlegen.
In der Theorie führt die Version von Kruskal jedoch auf Strukturen, welche bei
allgemeineren kombinatorischen Optimierungsproblemen und z.B. auch bei sog.
kooperativen Spielen in der mathematischen Spieltheorie wichtig sind.
1
tatsächlich wurde der Algorithmus von Boruvka über 20 Jahre vor Kruskal entdeckt
4. KOMBINATORISCHE OPTIMIERUNG
103
4.2. Der Satz von König-Egervary. Wir betrachten das Matchingproblem bzgl. der disjunkten Mengen S und T bzgl. der Gewichtsfunktion
w(s, t) ∈ {−∞, +1}.
w(s, t) = −∞ kann man so interpretieren, dass (s, t) für ein Matching nicht
zur Verfügung steht. Wir wollen also ein Matching mit möglichst vielen
zulässigen Kanten der Menge
E = {(s, t) ∈ S × T | w(s, t) = 1}.
B EMERKUNG. G = (S ∪ T, E) ist ein sog. bipartiter Graph.
Die Aufgabe, ein maximales Matching zu berechnen, erweist sich als ein
Spezialfall des FF-Problems. Dazu betrachten wir den Graphen G = (V, E),
mit zwei neuen Knoten s0 , t0 , d.h. V = (S ∪ T ∪ {s0 , t0 }, E, und Kantenmenge
E = E ∪ {(s0 , s) | s ∈ S} ∪ {(t, t0 ) | t ∈ T } ∪ {(t0 , s0 }
Beschränken wir nun die Kapazität der Kanten vom Typ (s0 , s) und (t, t0 )
auf 1 (und +∞“ sonst) , so berechnet der FF-Algorithmus einen Vektor
”
x ∈ {0, 1}E mit maximalem Flusswert
∑
x(t0 ,s0 ) =
xe .
e∈E
Folglich ist M = {e ∈ E | xe = 1} ein maximales Matching in G.
Unter einer (Kanten-)Überdeckung von G = (S ∪ T, E) versteht man eine
Menge von Knoten(!) C ⊆ S ∪ T mit der Eigenschaft
(v, w) ∈ E
=⇒
v ∈ C oder w ∈ C.
C muss mindestens die Mächtigkeit eines beliebigen Matchings M haben,
denn jede Kante aus M muss ja durch C abgedeckt sein:
|C| ≥ |M |.
Sei andererseits M ein maximales Matching, das nach dem FF-Algorithmus
konstruiert wurde und C die Menge aller Knoten die von s0 noch erreichbar
sind. Wegen
c[C] = |M | < ∞,
kann es kein e ∈ E geben, das von S ∩ C nach T \ C verläuft. Also ist
C = (S \ C) ∪ (T ∩ C)
eine Überdeckung und hat Mächtigkeit
|C| = |S \ C| + |T ∩ C| = c[C] = |M |.
104
5. UNIMODULARE LINEARE PROGRAMME
S ATZ 5.6 (König/Egervary). Sei G = (S ∪ T, E) bipartit. Dann gilt
max{|M | | M Matching} = min{|C| | C Überdeckung.}
⋄
B EMERKUNG. Das Matching- und Überdeckungsproblem kann sinnvoll auch im
Fall T = S (d.h. E ⊆ S × S) formuliert werden. Während das Matchingproblem
(mit etwas mehr Aufwand) noch effizient lösbar bleibt, ist in dieser Allgemeinheit kein effizienter Algorithmus für das analoge Überdeckungsproblem bekannt.
Insbesondere gilt der Satz von König/Egervary“ in diesem Rahmen nicht mehr.
”
B EMERKUNG. Der Satz von König/Egervary ist die Grundlage vieler Minimax-Sätze in der Kombinatorik.
KAPITEL 6
Schnittebenenverfahren und Heuristiken
Wir betrachten nun Optimierungsprobleme vom Typ
(68)
min cT x
s.d. Ax ≤ b, x ≥ 0, x ganzzahlig,
wobei die Matrix A ∈ Rm×n und die Vektoren c ∈ Rn , b ∈ Rm gegeben
seien.
Wir wissen: Ist A total unimodular und b ganzzahlig, dann existiert immer
eine optimale Lösung mit ganzzahligen Komponenten, sofern überhaupt eine Optimallösung existiert. Denn die Basislösungen des äquivalenten Problems
min cT x s.d. Ax + z = b
x≥0,z≥0
sind ganzzahlig. Die Ganzzahligkeitsforderung ist also durch Übergang zu
einer Basislösung leicht zu erfüllen. Im allgemeinen ist (68) jedoch kein
lineares Programm im strengen Sinn, da der Zulässigkeitsbereich
F = {x ∈ P | x ∈ Nn } = P ∩ Zn
eine diskrete Menge und (ausser im Trivialfall) kein Polyeder ist. Ist F
endlich und setzen wir PI = convF, so ist (68) äquivalent zu dem Problem
min cT x s.d. x ∈ PI .
Wäre eine Matrix A′ und ein Vektor b′ mit PI = P (A′ , b′ ) bekannt, so
könnte man jedoch das Ausgangsproblem (68) als lineares Programm formulieren:
min cT x s.d. A′ x ≤ b′ .
V EREINBARUNG . In diesem Kapitel nehmen wir durchweg an, dass sämtliche Problemparameter A, c, b rational sind. OBdA dürfen wir die Problemparameter dann als ganzzahlig annehmen.
1. Schnittebenen
Es seien nun allgemein A ∈ Zm×n und b ∈ Zm gegeben und
P = P (A, b) = {x ∈ Rn | Ax ≤ b}
105
106
6. SCHNITTEBENENVERFAHREN UND HEURISTIKEN
das entsprechende rationale Polyeder. Wir interessieren uns für die Menge
PI = conv{x ∈ P | x ∈ Zn }.
P ROPOSITION 6.1. Ist P ein rationales Polyeder, dann ist auch PI ein rationales Polyeder.
Beweis. Im Fall PI = ∅ ist nichts zu beweisen. Sei also PI ̸= ∅. Nach dem
Dekompositionssatz von Weyl-Minkowski existieren endliche Mengen V, W ⊆
Qn so, dass
P = conv(V ) + cone(W ).
Stellen wir uns V und W als Matrizen mit den entsprechenden Vektoren als Spalten
vor, so kann ein beliebiges x ∈ P in der Form
x = V s + Wt
mit s, t ≥ 0, 1T s = 1
dargestellt werden. Nach geeigneter Skalierung (Multiplikation mit dem Hauptnenner) dürfen wir dabei die rationalen Vektoren w ∈ W oBdA als ganzzahlig
annehmen. Bezeichnen wir mit ⌊t⌋ den Vektor der ganzzahlig nach unten gerundeten Komponenten von t und setzen t = t − ⌊t⌋ ≥ 0, dann erhalten wir
x = (V s + W t) + W ⌊t⌋ = x + W ⌊t⌋
mit dem ganzzahligen ⌊t⌋ und x in
(69)
P
= {V s + W t | s ≥ 0, 1T s = 1, 0 ≤ t ≤ 1}.
Als Bild des Polytops Q = {t | 0 ≤ t ≤ 1} unter der linearen Abbildung W ist
W (Q) ein Polytop, Folglich ist auch
P = conv(V ) + W (Q)
als Minkowskisumme von Polytopen ein Polytop. Wegen W ⌊t⌋ ∈ Zn finden wir
x ∈ Zn
⇐⇒
x ∈ Zn
u nd deshalb
P ∩ Zn = P ∩ Zn + {W z | z ≥ 0 ganzzahlig}.
Da P ein Polytop (und somit beschränkt) ist, ist P ∩ Zn eine endliche Menge.
Wegen
(70)
PI = conv(P ∩ Zn ) + cone(W )
erkennen wir PI somit als Polyeder.
⋄
B EMERKUNG. Im Prinzip könnte man aus der Darstellung (70) (z.B. mit FourierMotzkin) eine lineare Beschreibung von PI durch Ungleichungen ableiten. Für das
Optimierungsproblem (68) ist dies jedoch nicht interessant, da ein solches Vorgehen bedeutet, dass man ohnehin zuerst sämtliche ganzzahligen Vektoren in P
(darunter auch die Optimallösung) auflisten müsste. Man hätte das Optimierungsproblem also schon gelöst, bevor man mit linearen Beschreibung fertig ist.
1. SCHNITTEBENEN
107
1.1. Das Verfahren von Gomory. Um eine lineare Beschreibung von
PI zu erzielen, gehen wir von gültigen Ungleichungen für das Polyeder
P = P (A, b) aus. Gemäss dem Lemma von Farkas betrachten wir deshalb
ein beliebiges rationales y ≥ 0 und cT = yT A. Dann ist cT x ≤ z mit
z = yT b eine gültige Ungleichung für P . Wir dürfen c als ganzzahlig
annnehmen. Der springende Punkt ist dann die Beobachtung
• cT = yT A ist ganzzahlig und
cT x ≤ z ′
mit z ′ = ⌊yT b⌋ ∈ Z
eine gültige Ungleichung für PI , da sie von allen ganzzahligen
Vektoren in P erfüllt wird.
Tatsächlich genügt es, sich dabei auf y mit Komponenten yi ∈ [0, 1] zu
beschränken. Denn bei einem allgemeinen rationalen y′ ∈ Qn+ und z ∈ Zn+
mit der Eigenschaft
0 ≤ y = y′ − z ≤ 1
ist die Ungleichung
(zT A)x ≤ zT b ∈ Z
ja ohnehin schon von Ax ≤ b impliziert. Für ganzzahliges x ∈ P (A, b)
gilt darum
(y′ )T Ax ≤ ⌊(y′ )T b⌋
⇐⇒
yT Ax ≤ ⌊yT b⌋.
Damit erhalten wir das Gomory-Polyeder
P ′ = {x ∈ P | (yT A)x ≤ ⌊yT b⌋, y ∈ [0, 1]m , yT A ∈ Zn }
B EMERKUNG. P ′ ist tatsächlich ein Polyeder, denn es gibt nur endlich viele verschiedene Gomory-Schnitte. Das sieht man so: Die Menge {yT A | 0 ≤ y ≤ 1} ist
eine beschränkte Menge von Zeilenvektoren in Rn und enthält deshalb nur endlich
viele ganzzahlige Vektoren.
Iterieren wir diese Konstruktion, so ergibt sich die Gomory-Folge
P ⊇ P ′ ⊇ P ′′ ⊇ . . . ⊇ PI .
Man bemerke, dass keine der Gomory-Ungleichungen einen ganzzahligen
Punkt aus P abschneidet“. Ausserdem gilt: Sobald bei der Gomory-Folge
”
kein neues Polyeder konstruiert wird, hat man genügend viele Ungleichungen erzeugt, die PI festlegen.
Ohne Beweis bemerken wir
S ATZ 6.1 (Gomory). Die Gomory-Folge eines rationalen Polyeders P hat
endliche Länge und endet mit PI .
⋄
108
6. SCHNITTEBENENVERFAHREN UND HEURISTIKEN
Der Beweis ist nicht schwer aber etwas aufwendig. Deshalb sei hier darauf
verzichtet. Wir beweisen nur:
L EMMA 6.1. Sei P ein rationales Polytop mit P = P ′ . Dann gilt P = PI .
Beweis. Sei P ̸= PI . Dann besitzt P eine Ecke v mit (mindestens) einer Komponente vj ∈
/ Z. Ausserdem existiert ein c ∈ Zn derart, dass die Funktion f (x) =
cT x über P genau von v maximiert wird. Seien v(1) , . . . , v(k) die übrigen Ecken
von P und
min (cT v − cT v(ℓ) ) = ε > 0
ℓ=1,...,k
max |x1 | + . . . + |xn | = M < ∞.
x∈P
Sei K ∈ N so gewählt, dass Kε > 2M erfüllt ist. Dann maximiert v auch die
Funktion f (x) = cT x über P , mit
cT = [Kc1 , . . . , Kcj + 1, . . . , Kcn ] = KcT + eTj .
Denn für jede andere Ecke v(ℓ) von P gilt
(ℓ)
K(cT v(ℓ) ) + vj < K(cT v − ε) + M < KcT v − M < KcT v + vj .
Wegen cT v − KcT v = vj ∈
/ Z ist entweder cT v oder cT v keine ganze Zahl.
Also ist
cT x ≤ ⌊cT v⌋
oder cT x ≤ ⌊cT v⌋
eine Ungleichung, die zwar für PI gültig ist aber nicht für P . D.h. P ̸= P ′ , was im
Widerspruch zu unseren Voraussetzungen stünde!
⋄
Der Satz von Gomory führt zu einem endlichen Algorithmus zur Lösung
von des ganzzahligen Optimierungsproblems
max cT x
s.d. Ax ≤ b, x ∈ Zn .
Man löst die LP-Relaxierung
max cT x
s.d. Ax ≤ b.
Ist die gefundene Optimallösung x∗ ganzzahlig, dann ist nichts weiter zu
tun. Andernfalls berechnet man das Gomory-Polyeder P ′ und löst
max′ cT x
x∈P
usw. bis das ganzzahlige Optimum gefunden ist. In der Praxis ist diese Vorgehensweise typischerweise jedoch hoffnungslos ineffizient.
1. SCHNITTEBENEN
109
1.2. Schnittebenenverfahren. Die Idee hinter Schnittebenenverfahren
zur Lösung ganzzahliger linearer Programme ist wie die des Gomory-Verfahrens: Man löst die LP-Relaxierung des Problems. Ist die gefundene Optimallösung x∗ ganzahlig, so ist das Problem optimal gelöst.
Ist x∗ nicht ganzzahlig, so fügt man dem LP eine Ungleichung
aT x ≤ b
hinzu, die für alle x ∈ P ∩ Zn (und somit für PI (A, b)) gilt und von x∗
verletzt wird. Die entsprechende Hyperebene
H(a, b) = {x ∈ Rn | aT x = b}
heisst Schnittebene (bzgl. P und PI ).
Unter Ausnutzung der speziellen kombinatorischen Struktur, die das Optimierungsproblem haben mag, lassen sich in der Praxis oft gezielt Schnittebenen bestimmen, die zu effizienteren Algorithmen führen als Gomorys
Allzweckverfahren.
Ein Schnittebenen-Verfahren geht nach folgendem Prinzip zur Lösung des
Problems
max cT x s.d. Ax ≤ b, x ∈ Zn
vor:
(SE0) Löse das relaxierte LP-Problem
max cT x
s.d. Ax ≤ b.
Ist die gefundene Optimallösung x∗ ganzzahlig, S TOP.
/ Zn eine Schnittebenenungleichung aT x ≤
(SE1) Bestimme im Fall x∗ ∈
∗
b für PI , die von x verletzt wird (d.h. aT x∗ > b) und füge diese
den Restriktionen hinzu. Löse nun
max cT x
s.d. Ax ≤ b, aT x ≤ b.
Ist die gefundene Optimallösung x ganzzahlig, S TOP.
/ Zn eine Schnittebenenungleichung aT x ≤
(SE2) Bestimme im Fall x ∈
′
b für PI , die von x verletzt wird (d.h. aT x > b) und füge diese den
bisherigen Restriktionen hinzu usw.
110
6. SCHNITTEBENENVERFAHREN UND HEURISTIKEN
1.2.1. Quadratische boolesche Optimierung. Als Beispiel betrachten
wir zu gegebenen Paramentern qij ∈ R das Problem
max
n ∑
n
∑
qij xi xj , xi ∈ {0, 1}.
i=1 j=1
Sei V = {1, . . . , n} und E die Menge aller Paarmengen {i, j}. Zu e =
{i, j} setzen wir
di = qii und ce = qij + qji .
2
Wegen xi = xi und ye = xi xj ∈ {0, 1} erhalten wir eine Formulierung als
ganzzahliges LP:
∑
∑
max
di xi +
ce ye
i∈V
s.d.
(71)
e∈E
ye − xi
xi + xj − ye
xi , ye
−xi , −ye
xi , ye
≤
≤
≤
≤
0
e ∈ E, i ∈ e
1
e = {i, j}
1
0
ganzzahlig.
B EMERKUNG. Man kann sich dieses Problem vorstellen als die Aufgabe, im
vollständigen Graphen Kn mit Knotenmenge V und Kantenmenge E einen vollständigen Untergraphen maximalen Gesamtgewichts zu wählen. Dabei sind die
Knoten i ∈ V mit di und die Kanten e ∈ E mit ce gewichtet.
Als Schnittebenen für das von den ganzzahligen Lösungen von (71) erzeugte Polytop PI kommen alle Ungleichungen in frage, die von den ganzzahligen Lösungsvektoren erfüllt werden. Beispiele sind etwa die Dreiecksungleichungen
xi + xj + xk − ye − yf − yg ≤ 1
für jeweils drei Knoten i, j, k ∈ V und die dazugehörigen Kanten e, f, g ∈
E des entsprechenden Dreiecks“ {i, j, k}.
”
Dieses Beispiel kann verallgemeinert werden. Dazu setzen für S ⊆ V mit
|S| ≥ 2
∑
∑
x(S) =
xi und y(S) =
ye ,
i∈S
e∈E(S)
wobei E(S) die Menge aller Paarmengen e = {i, j} ⊆ S ist. Zu α ∈ N
definieren wir die entsprechende Cliquenungleichung als
αx(S) − y(S) ≤ α(α + 1)/2.
L EMMA 6.2. Jede zulässige (0, 1)-Lösung (x, y) von (71) erfüllt jede Cliquenungleichung.
2. HEURISTISCHE VERFAHREN
111
Beweis. Sei C = {i ∈ S | xi = 1} und s = |C| ≤ |S|. Dann gilt x(S) = s und
y(S) = s(s − 1)/2. Also finden wir
α(α + 1)/2 − αx(S) − y(S) = [α(α + 1) − 2αs + s(s − 1)]/2
= (α − s)(α − s + 1)/2.
Da α und s ganze Zahlen sind, ist der letzte Ausdruck immer nichtnegativ.
⋄
Es gibt allein schon 2n − n − 1 Cliquenungleichungen. Diese genügen noch
nicht, um PI vollständig zu beschreiben. Bei nicht zu grossen booleschen
Problemen (n ∼ 40) kommt man damit aber in der Praxis schon recht weit.
2. Heuristische Verfahren
Ein heuristisches Verfahren ist eine Methode, von der man annimmt, dass
sie eigentlich“ ganz gut funktionieren müsste – obwohl man keine stren”
ge mathematische Aussage über die Qualität der zu erwartenden Lösung
machen kann.
Wir illustrieren die Idee mit folgendem Modell. V ist eine grosse “ Menge
”
und c : V → R eine Gewichtsfunktion. Gesucht ist ein v ∈ V mit
c(v) = min c(v) (oder c(v) ≈ min c(v)).
v∈V
v∈V
2.1. Nachbarschaftssuche. Wir nehmen an, dass auf V eine Nachbarschaftsstruktur N gegeben ist, die jedem v ∈ V eine Menge N (v) ⊆ V als
Nachbarn zuordnet. (V wird damit zu einem (gerichteten) Graphen).
Man beginnt bei einem Startobjekt v0 ∈ V und sucht sich einen Nachbarn
v1 ∈ N (v0 ) mit der Eigenschaft
c(v1 ) ≤ c(v0 ).
Gibt es ein solches v1 , ersetzt man v0 durch v1 und verfährt wie eben. Gibt
es kein solches v1 , so nimmt man
v = v0
als (heuristische) Lösung des Minimierungsproblems.
B EMERKUNG. Bei der Wahl der Nachbarschaftsstruktur N hat man im Prinzip
alle Freiheiten. Natürlich sollte man in der Praxis N so wählen, dass man rechnerisch gut damit umgehen kann.
Als Beispiel betrachten wir das Problem des Handlungsreisenden ( TSP“).
”
Gegeben ist eine Menge S = {s1 , . . . , sn } von n Objekten ( Städten“) und
”
eine Distanzmatrix
n×n
.
D = [dij ] ∈ R+
112
6. SCHNITTEBENENVERFAHREN UND HEURISTIKEN
Eine Rundreise Π entspricht einer Permutation π = π(1) . . . π(n) der Menge {1, . . . , n} mit π(n) = 1:
Π : s1 → sπ(1) → sπ(2) → . . . → sπ(n−1) → s1 .
Die Kosten von Π werden als der Weglänge entsprechend angenommen:
c(Π) := d1,π(1) + dπ(1),π(2) + . . . + dπ(n−1),1 .
G ESUCHT: Eine Rundreise mit minimalen Kosten.
Die hier interessierende Menge V aller Rundreisen ist sehr gross:
|V | = (n − 1)!
Eine Möglichkeit (unter vielen!), eine Nachbarschaftstruktur zu definieren,
wäre, zwei Permutationen π und π ′ als Nachbarn zu betrachten, wenn sie
durch eine Transposition auseinander hervorgehen:
π = π(1) . . . π(i)π(i + 1) . . . 1 ∼ π ′ = π(1) . . . π(i + 1)π(i) . . . 1.
In diesem Fall hätte eine Rundreise Π nur
|N (π)| = n − 1
Nachbarn, die leicht (von Π aus) leicht zu konstruieren sind.
B EMERKUNG. Es gibt sehr viele Möglichkeiten, Nachbarschaftsstrukuren auf der
Menge aller Permutationen zu definieren. Welches die beste“ ist, ist mathematisch
”
schwer zu entscheiden.
2.2. Simulated Annealing. Man kann die Idee der Nachbarschaftssuche randomisieren“ und kommt somit zu einem Verfahren, das in der Pra”
xis oft noch bessere Resultate zeitigt. Die Vorgehensweise ist folgendermassen:
(1) Man gibt sich einen Parameter θ > 0 vor und wählt einen Startpunkt v0 ∈ V .
(2) Wenn man sich nach t Schritten bei vt ∈ V befindet, macht man
einen Zufallsschritt:
(a) Man wählt (irgendeinen) Nachbarn w ∈ N (vt ) nach dem Zufallsprinzip aus und setzt
vt+1 := w
falls c(w) ≤ c(vt ).
(b) Im Fall c(w) > c(vt ) macht man ein weiteres Zufallsexperiment und setzt
{
w mit W’keit e−θ(c(w)−c(vt )) .
vt+1 :=
vt mit W’keit 1 − e−θ(c(w)−c(vt )) .
3. ENUMERATION
113
B EMERKUNG. Der springende Punkt bei diesem randomisierten Verfahren ist der
Möglichkeit eines Übergangs v → w selbst dann, wenn sich keine Verbesserung
der Zielfunktion c ergibt.
Sei π (t) (v) die Wahrscheinlichkeit, dass das Verfahren nach t Schritten bei
vt ∈ N angekommen ist. Der Erwartungswert der produzierten Lösung ist
dann
∑
Et (c) =
c(v)π (t) (v).
v∈V
Wir nehmen nun an, dass die Nachbarschaftsstruktur N im folgenden Sinn
regulär ist: Für alle v, w ∈ V gilt:
(1) w ∈ N (v) ⇐⇒ w ∈ N (w).
(2) |N (v)| = N (w)|.
(3) Es gibt einen Pfad von v nach w in der Nachbarschaftsstruktur.
Dann kann man zeigen:
L EMMA 6.3. Bei einer regulären Nachbarschaftsstruktur generiert man
(approximativ) eine Boltzmannverteilung auf V :
lim π (t) (v) = Kθ e−c(v)θ
t→∞
(v ∈ V ).
(Der Beweis ist nicht schwer, aber technisch. Er wird deshalb hier nicht gegeben1.)
⋄
3. Enumeration
Wir betrachten (der Einfachheit halber) jetzt binäre“ Probleme vom Typ
”
min cT x s.d. Ax ≤ b x ∈ {0, 1}n ,
die natürlich auch ganzzahlige lineare Programme sind.
Die Idee ist simpel: Man enumeriert im Prinzip alle möglichen (zulässigen)
Lösungen und sucht sich darunter eine mit minimalem Zielfunktionswert.
Das kann man systematisch machen, indem man einen Suchbaum B aufstellt. Man beginnt zum Beispiel mit x1 und unterscheidet zwischen den
Fällen x1 = 0 und x1 = 1. Somit verzweigt sich B entsprechend in zwei
Suchbäume B0 und B1 , die man nun getrennt absucht.
Betrachten wir etwa x2 , so verzweigt sich z.B. B0 in die Suchbäume
B00 ←→ (x1 = 0, x2 = 0)
1
und
B01 ←→ (x1 = 0, x2 = 1)
Ein noch allgemeineres Konvergenzmodell des randomisierten Verfahrens findet sich
in der Arbeit: U. Faigle/W. Kern: Some convergence results for probabilistic tabu search,
ORSA Journal on Computing 4 (1992), 32-37
114
6. SCHNITTEBENENVERFAHREN UND HEURISTIKEN
usw.
Wenn man sämtliche 2n Suchbäume aufgestellt hat, hat man natürlich auch
indirekt alle möglichen Lösungen enumeriert und kann die Optimallösung
festnageln.
3.1. Verzweigen und Abschneiden. Wir versuchen, das Enumerationsverfahren zu beschleunigen, indem wir unnötige“ Verzweigungsbäume
”
erst gar nicht durchlaufen.
Wir nehmen an, wir hätten schon (irgendwie) einen (z.B. heuristischen)
Lösungskandidaten x generiert, und betrachten nun den Suchbaum B01 , der
dem folgenden Problem entspricht:
(72)
min n cT x s.d. Ax ≤ b
x∈{0,1}
und x1 = 0, x2 = 1
Natürlich brauchen wir dann B01 nicht weiter zu durchsuchen, wenn das
Problem (72) keine Lösung mit einem besseren Wert als cT x erwarten lässt.
In diesem Fall können wir also unseren Suchbaum bei B01 abschneiden: Alle Suchbäume vom Typ B010... oder B011... sind dann für die Optimallösung
uninteressant geworden.
Wir suchen also Techniken, die uns möglichst gute Abschätzungen für den
bestmöglichen Zielfunktionswert eines ganzzahligen linearen Programms
liefern.
4. Relaxierung
Statt des ganzzahligen Programms
(73)
min cT x s.d.
Ax ≤ b, xj ∈ {0, 1} ∀j = 1, . . . , n
betrachten wir das ( relaxierte“) LP
”
(74)
min cT x s.d. Ax ≤ b, 0 ≤ xj ≤ 1 ∀j = 1, . . . , n,
das sicherlich eine Untergrenze für den gesuchten Zielfunktionswert liefert,
das es ja einen grösseren Lösungsbereich hat.
4.1. Lagrange-Relaxierung. Wir nehmen nun bei (73) an, dass das
Restriktionssystem Ax ≤ b in Untersysteme A′ x ≤ b′ und A′′ x ≤ b′′ von
leichten“ und schweren“ Restriktionen zerfällt und etwa das Problem
”
”
(75)
min n cT x + (y′′ )T (A′′ x − b′ ) s.d.
A′ x ≤ b ′
x∈{0,1}
(oder dessen LP-Relaxierung) zu einem gegebenen y′′ ≥ 0 relativ einfach
zu lösen wäre. Sei L′′2 (y′′ ) der entsprechende Optimalwert.
4. RELAXIERUNG
115
B EISPIEL 6.1. Nehmen wir an, dass Ax ≤ b ein total unimodulares Teilsystem A′ x ≤ b′ enthält. Dann ist jede Basislösung von
(76)
min cT x + (y′′ )T (A′′ x − b′′ )
0≤x≤1
s.d.
A′ x ≤ b′
schon ein (0, 1)-Vektor. Die Ganzzahligkeitsbedingung braucht also nicht
weiter beachtet zu werden.
B EMERKUNG. Die Zielfunktion von (75) ist im wesentlichen linear(!), wenn man
y′′ festhält:
cT x + (y′′ )T (A′′ x − b′′ ) = (y′′ )T b + (cT + (y′′ )T A′′ )x.
Der Term (y′′ )T b ist dann nämlich konstant und kann somit bei der Optimierung
unberücksichtigt bleiben. Es bleibt übrig:
min cT x
x
mit cT = cT + (y′′ )T A.
L′′2 (y′′ ) ist dann sicherlich eine Untergrenze für den Optimalwert von (73).
Die beste Untergrenze dieser Art bekommt man von der Lösung des Optimierungsproblems
max
L′′2 (y′′ ).
′′
y ≥0
B EMERKUNG. Die Idee hinter der Lagrange-Relaxierung zur Gewinnung von
Abschätzungen für den Zielfunktionswert lässt sich selbstverständlich auch auf allgemeine mathematische Optimierungsprobleme anwenden.
Herunterladen