Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 +...

24
Operations Research Rainer Schrader Zentrum für Angewandte Informatik Köln 18. Juni 2007 1/1 Die Simplexmethode 2/1 Die Simplexmethode Gliederung LP-Dualität ein lineares Produktionsmodell der Simplexalgorithmus Phase I Endlichkeit des Simplexalgorithmus Sensitivitätsanalyse die primal-duale Methode 3/1 LP-Dualität Zur Erinnerung: wir haben ein lineares Programm (LP) wie folgt definiert: max c T x Ax b (1) Dualisierung führt auf das folgende duale Programm min b T y y T A = c y 0 (2) wir schreiben das duale Programm in der folgenden Form: max - b T y 2 4 A -A -I 3 5 y 2 4 c -c 0 3 5 . (3) 4/1

Transcript of Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 +...

Page 1: Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 + x2 1 min y2 y1 y2 = 1 y1 + y2 = 1 y1;y2 0 (5) die beiden Programme sind dual zueinander

Operations Research

Rainer Schrader

Zentrum für Angewandte Informatik Köln

18. Juni 2007

1 / 1

Die Simplexmethode

2 / 1

Die Simplexmethode

Gliederung

• LP-Dualität

• ein lineares Produktionsmodell

• der Simplexalgorithmus

• Phase I

• Endlichkeit des Simplexalgorithmus

• Sensitivitätsanalyse

• die primal-duale Methode

3 / 1

LP-DualitätZur Erinnerung:

• wir haben ein lineares Programm (LP) wie folgt definiert:

max cT xAx ≤ b

(1)

• Dualisierung führt auf das folgende duale Programm

min bT yyT A = c

y ≥ 0(2)

• wir schreiben das duale Programm in der folgenden Form:

max − bT y24 A−A−I

35 y ≤

24 c−c0

35 .(3)

4 / 1

Page 2: Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 + x2 1 min y2 y1 y2 = 1 y1 + y2 = 1 y1;y2 0 (5) die beiden Programme sind dual zueinander

LP-Dualitätmax − bT y24 A

−A−I

35 y ≤

24 c−c0

35 .(3)

• das dazu duale Programm lautet:

min cu− cv + 0wAu− Av − Iw = −b

u, v, w ≥ 0

• mit x = v − u ergibt sich daraus

min − cx−Ax ≥ −b

• und dies ist äquivalent zumax cxAx ≤ b

• damit ist das Duale des Dualen wieder das Primale.

5 / 1

LP-Dualität

Beispiel:Wir betrachten das Problem

min 2x1 − x2 + 13 x3

s.d x1 + x2 − 2x3 ≥ 13x1 + 4x2 − 2x3 ≤ 2/3x1 ≥ 0.

Dieses lineare Programm ist äquivalent zu

max −2x1 + x2 − 13 x3

s.d −x1 − x2 + 2x3 ≤ −13x1 + 4x2 − 2x3 ≤ 2/3−x1 ≤ 0.

6 / 1

LP-Dualität

Dieses lineare Programm ist äquivalent zu

max −2x1 + x2 − 13 x3

s.d −x1 − x2 + 2x3 ≤ −13x1 + 4x2 − 2x3 ≤ 2/3−x1 ≤ 0.

Dual dazu ist das lineare Programm

min −y1 + 23 y2

s.d −y1 + 3y2 − y3 = −2−y1 + 4y2 = 12y1 − 2y2 = −1/3y1 , y2 , y3 ≥ 0

7 / 1

LP-Dualität

Dual dazu ist das lineare Programm

min −y1 + 23 y2

s.d −y1 + 3y2 − y3 = −2−y1 + 4y2 = 12y1 − 2y2 = −1/3y1 , y2 , y3 ≥ 0

Das letzte lineare Programm ist z.B. äquivalent zu

max y1 − 23 y2

s.d y1 − 3y2 ≤ 2−y1 + 4y2 = 1−2y1 + 2y2 = 1/3

y1 , y2 ≥ 0

8 / 1

Page 3: Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 + x2 1 min y2 y1 y2 = 1 y1 + y2 = 1 y1;y2 0 (5) die beiden Programme sind dual zueinander

LP-Dualitätallgemeine Form linearer Programme:

• wir betrachten das folgende primale Programm:

max cT x + dT yAx + By ≤ aCx + Dy = b

y ≥ 0

• das zugehörige duale Programm lautet

min uT a + vT buT A + vT C = cT

uT B + vT D ≥ dT

u ≥ 0

• Beweis: Übungsaufgabe

9 / 1

LP-Dualität

max cT xAx ≤ b

min bT yAT y = c

y ≥ 0(4)

• seien x primal und y dual zulässig

• nach der schwachen Dualität gilt cT x ≤ bT y

• die KKT-Bedingungen lauten

AT y = ccT x − bT y = 0Ax ≤ b

y ≥ 0

• damit ergibt sich:

10 / 1

LP-Dualität

Satz 1 (Starke Dualität)

Eine primal zulässige Lösung x ist genau dann optimal, wenn es eine dualzulässige Lösung y gibt mit der Eigenschaft

cT x = bT y.

In diesem Fall ist y notwendigerweise dual optimal.

Beweis:

• nach Satz 3.15 ist x genau dann optimal, wenn es zusammen miteinem y die KKT-Bedingungen erfüllt

• dann ist genau dann der Fall, wenn gilt:

• x ist primal zulässig• y ist dual zulässig

• cT x = bT y

• dann ist aber auch y notwendigerweise dual optimal.

11 / 1

LP-Dualität

Korollar 2Seien (P) und (D) ein Paar primal-dualer linearer Programme. Dann giltgenau eine der folgenden Alternativen:

(i) (P) und (D) sind unzulässig

(ii) eines der beiden ist unbeschränkt, das andere unzulässig

(iii) beide besitzen zulässige und damit auch optimale Lösungen

Beweis:

• ist ein Programm unbeschränkt, so muss das andere wegen derschwachen Dualität unzulässig sein

• sind beide zulässig, so sind beide beschränkt und besitzen damitoptimale Lösungen.

12 / 1

Page 4: Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 + x2 1 min y2 y1 y2 = 1 y1 + y2 = 1 y1;y2 0 (5) die beiden Programme sind dual zueinander

LP-Dualität

Beispiel für (i):

max x1 + x2

x1 − x2 ≤ 0−x1 + x2 ≤ −1

min −y2

y1 − y2 = 1−y1 + y2 = 1

y1, y2 ≥ 0

(5)

• die beiden Programme sind dual zueinander

• beide Polyeder sind offensichtlich leer.

13 / 1

LP-Dualität

Korollar 3 (Satz vom komplementären Schlupf)

Eine primal zulässige Lösung x ist genau dann optimal, wenn es eine dualzulässige Lösung y gibt mit der Eigenschaft

yT (b− Ax) = 0. (6)

y ist dann notwendigerweise dual optimal.

Beweis:

• es gilt cT x − bT y = (AT y)T x − bT y = yT (Ax − b)

• damit folgt die Behauptung aus Satz 1.

• es gilt stets y ≥ 0 und b− Ax ≥ 0,

• damit gilt (6) nur, wenn yi = 0, falls bi − aTi x > 0.

14 / 1

LP-Dualität

Beispiel:primales Problem:

min 2x1 − x2 + 13 x3

s.d x1 + x2 − 2x3 ≥ 13x1 + 4x2 − 2x3 ≤ 2/3x1 ≥ 0.

das dazu duale Problem:

max y1 − 23 y2

s.d y1 − 3y2 ≤ 2−y1 + 4y2 = 1−2y1 + 2y2 = 1/3

y1 , y2 ≥ 0

• optimale Lösungen sind x1 = 0, x2 = − 19 , x3 = − 5

9 , y1 = 19 , y2 = 5

18

• mit cT x = − 227 = yT b

15 / 1

Die Simplexmethode

Gliederung

• LP-Dualität

• ein lineares Produktionsmodell

• der Simplexalgorithmus

• Phase I

• Endlichkeit des Simplexalgorithmus

• Sensitivitätsanalyse

• die primal-duale Methode

16 / 1

Page 5: Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 + x2 1 min y2 y1 y2 = 1 y1 + y2 = 1 y1;y2 0 (5) die beiden Programme sind dual zueinander

lineares Produktionsmodell

• es sollen n Güter der Typen P1, P2, . . . , Pn produziert werden

• dazu werden die Rohstoffe R1, . . . , Rm verwendet

• die ökonomischen Produktionsparameter seien

aij = benötigte Menge von Ri zur Produktion einer Einheit von Pj

cj = Gewinn pro Einheit bei Produktion von Pj

bi = Anzahl Einheiten von Ri im Vorrat

• gesucht ist ein Produktionsplan, der den Gewinn maximiert

17 / 1

lineares Produktionsmodell

• der optimale Produktionsplan ergibt sich als Lösung des folgendenlinearen Programms:

max c1x1 + . . . + cnxn

s.d . a11x1 + . . . + a1nxn ≤ b1...

...am1x1 + . . . + amnxn ≤ bm

x1, . . . , xn ≥ 0

(7)

• was, wenn wir anstatt zu produzieren, den Vorrat an Rohstoffeverkaufen?

• welche Preise sollten die Rohstoffe mindestens erzielen?

18 / 1

lineares Produktionsmodell

• der Preis der Rohstoffe sollte mindestens so groß sein wie der bei ihrerVerarbeitung erzielte Gewinn

• dies lässt sich durch das folgende lineare Programm ausdrücken:

min b1y1 + . . . + bmym

s.d . a11y1 + . . . + am1ym ≥ c1...

...a1ny1 + . . . + amnym ≥ cn

y1, . . . , ym ≥ 0

(8)

• die beiden Programme (7) und (8) sind dual zueinander:

19 / 1

lineares Produktionsmodell• Problem (7) ist in Matrixschreibweise

max cT x»A−I

–x ≤

»b0

–• das dazu duale Problem ist

min bT yAT y − Iz = cy ≥ 0, z ≥ 0.

(9)

• wegen z ≥ 0 ist letzteres aber äquivalent mit (8):

min bT yAT y ≥ cy ≥ 0.

(10)

• die Preise y ∗1 , . . . , y ∗

m , die sich als Optimallösung von (8) ergeben, sinddie sog. Schattenpreise der Güter R1, . . . , Rm .

20 / 1

Page 6: Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 + x2 1 min y2 y1 y2 = 1 y1 + y2 = 1 y1;y2 0 (5) die beiden Programme sind dual zueinander

lineares Produktionsmodell

Interpretation des komplementären Schlupfes:

• xi > 0 =⇒ (yT A)i = ci :

• wird im Optimum das i -te Produkt produziert

• dann kann durch den Verkauf der Rohstoffe nicht mehr Gewinnerzielt werden.

• (yT A)i > ci =⇒ xi = 0:

• kann durch den Verkauf der Rohstoffe mehr Gewinn erzielt werden

• so sollte das i -te Produkt nicht produziert werden.

21 / 1

Die Simplexmethode

Gliederung

• LP-Dualität

• ein lineares Produktionsmodell

• der Simplexalgorithmus

• Phase I

• Endlichkeit des Simplexalgorithmus

• Sensitivitätsanalyse

• die primal-duale Methode

22 / 1

SimplexalgorithmusZur Erinnerung:

• wir betrachten ein lineares Optimierungsproblem der Form:

min cT xAx = bx ≥ 0

(11)

• das dazu duale lineare Programm ergibt sich als:

max bT yAT y ≤ c

(12)

• seien x primal und y dual zulässig

• nach der schwachen Dualität gilt cT x ≥ bT y

• nach der starken Dualität gilt cT x = bT y genau dann, wenn beideoptimal sind

23 / 1

Simplexalgorithmus

• es gilt eine der drei Alternativen:

• das Problem ist unzulässig ({x ≥ 0 | Ax = b} = ∅)• die Zielfunktion ist unbeschränkt (min cT x = −∞)

• das Optimum wird in einer Ecke angenommen

• Ecken entsprechen Basislösungen

• sei r = rg A und v ≥ 0

• v ist genau dann eine Ecke von P , wenn gilt:

• es existiert eine Indexmenge N mit |N | = n − r

• vj = 0 für alle j ∈ N ;

• die Teilmatrix AB der r Spalten A·j mit Index j /∈ N bildet eineSpalten-Basis von A (Basislösung)

• ABvB = b, A−1B b ≥ 0

24 / 1

Page 7: Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 + x2 1 min y2 y1 y2 = 1 y1 + y2 = 1 y1;y2 0 (5) die beiden Programme sind dual zueinander

Simplexalgorithmus

• zentrale Idee des Simplexalgorithmus:

• untersuche die Basislösungen der beiden Zulässigkeitsbereiche

P = {x ∈ Rn | Ax = b, x ≥ 0}P∗ = {y ∈ Rm | AT y ≤ c}

• wir nehmen oBdA an, dass A vollen Zeilenrang m = rg A hat

• sei B·∪ N = {1, . . . , n} eine Partition der Spaltenindices mit |B| = r

• die Partition der Indexmenge induziert eine Zerlegung des Problems

25 / 1

Simplexalgorithmus

• dann lässt sich das primale System schreiben als

min cTB xB + cT

N xN

ABxB + AN xN = bxB , xN ≥ 0

• wir nehmen weiter an, dass AB vollen Rang hat

• dann ist eine Lösung des Gleichungssystems gegeben durch:

x = (xB , xN ) mit xB = A−1B b xN = 0

• weiter ist x eine Ecke von P , falls zusätzlich xB = A−1B b ≥ 0

• in diesem Fall bildet AB eine zulässige Basislösung

• wir nennen die Indexmenge B dann auch selber eine Basis

26 / 1

Simplexalgorithmus

• entsprechend lässt sich das duale System schreiben als:

max bT y»AT

B

ATN

–y ≤

»cB

cN

• dann erfüllt y = (ATB )−1cB das erste Teilsystem

• weiter ist y zulässig für P∗, falls zusätzlich ATN y = AT

N (ATB )−1cB ≤ cN

• da rg A = rg AB , ist y dann auch Ecke von P∗

27 / 1

Simplexalgorithmus

• wir haben B die folgenden Kandidaten für Lösungen zugeordnet:

x ∈ Rn mit xB = A−1B b, xN = 0N .

y ∈ Rm mit y = (ATB )−1cB .

• es gilt:

(Z) x ∈ P ⇐⇒ xB ≥ 0B

(Z∗) y ∈ P∗ ⇐⇒ ATN y ≤ cN

• weiter gilt

cT x = cTB xB + cT

N xN = (ATB y)T xB = yT ABxB = yT b.

• wegen der starken Dualität sind x, y optimal, falls sie zulässig sind

• gesucht: eine Basis B so, dass sowohl x als auch y zulässig sind

28 / 1

Page 8: Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 + x2 1 min y2 y1 y2 = 1 y1 + y2 = 1 y1;y2 0 (5) die beiden Programme sind dual zueinander

Simplexalgorithmus

Gliederung

• LP-Dualität

• ein lineares Produktionsmodell

• der Simplexalgorithmus

• das Simplexaltableau• die primale Strategie• ein Beispiel

• Bemerkungen zum Simplexalgorithmus

• die revidierte Simplexmethode

• Sensitivitätsanalyse

• die primal-duale Methode

29 / 1

Das Simplextableau• traditionell wird in der Analyse des Simplexalgorithmus immer ein

Basiswechsel vorgenommen

• d.h. die Spaltenvektoren werden bzgl. der jeweiligen BasisAB dargestellt

• die Restriktion werden nicht dargestellt als:

Ax = ABxB + AN xN = b

• sondern in der Form:

A−1B Ax = IBx + AN xN = b mit AN = A−1

B AN , b = A−1B b

• mit anderen Worten: sei A = A−1B A

• dann erhalten wir eine äquivalente Formulierung des primalenProblems (11) in der Form

min cT x s.d. Ax = b, x ≥ 0

30 / 1

Das Simplextableau

• analog für das duale System

AT y =

»AT

B

ATN

–y ≤

»cB

cN

–= c

• sei y = (ATB )−1cB

• wir definieren die reduzierten Kosten c als den dualen Schlupf»cB

cN

–= c = c− AT y =

»cB

cN

–−

»AT

B

ATN

–(AT

B )−1cB =

»0B

cN − ATN (AT

B )−1cB

• dann haben wir cB = 0B

• und cN = cN − ATN (AT

B )−1cB = cN − ATN cB

31 / 1

Das Simplextableau• die ursprünglichen Zulässigkeitsbedingungen

(Z) x ∈ P ⇐⇒ xB ≥ 0B

(Z∗) y ∈ P∗ ⇐⇒ ATN y ≤ cN

• gehen dann über in :

(Z) xB = b ≥ 0

(Z∗) cTN = cT

N − cTB AN = cT

N − yT AN ≥ 0TN .

• erfüllt x die Bedingung (Z ), so ist x primal zulässig

• erfüllt y die Bedingung (Z ∗), so ist y dual zulässig

32 / 1

Page 9: Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 + x2 1 min y2 y1 y2 = 1 y1 + y2 = 1 y1;y2 0 (5) die beiden Programme sind dual zueinander

Das Simplextableau• wir setzen z = cT x,

• dann bedeutet der Basiswechsel:

• von den Ausgangsdaten

z = cT xb = Ax

←→»

0 cTB cT

Nb AB AN

• geht man über zu dem Koeffizientenschema»−z 0T

B cTN

b IB AN

–(13)

• hierbei istz = cT

B b = cT x = cTB A−1

B b = bT y

33 / 1

Das Simplextableau

• das Parameterschema (13) ist das Simplextableau bzgl. derIndexmenge B

• rechnerisch ist es einfach zu ermitteln:

• führe auf den Ausgangsdaten Pivotoperationen (elementareZeilenoperationen) aus,

• bis in den B-Spalten die Teilmatrix»0T

BIB

–erreicht ist.

• die reduzierten Kosten entsprechen der ersten Zeile des Tableaus

34 / 1

Das Simplextableau

man beachte:

• links oben steht der negative Zielfunktionswert bzgl. der geradebetrachteten Basisvektoren x und y

• in der Literatur wird das Simplextableau daher oft mit dennegativen Kostenkoeffizienten angegeben:»

0 −cTB −cT

Nb AB AN

–−→

»z 0T

B −cTN

b IB AN

35 / 1

Das Simplextableau

• die Variablen xi mit Index i ∈ B heißen Basisvariablen (bzgl. B)

• die xj mit j ∈ N sind die Nichtbasisvariablen

• bei einem Simplextableau gehen wir immer von einerProblemformulierung vom Typ (11) aus:

min cT xAx = bx ≥ 0

(14)

• insbesondere unterstellen wir automatisch, dass x nichtnegativ sein soll

36 / 1

Page 10: Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 + x2 1 min y2 y1 y2 = 1 y1 + y2 = 1 y1;y2 0 (5) die beiden Programme sind dual zueinander

Das Simplextableau

Idee des Simplexverfahrens:

• wir starten mit einer Basis gegeben durch die Indexmenge B

• sind die zugehörigen Basislösungen x, y primal und dual zulässig: stop

• andernfalls verändern wir B zu B ′ = B r i ∪ j und iterieren

• dabei versuchen wir, von einer Ecke zu einer Nachbarecke zu gehen

• und zwar so, dass die Zielfunktionswerte in den Ecken schwachmonoton steigen

37 / 1

Die Simplexmethode

Gliederung

• LP-Dualität

• ein lineares Produktionsmodell

• der Simplexalgorithmus

• das Simplexaltableau• die primale Strategie• ein Beispiel

• Bemerkungen zum Simplexalgorithmus

• Phase I

• Endlichkeit des Simplexalgorithmus

• Sensitivitätsanalyse

• die primal-duale Methode

38 / 1

Die primale Strategie

• wir unterscheiden im wesentlichen zwei Strategien

primale Strategie:

• x ist stets primal zulässig

• das Verfahren stoppt, wenn y dual zulässig ist

duale Strategie:

• y ist stets dual zulässig

• das Verfahren stoppt, wenn x primal zulässig ist

• wir werden diese beiden Strategien im folgenden beschreiben

39 / 1

Die primale Strategie

• wir nehmen an, wir hätten (irgendwie) eine Basis B gefunden derart,dass das zugehörige Simplextableau primal zulässig ist,

• d.h.b = A−1

B b = xB ≥ 0B .

• sei Aj der j te Spaltenvektor von A

• falls gilt:c j = cT

B Aj = cTB A−1

B Aj ≥ 0 für alle j ∈ N

• so ist y dual zulässig

• und wir haben eine Optimallösung gefunden

40 / 1

Page 11: Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 + x2 1 min y2 y1 y2 = 1 y1 + y2 = 1 y1;y2 0 (5) die beiden Programme sind dual zueinander

Die primale Strategie

• sei also c j < 0 für ein j ∈ N

• der einfachen Notation wegen nehmen wir an, wir hätten die Indices soumnumeriert, dass gilt:

B = {1, . . . , m}

• das Simplextableau sieht dann wie folgt aus:

41 / 1

Die primale Strategie26666666666666664

−z 0 0 . . . 0 . . . 0 cm+1 cm+2 . . . c j . . . cn

b1 1 0 . . . 0 . . . 0 a1,m+1 a1,m+2 . . . a1j . . . a1n

b2 0 1 . . . 0 . . . 0 a2,m+1 a2,m+2 . . . a2j . . . a2n...

. . .. . . 0

. . ....

. . . . . .. . .

...bk 0 · · · 0 1 · · · 0 ak ,m+1 ak ,m+2 . . . akj . . . akn...

. . .. . .

. . ....

. . .. . .

. . ....

bm 0 · · · 0 0. . . 1 am,m+1 am,m+2 · · · amj · · · amn

37777777777777775

• es ist x j = 0

• wir wollen x j erhöhen, da dadurch der Zielfunktionswert sinkt

• als Ausgleich müssen wir die Basisvariablen verändern

• wir unterscheiden die Fälle Aj ≤ 0 und Aj � 0

42 / 1

Die primale Strategie26666666666666664

−z 0 0 . . . 0 . . . 0 cm+1 cm+2 . . . c j . . . cn

b1 1 0 . . . 0 . . . 0 a1,m+1 a1,m+2 . . . a1j . . . a1n

b2 0 1 . . . 0 . . . 0 a2,m+1 a2,m+2 . . . a2j . . . a2n...

. . .. . . 0

. . ....

. . . . . .. . .

...bk 0 · · · 0 1 · · · 0 ak ,m+1 ak ,m+2 . . . akj . . . akn...

. . .. . .

. . ....

. . .. . .

. . ....

bm 0 · · · 0 0. . . 1 am,m+1 am,m+2 · · · amj · · · amn

37777777777777775

• ist Aj ≤ 0, so können wir

• xj beliebig erhöhen• die Basisvariablen zum Ausgleich ebenfalls erhöhen

• den Zielfunktionswert beliebig klein machen

43 / 1

Die primale Strategie26666666666666664

−z 0 0 . . . 0 . . . 0 cm+1 cm+2 . . . c j . . . cn

b1 1 0 . . . 0 . . . 0 a1,m+1 a1,m+2 . . . a1j . . . a1n

b2 0 1 . . . 0 . . . 0 a2,m+1 a2,m+2 . . . a2j . . . a2n...

. . .. . . 0

. . ....

. . . . . .. . .

...bk 0 · · · 0 1 · · · 0 ak ,m+1 ak ,m+2 . . . akj . . . akn...

. . .. . .

. . ....

. . .. . .

. . ....

bm 0 · · · 0 0. . . 1 am,m+1 am,m+2 · · · amj · · · amn

37777777777777775

• andernfalls: es existieren i mit aij > 0:

• wenn wir x j erhöhen,• müssen wir x i um aij x j senken

• bis die erste dieser Variablen auf Null gefallen ist

44 / 1

Page 12: Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 + x2 1 min y2 y1 y2 = 1 y1 + y2 = 1 y1;y2 0 (5) die beiden Programme sind dual zueinander

Die primale Strategie• ist Aj ≤ 0, so können wir

• xj beliebig erhöhen• die Basisvariablen zum Ausgleich ebenfalls erhöhen

• den Zielfunktionswert beliebig klein machen

• andernfalls: es existieren i mit aij > 0:

• wenn wir x j erhöhen,• müssen wir x i um aij x j senken

• bis die erste dieser Variablen auf Null gefallen ist

• d.h. wir suchen einen Koeffizienten akj > 0 mit der Eigenschaft

bk

akj= min

i

b i

aij| aij > 0

ff(15)

• das nach (15) bestimmte Element akj heißt Pivotelement45 / 1

Die primale Strategie

Lemma 4Sei B primal zulässig.

(i) Ist Aj ≤ 0, dann ist das Problem (11) unbeschränkt.

(ii) Wird andernfalls der Index k gemäß der Pivotregel (15) definiert,dann ist B ′ = (B ∪ {j}) \ {k} primal zulässig.

Beweis:

(i) im Fall Aj ≤ 0 betrachten wir ein beliebiges λ > 0 und setzen

x ′j = λ

x ′i = b i − aij λ (i ∈ B)

x ′` = 0 (` ∈ N \ {j}).

• dann ist x′ ∈ Rn wieder primal zulässig

46 / 1

Die primale Strategie

x ′j = λ

x ′i = b i − aij λ (i ∈ B)

x ′` = 0 (` ∈ N \ {j}).

• der Zielfunktionswert ist

cT x′ = cTB b− cT

B Aj λ + cj λ = cTB b + c j λ → −∞ (wenn λ→ +∞).

(ii) führe elementare Zeilenoperationen auf dem Simplextableau so aus,

• dass die j te Spalte in den k ten Einheitsvektor überführt wird

• alle Spalten bzgl. B \ {k} bleiben dann Einheitsvektoren und dieFortschreibung von b ergibt

b′k = bk /akj ≥ 0

b′i = b i − aij bk /akj ≥ 0 .

47 / 1

Die primale Strategie

Simplexalgorithmus

(1) bestimme eine primal zulässige Basis B

(2) sind alle reduzierten Kosten cj , j ∈ N nichtnegativ:

(3) dann ist eine Optimallösung gefunden mit

xB = b und xN = 0N .

(4) andernfalls wähle j ∈ N mit cj < 0

(5) ist Aj ≤ 0: stop (das Problem ist unbeschränkt)

(6) andernfalls berechne gemäß (15) eine neue Basis B und gehe zu (2)

48 / 1

Page 13: Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 + x2 1 min y2 y1 y2 = 1 y1 + y2 = 1 y1;y2 0 (5) die beiden Programme sind dual zueinander

Die primale Strategie

An dieser Stelle bleiben noch zwei Fragen offen:

1. wie findet man anfänglich eine primal zulässige Basis?

2. terminiert die primale Strategie nach endlich vielen Iterationen?

Bevor die Fragen beantworten, ein Beispiel und einige Bemerkungen zum Sim-plexverfahren.

49 / 1

Simplexalgorithmus

Gliederung

• LP-Dualität

• ein lineares Produktionsmodell

• der Simplexalgorithmus

• das Simplexaltableau• die primale Strategie• ein Beispiel

• Bemerkungen zum Simplexalgorithmus

• Phase I

• Endlichkeit des Simplexalgorithmus

• Sensitivitätsanalyse

• die primal-duale Methode

50 / 1

Beispiel

Beispiel:Wir betrachten das Problem

min −x1 −2x216 x1 + 2

3 x2 ≤ 100x1 +x2 ≤ 300x1 ≤ 240

x2 ≤ 120x1 ≥ 0, x2 ≥ 0

x

x240120

120

60

100

200 1

2

51 / 1

Beispiel

Nach Einführen von Schlupvariabeln lautet es:

min −x1 −2x216 x1 + 2

3 x2 +x3 = 100x1 +x2 +x4 = 300x1 +x5 = 240

x2 +x6 = 120x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0, x6 ≥ 0

• wir stellen das Problem weiterhin im Raum der ursprünglichen Variablendar

• zu leichteren Lesbarkeit erweitern wir die Tableaus um eine Zeile mitden Variablennamen

• offensichtlich ist die Basis B = {3, 4, 5, 6} eine zulässige Basislösung

52 / 1

Page 14: Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 + x2 1 min y2 y1 y2 = 1 y1 + y2 = 1 y1;y2 0 (5) die beiden Programme sind dual zueinander

Beispiel

min −x1 −2x216 x1 + 2

3 x2 +x3 = 100x1 +x2 +x4 = 300x1 +x5 = 240

x2 +x6 = 120x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0, x6 ≥ 0

mit der Basis B = {3, 4, 5, 6} hat das Tableau folgende Form:

2666666664

0 0 0 0 0 −1 −2

100 1 0 0 0 16

23

300 0 1 0 0 1 1240 0 0 1 0 1 0120 0 0 0 1 0 1

z x3 x4 x5 x6 x1 x2

3777777775

53 / 1

Beispiel2666666664

0 0 0 0 0 −1 −2

100 1 0 0 0 16

23

300 0 1 0 0 1 1240 0 0 1 0 1 0120 0 0 0 1 0 1

z x3 x4 x5 x6 x1 x2

3777777775die Basislösung entspricht der Ecke (0, 0) in den ursprünglichen Variablen

x

x240120

120

60

100

200 1

2

54 / 1

Beispiel2666666664

0 0 0 0 0 −1 −2

100 1 0 0 0 16

23

300 0 1 0 0 1 1240 0 0 1 0 1 0120 0 0 0 1 0 1

z x3 x4 x5 x6 x1 x2

3777777775• wir wählen z.B. die letzte Spalte als Pivotspalte

• nach Regel (15) ist min {100)/ 23 , 300/1, 120/1} = 120

• damit ist die 4. Zeile die Pivotzeile

• wir führen Zeilenoperationen aus, die die 2. Spalte in den Einheitsvektore4 überführen:

55 / 1

Beispiel

Mit der Basis B = {3, 4, 5, 6} hat das Tableau folgende Form:2666666664

0 0 0 0 0 −1 −2

100 1 0 0 0 16

23

300 0 1 0 0 1 1240 0 0 1 0 1 0120 0 0 0 1 0 1

z x3 x4 x5 x6 x1 x2

37777777752666666664

240 0 0 0 2 −1 0

20 1 0 0 − 23

16 0

180 0 1 0 −1 1 0240 0 0 1 0 1 0120 0 0 0 1 0 1

z x3 x4 x5 x6 x1 x2

3777777775

56 / 1

Page 15: Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 + x2 1 min y2 y1 y2 = 1 y1 + y2 = 1 y1;y2 0 (5) die beiden Programme sind dual zueinander

Beispiel2666666664

240 0 0 0 2 −1 0

20 1 0 0 − 23

16 0

180 0 1 0 −1 1 0240 0 0 1 0 1 0120 0 0 0 1 0 1z x3 x4 x5 x6 x1 x2

3777777775• die Basis besteht jetzt aus 3, 4, 5, 2

• es ist x1 = 0, x2 = 120, z = −240x

x240120

120

60

100

200 1

2

57 / 1

Beispiel2666666664

240 0 0 0 2 −1 0

20 1 0 0 − 23

16 0

180 0 1 0 −1 1 0240 0 0 1 0 1 0120 0 0 0 1 0 1

z x3 x4 x5 x6 x1 x2

3777777775• Spalte 5 ist jetzt die eindeutige Pivotspalte

• ebenfalls eindeutig ist die Pivotzeile2666666664

240 0 0 0 2 −1 0

20 1 0 0 − 23

16 0

180 0 1 0 −1 1 0240 0 0 1 0 1 0120 0 0 0 1 0 1

z x3 x4 x5 x6 x1 x2

377777777558 / 1

Beispiel2666666664

240 0 0 0 2 −1 0

20 1 0 0 − 23

16 0

180 0 1 0 −1 1 0240 0 0 1 0 1 0120 0 0 0 1 0 1

z x3 x4 x5 x6 x1 x2

3777777775das neue Tableau lautet:2666666664

360 6 0 0 −2 0 0

120 6 0 0 −4 1 060 −6 1 0 3 0 0

120 −6 0 1 4 0 0120 0 0 0 1 0 1

z x3 x4 x5 x6 x1 x2

3777777775

59 / 1

Beispiel2666666664

360 6 0 0 −2 0 0

120 6 0 0 −4 1 060 −6 1 0 3 0 0

120 −6 0 1 4 0 0120 0 0 0 1 0 1

z x3 x4 x5 x6 x1 x2

3777777775• die Basis besteht jetzt aus 1, 2, 4, 5

• es ist x1 = 120, x2 = 120, z = −360

x

x240120

120

60

100

200 1

2

60 / 1

Page 16: Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 + x2 1 min y2 y1 y2 = 1 y1 + y2 = 1 y1;y2 0 (5) die beiden Programme sind dual zueinander

Beispiel2666666664

360 6 0 0 −2 0 0

120 6 0 0 −4 1 060 −6 1 0 3 0 0

120 −6 0 1 4 0 0120 0 0 0 1 0 1

z x3 x4 x5 x6 x1 x2

3777777775Das neue Tableau lautet:

2666666664

400 2 23 0 0 0 0

200 −2 43 0 0 1 0

20 −2 13 0 1 0 0

40 2 − 43 1 0 0 0

100 −2 13 0 0 0 1

z x3 x4 x5 x6 x1 x2

3777777775

61 / 1

Beispiel2666666664

400 2 23 0 0 0 0

200 −2 43 0 0 1 0

20 −2 13 0 1 0 0

40 2 − 43 1 0 0 0

100 −2 13 0 0 0 1

z x3 x4 x5 x6 x1 x2

3777777775• die Basis besteht aus 1, 2, 5, 6 und ist optimal

• es ist x1 = 200, x2 = 100, z = −400

x

x240120

120

60

100

200 1

2

62 / 1

Die Simplexmethode

Gliederung

• LP-Dualität

• ein lineares Produktionsmodell

• der Simplexalgorithmus

• das Simplexaltableau• die primale Strategie• ein Beispiel

• Bemerkungen zum Simplexalgorithmus

• Phase I

• Endlichkeit des Simplexalgorithmus

• Sensitivitätsanalyse

• die primal-duale Methode

63 / 1

BemerkungenBemerkung 1:

• falls c j < 0 für mehrere j ∈ N , so haben wir noch Wahlfreiheit

• dies führt zu verschiedenen Pivotregeln:

• wähle j ∈ N mit cj minimal (steilster Abstieg)• wähle j ∈ N mit größter Änderung der Zielfunktion (größter

Fortschritt)• wähle j ∈ N mit j minimal

• …

• ebenso kann es bei der Wahl des die Basis verlassenden ElementsFreiheiten geben

• es ist keine Regel bekannt, die in solchen Fällen (mathematischbeweisbar) immer „die beste Wahl“ trifft.

64 / 1

Page 17: Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 + x2 1 min y2 y1 y2 = 1 y1 + y2 = 1 y1;y2 0 (5) die beiden Programme sind dual zueinander

BemerkungenBemerkung 2:

• seien B und B ′ zwei primal zulässige Basislösungen

• B und B ′ sind benachbart, falls B ′ = B r k ∪ j

• damit erzeugt der Simplexalgorithmus eine Folge von jeweilsbenachbarten Basislösungen

• zwischen je zwei benachbarten Basislösungen fällt derZielfunktionswert schwach

• dabei kann es passieren, dass

• die zu benachbarten Basislösungen gehörigen Ecken identischsind

• eine Folge von Ecken zyklisch durchlaufen wird

• in beiden Fällen könnte das Verfahren im Kreis laufen

• und nicht terminieren

65 / 1

BemerkungenBemerkung 3:

• sei B jetzt nicht primal sondern dual zulässige Basislösungen

• dann können wir die primale Simplexstrategie auf dem dualenProgramm ausführen

• die Vorgehensweise jedoch auf dem primalen Simplextableauinterpretieren

• dies führt zur dualen Simplexstrategie

• es ergeben sich die analogen Aussagen

• die reduzierten Kosten c` sind alle nichtnegativ

• ist B nicht optimal, so existiert ein bk < 0

• wir wählen die Spalte j (und folglich das Pivotelement akj < 0) nachder Pivotregel

c j

akj= max

`

c`

ak`| ak` < 0

ff(16)

66 / 1

Bemerkungen

Lemma 5

(i) Gilt ak` ≥ 0 für ` = 1, . . . , n, dann besitzt Problem (11) keinezulässige Lösung.

(ii) Ist der Index j gemäß der Pivotregel (16) bestimmt, dann istB ′ = (B ∪ {j}) \ {k} dual zulässig.

Beweis:

(i) eine zulässige Lösung x1, . . . , xn ist nichtnegativ,

• also hätte man im Fall ak` ≥ 0:

0 > bk =nX

`=1

ak`x` ≥ 0,

was nicht sein kann.

67 / 1

Bemerkungen(ii) sei nun akj gemäß (16) gewählt

• wir datieren das Simplextableau wieder so auf, dass die j te Spalte zumj ten Einheitsvektor wird,

• dann ergibt sich die erste Zeile des aufdatieren Tableaus so:

• subtrahiere c j mal die neue Zeile k vom reduziertenKostenvektor cT ≥ 0T .

• der Koeffizient in Spalte ` ist also

c ′` = c` − c j ak`/akj ≥ 0.

68 / 1

Page 18: Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 + x2 1 min y2 y1 y2 = 1 y1 + y2 = 1 y1;y2 0 (5) die beiden Programme sind dual zueinander

BemerkungenBemerkung 4:

• die duale Strategie kann wie folgt hilfreich sein:

• sei B eine optimale Basislösungen für ein lineares Programm

max cT xAx ≤ b

• wir fügen eine weitere Ungleichung hinzu

max cT xAx ≤ bdx ≤ t

• dann bleibt B dual, aber nicht primal zulässig

• und wir können mit B dual weiteriterieren

• diese Situation tritt u.a. bei Verfahren der ganzzahligen Optimierung auf

69 / 1

BemerkungenBemerkung 5:

• es ist nicht notwendig, immer das gesamte Simplextableau zuberechnen

• zu der Basis B ⊆ {1, . . . , n} kann man immer die notwendigeInformation direkt aus den Ausgangsparametern gewinnen:

• berechne b = A−1B b als Lösung der Gleichung ABx′ = b.

• berechne yT = cTB A−1

B als Lösung der Gleichung ATB y′ = cB .

• dann ergeben sich die reduzierten Kosten als

c j < 0 ⇐⇒ cj − yT Aj < 0 d.h. cj <

mXi=1

yi aij .

70 / 1

Bemerkungen

• die j -te Spalte Aj ergibt sich dann als Aj = A−1B Aj

• damit kann z.B. bei der primalen Strategie ein Pivotelement akj nachder Regel (15) bestimmt werden

• und der Basiswechsel vorgenommen werden

B → B ′ = (B ∪ {j}) \ {k}

• hierbei kann die Basisinverse A−1B′ leicht fortgeschrieben werden

• diese kompakte Version der Simplexmethode ist als revidierteSimplexmethode bekannt

• wir wenden uns jetzt der Frage zu, wie wir eine primal-zulässigeStartbasis bestimmen

• dies geschieht in einem vorgelagerten Schritt, der Phase I heißt

71 / 1

Die Simplexmethode

Gliederung

• LP-Dualität

• ein lineares Produktionsmodell

• der Simplexalgorithmus

• Phase I

• Endlichkeit des Simplexalgorithmus

• Sensitivitätsanalyse

• die primal-duale Methode

72 / 1

Page 19: Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 + x2 1 min y2 y1 y2 = 1 y1 + y2 = 1 y1;y2 0 (5) die beiden Programme sind dual zueinander

Phase 1• wir betrachten das System

Ax = bx ≥ 0 (17)

• gesucht ist eine Basis B derart, dass xB = A−1B b ≥ 0

• wir können b ≥ 0 annehmen (ansonsten multipliziere mit (−1))

• wir betrachten das erweiterte lineare Programm

minPm

i=1 zi

Iz + Ax = bx ≥ 0, z ≥ 0

(18)

• (18) hat die Teilmatrix I als primal zulässige Basislösung

• damit können wir das Simplexverfahren für (18) durchführen

73 / 1

Phase 1Ax = bx ≥ 0 (17)

minPm

i=1 zi

Iz + Ax = bx ≥ 0, z ≥ 0

(18)

• (17) besitzt genau dann eine zulässige Lösung, wenn (18) eineOptimallösung (x, z) mit Zielfunktionswert 0 besitzt, d.h.

z1 = . . . = zm = 0

• die Basis B einer solchen Optimallösung ergibt b als nichtnegativeLinearkombination von linear unabhängigen Spalten von A

• diese können folglich zu einer zulässigen Spaltenbasis AB vonA erweitert werden

• damit ist das gesuchte B gefunden (sofern (17) überhaupt lösbar ist).

74 / 1

Phase 1

• wir haben geklärt, wie wir eine primal-zulässige Basislösung finden

• es bleibt zu zeigen, dass das Verfahren terminiert

• insbesondere müssen wir das Zykeln vermeiden

• wir betrachten dazu die primale Strategie

• und verwenden eine modifizierte Pivotregel

• (für die duale Strategie gelten analoge Aussagen)

75 / 1

Die Simplexmethode

Gliederung

• LP-Dualität

• ein lineares Produktionsmodell

• der Simplexalgorithmus

• Phase I

• Endlichkeit des Simplexalgorithmus

• Sensitivitätsanalyse

• die primal-duale Methode

76 / 1

Page 20: Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 + x2 1 min y2 y1 y2 = 1 y1 + y2 = 1 y1;y2 0 (5) die beiden Programme sind dual zueinander

Endlichkeit

• wir starten mit einer primal-zulässigen Basislösung B

• wir nehmen am, dass B aus den ersten m Koordinaten besteht

• dann sieht das Tableau wie folgt aus:26666666666666664

−z 0 0 . . . 0 . . . 0 cm+1 cm+2 . . . c j . . . cn

b1 1 0 . . . 0 . . . 0 a1,m+1 a1,m+2 . . . a1j . . . a1n

b2 0 1 . . . 0 . . . 0 a2,m+1 a2,m+2 . . . a2j . . . a2n...

. . .. . . 0

. . ....

. . . . . .. . .

...bk 0 · · · 0 1 · · · 0 ak ,m+1 ak ,m+2 . . . akj . . . akn...

. . .. . .

. . ....

. . .. . .

. . ....

bm 0 · · · 0 0. . . 1 am,m+1 am,m+2 · · · amj · · · amn

37777777777777775

77 / 1

Endlichkeit• sei

αi = (b i , ai1, . . . , aim) (i = 0, 1, . . . , m)

• d.h. in jeder Iteration besteht αi aus b i und den ersten m Einträgender i -ten Zeile des Simplextableaus

• zu Beginn ist also (mit b0 = −z = b1 + . . . + bm):

26664α0

α1...

αm

37775 =

26664b0 0 . . . 0b1 1 . . . 0...

.... . .

...bm 0 . . . 1

37775

• die Vektoren α1, . . . , αm sind am Anfang linear unabhängig

• sie bleiben auch nach jedem Pivotschritt linear unabhängig

78 / 1

Endlichkeit

• ein Vektor x heißt lexikographisch positiv, wenn die kleinsteKoordinate 6= 0 positiv ist

• z.B. sind die Vektoren α1, . . . , αm alle lexikographisch positiv

• y ist lexikgraphisch größer als x, wenn der Differenzvektory − x lexikographisch positiv ist

• für je zwei Vektoren x und y gilt somit:

• x ist lexikographisch größer als y oder• y ist lexikographisch größer als x oder

• x = y

79 / 1

Endlichkeit

• die lexikographische (primale) Pivotregel bestimmt dasPivotelement akj in der Spalte j des Simplextableaus nun so, dass

αk

akj= lex-min

αi

aij| aij > 0

ff(19)

• d.h. wir wählen die Pivotzeile so, dass der Vektor 1akj

αk lexikographischminimal ist

• da dann insbesondere die erste Komponente minimal ist, verschärft(19) die alte Regel

bk

akj= min

i

b i

aij| aij > 0

ff(15)

• der Index k ist eindeutig, da andernfalls die lineare Unabhängigkeit derαi verletzt wäre

80 / 1

Page 21: Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 + x2 1 min y2 y1 y2 = 1 y1 + y2 = 1 y1;y2 0 (5) die beiden Programme sind dual zueinander

EndlichkeitBeispiel:wir betrachten das folgende Tableau:266664

12 3 4 −2 0 0 010 20 86 2 1 0 0

100 9 12 1 0 1 050 100 50 10 0 0 1z x3 x4 x5 x1 x2 x6

377775

• die Pivotspalte ist eindeutig: j = 3

• als Pivotzeilen kommen i = 1 und i = 3 in Frage

• für die Vektoren 1aij

αi folgt:

• 1a13

α1 = (5, 10, 43, 1)

• 1a33

α3 = (5, 10, 5, 1)

• nach der lexikographischen Regel wird Zeile 3 als Pivotzeile gewählt

81 / 1

Endlichkeit

Lemma 6Sind α1, . . . , αm lexikographisch positiv, dann auch die entsprechendenα′

1, . . . , α′m nach dem Pivotieren gemäß (19).

Beweis:

• Division durch eine positive Zahl erhält die lexikographische Positivität

• also ist α′k = αk /akj lexikographisch positiv

• für i 6= k und aij ≤ 0 ist α′i lexikographisch positiv, da

α′i = αi −

aij

akjαk

• für i 6= k und aij > 0 folgt die Aussage aus

α′i = aij

„αi

aij− αk

akj

«

82 / 1

Endlichkeit

Satz 7Bei Anwendung der lexikographischen Pivotregel wird keine Basis wiederholt.Damit ist die Anzahl der Iterationen endlich.

Beweis:

• der reduzierte Kostenkoeffizient c j ist negativ und αk lexikographischpositiv

• der erste Vektor α′0 ergibt sich als:

α′0 = α0 − c j αk

• daher ist α′0 lexikographisch (echt) größer als α0

• damit sind alle Vektoren α0 voneinander verschieden

• da das Tableau eindeutig von der Basis bestimmt wird, müssen auchalle Basen voneinander verschieden sein.

83 / 1

Endlichkeit

Zwischenfazit:

• in der Phase 1 stellen wir entweder fest, dass das lineare Programm(11) keine zulässige Lösung besitzt,

• oder wir können (z.B. mit der lexikographischen Regel) eine zulässigeBasis B berechnen.

• haben wir B, dann können wir nun das Simplextableau zurtatsächlichen Zielfunktion aufstellen und weiterrechnen

• um Endlichkeit zu garantieren, kann man wieder die lexikographischeRegel verwenden (nun relativ zur Startbasis B und nicht mehr zu I).

• damit ergibt sich:

84 / 1

Page 22: Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 + x2 1 min y2 y1 y2 = 1 y1 + y2 = 1 y1;y2 0 (5) die beiden Programme sind dual zueinander

Endlichkeit

Satz 8Ein lineares Programm ist entweder unzulässig oder unbeschränkt oderbesitzt eine (optimale) Basis, die primal und dual zulässig ist.

Beweis: Wenn der Simplexalgorithmus stoppt, ist genau eine der im Satz be-

haupteten Eigenschaften nachgewiesen.

85 / 1

Die Simplexmethode

Gliederung

• LP-Dualität

• ein lineares Produktionsmodell

• der Simplexalgorithmus

• Phase I

• Endlichkeit des Simplexalgorithmus

• Sensitivitätsanalyse

• die primal-duale Methode

86 / 1

Sensitivitätsanalyse• sei B eine primal zulässige Basis für das lineare System

Ax = b, x ≥ 0

• für welche Zielfunktionsparameter c ∈ Rn ist die zu B gehörigeBasislösung x optimal?

• wir wissen: B ist optimal, wenn die reduzierten Kosten nichtnegativsind:

cTN = cT

N − cTB A−1

B AN ≥ 0TN bzw. (A−1

B AN )T cB − IN cN ≤ 0N .

• die dieser Ungleichung genügenden c sind genau die Elemente despolyedrischen Kegels

P([A−1B AN )T | − IN ], 0).

• d.h. für alle c, die in diesem Kegel liegen, bleibt B optimal.

87 / 1

Sensitivitätsanalyse

• ist B dual zulässig bzgl. der festen Zielfunktionsparameter c, so stelltsich dual die Frage:’

• für welche Restriktionsparameter b ∈ Rm ist die zu B gehörigeBasislösung x optimal?

• nach der primalen Zulässigkeit von b = A−1B b ≥ 0.

• wieder erhalten wir einen polyedrischen Kegel:

P(−A−1B , 0).

• d.h. für alle b, die in diesem Kegel liegen, bleibt B optimal.

88 / 1

Page 23: Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 + x2 1 min y2 y1 y2 = 1 y1 + y2 = 1 y1;y2 0 (5) die beiden Programme sind dual zueinander

Die Simplexmethode

Gliederung

• LP-Dualität

• ein lineares Produktionsmodell

• der Simplexalgorithmus

• Phase I

• Endlichkeit des Simplexalgorithmus

• Sensitivitätsanalyse

• die primal-duale Methode

89 / 1

Die primal-duale Methode• wir betrachten wieder das folgende Paar dualer linearer Programme:

min cT xAx = bx ≥ 0

←→max bT y

AT y ≤ c

• wir wollen jetzt das Konzept des komplementären Schlupfes ausnutzen

Idee des Verfahrens:

Wir erzeugen eine Folge (xi , yi ) von Vektoren, für die gilt:

• xi ≥ 0

• yi ist dual zulässig

• xi und yi erfüllen die Komplementarität

• xi ist primal zulässig oder byi > byi−1

d.h. entweder sind (xi , yi ) optimal oder wir verbessern die duale Lösung

90 / 1

Die primal-duale Methode

• Annahme: wir kennen eine dual zulässige Lösung y und einen Vektorx ≥ 0 mit der Eigenschaft

xj > 0 =⇒ yT Aj = cj (j = 1, . . . , n).

• z.B. hat x = 0 trivialerweise diese Eigenschaft

• sei oBdA b ≥ 0

• ist b = 0, so ist x = 0 optimal

• wir nehmen daherPm

i=1 bi > 0 an

• sei A die Teilmatrix aller Spalten Aj von A mit der Eigenschaft

yT Aj = cj

• wir betrachten das folgende lineare Optimierungsproblem

min 1T zAu + Iz = b

u, z ≥ 0(20)

91 / 1

Die primal-duale Methode

min 1T zAu + Iz = b

u, z ≥ 0(20)

mit yT Aj = cj für jede Spalten Aj von A

• offensichtlich ist I eine primal zulässige Anfangsbasis für Problem (20)

• es kann somit mit der primalen Strategie gelöst werden

• sei (u∗, z∗) eine Optimallösung

• falls ζ∗ = 1T z∗ = 0, so gilt für x = (u∗, z∗) = (u∗, 0):

• x, y erfüllen die komplementären Schlupfbedingungen• x ist primal zulässig für das Ausgangsproblem

• x, y sind folglich optimal

92 / 1

Page 24: Operations Research Die Simplexmethode · LP-Dualität Beispiel für (i): max x1 + x2 x1 x2 0 x1 + x2 1 min y2 y1 y2 = 1 y1 + y2 = 1 y1;y2 0 (5) die beiden Programme sind dual zueinander

Die primal-duale Methode• ist ζ∗ > 0, so sei w eine dual optimale Lösung von (20)

• diese erfülltζ∗ = bT w und AT w ≤ 0, w ≤ 1.

• für jede Spalte A` von A, die nicht zu A gehört, gilt:

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.

93 / 1