Vorlesung Einf¨ uhrung
in die
Mathematische Optimierung (Wintersemester 2019/20)
Kapitel 6: Der Simplex-Algorithmus
Volker Kaibel
Otto-von-Guericke Universit¨at Magdeburg
(Version vom 20. Dezember 2019)
Gliederung
Ecken, Kanten, Extremalstrahlen
Geometrische Beschreibung des Simplex-Algorithmus Algebraische Beschreibung des Simplex-Algorithmus Pivot-Regeln und Komplexit¨at
Der Simplex-Algorithmus im Gleichungsformat Der revidierte Simplex-Algorithmus
Pivotisieren in Tableaus/Dictionaries Der duale Simplex-Algorithmus
Das Bild
[Bild: Marc Pfetsch, TU Braunschweig]
Ecken
Erinnerung
◮ Ein Polyeder P ∕=∅heißt spitz, wenn lineal(P) ={O} ist.
Ecken sind die minimalen Seiten eines spitzen Polyeders.
◮ Spitze Polyeder sind nicht-leer. Die Ecken eines Polyeders P sind seine null-dimensionalen (d.h. einpunktigen) Seiten. Ist {v}eine Ecke von P, so nennen wir auch den Punktv eine Ecke von P.
spitz nicht spitz
Ecken und Lineare Optimierung
Folgerungen
◮ Sind P≤(A,b) spitz und (LP)max{〈c,x〉 : Ax ≤b,x∈Rn} nicht unbeschr¨ankt, so nimmt (LP) sein Optimum in einer Ecke von P≤(A,b) an (Kor. 5.32).
◮ (Eine solche optimale Ecke kann mit polynomialen
Algorithmen f¨ur lineare Optimierungsprobleme in polynomialer Zeit bestimmt werden.)
◮ IstP ⊆ n+ ein Polyeder, so istP spitz oder P =∅.
◮ Jedes lineare Optimierungsproblem kann in die Form max{〈c,x〉 : Cx ≤d,x∈ n+} gebracht werden.
Charakterisierungen von Ecken
Satz 6.1
F¨urA∈Rm×n,b∈Rm und v ∈P≤(A,b) sind folgende Aussagen paarweise ¨aquivalent (mitEq(v) = {i ∈[m] : 〈Ai,!,v〉=bi}):
1. v ist eine Ecke von P≤(A,b).
2. {v}={x ∈P≤(A,b) : AEq(v),!x=bEq(v)} 3. {v}={x ∈Rn : AEq(v),!x =bEq(v)} 4. rang(AEq(v),!) =n
5. F¨ur allex,y ∈P≤(A,b)\ {v} giltv ∕∈conv{x,y}.
Eindimensionale Seiten spitzer Polyeder
Definition 6.2
Eine eindimensionale SeiteF eines spitzen PolyedersP heißt eine Kantevon P, wennF beschr¨ankt ist, und einExtremalstrahl vonP, wennF unbeschr¨ankt ist.
Bemerkung 6.3
SeiP ⊆Rn ein spitzes Polyeder.
1. Zu einer KanteE vonP gibt es genau zwei Eckenv und w von P mitE = conv{v,w};v und w heißen dann Nachbarn voneinander.
2. Zu einem Extremalstrahl R von P gibt es genau eine Eckev von P und ein y ∈char(P)\ {O} mitR=v+ cone(y).
Extremalstrahlen von polyedrischen Kegeln
Bemerkung 6.4
IstK ⊆Rn ein spitzer polyedrischer Kegel, so istOndie einzige Ecke vonK. Sindy(1), . . . ,y(r)∈Rn\ {On}so, dass
cone(y(1)),. . . ,cone(y(r)) die Extremalstrahlen vonK sind, so ist K = ccone{y(1), . . . ,y(r)}.
(Die Extremalstrahlen sind die minimalen echten Seiten vonK.)
Der Radialkegel einer Ecke
Satz 6.5
SeienA∈Rm×n,b ∈Rm undv eine Ecke von P = P≤(A,b).
Dann gelten f¨urKv(P) = cone (P −v)und Nv(P) = (Kv(P))◦: 1. Kv(P) ={y ∈Rn : AEq(v),!y≤OEq(v)}
2. Sind w(1), . . . ,w(s)∈P die Nachbarn vonv inP und
v+ cone(y(1)), . . . ,v+ cone(y(t)) die Extremalstrahlen vonP, deren Ecke v ist (mity(1), . . .y(t)∈Rn\ {On}), so sind
cone (w(1)−v), . . . ,cone (w(s)−v), cone (y(1)), . . . ,cone (y(t))
die Extremalstrahlen von Kv(P). Insbesondere ist dann Nv(P) = !
z ∈Rn : 〈z,w(i)〉 ≤ 〈z,v〉 f¨ur alle i ∈[s],
〈z,y(i)〉 ≤0 f¨ur alle i ∈[t]"
.
Beispiel
In einer Ecke
Korollar 6.6
F¨ur allev ∈P≤(A,b)und c ∈Rn gilt: v ist genau dann Optimall¨osung vonmax{〈c,x〉 : Ax ≤b,x∈Rn}, wenn c ∈ccone{Ai,! : i ∈Eq(v)} ist.
Korollar 6.7
(Mit den Notationen aus Satz 6.5)
Istc ∈Rn, so gilt f¨ur (LP)max{〈c,x〉 : Ax ≤b,x ∈Rn} wenigstens eine der drei Aussagen:
1. v ist Optimall¨osung von (LP).
2. Es gibt einen Nachbarn w(i) (i ∈[s]) von v mit
〈c,v〉<〈c,w(i)〉 .
3. Es gibt ein y(i) (i ∈[t]) mit〈c,y(i)〉>0 (also ist (LP) unbeschr¨ankt).
Der Simplex-Algorithmus (geometrisch)
◮ Eingabe: A∈Qm×n,b∈Qm,c ∈Qn,P = P≤(A,b)
◮ Ausgabe: Eine Optimall¨osung von
(LP) max{〈c,x〉 : Ax ≤b,x ∈Rn} oder die Feststellung, dass (LP) unbeschr¨ankt ist.
◮ Annahme:Wir kennen eine Eckev von P
1. Finde ein y ∈Rn\ {On}, so dasscone (y) Extremalstrahl von Kv(P) ist mit〈c,y〉>0 (Fall A) oder stelle fest, dass kein solchesy existiert (Fall B).
2. Fall B: STOP (“v ist eine Optimall¨osung von (LP)”) 3. Fall A:
◮ FallsAy ≤Om (alsov+ cone(y)Extremalstrahl vonP):
STOP (“(LP) unbeschr¨ankt”)
◮ Sonst:w =v+ max{λ∈ + : v+λy∈P≤(A,b)}y Nachbar vonv mit〈c,v〉<〈c,w〉(es giltcone(y) = cone(w−v)) Setzev ←w und gehe zu Schritt 1.
(Endet, weilP endlich viele Ecken hat.)
Bemerkungen und Fragen
◮ Wie f¨uhrt man Schritt 1 algebraisch aus? (I)
◮ Welchen Extremalstrahl w¨ahlt man in Schritt 1, wenn mehrere
in Frage kommen? (II)
◮ Wie findet man eine Startecke?
◮ Originalproblem: (LP)max{〈c,x〉 : Ax ≤b}
◮ Transformation in: (LP’)max{〈f,z〉 : Bz ≤d,z ≤O}
(mitB∈Qm×n,d∈Qm,f ∈Qn)
◮ Hilfsproblem:
(AUX)max{〈 m,s〉 : Bz+Ims ≤d,z ≤On,s≤Om}
◮ Definieres(start)∈Qm viasi(start):= min{di,0} (i ∈[m])
◮ (On,s(start))ist Ecke des f¨ur (AUX) zul¨assigen Polyeders.
◮ Simplex-Algorithmus⇝optimale Ecke(z!,s!)f¨ur (AUX).
◮ Fallss!∕=Om: (LP’)/(LP) unzul¨assig
◮ Sonst:z!Startecke f¨ur Simplex-Algorithmus f¨ur (LP’)
Spitze Kegel
◮ Sei A∈Rp×n so, dassK ={y ∈Rn : Ay ≤Op} spitz ist (alsorang(A) =n).
◮ Sei I ⊆[p] (|I|=n) so, dass AI,! regul¨ar ist (I U-Basis)
◮ K(I) :={y∈Rn : AI,!y ≤OI}ist spitz mit K ⊆K(I).
“Simplizialer Relaxationskegel”
◮ Satz von Carath´eodory (Satz 2.31)⇝
Wenn c ∈K◦= ccone{A1,!, . . .Ap,!}, dann gibt es I′ ⊆[p]
mit {Ai,! : i ∈I′} linear unabh¨angig und c ∈ccone{Ai,! : i ∈I′}(alsoc ∈#
K(I!)$◦
f¨ur einI! ⊇I′).
Spitze Kegel
◮ Satz 5.27 impliziert f¨ur y ∈Rn:
cone(y) ist genau dann Extremalstrahl von K(I), wenn AI,!y=−α i f¨ur ein i ∈I undα >0ist.
◮ Mit y(i) =−A−I,!1 i (f¨ur i ∈I) sind alsocone (y(i)) (i ∈I) die Extremalstrahlen von K(I) (−y(i) ist Spaltei von A−I,!1)
◮ Falls 〈c,y(i)〉 ≤0 f¨ur alle i ∈I (“optimal”):
〈c,y〉 ≤0f¨ur alle y ∈K ⊆K(I)
◮ Sonst w¨ahle iaus∈I mit〈c,y(iaus)〉>0.
◮ SetzeI>:={i ∈[p] : 〈Ai,!,y(iaus)〉>0}⊆[p]\I
◮ Falls I>=∅(“verbessernde Richtung”):
cone(y(iaus)) ist Extremalstrahl vonK mit〈c,y(iaus)〉>0
◮ Sonst w¨ahle iein ∈I> und setzeIneu:=I\ {iaus}∪{iein}.
◮ AIneu,! ist regul¨ar (AI\{iaus},!y(iaus)=O,〈Aiein,!,y(iaus)〉 ∕= 0).
Bland’s Regel
Lemma 6.8
SeiI(0),I(1), . . . ,I(s) eine gem¨aß der Regeln auf der vorigen Folie erzeugte Folge von U-BasenI(σ)⊆[p], wobei f¨ur jedes
σ∈{0,1, . . . ,s−1} mitI =I(σ) gelte:
◮ iaus= min{i ∈I : 〈c,y(i)〉>0} (1)
◮ iein = min(I>) (2)
◮ I(σ+ 1) =Ineu
Dann sind die U-BasenI(0),I(1), . . . ,I(s) von[p]paarweise verschieden. Insbesondere:s ≤#p
n
$ (beschr¨ankt in p und n).
Bemerkung 6.9
Bland’s Regel(die Auswahlregeln (1) und (2)) sind eine Antwort auf Fragen (I) und (II).
Der Simplex-Algorithmus (algebraisch)
◮ Ecke v von P = P≤(A,b) und I ⊆Eq(v) mitAI,! regul¨ar (I ist eine U-Basis von v)
◮ (Kv(P) ={y ∈Rn : AEq(v),!y ≤OEq(v)}) 1. Berechne y(i)=−A−I,!1 i (f¨ur allei ∈I)
2. Falls 〈c,y(i)〉 ≤0 f¨ur alle i ∈I: STOP (“v Optimall¨osung”) 3. Sonst w¨ahle iaus∈{i ∈I : 〈c,y(i)〉>0}. (W-aus) 4. Berechne I>={i ∈Eq(v) : 〈Ai,!,y(iaus)〉>0}⊆Eq(v)\I. 5. Falls I>∕=∅:
◮ W¨ahleiein∈I>. (W-ein)
◮ SetzeI ←I\ {iaus}∪{iein} und gehe zu 1.
6. Sonst (y(iaus)∈Kv(P) mit〈c,y(iaus)〉>0):
◮ BerechneIrest> ={i ∈[m]\Eq(v) : 〈Ai,!,y(iaus)〉>0}
◮ FallsIrest> =∅(y(iaus)∈char(P)): STOP (“unbeschr¨ankt”)
◮ Sonst berechneλi= 〈Abi−〈Ai,!,v〉
i,!,y(iaus)〉>0 (f¨ur allei∈Irest> )
◮ W¨ahleiein∈Irest> mitλiein= min{λi : i ∈Irest> }.
◮ Ersetzev ←v+λieiny(iaus) undI ←I\ {iaus}∪{iein}, gehe zu 1.
Bemerkungen zur Korrektheit
◮ F¨ur I′ =I\ {iaus} und Ineu=I′∪{iein} istAIneu,! regul¨ar, da AI′,!y(iaus)=OI′, aber〈Aiein,!,y(iaus)〉 ∕= 0.
◮ λiein >0und λiein = max{λ:v+λy(iaus)∈P}
◮ F¨ur w =v+λieiny(iaus) gilt also
◮ w ist die Nachbarecke vonv mitcone(w−v) = cone(y(iaus))
◮ Ineu⊆Eq(w),〈c,w〉 − 〈c,v〉=λiein〈c,y(iaus)〉>0
Satz 6.10
Der Simplex-Algorithmus stoppt nach endlich vielen Schritten mit einer korrekten Antwort, wenn man die Wahlen (W-aus) und (W-ein) stets minimal vornimmt (Bland’s Regel).
◮ Es gibt Beispiele, bei denen der Algorithmus bei ungeeigneten Wahlen (W-aus) und (W-ein) nicht endet (⇝Zykeln).
◮ Andere zykelfreie Strategien: lexikographische Regeln
◮ Ist das Problem nicht-degeneriert(d.h., f¨ur alle Eckenv gilt
|Eq(v)|=n), so terminiert der Simplex-Algorithmus bei jeder Wahl (W-aus); es gilt dann immerI>=∅.
Zertifikate
(P)max{〈c,x〉 : Ax ≤b} (D)min{〈b,u〉 : ATu=c,u ≥Om}
◮ Sei I ⊆[m]eine U-Basis der Ecke v=A−1I,!bI.
◮ Also y(i) =−A−I,!1 i f¨ur alle i ∈I.
◮ Definiere u ∈Rm viaui =
%−〈c,y(i)〉 (i ∈I)
0 (i ∈[m]\I)
◮ Gilt: uI = (A−I,!1)Tc und u[m]\I =O[m]\I
◮ Also: ATu = (AI,!)TuI =c
◮ Und:〈b,u〉=〈bI,uI〉=〈(AI,!v,(A−I,!1)Tc〉
=vT(AI,!)T(A−I,!1)Tc =〈v,c〉
◮ STOP (“v Optimall¨osung”):〈c,y(i)〉 ≤0 f¨ur alle i ∈I, also u ≥Om,ATu =c mit 〈b,u〉=〈c,v〉 (Optimalit¨atsbeweis).
◮ STOP (“unbeschr¨ankt”):Ay(iaus)≤Om, also (D) unzul¨assig wegen 〈c,y(iaus)〉>0 (Beweis f¨ur Unbeschr¨anktheit von (P)).
Voll-dimensionale einfache Polytope
◮ Sei P = P≤(A,b)⊆Rn ein Polytop mitdim(P) =n und:
◮ Ax≤bist irredundant (genau eine Ungleichung f¨ur jede Facette vonP)
◮ Jede Ecke hat eine eindeutige Basis (nicht-degeneriert), sie liegt also in genaunFacetten (d.h., P isteinfach),
◮ Sei N(v) die Menge der Nachbarn der Ecke v undF(v) die Menge der v enthaltenden Facetten.
◮ Es gibt eine BijektionΦ:F(v)→N(v), so dass jedes w ∈N(v) die Ecke ist, zu der man ¨uber die eindeutigev enthaltende Kante kommt, die nicht in der FacetteΦ(w)liegt.
Nicht-degenerierte LPs
◮ Nicht-Degeneriertheit kann man in der Praxis (und auch f¨ur die Theorie) durch Perturbation von b erreichen.
◮ (W-aus) ist dann die Entscheidung, mit welchem Nachbarn mit gr¨oßerem Zielfunktionswert man fortf¨ahrt.
◮ Blands Regel: Gehe zu dem verbessernden Nachbarn, den man durch Verlassen der Facette mit niedrigstem Index erreicht.
Klee-Minty W¨urfel (hier: Dimension3)
Bemerkung 6.11
Selbst auf einfachen Polytopen kann der Simplex-Algorithmus mit Blands Regel exponentiell viele Schritte ben¨otigen.
Andere Pivot-Regeln
◮ Regel des gr¨oßten Koeffizienten: W¨ahle iausso, dass 〈c,y(iaus)〉 maximal ist (Dantzigs Original-Regel).
◮ Regel des gr¨oßten Fortschritts: W¨ahle einen Nachbarn w, so dass 〈c,w〉>〈c,v〉maximal ist.
◮ Regel des steilsten Anstiegs: W¨ahle eine Kante, deren Winkel mit c minimal ist (〈c,y(iaus)〉
||c||||y(iaus)|| maximal).
◮ (. . . )
Bemerkung 6.12
Noch nicht einmal f¨ur LPs ¨uber einfachen Polytopen ist eine Regel bekannt, die polynomiale Laufzeit garantiert. Es gibt polynomiale Average-Case Garantien (f¨ur die “Schattenecken-Regel”).
In der Praxis:H¨aufig sehr effizient (z.B. mit steilstem Anstieg)!
Gleichungsformat f¨ur LPs
Definition 6.13
Ein lineares Optimierungsproblem hatGleichungsformat, wenn es gestellt ist als
max{〈c,x〉 : Cx =d,x ≥On}
mitC ∈Qp×n,d ∈Qp. Bemerkung 6.14
Jedes lineare Optimierungsproblem mits Variablen undt Nebenbedingungen kann in ein LP im Gleichungsformat (mit n≤2s+t und p =t) transformiert werden (siehe ¨Ubungsblatt 1, Aufgabe 2).
Basen und Basis-L¨osungen
Definition 6.15
SeienC ∈Qp×n und d ∈Qp (mitrang(C) =p)
◮ B ⊆[n]mit|B|=p heißt eineBasisvon C, wenn C!,B
regul¨ar ist.
◮ Eine Basis B ⊆[n] vonC ist eine zul¨assige Basis f¨ur Cx =d,x≥On, wennC!,B−1d ≥OB ist.
◮ F¨ur eine zul¨assige Basis B ⊆[n] f¨urCx =d,x≥Op heißt (xB,xN)∈Rn mitxN =ON und xB =C!,B−1d die zugeh¨orige zul¨assige Basisl¨osung.
Beobachtung 6.16
F¨urC ∈Qp×n und d ∈Qp (mit rang(C) =p) sind die zul¨assigen Basisl¨osungen vonCx =d,x≥Op genau die Ecken des Polyeders {x∈Rn : Cx =d,x≥On}.
Standard U-Basen
Im folgenden seien stets:
◮ C ∈Rp×n mit rang(C) =p und d ∈Rp
◮ A=
&
' −In C
−C (
)∈Rm×n und b=
&
' On d
−d ( )∈Rm (mit m=n+ 2p)
◮ P ={x ∈Rn : Cx =d,x ≥On}= P≤(A,b) Definition 6.17
EineStandard U-Basis einer Eckev ist eine U-BasisI ⊆[m]
vonv mit{n+ 1, . . . ,n+p}⊆I.
◮ F¨ur jede Standard U-Basis I ⊆[m]giltI ⊆[n+p].
◮ Jede Ecke v vonP besitzt eine Standard U-Basis (weil {n+ 1, . . . ,n+p}⊆Eq(v) und rang(C) =p).
Simplex-Algorithmus mit Standard U-Basen
◮ Seien c ∈Rn und I ⊆[m]eine Standard U-Basis der Eckev.
◮ Seien y(i)∈Rn\ {On} (i ∈I) wie im Simplex-Algorithmus.
◮ F¨ur K(I) ={y ∈Rn : AI,!y ≤OI} istK(I)∩ker(C)eine Seite von K(I).
◮ Also Kv(P)⊆K(I)∩ker(C) = ccone{y(i) : i ∈I ∩[n]}
◮ Daher: Falls 〈c,y(i)〉 ≤0 f¨ur alle i ∈I ∩[n]dannc ∈Nv(P).
Beobachtung 6.18
Startet man den Simplex-Algorithmus mit einer Standard U-Basis, und beschr¨ankt man die ¨Uberpr¨ufung in Schritt 2 sowie die Auswahl (W-aus) voniaus in Schritt 3 aufI ∩[n], so arbeitet der Simplex-Algorithmus weiterhin korrekt, und er verwendet
ausschließlich Standard U-Basen.
Zul¨assige Basen und Standard U-Basen
Bemerkung 6.19 Seiv eine Ecke vonP.
1. F¨ur alleI ⊆[m]gilt: I ist genau dann eine Standard U-Basis bzgl. Ax ≤b f¨urv, wenn B(I) = [n]\N(I) mitN(I) =I∩[n]
eine zul¨assige Basis f¨urCx =d,x ≥On mit Basisl¨osungv ist.
2. F¨ur alleB ⊆[n]gilt: B ist genau dann eine zul¨assige Basis f¨ur Cx =d,x≥On mit Basisl¨osung v, wenn
I(B) =N∪{n+ 1, . . . ,n+p} mitN = [n]\B eine Standard U-Basis bzgl.Ax ≤b f¨ur v ist.
◮ Achtung:
Ein q ∈ [n] ist q genau dann in der U-Basis I, wenn q nicht in der Basis B ist.
Graphisch
-1 -1
-1 -1
-1 -1-1
-1 -1
-1 -1
-1
I
I
N B
C
Wiederholung: Der Simplex-Algorithmus (algebraisch)
◮ Ecke v von P = P≤(A,b) und I ⊆Eq(v) mitAI,! regul¨ar (I ist eine U-Basis von v)
◮ (Kv(P) ={y ∈Rn : AEq(v),!y ≤OEq(v)}) 1. Berechne y(i)=−A−I,!1 i (f¨ur allei ∈I)
2. Falls 〈c,y(i)〉 ≤0 f¨ur alle i ∈I: STOP (“v Optimall¨osung”) 3. Sonst w¨ahle iaus∈{i ∈I : 〈c,y(i)〉>0}. (W-aus) 4. Berechne I>={i ∈Eq(v) : 〈Ai,!,y(iaus)〉>0}⊆Eq(v)\I. 5. Falls I>∕=∅:
◮ W¨ahleiein∈I>. (W-ein)
◮ SetzeI ←I\ {iaus}∪{iein} und gehe zu 1.
6. Sonst (y(iaus)∈Kv(P) mit〈c,y(iaus)〉>0):
◮ BerechneIrest> ={i ∈[m]\Eq(v) : 〈Ai,!,y(iaus)〉>0}
◮ FallsIrest> =∅(y(iaus)∈char(P)): STOP (“unbeschr¨ankt”)
◮ Sonst berechneλi= 〈Abi−〈Ai,!,v〉
i,!,y(iaus)〉>0 (f¨ur allei∈Irest> )
◮ W¨ahleiein∈Irest> mitλiein= min{λi : i ∈Irest> }.
◮ Ersetzev ←v+λieiny(iaus) undI ←I\ {iaus}∪{iein}, gehe zu 1.
Der Simplex-Algorithmus (algebraisch, vereinfacht)
◮ Ecke v von P = P≤(A,b) und I ⊆Eq(v) mitAI,! regul¨ar (I ist eine U-Basis von v)
◮ (Kv(P) ={y ∈Rn : AEq(v),!y ≤OEq(v)}) 1. Berechne y(i)=−A−1I,! i (f¨ur allei ∈I)
2. Falls 〈c,y(i)〉 ≤0 f¨ur alle i ∈I: STOP (“v Optimall¨osung”) 3. Sonst w¨ahle iaus∈{i ∈I : 〈c,y(i)〉>0}. (W-aus) 4. Berechne K>={k ∈[m]\I : 〈Ak,!,y(iaus)〉>0}.
5. Falls K>=∅(y(iaus)∈char(P)): STOP (“unbeschr¨ankt”) 6. Sonst berechne λk = 〈bAk−〈Ak,!,v〉
k,!,y(iaus)〉 ≥0 (f¨ur allek ∈K>)
7. W¨ahle kein∈K> mitλkein = min{λk : k ∈K>}. (W-ein) 8. Ersetze v ←v+λkeiny(iaus),I ←I\ {iaus}∪{kein}, gehe zu 1.
Die entscheidenden Daten
◮ Sei I ⊆[m]Standard U-Basis der Eckev mit B = [n]\N und N =I∩[n].
◮ C¯(B) :=−C!,B−1C!,N ∈QB×N
◮ c¯(B) :=cN+cBTC¯(B) =cN−cBTC!,B−1C!,N ∈QN
(reduzierte Kostenzur BasisB)
◮ d¯(B) :=C!,B−1d =vB ∈QB
◮ F¨ur i ∈I∩[n] =N:y(i) L¨osung von AI,!y =− i
◮ AlsoyN\{i}(i) =ON\{i},yi(i)= 1,yB(i)= ¯C(B)!,i
◮ 〈c,y(i)〉= ¯c(B)i
◮ F¨urk ∈{n+ 1, . . . ,m};〈Ak,!,y(i)〉= 0; also K>⊆[n]\I =B
◮ F¨ur allek ∈B:
◮ 〈Ak,!,y(i)〉=−yk(i)=−C(B)¯ k,i
◮ bk− 〈Ak,!,v〉= 0 +vk= ¯d(B)k
◮ Also:
λk= d(B)¯ k
−C(B)¯ k,i
Simplex-Algorithmus mit Basen von Gleichungssystemen
◮ Gegeben: C ∈Qp×n (rang(C) =p), d ∈Qp,c ∈Qn
◮ (LP) max{〈c,x〉 : Cx =d,x≥On}
◮ Sei B ⊆[n](|B|=p) eine zul¨assige Basis,N = [n]\B.
1. Falls c(B)¯ ≤ON: STOP (“( ¯dB,ON) Optimall¨osung”)
2. Sonst w¨ahle ein jein ∈N mitc(B)¯ jein >0 (jein =iaus) 3. Falls C¯(B)!,jein ≥OB: STOP (“unbeschr¨ankt”)
4. Sonst w¨ahle jaus∈B mitC¯(B)jaus,jein <0und (jaus=kein) d¯(B)jaus
|C¯(B)jaus,jein| = min* d¯(B)k
|C¯(B)k,jein| : k ∈B,C¯(B)k,jein <0+ 5. SetzeB ←B\ {jaus}∪{jein}(undN ←[n]\B)
Zertifikate
◮ Das zu (P)max{〈c,x〉 : Cx =d,x ≥On} duale Problem ist (D)min{〈d,u〉 : CTu ≥c}
◮ Sei B ⊆[n]eine zul¨assige Basis f¨ur (P).
◮ Falls c(B)¯ ≤ON (“Optimall¨osung”):
◮ Definiereu= (C!,B−1)TcB
◮ CTu=CT(C!,B−1)TcB = (cBT(C!,B−1C))T
= (cBT(IB,C!,B−1C!,N))T= (cB,cN−c(B))¯
◮ uzul¨assig f¨ur (D)
◮ 〈d,u〉=〈d,(C!,B−1)TcB〉=〈C!,B−1d,cB〉=〈c,( ¯d(B),ON)〉
◮ Sonst, und fallsC¯(B)!,jein ≥OB (“unbeschr¨ankt”):
◮ F¨urλ:= ( ¯C(B)!,j
ein, jein)∈RB ×RN giltλ≥On.
◮ λTCT= (Cλ)T= (C!,BC(B)¯ !,jein+C!,jein)T
= (−C!,jein+C!,jein)T=OpT
◮ 〈λ,c〉=〈C(B)¯ !,j
ein,cB〉+cjein = ¯cjein>0
◮ Also (Farkas-Lemma): (D) unzul¨assig
Bemerkungen f¨ur die Praxis
◮ Finden einer zul¨assigen Startbasis f¨ur
(LP) max{〈c,x〉 : Cx =d,x ≥On}:
◮ K¨onnen annehmen: d ≥Op (Skalierung von Cx =d)
◮ L¨ose (AUX)
max{−〈(On, p),(x,s)〉 : Cx+Ips =d,x ≥On,s ≥Op}
◮ Startbasis f¨ur (AUX):B ={n+ 1, . . . ,n+p}⊂[n+p]mit zugeh¨origer Ecke(On,d)≥On+p.
◮ Falls (AUX) negativen Optimalwert hat: (LP) unl¨osbar.
◮ Sonst sei (x!,O) Optimall¨osung von (AUX) mit Basis B!⊆[n+p].
◮ Dann ist jede Basis von C, dieB!∩[n] enth¨alt, eine zul¨assige Basis f¨ur (LP) (zur Startecke x!).
Ben¨otigte Daten in einer Iteration
◮ F¨ur die Durchf¨uhrung einer Iteration braucht man:
◮ Einjein∈N mitc(B)¯ jein=cjein−cBTC!,B−1C!,jein>0
◮ d(B) =¯ C!,B−1d∈QB
◮ C(B)¯ !,j
ein=−C!,B−1C!,jein∈QB
◮ Generiere Daten aus C!,B−1, wenn sie gebraucht werden.
◮ F¨ur j ∈N: Istu(B)∈Qp die L¨osung von (C!,B)Tz =cB, so ist c(B)¯ j =cj − 〈u(B),C!,j〉.
◮ C¯(B)!,j ist die L¨osung vonC!,B ·z =−C!,j.
◮ d¯(B) ist die L¨osung vonC!,B ·z =d.
◮ Hat man z.B. eine LU-Zerlegung von C!,B, so kann man die L¨osungen vonC!,B ·z =q bzw. (C!,B)Tz =q in O(p2) Schritten bestimmen.
◮ Beim Basiswechsel B←B\ {jaus}∪{jein}kann man die LU-Zeregung inO(p2) Schritten anpassen.
◮ ⇝ revidierter Simplexalgorithmus
Hinzuf¨ugen von Variablen
◮ Seien C′ ∈Rm×(n+1) mit C′!,[n]=C und c′ ∈Rn+1 mit c[n]′ =c.
◮ Sei B ⊆[n]eine zul¨assige Basis vonCx =d,x≥On.
◮ Wegen C′!,B =C!,B ist B auch eine zul¨assige Basis f¨ur C′x′ =d,x′ ≥On+1
◮ Sind c(B)¯ ∈Q[n]\B und c¯′(B)∈Q[n+1]\B die reduzierten Kosten von B bzgl.max{〈c,x〉 : Cx =d,x ≥On} bzw.
max{〈c′,x〉 : C′x =d,x˜≥On+1}, so ist c¯′(B)[n]= ¯c(B).
Beobachtung 6.20
Hat man f¨ur ein lineares Optimierungsproblem (LP) im
Gleichungsformat mit der Simplex-Methode eine optimale zul¨assige BasisB! bestimmt, und f¨ugt man dem Problem dann eine Variable hinzu, so kann manB! als Startbasis f¨ur das neue Problem
verwenden; alle urspr¨unglichen Variablen haben bzgl.B! auch im neuen Problem nicht-positve reduzierte Kosten.
⇝Spaltengenerierung
Eine Charakterisierung von C ¯ (B ), c ¯ (B ), d ¯ (B )
Lemma 6.21
SeiB ⊆[n]eine Basis von Cx =d,N= [n]\B, und A={(x,ζ)∈Rn+1 : Cx =d,〈c,x〉=ζ}.
F¨urT ∈RB×N,t ∈RB,g ∈RN und γ ∈Rgilt:
xB =TxN +t undζ =〈g,xN〉+γ f¨ur alle (x,ζ)∈A
⇔
T = ¯C(B),t = ¯d(B),g = ¯c(B), und γ =〈cB,d¯(B)〉
Der Simplex-Algorithmus mittels Pivotisierens
◮ Sei B ⊆[n](|B|=p) eine zul¨assige Basis,N = [n]\B.
◮ Seien T ∈QB×N,t∈QB,g ∈RN,γ ∈Rso dass (1) xB =TxN+t und (2)ζ =〈g,xN〉+γ f¨ur alle (x,ζ)∈A(siehe Lemma 6.21) gilt (also Cx =d aufgel¨ost nachxB und dann xB eliminiert aus ζ =〈c,x〉).
1. Falls g ≤ON: STOP (“(t,ON)Optimall¨osung, Wert γ”) 2. Sonst w¨ahle ein jein ∈N mitgjein >0
3. Falls T!,jein ≥OB: STOP (“unbeschr¨ankt”) 4. Sonst w¨ahle jaus∈B mitTjaus,jein <0 und
tjaus
|Tjaus,jein| = min* tk
|Tk,jein| : k ∈B,Tk,jein <0+ 5. L¨ose die Gleichung xjaus =〈Tjaus,!,xN〉+tjaus in (1) nachxjein
auf und setze den f¨urxjein erhaltenen Ausdruck in die ¨ubrigen Gleichungen in (1) und in (2) ein.
6. SetzeB ←B\ {jaus}∪{jein},N←[n]\B 7. Gehe zu Schritt 1.
Dual zul¨assige Basen
(P)max{〈c,x〉 : Cx =d,x≥O}(D)min{〈d,u〉 : −CTu ≤ −c}
◮ C ∈Rp×n (rang(C) =p),d ∈Rp,c ∈Rn,
◮ P≤(−CT,−c) ist spitz
◮ u ∈Rp ist genau dann eine Ecke von P≤(−CT,−c),
◮ wenn esI ⊂[n]gibt mit|I|=p, und
rang(−CTI,!) =p,−(CT)I,!u=−cI und−CT[n]\I,!u≤ −c[n]\I
◮ d.h., wenn es eine BasisB⊆[n]vonC gibt mit (N= [n]\B):
◮ u= (C!,B−1)TcB
◮ −(CT)N,!u≤ −cN, d.h.c¯(B)≤ON
Definition 6.22
Eine BasisB ⊆[n]vonC (nicht notwendigerweise primal zul¨assig) heißtdual zul¨assig, wenn c(B)¯ ≤ON ist.
Beobachtung 6.23
Die dual zul¨assigen Basen vonC sind genau die U-Basen der Ecken vonP≤(−CT,−c).
Duales Optimalit¨atskriterium
◮ min{〈d,u〉 : u ∈P≤(−CT,−c)}
=−max{〈−d,u〉 : P≤(−CT,−c)}
◮ Sei B ⊆[n]dual zul¨assige Basis zur Eckev = (C!,B−1)TcB.
◮ F¨ur i ∈B:y(i) = (C!,B−1)T i (Extremalstrahlen des vonB definierten simplizialen Relaxierungskegels in v )
◮ Optimalit¨atskriterium: 〈−d,y(i)〉 ≤0(f¨ur allei ∈B)
◮ 〈−d,y(i)〉=−dT(C!,B−1)T i =−(C!,B−1d)T i =−d¯(B)i
Beobachtung 6.24
IstB ⊆[n]eine dual zul¨assige Basis mit d¯(B)≥OB (d.h.,B ist auch primal zul¨assig), so sind(C!,B−1)TcB eine duale und
( ¯d(B),ON)eine primale Optimall¨osung.
◮ F¨ur k ∈N,i ∈B:〈−(CT)k,!,y(i)〉= ¯C(B)i,k
◮ F¨ur k ∈N:−ck − 〈−(CT)k,!,v〉=−c¯(B)k
Der duale Simplex-Algorithmus
◮ Umformulierung des “Simplex-Algorithmus (algebraisch, vereinfacht)” f¨urmax{〈−d,u〉 : P≤(−CT,−c)}.
◮ Sei B ⊆[n]eine dual zul¨assige Basis.
1. Falls d¯(B)≥OB: STOP (“Optimall¨osungen gefunden”) 2. Sonst w¨ahle jaus∈{j ∈B : ¯d(B)j <0}.
3. Falls C¯(B)jaus,!≤ON: STOP (“(D) unbeschr., (P) unzul.”) 4. Sonst w¨ahle jein ∈N mit C¯(B)jaus,jein >0 und
|c(B)¯ jein|
C¯(B)jaus,jein = min{C¯|(B)c(B¯ jaus,k)k| : k ∈N,C¯(B)jaus,k >0}
5. Ersetze B ←B\ {jaus}∪{jein} und gehe zu 1.
Der duale Simplex-Algorithmus mittels Pivotisierens
◮ Sei B ⊆[n]eine dual zul¨assige Basis,N = [n]\B.
◮ Seien T ∈QB×N,t∈QB,g ∈RN,γ ∈Rso dass (1) xB =TxN+t und (2)ζ =〈g,xN〉+γ f¨ur alle (x,ζ)∈A(siehe Lemma 6.21) gilt (also Cx =d aufgel¨ost nachxB und dann xB eliminiert aus ζ =〈c,x〉).
1. Falls t≥OB: STOP (“(t,ON) und (C!,B−1)TcB sind Optimall¨osungen f¨ur (P) bzw. (D) vom Wertγ”) 2. Sonst w¨ahle ein jaus∈B mittjaus <0
3. Falls Tjaus,! ≤ON: STOP (“(D) unbeschr., (P) unzul¨assig”) 4. Sonst w¨ahle jein ∈N mit Tjaus,jein >0und
|gjein|
Tjaus,jein = min* |gk|
Tjaus,k : k∈N,Tjaus,k >0+ 5. L¨ose die Gleichung xjaus =〈Tjaus,!,xN〉+tjaus in (1) nachxjein
auf und setze den f¨urxjein erhaltenen Ausdruck in die ¨ubrigen Gleichungen in (1) und in (2) ein.
6. SetzeB ←B\ {jaus}∪{jein},N←[n]\B 7. Gehe zu Schritt 1.
Hinzuf¨ugen von Ungleichungen
◮ Sei B ⊆[n]eine dual zul¨assige Basis f¨ur
(LP) max{〈c,x〉 : Cx =d,x ≥On} mit zugeh¨origer Duall¨osung u = (C!,B−1)TcB.
◮ Angenommen, man m¨ochte das mit der Ungleichung
〈a,x〉 ≤β weiter eingeschr¨ankte Problem l¨osen.
◮ ⇝ (LP’)max{〈c,x〉 : C′x′ =d,x′ ≥On+1} (der Gr¨oße (p+ 1)×(n+ 1) mitC′[p],!= (C,Op), C′p+1,!= (a,1),d[p]′ =d,dp+1′ =β,c′ = (c,0))
◮ B∪{p+ 1} ist dual zul¨assig f¨ur (LP’) mit zugeh¨origer Duall¨osung(u,0).
Beobachtung 6.25
Hat man ein Optimall¨osung eines linearen Optimierungsproblems (LP) mit der Simplex-Methode berechnet, so kann man die zugeh¨orige Basis als duale Startbasis f¨ur ein Problem verwenden, das entsteht, wenn man zu (LP) eine Ungleichung hinzuf¨ugt.
Dualer Start f¨ur einen Spezialfall
◮ F¨ur A∈Qm×n,b ∈Qm,c˜∈Qn und c˜≥On: min{〈c,˜ x〉 : Ax ≤b,x ≥On}
◮ Aquivalent (bis auf Multiplikation mit¨ −1):
max{〈c,x〉 : Ax ≤b,x≥On} mit c =−c˜≤On
◮ Gleichungsformat:
max{〈(c,Om),(x,s)〉 : Ax +s =b,x≥On,s ≥Om}
◮ Dual zul¨assige Basis:
B ={n+ 1, . . . ,n+m}⊆[n+m]
mit zugeh¨origer Duall¨osung On+m (g¨ultig wegen On≤ −c).