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

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

Apr 06, 2016

Download

Documents

Axel Kerner
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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