optimierungs- algorithmen petra mutzel technische universität wien institut für computergraphik...

18
Optimierungs- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2

Upload: axel-kerner

Post on 06-Apr-2016

225 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Optimierungs- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2

Optimierungs-Algorithmen

Petra Mutzel Technische Universität Wien

Institut für Computergraphik und Algorithmen

Algorithmen und Datenstrukturen 2

Page 2: Optimierungs- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2

Überblick• Lineare Programmierung

• Dualität• Simplex Algorithmus

• Grundlagen der Polyedertheorie

• Exakte Lösungsmethoden für ILPs• Branch-and-Bound• Schnittebenenverfahren • Branch-and-Cut

• Kombinatorische vs. Ganzzahlige Optimierung

Page 3: Optimierungs- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2

Lineare ProgrammierungFür den Zulässigkeitsbereich P eines Linearen Programms gibt es drei verschiedene Möglichkeiten:

P= es existiert keine einzige zulässige Lösung LP ist unlösbar

P≠ und inf{cTx | xP} existiert nicht (z.B. 0x≥-1) LP ist lösbar, aber es gibt keine optimale Lösung

P≠ und min{cTx | xP} existiert LP ist lösbar und hat eine endliche Lösung x* mit cTx*=min{cTx | xP}, x* ist die optimale Lösung

Page 4: Optimierungs- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2

Dualität der Linearen ProgrammierungEs ist vorteilhaft, Schranken für Lineare Programme angeben zu können

Ein Punkt, der (2)-(4) erfüllt, erfüllt auch die Ungleichung: 2(2)+(3) sowie (2)+(4)

Wir suchen die besten Schranken: Dualität

Page 5: Optimierungs- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2

Dualität der Linearen Programmierung

Primales Programm:

Duales Programm:

Page 6: Optimierungs- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2

Dualität der Linearen Programmierung

Primales Programm (P):

Duales Programm (D):

Schwacher Dualitätssatz:

Sei x´ein zulässiger Punkt für (P) und y´ zulässig für (D).

Dann gilt: y´T b ≤ cT x´

Page 7: Optimierungs- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2

Dualität der Linearen Programmierung

Primales Programm (P):

Duales Programm (D):

Korollar: Ist (P) unbeschränkt, dann ist (D) unlösbar.

Sei x´ein zulässiger Punkt für (P) und y´ zulässig für (D).

Dann gilt: y´T b ≤ cT x´

Page 8: Optimierungs- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2

Dualität der Linearen Programmierung

Primales Programm (P):

Duales Programm (D):

Starker Dualitätssatz:

Sei x* ein zulässiger Punkt für (P) und y* zulässig für (D). Dann gilt:

y*Tb=cTx* beide Lösungen x* und y* sind optimal

Page 9: Optimierungs- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2

max 5x1 + 4x2 + 3x3

subject to 2x1 + 3x2 + x3 5

4x1 + x2 + 2x3 11

3x1 + 4x2 + 2x3 8

x1, x2, x3 0.

Einblick in den Simplex-Algorithmus

Page 10: Optimierungs- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2

Einführung von Schlupf-Variablen umGleichungen zu erhalten

max 5x1 + 4x2 + 3x3

subject to 2x1 + 3x2 + x3 + x4 = 5

4x1 + x2 + 2x3 + x5 = 11

3x1 + 4x2 + 2x3 + x6 = 8

x1, x2, x3, x4, x5, x6 0.

Simplex-Algorithmus

Page 11: Optimierungs- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2

StartZunächst setzen wir x1=x2=x3=0, und schreiben das System um, so dass die Nicht-Null Elemente links stehen; nun können wir direkt die Werte der anderen Variablen ablesen: x4=5, x5=11, x6=8, z=0.

z = 5x1 + 4x2 + 3x3

x4 = 5 - 2x1 - 3x2 - x3

x5 = 11 - 4x1 - x2 - 2x3

x6 = 8 - 3x1 - 4x2 - 2x3

Simplex-Algorithmus

Page 12: Optimierungs- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2

Erste IterationWir wollen den Wert z erhöhen, mometan ist er 0. Erhöhe z.B. den Wert von x1. Wie weit können wir erhöhen?

z = 5x1 + 4x2 + 3x3

x4 = 5 - 2x1 - 3x2 - x3

x5 = 11 - 4x1 - x2 - 2x3

x6 = 8 - 3x1 - 4x2 - 2x3x4 0 5 – 2x1 0 5 2x1 x1 5/2

x5 0 11 – 4x1 0 11 4x1 x1 11/4

x6 0 8 – 3x1 0 8 3x1 x1 8/3

Simplex-Algorithmus

Wir setzen:x1=5/2x4=0

Page 13: Optimierungs- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2

Zweite IterationWir wollen den Zielfunktionswert weiter erhöhen. Dies geht momentan nur durch Erhöhung von x3.

z = 25/2 - 7/2x2 + 1/2x3 - 1/2x4

x1 = 5/2 - 3/2x2 - 1/2x3 - 1/2x4

x5 = 1 + 5x2 + 2x4

x6 = 1/2 + 1/2x2 - 1/2x3 + 3/2x4

x1 0 5/2 – 1/2x3 0 5/2 1/2x3 x3 5

x5 0 x3 unbeschränkt

x6 0 1/2 – 1/2x3 0 1/2 1/2x3 x3 1

Simplex-Algorithmus

Page 14: Optimierungs- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2

z = 13 - 3x2 - x4 - x6

x1 = 2 - 2x2 - 2x4 + x6

x5 = 1 + 5x2 + 2x4

x3 = 1 + x2 + 3x4 - 2x6

Optimal!!!

Simplex-Algorithmus

Denn: die Koeffizienten des z-Vektors sind alle kleiner gleich 0.Es kann also zu keiner Verbesserung der Zielfunktion kommen.

Page 15: Optimierungs- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2

Graphische Interpretation

Max 3x1 + 2x2 + 2x3

Subject to x1 + x3 8

x1 + x2 7

x1 + 2x2 12

x1, x2, x3 0

Simplex-Algorithmus

Page 16: Optimierungs- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2

x1

x2

x3

(0,0,8) (0,6,8)

(2,5,6)

(0,6,0)

(2,5,0)(7,0,1)

(7,0,0)

Max z = 3x1 + 2x2 + 2x3

z = 0

z = 21

z = 23

Optimal!

z = 28

Simplex-Algorithmus

Page 17: Optimierungs- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2

Log started (V8.2.0a1) Tue Apr 8 21:59:46 2003

Problem name: supply_chain.lp.gzConstraints : 10810259 Variables : 19916187

Reduced LP has 3140439 rows, and 7314332 variables.Presolve time = 339.43 sec.

Iteration log . . .Iteration: 0 Infeasibility = 1534390803.049594Iteration: 1247301 Infeasibility = 437397607.938387

...

Iteration: 2348954 Infeasibility = 10965.599999Elapsed time = 3776.48 sec. (2349000 iterations)Iteration: 2349222 Objective = 1775629743606097400.000000

...

Elapsed time = 5396.65 sec. (2687000 iterations)Iteration: 2687616 Objective = 1403833763253068800.000000Removing shift (10).

Primal simplex - Optimal: Objective = 1.4038337633e+18Solution time = 5410.00 sec. Iterations = 2687616 (2348954)

Typischer Beispiellauf (CPLEX)

Page 18: Optimierungs- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2

Überblick• Lineare Programmierung

• Dualität• Simplex Algorithmus

• Grundlagen der Polyedertheorie

Siehe pdf-file