• Keine Ergebnisse gefunden

Vorlesung Einf¨uhrung in die Mathematische Optimierung (Wintersemester 2019/20)

N/A
N/A
Protected

Academic year: 2022

Aktie "Vorlesung Einf¨uhrung in die Mathematische Optimierung (Wintersemester 2019/20)"

Copied!
45
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

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)

(2)

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

(3)

Das Bild

[Bild: Marc Pfetsch, TU Braunschweig]

(4)

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

(5)

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.

(6)

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}.

(7)

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).

(8)

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.)

(9)

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]"

.

(10)

Beispiel

(11)

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).

(12)

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+λyP(A,b)}y Nachbar vonv mitc,v<c,w(es giltcone(y) = cone(wv)) Setzev w und gehe zu Schritt 1.

(Endet, weilP endlich viele Ecken hat.)

(13)

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}

(mitBQm×n,dQm,f Qn)

Hilfsproblem:

(AUX)max{〈 m,s : Bz+Ims d,z On,sOm}

Definieres(start)Qm viasi(start):= min{di,0} (i [m])

(On,s(start))ist Ecke des f¨ur (AUX) zul¨assigen Polyeders.

Simplex-Algorithmusoptimale Ecke(z!,s!)f¨ur (AUX).

Fallss!=Om: (LP’)/(LP) unzul¨assig

Sonst:z!Startecke f¨ur Simplex-Algorithmus f¨ur (LP’)

(14)

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).

(15)

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) =−AI,!1 i (f¨ur i ∈I) sind alsocone (y(i)) (i ∈I) die Extremalstrahlen von K(I) (−y(i) ist Spaltei von AI,!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).

(16)

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).

(17)

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)=−AI,!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¨ahleieinI>. (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 alleiIrest> )

W¨ahleieinIrest> mitλiein= min{λi : i Irest> }.

Ersetzev v+λieiny(iaus) undI I\ {iaus}{iein}, gehe zu 1.

(18)

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(wv) = cone(y(iaus))

IneuEq(w),c,w〉 − 〈c,v=λieinc,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>=∅.

(19)

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) =−AI,!1 i f¨ur alle i ∈I.

◮ Definiere u ∈Rm viaui =

%−〈c,y(i)〉 (i ∈I)

0 (i ∈[m]\I)

◮ Gilt: uI = (AI,!1)Tc und u[m]\I =O[m]\I

◮ Also: ATu = (AI,!)TuI =c

◮ Und:〈b,u〉=〈bI,uI〉=〈(AI,!v,(AI,!1)Tc〉

=vT(AI,!)T(AI,!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)).

(20)

Voll-dimensionale einfache Polytope

◮ Sei P = P(A,b)⊆Rn ein Polytop mitdim(P) =n und:

Axbist 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.

(21)

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.

(22)

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)!

(23)

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).

(24)

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!,B1d ≥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}.

(25)

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).

(26)

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.

(27)

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.

(28)

Graphisch

-1 -1

-1 -1

-1 -1-1

-1 -1

-1 -1

-1

I

I

N B

C

(29)

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)=−AI,!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¨ahleieinI>. (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 alleiIrest> )

W¨ahleieinIrest> mitλiein= min{λi : i Irest> }.

Ersetzev v+λieiny(iaus) undI I\ {iaus}{iein}, gehe zu 1.

(30)

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.

(31)

Die entscheidenden Daten

◮ Sei I ⊆[m]Standard U-Basis der Eckev mit B = [n]\N und N =I∩[n].

◮ C¯(B) :=−C!,B1C!,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

(32)

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)

(33)

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,cNc(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

(34)

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!).

(35)

Ben¨otigte Daten in einer Iteration

◮ F¨ur die Durchf¨uhrung einer Iteration braucht man:

EinjeinN mitc(B)¯ jein=cjeincBTC!,B−1C!,jein>0

d(B) =¯ C!,B−1dQB

C(B)¯ !,j

ein=C!,B−1C!,jeinQB

◮ Generiere Daten aus C!,B1, 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

(36)

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 Cx =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〉 : Cx =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

(37)

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)〉

(38)

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.

(39)

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 undCT[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).

(40)

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!,B1)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!,B1)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

(41)

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.

(42)

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!,B1)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.

(43)

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〉 : Cx =d,x ≥On+1} (der Gr¨oße (p+ 1)×(n+ 1) mitC[p],!= (C,Op), Cp+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.

(44)

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).

(45)

Dualer Simplex-Algorithmus graphisch

Referenzen

ÄHNLICHE DOKUMENTE

L¨ osen von Programmieraufgaben von einfacher und mittlerer Komplexit¨ at, Struktu- riertes Programmieren, Lesen von Syntaxdiagrammen, Umsetzung von Algorithmen in

H¨ atte eine L¨ osungskurve zwei Limespunkte, dann m¨ usste jeder Punkt auf der x-Achse, der dazwischen liegt, nach Satz 46 ebenfalls Limespunkt sein (auf der Senkrechten durch

-PRAETORIUS Dirk: Es wird zwar alles von Grund auf erkl¨ art, dennoch ist es f¨ ur Studierende ohne jegliche Erfahrung im Bereich Programmieren sehr schwer, den Stoff zu verstehen.

nur die hardwarevorlesung fand ich nicht wirklich interessant.sie war nicht sehr ansprechend gestalltet(alte overheadfolien) und hat sich teilweise schon mit stoff aus der c vorlesung

Nicht jeder reell abgeschlossene K¨ orper ist aber isomorph zu R , denn sonst w¨ urde (b) offensichtlich f¨ ur jeden reell abgeschlossenen K¨ orper R gelten, was nicht der Fall ist,

SS 2012 Polynomiale Optimierung von Markus Schweighofer mit Sebastian Gruler und María López

dass es keinen Algorithmus gibt, der f ¨ur ein Programm P entscheiden kann, ob es, angesetzt auf die Eingabe D , anh ¨alt oder nicht...

Die ersten 0 Elemente einer Liste sind durch die leere Liste gegeben. Ist n &gt; 0, die Liste aber bereits leer, so ist das Ergebnis die