Vorlesung 9 Programmierung Kombinatorische...

30
© 2013 Fabian Kuhn Optimierung 1 Optimierung Vorlesung 9 Lineare Programmierung & Kombinatorische Optimierung

Transcript of Vorlesung 9 Programmierung Kombinatorische...

Page 1: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung

1

Optimierung

Vorlesung 9Lineare Programmierung & Kombinatorische Optimierung

Page 2: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Assignment Problem (Zuordnungsproblem)

Gewichtetes Perfektes Bipartites Matching

• Weise jedem Agenten genau eine Aufgabe zu• Minimiere Gesamtkosten• Kombinatorisches Optimierungsproblem:

– Zulässige Lösungen: Kantenmengen, so dass jeder Agent und jede AufgabeKnoten genau einer der Kanten ist

2

agents  tasks Costs 

Page 3: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Assignment Problem (Zuordnungsproblem)

Als  ‐Matrix:

• Wähle genau eine Zelle pro Zeile und Spalte aus• Minimiere Gesamtkosten (oder maximiere Gesamtgewicht)• Kombinatorisches Optimierungsproblem:

– Zulässige Lösungen:  Zellen, so dass jede Zeile und Spalte genau einmalgewählt ist

3

3.2 4.1 1.0 0.4 4.8 2.1

2.3 2.3 0.3 5.1 2.3 3.3

3.0 4.1 1.3 2.9 1.8 2.7

1.7 3.1 1.9 7.4 1.3 9.0

2.3 0.3 0.3 5.1 2.3 2.0

4.1 4.3 4.4 6.1 1.9 2.5

Page 4: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Assignment Problem (Zuordnungsproblem)

Als Integer Linear Program:• Variablen  ∈ 0,1 ,       1 falls Zeile und Spalte  Zelle der Lsg.

– Falls Agent  Aufgabe bekommt• Zuordnungsproblem:

min,

∀ ∈ 1,… , : 1

∀ ∈ 1,… , : 1

∀ , : ∈ 0,1

• Lineares Programm ausser der Bedingung ∈ 0,1

4

Page 5: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung LP Relaxierung

• Schreibe Assignment Problem als lineares Programm:

min,

∀ ∈ 1,… , : 1

∀ ∈ 1,… , : 1

∀ , :

• Nimm  ‐Anteil der Zelle  ,• Summe der Anteile in jeder Zeile/Spalte ist 1• Vergrössert den Raum der zulässigen Lösungen• Optimale Lösung ist untere Schranke für optimale Lösung des 

Ursprungsproblems

5

Page 6: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Ganzzahlige Lösungen

Satz: Jede nicht‐ganzzahlige Lösung kann in eine ganzzahlige Lösung mit gleichen oder besseren Gesamtkosten transformiert werden.

6

Cost: 30.2

Cost: 10.5

Cost: 40

Cost: 20.3

Cost: 20.3

Cost: 30

Cost: 20.4

Cost: 30.3

Cost: 10.5

Cost: 10.5

Cost: 10

Cost: 20

Cost: 30

Cost: 30

Cost: 20.6

Cost: 10.4

Page 7: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Ganzzahlige Lösungen

Satz: Jede nicht‐ganzzahlige Lösung kann in eine ganzzahlige Lösung mit gleichen oder besseren Gesamtkosten transformiert werden.

7

Cost: 30.2

Cost: 10.5

Cost: 40

Cost: 20.3

Cost: 20.3

Cost: 30

Cost: 20.4

Cost: 30.3

Cost: 10.5

Cost: 10.5

Cost: 10

Cost: 20

Cost: 30

Cost: 30

Cost: 20.6

Cost: 10.4

.

. .

Page 8: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Ganzzahlige Lösungen

Satz: Jede nicht‐ganzzahlige Lösung kann in eine ganzzahlige Lösung mit gleichen oder besseren Gesamtkosten transformiert werden.

8

Cost: 30

Cost: 10.7

Cost: 40

Cost: 20.3

Cost: 20.3

Cost: 30

Cost: 20.4

Cost: 30.3

Cost: 10.7

Cost: 10.3

Cost: 10

Cost: 20

Cost: 30

Cost: 30

Cost: 20.6

Cost: 10.4

.

..

Page 9: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Ganzzahlige Lösungen

Satz: Jede nicht‐ganzzahlige Lösung kann in eine ganzzahlige Lösung mit gleichen oder besseren Gesamtkosten transformiert werden.

Allgemein:• Es gibt immer einen Zyklus, so dass man alternierend um den gleichen 

Betrag erhöhen, reduzieren kann und die Kosten nicht steigen– Vgl: alternierende Pfade bei Matching‐Formulierung

9

Cost: 30

Cost: 11

Cost: 40

Cost: 20

Cost: 20

Cost: 30

Cost: 21

Cost: 30

Cost: 11

Cost: 10

Cost: 10

Cost: 20

Cost: 30

Cost: 30

Cost: 20

Cost: 11

Page 10: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Lösung Assignment Problem

Mögliche Lösung des Assignment Problems:1. Löse LP Relaxierung (LP mit  0)2. Mache Lösung ganzzahlig

Mit Simplex‐Algorithmus:• Der Simplex‐Algorithmus gibt immer einen Extremalpunkt des konvexen 

Polyeders, welches durch die lin. Nebenbed. definiert ist.• Mann kann zeigen: Alle Extremalpunkte des Assignment‐Problems sind 

ganzzahlig• Der Simplex‐Algorithmus gibt direkt eine optimale ganzzahlige Lösung!

Ungarische Methode:• Schnellerer Algorithmus, spezifisch für das Assignment Problem

10

Page 11: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Kombinatorische Optimierung und LPs

Viele wichtige kombinatorische Optimierungsprobleme lassen sich als“Integer”‐Varianten von linearen Programmen schreiben.

Assignment Problem (min gewichtetes perfektes Matching im , )

Maximum (Weighted) Matching:• Gegeben ein (gewichteter) Graph  ,• Matching: Teilmenge der Kanten, so dass sich keine 2 berühren• Finde Matching mit maximalem Gewicht

11

6

63

1

42

5

35

Page 12: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Vertex Cover

Maximum (Weighted) Vertex Cover ():• Gegeben ein Graph  , mit Knotengewichten• Vertex Cover: Teilmenge der Knoten, so dass jede Kante abgedeckt ist• Finde Vertex Cover mit minimalem Gewicht

12

66

3

1

42

5

3

5

32

Page 13: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Vertex Cover und Matching

Vertex Cover und Matching ungewichtet:

13

Page 14: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Set Cover

(Gewichtetes) Set Cover:• Gegeben: Menge und Menge von Teilmengen ∈ 2

• Jede Menge ∈ hat ein Gewicht• Set Cover: Teilmenge von  , so dass alle Elemente ∈ abgedeckt sind• Ziel: Set Cover mit minimalem Gewicht

14

Page 15: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Independent Set

Maxium (gewichtetes) Independent Set (Stabile Menge):• Gegeben Graph  , mit Knotengewichten• Independent Set (unabhängige/stabile Menge):

Teilmenge der Knoten, so dass keine 2 adjazent sind• Ziel: Finde independent set mit maximalem Gewicht

15

66

3

1

42

5

3

5

32

Page 16: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Maximaler Fluss

Flow Network:• Directed graph  , ,  ⊆• Each (directed) edge  has a capacity  0

– Amount of flow (traffic) that the edge can carry• A single source node  ∈ and a single sink node  ∈

Flow: (informally)• Traffic from  to  such that each edge carries at most its capacity

Examples:• Highway system: edges are highways, flow is the traffic• Computer network: edges are network links that can carry packets, 

nodes are switches• Fluid network: edges are pipes that carry liquid

Page 17: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Maximaler Fluss

17

1520

20

15

10

10

20

15

20

15

15

15

10

5

20

20

Page 18: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung LP Relaxierung

1. Löse LP Relaxierung (in Polynomialzeit!)2. Falls möglich: Konvertiere in gleich gute ganzzahlige Lösung

Funktioniert bei:• Assignment Problem

(Maximum Weighted Matching in bipartiten Graphen)

• Maximum Integer Flow

• Minimum Cost Flow– Anstatt Kapazität, Kantenkosten– Erreiche gegebene Vorgaben (für alle Knoten) mit minmalen Kosten– Verallgemeinerung des Max Flow Problems

18

Page 19: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Allgemeines Matching

Matching in allgemeinem Graph  ,

19

Page 20: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Allgemeines Matching

Zusätzliche Bedingungen:

Knotenmenge • Matching kann höchstens  | | 2⁄ Kanten  , mit  , ∈ enthalten• Variable  , 1 : Kante  , im Matching• Zusätzlich: Für alle ungeraden Knotenmengen  :

,, ∈ , , ∈

12

• Neues LP hat nur ganzzahlige Extremallösungen• Aber: Exponentielle Anzahl Nebenbedingungen!• Es gibt einen polynomiellen Algorithmus von Edmonds

– Alg. findet duale optimale Lösung mit nur polynomiell vielen Variablen, welche nicht Null sind

– Dient als Zertifikat für die Optimalität

20

Page 21: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Cutting Planes

Allgemeine Optimierungs‐Technik:

1. Formuliere kombinatorisches Problem als Integer LP2. Relaxiere auf ein LP3. Löse LP mit Hilfe des Simplex‐ oder eines anderen Algorithmus4. Falls Lösung ganzzahlig sind wir fertig5. Sonst:

Versuche weitere Nebenbedingungen hinzuzufügen, so dass– die momentane Lösung nicht mehr zulässig ist– alle ganzzahligen Lösungen weiterhin zulässig sind

21

Page 22: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Approximationsalgorithmen

Vertex Cover und Maximum Matching (ungewichtet):

22

Page 23: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Approximationsalgorithmen

Vertex Cover und Maximum Matching (ungewichtet):

23

Page 24: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Approximationsalgorithmen

Gewichtetes Vertex Cover:1. Löse LP Relaxierung2. Runde auf ganzzahlige Lösung:

• Für jede Kante  , ∈ gilt  1

• Falls  0.5, runde auf  1 aufFalls  0.5, runde auf  0 ab

• Gibt eine 2‐Approximation:

24

Page 25: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Integer LP und LP Relaxierung

Integrality Gap• Verhältnis zwischen optimalem Zielfunktionswert des Integer LP und der 

Relaxierung

Maximum Matching• Integrality Gap ist mindestens  ⁄

Minimum Vertex Cover (ungewichtet)• Integrality Gap ist mind. 2 ⁄ (und höchstens 2)

Maximum Clique (ungewichtet)• Integrality Gap ist mindestens  2⁄ .

25

Page 26: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Approximationsalgorithmen

Minimum Set Cover (ungewichtet)

Greedy‐Algorithmus:• Füge Menge  ∈ hinzu, welche die meisten neuen Elemente abdeckt

26

Page 27: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Approximationsalgorithmen

Minimum Set Cover (ungewichtet)

Greedy‐Algorithmus:• Füge Menge  ∈ hinzu, welche die meisten neuen Elemente abdeckt

27

Page 28: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Approximationsalgorithmen

Minimum Set Cover (ungewichtet)

Greedy‐Algorithmus:• Füge Menge  ∈ hinzu, welche die meisten neuen Elemente abdeckt

28

Page 29: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Approximationsalgorithmen

Minimum Set Cover (gewichtet)

Randomisiertes Runden:1. Löse LP Relaxierung

– Jede Menge ∈ hat Wert  , so dass

∀ ∈ ∶ ∈ : ∈

1

2. Mit Wahrscheinlichkeitmin 1, ⋅ ln setze 1 (sonst 0)

29

Page 30: Vorlesung 9 Programmierung Kombinatorische Optimierungac.informatik.uni-freiburg.de/teaching/ss_13/opti/Slides/pdf/Optimierung09.pdf · •Der Simplex‐Algorithmus gibt direkt eine

© 2013 Fabian Kuhn

Optimierung Approximationsalgorithmen

Minimum Set Cover (gewichtet)

Randomisiertes Runden:1. Löse LP Relaxierung

– Jede Menge ∈ hat Wert  , so dass

∀ ∈ ∶ ∈ : ∈

1

2. Mit Wahrscheinlichkeitmin 1, ⋅ ln setze 1 (sonst 0)

30