Diskrete Optimierung (Einführung zur Vorlesung)

Ähnliche Dokumente
Inhaltsübersicht für heute:

Diskrete Optimierung (Einführung zur Vorlesung)

2. Optimierungsprobleme 6

Das Linear Ordering Problem Exakte Lösungsverfahren. für NP-schwierige. VO Algorithm Engineering

Das Multi Traveling Salesman Problem

3.4 Exakte Verfahren für (Gemischt-) Ganzzahlige Optimierung

KAPITEL 6 GANZZAHLIGE OPTIMIERUNG UND VOLLSTÄNDIG UNIMODULARE MATRIZEN

Kapitel 4. Optimierungsalgorithmen. Technische Universität Wien. Gunnar Klau Technische Universität Wien. Institut für Computergraphik und Algorithmen

Teil I. Lineare Optimierung

Vorlesung Kombinatorische Optimierung (Wintersemester 2007/08)

Probleme aus NP und die polynomielle Reduktion

Gliederung. Kapitel 4. Lokale Suchverfahren. Meta-Heuristiken. Simulated Annealing. Lokale Suchverfahren. Optimierungsalgorithmen

Optimierung für Wirtschaftsinformatiker: Lineare Programme

11. Übung zu Algorithmen I 6. Juli 2016

Überblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP

Kap. 7.1 Heuristiken Kap. 7.2 Approximative Algorithmen und Gütegarantien

3 Matrizenrechnung. 3. November

Inhalt. Problemstellung und Überblick. Allgemeine Problemstellung und Terminologie. Überblick über spezielle Klassen von Optimierungsproblemen

Die Verbindung von Linearer Programmierung und Graphentheorie

Optimierung für Nichtmathematiker

Teil III. Komplexitätstheorie

Verbesserungsheuristiken

9.2 Invertierbare Matrizen

Überblick Kap. 5: Graph Coloring

Lineare Programmierung

Effiziente Algorithmen I

Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É.

Probabilistische Analyse von Algorithmen

3 Klassifikation wichtiger Optimierungsprobleme

Optimierungsprobleme. B. Langfeld, M. Ritter, B. Wilhelm Diskrete Optimierung: Fallstudien aus der Praxis

Approximationsalgorithmen. Approximation im Sinne der Analysis:

Approximation im Sinne der Analysis:

4. Dualität Dualität 4.1 Dualität von LPs und der Dualitätssatz. Die duale Form eines LP in allgemeiner Form. Herleitung der dualen Form

8. Elemente der linearen Algebra 8.5 Quadratische Matrizen und Determinanten

Wiederholung zu Flüssen

KAPITEL 4 FLÜSSE IN NETZWERKEN

1 Lineare Optimierung, Simplex-Verfahren

Netzwerk-Simplex. MinCostFlow als Lineares Programm. 1 of 12 Netzwerksimplex

Grundlagen der Informatik Kapitel 20. Harald Krottmaier Sven Havemann

Euklidische Distanzmatrizen. Andrei Grecu

Lineares Programmieren Algorithmentechnik WS 09/10 Dorothea Wagner 7. Januar 2010

Das Heiratsproblem. Definition Matching

Durchschnitt von Matroiden

Serie 10: Inverse Matrix und Determinante

8.2 Invertierbare Matrizen

Bipartite Graphen. Beispiele

5. Musterlösung. Problem 1: Vitale Kanten * ω(f) > ω(f ). (a) Untersuchen Sie, ob es in jedem Netzwerk vitale Kanten gibt.

Eigenwerte und Diagonalisierung

6. Übung zur Linearen Optimierung SS08

Lineare Algebra: Determinanten und Eigenwerte

Aufgabe 1: Berechnen Sie für den in Abbildung 1 gegebenen Graphen den. Abbildung 1: Graph für Flussproblem in Übungsaufgabe 1

NP-vollständig - Was nun?

1 Der Simplex Algorithmus I

1 Singulärwertzerlegung und Pseudoinverse

abgeschlossen unter,,,, R,

Wie komme ich von hier zum Hauptbahnhof?

3 Polytope. 3.1 Polyeder

Unimodularität. Kapitel 1. Peter Becker (H-BRS) Operations Research II Wintersemester 2015/16 11 / 206

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling

Flüsse in Netzwerken

Algorithmen und Datenstrukturen 2

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016

Lineare Algebra I Zusammenfassung

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Algorithmische Methoden zur Netzwerkanalyse Vorlesung 13, Henning Meyerhenke

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Theoretische Informatik 1

Proseminar Lineare Algebra II, SS 11. Blatt

Lineares Programmieren

Optimierungsverfahren in der Transportlogistik

Aufgabenkomplex 5: Hauptachsentransformation, Lineare Optimierung, Differentialrechnung in mehreren Veränderlichen

Experimente. Zahlenbeispiel. Cache-Optimale Algorithmen. Warum Funktionieren Caches? Cache-Oblivious Speichermodell. Characterisierung von Caches

Optimierung auf Netzwerken

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

Einführung in die Informatik 2

Einführung in Algorithmen und Komplexität

5. Lokale Suchverfahren. Beispiel TSP: k-change Nachbarschaft. Nachbarschaft. k-opt Algorithmus

Optimale Steuerung 1 Prozessoptimierung 1

3 Optimierung mehrdimensionaler Funktionen f : R n R

Übungsaufgaben. Grundkurs Höhere Mathematik für Wirtschaftswissenschaftler. Teil 1: Lineare Algebra und Optimierung.

Lösungen zu den Hausaufgaben zur Analysis II

6 Eigenwerte und Eigenvektoren

Eigenwerte, Diagonalisierbarkeit, charakteristisches Polynom

Gemischt-ganzzahlige und Kombinatorische Optimierung

3.2 Lineare Optimierung (Entscheidungen unter Sicherheit)

Aussagenlogik. Lehrstuhl für BWL, insb. Mathematik und Statistik Prof. Dr. Michael Merz Mathematik für Betriebswirte I Wintersemester 2015/2016

Der Begriff der konvexen Menge ist bereits aus Definition 1.4, Teil I, bekannt.

Optimierung I. Dr. Ulf Lorenz F2.413

Übungsblatt 6 Lösungsvorschläge

Lagrange-Relaxierung und Subgradientenverfahren

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

In diesem Abschnitt betrachten wir nur quadratische Matrizen mit Komponenten aus einem Körper K, also A K n n für ein n N. Wenn (mit einem n > 1)

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck

Klausurenkurs zum Staatsexamen (WS 2015/16): Lineare Algebra und analytische Geometrie 3

NP-Vollständigkeit. Krautgartner Martin ( ) Markgraf Waldomir ( ) Rattensberger Martin ( ) Rieder Caroline ( )

Wirtschaftsmathematik für International Management (BA) und Betriebswirtschaft (BA)

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

9 Optimierung mehrdimensionaler reeller Funktionen f : R n R

f f(x ɛξ) f(x) 0, d.h. f (x)ξ = 0 für alle ξ B 1 (0). Also f (x) = 0. In Koordinaten bedeutet dies gerade, dass in Extremstellen gilt: f(x) = 0.

Optimieren unter Nebenbedingungen

Transkript:

Diskrete Optimierung (Einführung zur Vorlesung) Christoph Helmberg : [,]

Inhaltsübersicht Ganzzahlige Optimierung. Das Heiratsproblem (ungerichtete Graphen).2 Ganzzahligkeit von Polyedern ( und gerichtete Graphen).3 Anwendung: Netzwerkflüsse.4 Mehrgüterflussprobleme.5 Ganzzahlige und Kombinatorische Optimierung.6 Branch-and-Bound.7 Konvexe Mengen, konvexe Hülle, konvexe Funktionen.8 Relaxation.9 Anwendung: Rundreiseprobleme (TSP).0 Finden guter Lösungen, Heuristiken. Gemischt-ganzzahlige Optimierung 2: 2 [2,2]

. Anwendung: Das Heiratsproblem (bipartites Matching) Bilde möglichst viele Paare! Männer Frauen, Arbeiter Maschinen, Studierende Studienplätze,... (geht auch gewichtet) 3: 3 [3,5]

. Anwendung: Das Heiratsproblem (bipartites Matching) Bilde möglichst viele Paare! Maximal (nicht vergrößerbar), aber kein Kardinalitätsmaximum Männer Frauen, Arbeiter Maschinen, Studierende Studienplätze,... (geht auch gewichtet) 3: 4 [3,5]

. Anwendung: Das Heiratsproblem (bipartites Matching) Bilde möglichst viele Paare! Maximum Cardinality Matching (sogar perfekt) Männer Frauen, Arbeiter Maschinen, Studierende Studienplätze,... (geht auch gewichtet) 3: 5 [3,5]

Bipartites Matching Ein (ungerichteter) Graph G = (V, E) ist ein Paar bestehend aus Knotenmenge V und Kantenmenge E {{u, v} : u, v V, u v}. Zwei Knoten u, v V heißen adjazent/benachbart, falls {u, v} E. Ein Knoten v V und eine Kante e E heißen inzident, falls v e. Zwei Kanten e, f V heißen inzident, falls e f. 4: 6 [6,8]

Bipartites Matching Ein (ungerichteter) Graph G = (V, E) ist ein Paar bestehend aus Knotenmenge V und Kantenmenge E {{u, v} : u, v V, u v}. Zwei Knoten u, v V heißen adjazent/benachbart, falls {u, v} E. Ein Knoten v V und eine Kante e E heißen inzident, falls v e. Zwei Kanten e, f V heißen inzident, falls e f. Eine Kantenmenge M E heißt Matching/Paarung, falls für e, f M mit e f stets e f =. Das Matching heißt perfekt, falls V = 2 M. 4: 7 [6,8]

Bipartites Matching Ein (ungerichteter) Graph G = (V, E) ist ein Paar bestehend aus Knotenmenge V und Kantenmenge E {{u, v} : u, v V, u v}. Zwei Knoten u, v V heißen adjazent/benachbart, falls {u, v} E. Ein Knoten v V und eine Kante e E heißen inzident, falls v e. Zwei Kanten e, f V heißen inzident, falls e f. Eine Kantenmenge M E heißt Matching/Paarung, falls für e, f M mit e f stets e f =. Das Matching heißt perfekt, falls V = 2 M. G = (V, E) heißt bipartit, falls V = V V 2 mit V V 2 = und E {{u, v} : u V, v V 2 }. 4: 8 [6,8]

Modellierung: kardinalitätsmaximales bipartites Matching gegeben: G = (V V 2, E) bipartit gesucht: Matching M E mit M maximal { falls e M Variablen: x {0, } E mit x e = (e E) 0 sonst. (steht für den Inzidenz-/charakteristischen Vektor von M bzgl. E) Nebenbedingung: Ax, wobei A {0, } V E Knoten-Kanten-Inzidenzmatrix zu G: A v,e = { falls v e 0 sonst. (v V, e E) A B C b c a d D E A = (a) (b) (c) (d) (A) 0 0 (B) 0 0 0 (C) 0 0 0 (D) 0 0 0 (E) 0 5: 9 [9,0]

Modellierung: kardinalitätsmaximales bipartites Matching gegeben: G = (V V 2, E) bipartit gesucht: Matching M E mit M maximal { falls e M Variablen: x {0, } E mit x e = (e E) 0 sonst. (steht für den Inzidenz-/charakteristischen Vektor von M bzgl. E) Nebenbedingung: Ax, wobei A {0, } V E Knoten-Kanten-Inzidenzmatrix zu G: A v,e = Optimierungsproblem: { falls v e 0 sonst. (v V, e E) max T x s.t. Ax x {0, } E So kein LP! x {0, } E zu x [0, ] E vergrößern LP Für G bipartit gilt: Simplex liefert immer eine Optimallösung x {0, } E! (Für allgemeine Graphen G i.a. aber nicht!) 5: 0 [9,0]

Inhaltsübersicht Ganzzahlige Optimierung. Das Heiratsproblem (ungerichtete Graphen).2 Ganzzahligkeit von Polyedern ( und gerichtete Graphen).3 Anwendung: Netzwerkflüsse.4 Mehrgüterflussprobleme.5 Ganzzahlige und Kombinatorische Optimierung.6 Branch-and-Bound.7 Konvexe Mengen, konvexe Hülle, konvexe Funktionen.8 Relaxation.9 Anwendung: Rundreiseprobleme (TSP).0 Finden guter Lösungen, Heuristiken. Gemischt-ganzzahlige Optimierung 6: [,]

.2 Ganzzahlige Polyeder Simplex liefert automatisch eine ganzzahlige Lösung, wenn alle Ecken der zulässigen Menge ganzzahlig sind. min c T x s.t. x X := {x 0 : Ax = b} Hat X nur ganzzahlige Ecken? Fast nie! Aber es gibt wichtige Klassen von Matrizen A Z m n, für die X für jedes (!) b Z m nur ganzzahlige Ecken hat: Eine Ecke ist ganzzahlig Basislösung x B = A B b Zm Wenn det(a B ) =, folgt mit der Cramerschen Regel x B Z m. Eine Matrix A Z m n mit vollem Zeilenrang heißt unimodular, falls det(a B ) = für jede Basis B erfüllt ist. Satz A Z m n ist genau dann unimodular, wenn für jedes b Z m alle Ecken des Polyeders X := {x 0 : Ax = b} ganzzahlig sind. Gilt das auch für X := {x 0 : Ax b}? 7: 2 [2,2]

Wiederholung: die Determinante Eine bijektive ( zu ) Abbildung π : {,..., n} {..., n} heißt Permutation; sie ordnet,..., n neue Plätze zu. Die Symmetrische Gruppe S n ist die Menge aller Permutationen π von n Elementen. Für π S n ist das Signum sgn(π) = + falls die Zahl der Fehlstände π(i) > π(j) mit i < j, i, j {,..., n} gerade ist, sonst. Für eine quadratische Matrix A = [a ij ] R n n ist die Determinante det(a) = π S n sgn(π)a π() a nπ(n). Vorstellung: det(a) ist das Volumen des von den Spalten von A im R n aufgespannten Parallelepipeds (mit Vorzeichen), insbesondere det A 0 Spalten/Zeilen von A sind l. u. A invertierbar Entwicklungssatz von Laplace: Ā ij sei A ohne Zeile i und Spalte j Entwicklung nach Zeile i: Entwicklung nach Spalte j: det(a) = n j= ( )i+j a ij Ā ij det(a) = n i= ( )i+j a ij Ā ij 8: 3 [3,3]

Wiederholung: die Determinante (Fortsetzung) Cramersche Regel zur Lösung von Ax = b für reguläres A R n n : j-te Komponente x j von x hat den Wert (theoretisches Verfahren!) n det Ā ij x j = b i det A = det A det[a,,..., A,j, b, A,j+,..., A,n ] i= Folgerung: Sind A, b ganzzahlig mit det A =, ist auch x ganzzahlig. weitere Eigenschaften: (A, B R n n ) Ist A obere Dreiecks-/Diagonalmatrix, gilt det A = n i= a ii det(ab) = det(a) det(b), det(aa ) = det I n = und det A = (det A) Entsteht B durch eine Zeilen- oder Spaltenvertauschung aus A, gilt det B = det A det ist linear in jeder Zeile und jeder Spalte, z.b. a, b R n, λ, µ R det[..., λa + µb,... ] = λ det[..., a,... ] + µ det[..., b,... ] det(λa) = λ n det A 9: 4 [4,4]

Total unimodulare Matrizen : 5 [5,5] {x 0 : Ax b} {[ x s ] [ x 0 : [A, I ] s ] } = b Sicher ganzzahlig, falls Ā = [A, I ] unimodular ist. Determinantenentwicklung nach Laplace für jede Basis B von [A, I ] Eine Matrix A heißt total unimodular, falls für jede quadratische Untermatrix von A die Determinante den Wert 0, oder hat. (geht nur, wenn A {0,, } m n ) Satz (Hoffmann und Kruskal) A Z m n ist genau dann total unimodular, wenn für jedes b Z m alle Ecken des Polyeders X := {x 0 : Ax b} ganzzahlig sind. Beachte: A tot. unimod. A T bzw. [A, A, I, I ] tot. unimod. Konsequenz: duales LP, Gleichungsvarianten, etc. sind ganzzahlig

Total unimodulare Matrizen erkennen Satz (Heller und Tompkins) A {0,, } m n habe höchstens zwei Einträge pro Spalte. A ist total unimodular Die Zeilen von A können in zwei Klassen eingeteilt werden, sodass (i) Zeilen mit einem + und einem Eintrag in derselben Spalte in dieselbe Klasse, (ii) Zeilen mit zwei vorzeichengleichen Einträgen in der gleichen Spalte in unterschiedliche Klassen kommen. Beispiel : die Knoten-Kanten-Inzidenzmatrix eines bipartiten Graphen A B C b c a d D E A = (a) (b) (c) (d) (A) 0 0 (B) 0 0 0 (C) 0 0 0 (D) 0 0 0 (E) 0 2: 6 [6,6]

Beispiel : bipartite Graphen A... Knoten-Kanten-Inzidenzmatrix von G = (V V 2, E) bipartit Bipartites Matching maximaler Kardinalität: max T x s.t. Ax, x 0 Wegen A tot. unimod. hat die zul. Menge nur ganzzahlige Ecken Simplex liefert Optimallösung x {0, } E. Das Duale ist auch ganzzahlig, wegen A T tot. unimod.: min T y s.t. A T y, y 0 Interpretation: y {0, } V ist Inzidenzvektor einer kleinsten Knotenmenge V V, sodass e E : e V (Minimum Vertex Cover) Das Zuweisungsproblem: V = V 2 = n, vollständig bipartit: E = {{u, v} : u V, v V 2 }; Kantengewichte c R E Suche ein perfektes Matching minimalen Gesamtgewichts: min c T x s.t. Ax =, x 0 ist auch ganzzahlig, weil [A; A] tot. unimod. 3: 7 [7,7]

Beispiel 2: Knoten-Kanten-Inzidenzmatrix von Digraphen Ein Digraph/gerichteter Graph D = (V, E) ist ein Paar bestehend aus Knotenmenge V und einer (Multi-)Menge gerichteter Kanten/Pfeile E {(u, v) : u, v V, u v}. [Mehrfachkanten sind erlaubt!] Für e = (u, v) E ist u der Schaft und v die Spitze von e. Die Knoten-Kanten-Inzidenzmatrix A {0,, } V E von D hat Einträge v ist Schaft von e A v,e = v ist Spitze von e (v V, e E). 0 sonst Die Knoten-Kanten-Inzidenzmatrix eines Digraphen ist total unimodular. A a b c B C d D e A = f (a) (b) (c) (d) (e) (f ) (A) 0 0 0 (B) 0 0 0 (C) 0 0 0 (D) 0 0 0 4: 8 [8,8]

Inhaltsübersicht Ganzzahlige Optimierung. Das Heiratsproblem (ungerichtete Graphen).2 Ganzzahligkeit von Polyedern ( und gerichtete Graphen).3 Anwendung: Netzwerkflüsse.4 Mehrgüterflussprobleme.5 Ganzzahlige und Kombinatorische Optimierung.6 Branch-and-Bound.7 Konvexe Mengen, konvexe Hülle, konvexe Funktionen.8 Relaxation.9 Anwendung: Rundreiseprobleme (TSP).0 Finden guter Lösungen, Heuristiken. Gemischt-ganzzahlige Optimierung 5: 9 [9,9]

.3 Anwendung: Netzwerkflüsse Modellierungswerkzeug: Transportprobleme, Evakuierungspläne, Auftrags-, Verkehrsplanung, Kommunikationsnetzwerke,... Ein Netzwerk (D, w) besteht aus einem Digraphen D = (V, E) und (Kanten-)Kapazitäten w R E +. Ein Vektor x R E heißt Fluss auf (D, w), falls er die Flusserhaltungsgleichungen x e = x e (v V ) e=(u,v) E e=(v,u) E erfüllt. [ Ax = 0 für Knoten-Kanten-Inzidenzmatrix A] Ein Fluss x R E auf (D,w) heißt zulässig, falls 0 x w [auch untere Schranken machbar] 5 4 3 5 2 6 7 2 8 9 4 4 5 0 2 4 7 5 9 Fluss zulässiger Fluss 6: 20 [20,20]

Maximale s-t-flüsse, Minimale s-t-schnitte Gegeben Quelle s V und Senke t V mit (t, s) E, finde einen zulässigen Fluss x R E auf (D, w) mit maximalem Flusswert x (t,s). s max a b 5 4 B c 2 C d 7 t e A = f 9 LP: max x (t,s) [= x f ] s.t. Ax = 0, 0 x w, (a) (b) (c) (d) (e) (f ) (s) 0 0 0 (B) 0 0 0 (C) 0 0 0 (t) 0 0 0 Falls w Z E, ist Simplex-OL x Z E, weil [A; A; I ] tot. unimod. 7: 2 [2,24]

Maximale s-t-flüsse, Minimale s-t-schnitte Gegeben Quelle s V und Senke t V mit (t, s) E, finde einen zulässigen Fluss x R E auf (D, w) mit maximalem Flusswert x (t,s). B s max 5 4 2 C 7 9 t S = {s}, δ + (S) = {(s, B), (s, C)}, w(δ + (S)) = 4 + 5 = 9. LP: max x (t,s) [= x f ] s.t. Ax = 0, 0 x w, Falls w Z E, ist Simplex-OL x Z E, weil [A; A; I ] tot. unimod. Jedes S V mit s S und t / S definiert einen s-t-schnitt δ + (S) := {(u, v) E : u S, v / S}, darüber fließt höchstens w(δ + (S)) := e δ + (S) w e, der Wert des Schnitts. 7: 22 [2,24]

Maximale s-t-flüsse, Minimale s-t-schnitte Gegeben Quelle s V und Senke t V mit (t, s) E, finde einen zulässigen Fluss x R E auf (D, w) mit maximalem Flusswert x (t,s). B s max 4 S = {s, B, C}, 7 2 t δ + (S) = {(B, t), (C, t)}, w(δ + (S)) = 7 + = 8. 5 C 9 LP: max x (t,s) [= x f ] s.t. Ax = 0, 0 x w, Falls w Z E, ist Simplex-OL x Z E, weil [A; A; I ] tot. unimod. Jedes S V mit s S und t / S definiert einen s-t-schnitt δ + (S) := {(u, v) E : u S, v / S}, darüber fließt höchstens w(δ + (S)) := e δ + (S) w e, der Wert des Schnitts. 7: 23 [2,24]

Maximale s-t-flüsse, Minimale s-t-schnitte Gegeben Quelle s V und Senke t V mit (t, s) E, finde einen zulässigen Fluss x R E auf (D, w) mit maximalem Flusswert x (t,s). s 7: 24 [2,24] max 4 4 3 5 B 2 2 C 6 7 7 9 LP: max x (t,s) [= x f ] s.t. Ax = 0, 0 x w, t S = {s, C}, δ + (S) = {(s, B), (C, B), (C, t)}, w(δ + (S)) = 4 + 2 + = 7= x (t,s) Falls w Z E, ist Simplex-OL x Z E, weil [A; A; I ] tot. unimod. Jedes S V mit s S und t / S definiert einen s-t-schnitt δ + (S) := {(u, v) E : u S, v / S}, darüber fließt höchstens w(δ + (S)) := e δ + (S) w e, der Wert des Schnitts. Satz (Max-Flow Min-Cut Theorem von Ford und Fulkerson) Der maximale Wert eines s-t-flusses ist gleich dem minimalen Werte eines s-t-schnitts. [beide durch Simplex bestimmbar]

Minimale-Kosten-Flüsse (Min-Cost-Flow) Die Flussmenge wird durch Balancen b R V ( T b = 0) auf den Knoten vorgegeben, pro Flusseinheit fallen Kantenkosten c R E an. Finde den günstigsten Fluss. 5 8: 25 [25,25] 2 4 5 3 2 5 0 2 2 0 4 3 7 4 0 9 0 5 min [ 5 2 3 4 0 ] x 0 0 0 s.t. 0 0 0 0 0 0 0 0 0 0 x w LP: min c T x s.t. Ax = b, 0 x w, x = Für b, c und w ganzz. ist Simplex-OL x Z E, weil [A; A; I ] tot. unimod. [geht auch mit unteren Schranken auf den Kanten: u x w!] Für LPs min c T x s.t. Ax = b, u x w, A Knoten-Kanten-Inz. gibt es eine besonders effiziente Simplex-Variante, den Netzwerksimplex, dieser braucht nur Addition, Subtraktion und Vergleiche! Extrem breite Anwendungsmöglichkeiten, beliebtes Modellierungswerkzeug 5 0 0 5

Beispiel: Transportproblem Eine Firma mit mehreren Produktionsstandorten hat mehrere Kunden zu beliefern. Wie geschieht dies am günstigsten unter Berücksichtigung der Transportkosten? 2 7 5 5 3 2 3 2 4 4 2 0 2 3 3 0 9 0 0 2 5 2 6 9 7 9: 26 [26,26] Beachte: Nur ein Produkttyp!

Beispiel: Evakuierungsplanung Bestimme für jeden Raum den Fluchtweg, sodass das Gebäude schnellstmöglich geräumt ist. Pro Abschnitt sind Kapazität pro Zeiteinheit und Durchquerungszeit bekannt. 20: 27 [27,33]

Beispiel: Evakuierungsplanung Bestimme für jeden Raum den Fluchtweg, sodass das Gebäude schnellstmöglich geräumt ist. Pro Abschnitt sind Kapazität pro Zeiteinheit und Durchquerungszeit bekannt. 4 20 6 / /2 4/2 2/2 3/ 2/2 2/2 4 / / 2/ 40 /2 4 / 2/ / 3 4 Kanten mit Kapazität und Durchquerungszeit 20: 28 [27,33]

Beispiel: Evakuierungsplanung Bestimme für jeden Raum den Fluchtweg, sodass das Gebäude schnellstmöglich geräumt ist. Pro Abschnitt sind Kapazität pro Zeiteinheit und Durchquerungszeit bekannt. 4 /2 20 6 2/2 / 4/2 4 2/2 4 / / 2/ 40 2/ / 4 /2 3 2/2 3/ / Geometrie nicht wichtig, vereinfachbar 20: 29 [27,33]

Beispiel: Evakuierungsplanung Bestimme für jeden Raum den Fluchtweg, sodass das Gebäude schnellstmöglich geräumt ist. Pro Abschnitt sind Kapazität pro Zeiteinheit und Durchquerungszeit bekannt. t=0 4 t= /2 20 6 2/2 / 4/2 4 2/2 4 / / 2/ 40 2/ / 4 /2 3 2/2 3/ / t=2 Diskretisierung der Zeit, ein Niveau pro Zeiteinheit 20: 30 [27,33]

Beispiel: Evakuierungsplanung Bestimme für jeden Raum den Fluchtweg, sodass das Gebäude schnellstmöglich geräumt ist. Pro Abschnitt sind Kapazität pro Zeiteinheit und Durchquerungszeit bekannt. t=0 4 t= /2 20 6 2/2 / 4/2 4 2/2 4 / / 2/ 40 2/ / 4 /2 3 2/2 3 t=2 3 Durchquerungszeit verbindet Niveaus, Kapazität bleibt 20: 3 [27,33]

Beispiel: Evakuierungsplanung Bestimme für jeden Raum den Fluchtweg, sodass das Gebäude schnellstmöglich geräumt ist. Pro Abschnitt sind Kapazität pro Zeiteinheit und Durchquerungszeit bekannt. t=0 4 t= t=2 /2 20 6 2 2 4 / 4 / / 2/ 2/2 40 2/ / 4 4/2 /2 3 2 2 3 3 Durchquerungszeit verbindet Niveaus, Kapazität bleibt 20: 32 [27,33]

Beispiel: Evakuierungsplanung Bestimme für jeden Raum den Fluchtweg, sodass das Gebäude schnellstmöglich geräumt ist. Pro Abschnitt sind Kapazität pro Zeiteinheit und Durchquerungszeit bekannt. t=0 4 t= t=2 20 6 2 2 4 2 2 4 40 4 3 3 3 Steigende Kosten auf den Ausgangskanten für rasches Verlassen Ansatz nur ok, wenn Personen nicht unterschieden werden müssen! 2 2 20: 33 [27,33]

Inhaltsübersicht Ganzzahlige Optimierung. Das Heiratsproblem (ungerichtete Graphen).2 Ganzzahligkeit von Polyedern ( und gerichtete Graphen).3 Anwendung: Netzwerkflüsse.4 Mehrgüterflussprobleme.5 Ganzzahlige und Kombinatorische Optimierung.6 Branch-and-Bound.7 Konvexe Mengen, konvexe Hülle, konvexe Funktionen.8 Relaxation.9 Anwendung: Rundreiseprobleme (TSP).0 Finden guter Lösungen, Heuristiken. Gemischt-ganzzahlige Optimierung 2: 34 [34,34]

.4 Mehrgüterflussprobleme (Multicommodity Flow) In einem Neztwerk (D, w) sind für unterschiedliche Güter K = {,..., k} mit Quellen/Senken (s i, t i ) und Flusswerten f i, i K, zulässige Flüsse x (i) R E zu finden, die in Summe die Kapazitätsbedingungen einhalten. s s t t 22: 35 [35,39]

.4 Mehrgüterflussprobleme (Multicommodity Flow) In einem Neztwerk (D, w) sind für unterschiedliche Güter K = {,..., k} mit Quellen/Senken (s i, t i ) und Flusswerten f i, i K, zulässige Flüsse x (i) R E zu finden, die in Summe die Kapazitätsbedingungen einhalten. s s t t Mischen verboten! 22: 36 [35,39]

.4 Mehrgüterflussprobleme (Multicommodity Flow) In einem Neztwerk (D, w) sind für unterschiedliche Güter K = {,..., k} mit Quellen/Senken (s i, t i ) und Flusswerten f i, i K, zulässige Flüsse x (i) R E zu finden, die in Summe die Kapazitätsbedingungen einhalten. s s t t ganzz. geht nicht 22: 37 [35,39]

.4 Mehrgüterflussprobleme (Multicommodity Flow) In einem Neztwerk (D, w) sind für unterschiedliche Güter K = {,..., k} mit Quellen/Senken (s i, t i ) und Flusswerten f i, i K, zulässige Flüsse x (i) R E zu finden, die in Summe die Kapazitätsbedingungen einhalten. s s 0.5 0.5 0.5 0.5 Umsetzung s s t t gebrochen geht A 0 0 A I I i.a. nicht tot.unimod.! Kopie t t Kopie 2 min c ()T x () + c (2)T x (2) s.t. Ax () = b () Ax (2) = b (2) Ix () + Ix (2) w x () 0, x (2) 0. 22: 38 [35,39]

.4 Mehrgüterflussprobleme (Multicommodity Flow) In einem Neztwerk (D, w) sind für unterschiedliche Güter K = {,..., k} mit Quellen/Senken (s i, t i ) und Flusswerten f i, i K, zulässige Flüsse x (i) R E zu finden, die in Summe die Kapazitätsbedingungen einhalten. s s 0.5 0.5 0.5 0.5 Umsetzung s s t t gebrochen geht Gebrochen gut lösbar, ganzzahlig SEHR schwer! Kopie t t Kopie 2 min c ()T x () + c (2)T x (2) s.t. Ax () = b () Ax (2) = b (2) Ix () + Ix (2) w x () 0, x (2) 0. 22: 39 [35,39]

Beispiel: Logistik Paletten sind bedarfsgerecht mit LKWs zwischen Lagern zu verschieben B A C pro Artikel ein Palettengraph A B C A B C t=0 t= t=2 t=3 t=0.5 t=.5 t=2.5 t=3.5 23: 40 [40,40]

Weitere Anwendungsbereiche } gebrochen: Kapazitätsplanung für ganzzahlig: Zeitdiskretisierte Routen- und Ablaufplanung Straßenverkehr Schienenverkehr Kommunikationsnetze (Internet) Logistik (Engpassanalyse/Steuerung) Produktion (Maschinenauslastung/-belegung) Network-Design: Auslegung soll Erfüllung möglichst aller Bedarfe auch bei Störung erlauben. [ Robuste Varianten sind extrem schwer!] Mehrgüterflussprobleme werden oft als zugrundeliegendes Modell eingesetzt, das mit weiteren Bedingungen kombiniert wird. 24: 4 [4,4]

Inhaltsübersicht Ganzzahlige Optimierung. Das Heiratsproblem (ungerichtete Graphen).2 Ganzzahligkeit von Polyedern ( und gerichtete Graphen).3 Anwendung: Netzwerkflüsse.4 Mehrgüterflussprobleme.5 Ganzzahlige und Kombinatorische Optimierung.6 Branch-and-Bound.7 Konvexe Mengen, konvexe Hülle, konvexe Funktionen.8 Relaxation.9 Anwendung: Rundreiseprobleme (TSP).0 Finden guter Lösungen, Heuristiken. Gemischt-ganzzahlige Optimierung 25: 42 [42,42]

.5 Ganzzahlige Optimierung (Integer Programming) vorwiegend: Lineare Programme mit ausschließlich ganzzahligen Variablen (sonst gemischt-ganzzahlige Optimierung/Mixed Integer Programming) max s.t. c T x Ax b x Z n Enthält meist viele Binär-Variablen ({0,}) für ja/nein Entscheidungen Schwierigkeit: i.a. nicht effizient lösbar, Komplexitätsklasse NP exakte Lösung oft sehr Enumerations-lastig (system. Durchprobieren) Exakte Lösung durch Kombination folgender Techniken: (obere) Schranken durch lineare/konvexe Relaxation verbessert durch Schnittebenenansätze zulässige Lösungen (untere Schranken) durch Rundungs- und Lokale-Suche-Heuristiken Enumeration durch Branch&Bound, Branch&Cut 26: 43 [43,43]

Kombinatorische Optimierung Mathematisch: Gegeben eine endliche Grundmenge Ω, eine Menge zulässiger Teilmengen F 2 Ω [Potenzmenge, Menge aller Teilmengen] und eine Zielfunktion c : F Q, bestimme max{c(f ) : F F} oder F Argmax{c(F ) : F F} Hier nur lineares c: c(f ) := e F c e mit c Q Ω. Bsp: Matching maximaler Kardinalität in G = (V, E): Ω = E, F = {M E : M Matching in G}, c = Bsp2: Minimum Vertex Cover für G = (V, E): Ω = V, F = {V V : e V für e E}, c = Formulierung über Binäre Programme: Notation: Inzidenz-/Charakteristischer Vektor χ Ω (F ) {0, } Ω für F Ω [kurz χ(f ), erfüllt [χ(f )] e = e F ] Ein lineares Programm max{c T x : Ax b, x [0, ] Ω } heißt Formulierung des kombinatorischen Optimierungsproblems, falls {x {0, } Ω : Ax b} = {χ(f ) : F F}. 27: 44 [44,44]

(Algorithmische) Komplexität von Problemen Eine Instanz I eines Problems ist eine konkrete Wertebelegung der Problemdaten; ihre Größe I ist die Kodierungslänge, also die Anzahl der Zeichen im Beschreibungsstring nach einem sinnvollen Kodierungsschema. Die Laufzeit eines Algorithmus für eine Instanz ist die Anzahl der ausgeführten elementaren Operationen (ein Symbol lesen/schreiben, Bytes addieren/multiplizieren/vergleichen, etc.) Ein Algorithmus löst ein Problem polynomial oder effizient, wenn er für jede Instanz die richtige Antwort innerhalb einer Laufzeit liefert, die durch ein Polynom in der Kodierungslänge beschränkt ist. Ein Problem heißt polynomial/effizient lösbar, wenn es einen Algorithmus gibt, der es effizient löst. Die Klasse P umfasst alle Probleme, die effizient lösbar sind. Bsp: Lineare Optimierung ist in P, ABER Simplex löst es nicht effizient. Bsp2: Kardinalitätsmaximales Matching in allgemeinen Graphen ist in P. Bsp3: Minimum Vertex Cover in bipartiten Graphen ist in P. 28: 45 [45,45]

Entscheidungsprobleme und die Klasse NP 29: 46 [46,48] In einem Entscheidungsproblem ist jede Instanz eine Frage, die entweder mit Ja oder mit Nein zu beantworten ist. Ein Entscheidungsproblem ist nichtdeterministisch polynomial lösbar, wenn für jede Ja -Instanz I ein Lösungsstring (das Zertifikat) existiert, mit dem die Richtigkeit der Ja -Antwort in Laufzeit polynomial beschränkt in I nachgewiesen werden kann. [Es geht nur um Ja!] Die Klasse NP umfasst alle Entscheidungsprobleme, die nichtdeterministisch polynomial lösbar sind. Es gilt: P NP Bsp: Hamilton scher Kreis: In einem Graphen G = (V, E) heißt eine Kantenmenge C = {{v, v 2 }, {v 2, v 3 },..., {v k, v k }, {v k, v }} E ein Kreis (der Länge k), falls v i v j für i j. Ein Kreis C heißt hamiltonsch, falls C = V. Entscheidungsproblem: Enthält G einen Hamilton schen Kreis? Ja-Antwort ist effizient überprüfbar, das Problem ist in NP

Entscheidungsprobleme und die Klasse NP 29: 47 [46,48] In einem Entscheidungsproblem ist jede Instanz eine Frage, die entweder mit Ja oder mit Nein zu beantworten ist. Ein Entscheidungsproblem ist nichtdeterministisch polynomial lösbar, wenn für jede Ja -Instanz I ein Lösungsstring (das Zertifikat) existiert, mit dem die Richtigkeit der Ja -Antwort in Laufzeit polynomial beschränkt in I nachgewiesen werden kann. [Es geht nur um Ja!] Die Klasse NP umfasst alle Entscheidungsprobleme, die nichtdeterministisch polynomial lösbar sind. Es gilt: P NP Bsp: Hamilton scher Kreis: In einem Graphen G = (V, E) heißt eine Kantenmenge C = {{v, v 2 }, {v 2, v 3 },..., {v k, v k }, {v k, v }} E ein Kreis (der Länge k), falls v i v j für i j. Ein Kreis C heißt hamiltonsch, falls C = V. Entscheidungsproblem: Enthält G einen Hamilton schen Kreis? Ja-Antwort ist effizient überprüfbar, das Problem ist in NP

Entscheidungsprobleme und die Klasse NP 29: 48 [46,48] In einem Entscheidungsproblem ist jede Instanz eine Frage, die entweder mit Ja oder mit Nein zu beantworten ist. Ein Entscheidungsproblem ist nichtdeterministisch polynomial lösbar, wenn für jede Ja -Instanz I ein Lösungsstring (das Zertifikat) existiert, mit dem die Richtigkeit der Ja -Antwort in Laufzeit polynomial beschränkt in I nachgewiesen werden kann. [Es geht nur um Ja!] Die Klasse NP umfasst alle Entscheidungsprobleme, die nichtdeterministisch polynomial lösbar sind. Es gilt: P NP Bsp: Hamilton scher Kreis: In einem Graphen G = (V, E) heißt eine Kantenmenge C = {{v, v 2 }, {v 2, v 3 },..., {v k, v k }, {v k, v }} E ein Kreis (der Länge k), falls v i v j für i j. Ein Kreis C heißt hamiltonsch, falls C = V. Entscheidungsproblem: Enthält G einen Hamilton schen Kreis? Ja-Antwort ist effizient überprüfbar, das Problem ist in NP

NP-vollständige Probleme Ein Entscheidungsproblem P ist polynomial transformierbar auf ein Entscheidungsproblem P 2, wenn es einen Algorithmus gibt, der jede Instanz I von P in Laufzeit polynomial in I in eine Instanz I 2 von P 2 transformiert, sodass I 2 genau dann Ja-Instanz von P 2 ist, wenn I Ja-Instanz von P ist. Ist P polynomial auf P 2 transformierbar, dann löst ein effizienter Algorithmus für P 2 auch P effizient; P 2 ist mindestens so schwer wie P. Ist P NP und ist jedes ˆP NP polynomial auf P transformierbar, so heißt P NP-vollständig. Kann ein NP-vollständiges Problem P polynomial auf ein Problem ˆP NP transformiert werden, ist auch ˆP NP-vollständig; sie sind gleich schwer. Es gibt dicke Sammlungen NP-vollständiger Probleme, dazu gehören: ganzzahlige Optimierung (in Entscheidungsversion) ganzzahliger Mehrgüterfluss Hamilton scher Kreis Minimum Vertex Cover auf allgemeinen Graphen Das Rucksack-Problem (für große Zahlen) 30: 49 [49,50]

NP-vollständige Probleme Ein Entscheidungsproblem P ist polynomial transformierbar auf ein Entscheidungsproblem P 2, wenn es einen Algorithmus gibt, der jede Instanz I von P in Laufzeit polynomial in I in eine Instanz I 2 von P 2 transformiert, sodass I 2 genau dann Ja-Instanz von P 2 ist, wenn I Ja-Instanz von P ist. Ist P polynomial auf P 2 transformierbar, dann löst ein effizienter Algorithmus für P 2 auch P effizient; P 2 ist mindestens so schwer wie P. Ist P NP und ist jedes ˆP NP polynomial auf P transformierbar, so heißt P NP-vollständig. Kann ein NP-vollständiges Problem P polynomial auf ein Problem ˆP NP transformiert werden, ist auch ˆP NP-vollständig; sie sind gleich schwer. Gibt es einen effizienten Algorithmus für eines der NP-vollständigen Probleme, sind alle effizient lösbar. Man vermutet seit Jahren: P NP. Will man alle Instanzen lösen können, ist wahrscheinlich eine teilweise Enumeration unvermeidbar. Ein Problem ist NP-schwer, wenn damit ein NP-vollständiges lösbar wäre. 30: 50 [49,50]

Inhaltsübersicht Ganzzahlige Optimierung. Das Heiratsproblem (ungerichtete Graphen).2 Ganzzahligkeit von Polyedern ( und gerichtete Graphen).3 Anwendung: Netzwerkflüsse.4 Mehrgüterflussprobleme.5 Ganzzahlige und Kombinatorische Optimierung.6 Branch-and-Bound.7 Konvexe Mengen, konvexe Hülle, konvexe Funktionen.8 Relaxation.9 Anwendung: Rundreiseprobleme (TSP).0 Finden guter Lösungen, Heuristiken. Gemischt-ganzzahlige Optimierung 3: 5 [5,5]

.6 Branch-and-Bound Beim systematischen Enumerieren aller Lösungen sollen möglichst viele frühzeitig durch obere und untere Schranken ausgeschlossen werden. 32: 52 [52,52] Bsp: {0, }-Rucksack: Gewichte a N n, Kapazität b N, Nutzen c N n, max c T x s.t. a T x b, x {0, } n Obere Schranke: max c T x s.t. a T x b, x [0, ] n [LP-Relaxation] Untere Schranke: Sortiere nach Nutzen/Gewicht und fülle danach auf Ablaufskizze (für Maximierungsprobleme): M... Menge offener Probleme, anfangs M = {Ursprungsproblem} f... Wert der besten bekannten Lösung, anfangs f =. Falls M = STOP, sonst wähle P M, M M \ {P} 2. Berechne obere Schranke f (P). 3. Falls f (P) < f (P enthält keine OL), gehe zu. 4. Berechne zulässige Lösung ˆf (P) für P (untere Schranke). 5. Ist ˆf (P) > f (neue beste Lösung), setze f ˆf (P) 6. Ist f (P) = ˆf (P) (keine bessere Lösung in P), gehe zu. 7. Teile P in kleinere Teilprobleme P i, M M {P,..., P k } 8. Gehe zu.

Beispiel: {0, }-Rucksackproblem Gegenstand A B C D E F Kapazität Gewicht(a) 9 7 6 4 4 3 4 Nutzen (c) 8 6 8 7 6 5 33: 53 [53,53] Sortierung Nutzen/Gewicht: C > A > D > F > E > B. Obere Schranke: max c T x s.t. a T x 4, x [0, ] 6 Untere Schranke: Nach Sortierung möglichst lange auffüllen P : Originalproblem OS: C + 8 9 A=34 US: C +D +F =30 P 2 : x A = x B =x C =0 OS: A + D + 3 F = 26 2 3 OS <30 keine OL x A 0 P 4 : x A =0, x E = OS: E +C +D =3 US: E +C +D =3 P 3 : x A =0 OS: C +D +F + 4 E =3 2 US: C +D +F =30 x E 0 [LP-Relaxation] P 5 : x A =x E =0 OS: C+ D +F + 7 B =30 6 7 OS <3 keine OL

Immer dann wird der Branch&Bound Baum groß werden, wenn viele Lösungen sehr nahe an der Optimallösung sind. Entscheidend für den Erfolg von Branch&Bound: Wie kommt man zu guten oberen und unteren Schranken? 34: 54 [54,54]

Inhaltsübersicht Ganzzahlige Optimierung. Das Heiratsproblem (ungerichtete Graphen).2 Ganzzahligkeit von Polyedern ( und gerichtete Graphen).3 Anwendung: Netzwerkflüsse.4 Mehrgüterflussprobleme.5 Ganzzahlige und Kombinatorische Optimierung.6 Branch-and-Bound.7 Konvexe Mengen, konvexe Hülle, konvexe Funktionen.8 Relaxation.9 Anwendung: Rundreiseprobleme (TSP).0 Finden guter Lösungen, Heuristiken. Gemischt-ganzzahlige Optimierung 35: 55 [55,55]

.7 Konvexe Mengen und konvexe Hülle Eine Menge C R n heißt konvex, wenn für alle x, y C auch die Verbindungsstrecke [x, y] := {αx + ( α)y : α [0, ]} in C liegt. 36: 56 [56,60]

.7 Konvexe Mengen und konvexe Hülle Eine Menge C R n heißt konvex, wenn für alle x, y C auch die Verbindungsstrecke [x, y] := {αx + ( α)y : α [0, ]} in C liegt. Bspe:, R n, Halbräume, der Schnitt konvexer Mengen ist konvex, Polyeder, der k-dim. Einheitssimplex k := {α R k + : k i= α i = } Halbraum Schnitt 3 36: 57 [56,60]

.7 Konvexe Mengen und konvexe Hülle Eine Menge C R n heißt konvex, wenn für alle x, y C auch die Verbindungsstrecke [x, y] := {αx + ( α)y : α [0, ]} in C liegt. Bspe:, R n, Halbräume, der Schnitt konvexer Mengen ist konvex, Polyeder, der k-dim. Einheitssimplex k := {α R k + : k i= α i = } Für S R n ist die konvexe Hülle der Schnitt aller konvexen Mengen, die S enthalten, conv S := {C konvex : S C}. 36: 58 [56,60]

.7 Konvexe Mengen und konvexe Hülle Eine Menge C R n heißt konvex, wenn für alle x, y C auch die Verbindungsstrecke [x, y] := {αx + ( α)y : α [0, ]} in C liegt. Bspe:, R n, Halbräume, der Schnitt konvexer Mengen ist konvex, Polyeder, der k-dim. Einheitssimplex k := {α R k + : k i= α i = } Für S R n ist die konvexe Hülle der Schnitt aller konvexen Mengen, die S enthalten, conv S := {C konvex : S C}. Für gegebene Punkte x (i) R n, i {,..., k} und α k heißt x = α i x (i) Konvexkombination der Punkte x (i). 0.4 0.2 0. 36: 59 [56,60] 0.4

.7 Konvexe Mengen und konvexe Hülle Eine Menge C R n heißt konvex, wenn für alle x, y C auch die Verbindungsstrecke [x, y] := {αx + ( α)y : α [0, ]} in C liegt. Bspe:, R n, Halbräume, der Schnitt konvexer Mengen ist konvex, Polyeder, der k-dim. Einheitssimplex k := {α R k + : k i= α i = } Für S R n ist die konvexe Hülle der Schnitt aller konvexen Mengen, die S enthalten, conv S := {C konvex : S C}. Für gegebene Punkte x (i) R n, i {,..., k} und α k heißt x = α i x (i) Konvexkombination der Punkte x (i). conv S ist die Menge aller Konvexkombinationen endlich vieler Punkte aus S, conv S = { k i= α ix (i) : x (i) S, i =,..., k N, α k }. 36: 60 [56,60]

Konvexe Hülle und ganzz. Optimierung Satz Die konvexe Hülle endlich vieler Punkte ist ein (beschränktes) Polyeder. Die ganzzahlige Hülle eines Polyeders P = {x R n : Ax b} ist die konvexe Hülle der in P enthaltenen ganzz. Punkte, P I := conv(p Z n ). Satz Ist A Q m n und b Q m, dann ist die ganzz. Hülle P I des Polyeders P = {x R n : Ax b} selbst ein Polyeder. Problem: Beschreibung von P I meist unbekannt oder extrem groß! P P I [Ausnahme z.b. für A tot. unimod., b Z n ist P = P I ] 37: 6 [6,62]

Konvexe Hülle und ganzz. Optimierung Satz Die konvexe Hülle endlich vieler Punkte ist ein (beschränktes) Polyeder. Die ganzzahlige Hülle eines Polyeders P = {x R n : Ax b} ist die konvexe Hülle der in P enthaltenen ganzz. Punkte, P I := conv(p Z n ). Satz Ist A Q m n und b Q m, dann ist die ganzz. Hülle P I des Polyeders P = {x R n : Ax b} selbst ein Polyeder. Problem: Beschreibung von P I meist unbekannt oder extrem groß! Falls die ganzzahlige Hülle gut linear beschreibbar ist, kann man das ganzzahlige Optimierungsproblem mit Simplex lösen: Satz Ist für P = {x R n : Ax b} die ganzzahlige Hülle durch P I = {x R n : A I x b I } gegeben, so gilt: sup{c T x : A I x b I, x R n } = sup{c T x : Ax b, x Z n }, Argmax{c T x : A I x b I, x R n } = conv Argmax{c T x : Ax b, x Z n }. 37: 62 [6,62]

Konvexe Funktionen Eine Funktion f : R n R := R { } heißt konvex, wenn f (αx + ( α)y) αf (x) + ( α)f (y) für x, y R n und α [0, ]. Sie heißt streng konvex, wenn f (αx + ( α)y) < αf (x) + ( α)f (y) für x, y R n, x y und α (0, ). f(x) f(x) f(y) f(y) x y x y 38: 63 [63,67]

Konvexe Funktionen Eine Funktion f : R n R := R { } heißt konvex, wenn f (αx + ( α)y) αf (x) + ( α)f (y) für x, y R n und α [0, ]. Sie heißt streng konvex, wenn f (αx + ( α)y) < αf (x) + ( α)f (y) für x, y R n, x y und α (0, ). Der Epigraph {( einer ) Funktion f : R n } R ist die Menge x epi f := : x R r n, r f (x) [die Punkte oberhalb von f (x)] epi f epi f 38: 64 [63,67]

Konvexe Funktionen Eine Funktion f : R n R := R { } heißt konvex, wenn f (αx + ( α)y) αf (x) + ( α)f (y) für x, y R n und α [0, ]. Sie heißt streng konvex, wenn f (αx + ( α)y) < αf (x) + ( α)f (y) für x, y R n, x y und α (0, ). Der Epigraph {( einer ) Funktion f : R n } R ist die Menge x epi f := : x R r n, r f (x) [die Punkte oberhalb von f (x)] Satz Eine Funktion ist genau dann konvex, wenn ihr Epigraph konvex ist. epi f epi f 38: 65 [63,67]

Konvexe Funktionen Eine Funktion f : R n R := R { } heißt konvex, wenn f (αx + ( α)y) αf (x) + ( α)f (y) für x, y R n und α [0, ]. Sie heißt streng konvex, wenn f (αx + ( α)y) < αf (x) + ( α)f (y) für x, y R n, x y und α (0, ). Der Epigraph {( einer ) Funktion f : R n } R ist die Menge x epi f := : x R r n, r f (x) [die Punkte oberhalb von f (x)] Satz Eine Funktion ist genau dann konvex, wenn ihr Epigraph konvex ist. Bsp: Sind f i : R n R konvex, so auch f mit f (x) := sup i f i (x), x R n. f epi f fk f2 f3 38: 66 [63,67]

Konvexe Funktionen Eine Funktion f : R n R := R { } heißt konvex, wenn f (αx + ( α)y) αf (x) + ( α)f (y) für x, y R n und α [0, ]. Sie heißt streng konvex, wenn f (αx + ( α)y) < αf (x) + ( α)f (y) für x, y R n, x y und α (0, ). Der Epigraph {( einer ) Funktion f : R n } R ist die Menge x epi f := : x R r n, r f (x) [die Punkte oberhalb von f (x)] Satz Eine Funktion ist genau dann konvex, wenn ihr Epigraph konvex ist. Bsp: Sind f i : R n R konvex, so auch f mit f (x) := sup i f i (x), x R n. Satz Jedes lokale Minimum einer konvexen Funktion ist auch globales Minimum, und für streng konvexe Funktionen ist es das einzige. Für konvexe Funktionen gibt es gute Optimierungsverfahren. Eine Funktion f heißt konkav, wenn f konvex ist. (Jedes lokale Maximum einer konkaven Funktion ist auch globales.) 38: 67 [63,67]

Inhaltsübersicht Ganzzahlige Optimierung. Das Heiratsproblem (ungerichtete Graphen).2 Ganzzahligkeit von Polyedern ( und gerichtete Graphen).3 Anwendung: Netzwerkflüsse.4 Mehrgüterflussprobleme.5 Ganzzahlige und Kombinatorische Optimierung.6 Branch-and-Bound.7 Konvexe Mengen, konvexe Hülle, konvexe Funktionen.8 Relaxation.9 Anwendung: Rundreiseprobleme (TSP).0 Finden guter Lösungen, Heuristiken. Gemischt-ganzzahlige Optimierung 39: 68 [68,68]

.8 Relaxation Konzept auf beliebige Optimierungsprobleme anwendbar (hier Maximieren): 40: 69 [69,69] Definition Gegeben zwei Optimierungsprobleme mit X, W R n und f, f : R n R (OP) max f (x) s.t. x X bzw. (RP) max f (x) s.t. x W, (RP) heißt Relaxation von (OP), falls. X W, 2. f (x) f (x) für alle x X. Sei (RP) eine Relaxation von (OP). Beobachtung. v(rp) v(op). [(RP) liefert obere Schranke] 2. Ist (RP) unzulässig, so auch (OP), 3. Ist x OL von (RP) und gilt x X sowie f (x ) = f (x ), dann ist x OL von (OP). Man sucht nun möglichst kleines W X und f f so, dass (RP) noch gut lösbar ist. Eine Relaxation (RP) von (OP) heißt exakt, falls v(op) = v(rp) gilt.

Allgemein: Konvexe Relaxation Wird Konvexität für W und (bei max) Konkavität für f gefordert, spricht man von konvexer Relaxation. Meist (aber nicht immer!) dient die Konvexität als Garant für vernünftige Lösbarkeit der Relaxation. 4: 70 [70,70] Bsp: Für ein kombinatorisches Max.-Problem mit endl. Grundmenge Ω, zulässigen Lösungen F 2 Ω und linearer Zielfunktion c R Ω ist max c T x s.t. x conv{χ Ω (F ) : F F} eine exakte konvexe (sogar lineare) Relaxation, aber nur dann nützlich, wenn das Polyeder conv{χ(f ) : F F} gut durch ein nicht zu großes Ungleichungssystem Ax b darstellbar ist. In der globalen Optimierung werden auf Teilintervallen nichtlineare Funktionen nach unten durch konvexe Funktionen abgeschätzt. Bsp: Betrachte (OP) min f (x) := 2 x T Qx + q T x s.t. x [0, ] n mit f nicht konvex, d.h., λ min (Q) < 0. [λ min... minimaler Eigenwert] Es ist Q λ min (Q)I positiv semidefinit und wegen xi 2 x i auf [0, ] n gilt f (x) := 2 x T (Q λ min (Q)I )x +(q +λ min (Q)) T x f (x) x [0, ] n. Damit ist (RP) min f (x) s.t. x [0, ] n eine konvexe Relaxation von (OP).

Die LP-Relaxation für Ganzzahlige Programme Für ein ganzzahliges Programm max c T x s.t. Ax b, x Z n entsteht die LP-Relaxation durch Weglassen der Ganzz.-Bedingung, max c T x s.t. Ax b, x R n. Ist Relaxation, denn X := {x Z n : Ax b} {x R n : Ax b} =: W. [wird von allen Standardlösern für gemischt-ganzz. Programme verwendet] Bsp: Rucksackproblem: n = 2, Gewichte a = (6, 8) T, Kapazität b = 0, max c T x s.t. a T x b, x Z n + max c T x s.t. a T x b, x 0, x 2 a zulässige ganzzahlige Punkte: LP-Relaxation: grün beste Relaxation: die konvexe Hülle x 42: 7 [7,74]

Die LP-Relaxation für Ganzzahlige Programme Für ein ganzzahliges Programm max c T x s.t. Ax b, x Z n entsteht die LP-Relaxation durch Weglassen der Ganzz.-Bedingung, max c T x s.t. Ax b, x R n. Ist Relaxation, denn X := {x Z n : Ax b} {x R n : Ax b} =: W. [wird von allen Standardlösern für gemischt-ganzz. Programme verwendet] Bsp: Rucksackproblem: n = 2, Gewichte a = (6, 8) T, Kapazität b = 0, max c T x s.t. a T x b, x Z n + max c T x s.t. a T x b, x 0, x 2 a zulässige ganzzahlige Punkte: LP-Relaxation: grün beste Relaxation: die konvexe Hülle x 42: 72 [7,74]

Die LP-Relaxation für Ganzzahlige Programme Für ein ganzzahliges Programm max c T x s.t. Ax b, x Z n entsteht die LP-Relaxation durch Weglassen der Ganzz.-Bedingung, max c T x s.t. Ax b, x R n. Ist Relaxation, denn X := {x Z n : Ax b} {x R n : Ax b} =: W. [wird von allen Standardlösern für gemischt-ganzz. Programme verwendet] Bsp: Rucksackproblem: n = 2, Gewichte a = (6, 8) T, Kapazität b = 0, max c T x s.t. a T x b, x Z n + max c T x s.t. a T x b, x 0, x 2 a zulässige ganzzahlige Punkte: LP-Relaxation: grün beste Relaxation: die konvexe Hülle x 42: 73 [7,74]

Die LP-Relaxation für Ganzzahlige Programme Für ein ganzzahliges Programm max c T x s.t. Ax b, x Z n entsteht die LP-Relaxation durch Weglassen der Ganzz.-Bedingung, max c T x s.t. Ax b, x R n. Ist Relaxation, denn X := {x Z n : Ax b} {x R n : Ax b} =: W. [wird von allen Standardlösern für gemischt-ganzz. Programme verwendet] Bsp: ganzzahliger Mehrgüterfluss gebrochener Mehrgüterfluss s s s s 0.5 0.5 0.5 0.5 auch zu groß, bräuchten die konvexe Hülle t t ganzz. geht nicht, X = t t gebrochen geht, W 42: 74 [7,74]

Lagrange-Relaxation [Allg. für restr. Opt. verwendbar, hier vorerst nur Unglgs.-Nebenbed.] Unbequeme Nebenbedingungen werden mit einem Lagrangemultiplikator, der die Verletzung bestraft, in die Zielfunktion gehoben (g : R n R k ): (OP) max f (x) s.t. g(x) 0 λ 0 x Ω (RP λ ) max f (x) λt g(x) s.t. x Ω Ist Relaxation: X := {x Ω : g(x) 0} {x Ω} =: W und für x X, λ 0 gilt f (x) f (x) λ T g(x) =: f (x) wegen g(x) 0. Definiere die duale Funktion ϕ(λ) := sup x Ω [ f (x) g(x) T λ ] = v(rp λ ) [für jedes feste x linear in λ] Für jedes λ 0 gilt ϕ(λ) v(op) [obere Schranke] ϕ(λ) gut berechenbar, falls (RP λ ) leicht lösbar ϕ ist als sup von in λ linearen Funktionen konvex Beste Schranke ist inf{ϕ(λ) : λ 0} [konvexes Problem!] gut mit Verfahren der konvexen Optimierung bestimmbar! 43: 75 [75,75]

Beispiel: Ganzzahliger Mehrgüterfluss A sei die Knoten-Kanten-Inz.-Matrix zu D = (V, E), 2 Güter, Lagrange-Relaxation der koppelnden Kapazitätsbedingungen mit λ 0: min c ()T x () + c (2)T x (2) s.t. Ax () = b () Ax (2) = b (2) λ x () + x (2) w x () w, x (2) w x () Z E +, x (2) Z E +. 44: 76 [76,76] min (c () +λ) T x () +(c (2) +λ) T x (2) λ T w s.t. Ax () =b () Ax (2) =b (2) x () w, x (2) w, x () Z E +, x (2) Z E +. Relaxation zerfällt in zwei unabhängige Minimale-Kosten-Fluss-Probleme (RP (i) λ ) min (c(i) +λ) T x (i) s.t. Ax (i) = b (i), w x (i) Z E + i {, 2} Diese sind effizient ganzzahlig lösbar! Zerfällt das Problem bei Lagrange-Relaxation in unabhängige Teilprobleme, spricht man von Dekomposition. Damit können oft deutlich größere Probleme sehr effizient gelöst werden. Bekommt man dadurch auch eine bessere Schranke?

Vergleich Lagrange- und LP-Relaxation Sei Ω Z n endlich und D Q k n, d Q k, (OP) max c T x s.t. Dx d λ 0 x Ω (RP λ ) max ct x + λ T (d Dx) s.t. x Ω Im Bsp: Ω = Ω () Ω (2) mit Ω (i) = {x Z E + : Ax = b (i), x w}, i {, 2}. Satz 45: 77 [77,77] inf v(rp λ) = sup{c T x : Dx d, x conv Ω}. λ 0 Ist conv Ω gleich der zulässigen Menge der LP-Relaxation von Ω, sind die Werte der besten Lagrange- und der LP-Relaxation gleich! Im Bsp ist A total unimodular, daher gilt für i {, 2} und w Z E conv{x Z E + : Ax = b (i), x w} = {x 0 : Ax = b (i), x w}. Das beste λ ergibt den Wert des gebrochenen Mehrgüterflussproblems! Allgemein: Sei {x Z n : Ax b} = Ω eine Formulierung von Ω. Nur falls {x R n : Ax b} conv Ω, kann die Lagrange-Relaxation einen besseren Wert liefern als die LP-Relaxation.

Inhaltsübersicht Ganzzahlige Optimierung. Das Heiratsproblem (ungerichtete Graphen).2 Ganzzahligkeit von Polyedern ( und gerichtete Graphen).3 Anwendung: Netzwerkflüsse.4 Mehrgüterflussprobleme.5 Ganzzahlige und Kombinatorische Optimierung.6 Branch-and-Bound.7 Konvexe Mengen, konvexe Hülle, konvexe Funktionen.8 Relaxation.9 Anwendung: Rundreiseprobleme (TSP).0 Finden guter Lösungen, Heuristiken. Gemischt-ganzzahlige Optimierung 46: 78 [78,78]

.9 Anwendung: Rundreiseprobleme (TSP) Problem des Handelsreisenden: Gegeben n Städte mit allen paarweisen Distanzen, finde eine kürzeste Rundreise, die jede genau einmal besucht. Komb. Opt.: D = (V, E = {(u, v) : u, v V, u v}) vollst. Digraph, Kosten c R E, zul. Menge F = {R E : R (ger.) Kreis in D, R = n}. Finde R Argmin{c(R) = e R c e : R F} NP-vollständiges Problem Anzahl Rundreisen? (n )! kombinatorische Explosion Typisches Grundproblem in: Zustelldiensten (Paket-, Arznei-Transporte) Taxiservice, Havarie-Dienste Auftragsplanung mit Rüstkosten [z.b. Autos färben] Robotersteuerung (meist nichtlinear) [oft mit mehreren Fahrzeugen und Zeitfenstern] n = 3: 2 n = 4: 3 2 = 6 n = 5: 4 3 2 = 24 n = 0: 362880 n = : 3628800 n = 2: 3996800 n = 3: 47900600 n = 4: 6227020800 n =00: 0 58 47: 79 [79,79]

Löcher in Platinen bohren 48: 80 [80,80] [http://www.math.princeton.edu/tsp]

Mit Online-Aspekten: Pannenhilfe Bestimme Autozuweisung und Reihenfolge für jedes Pannenfahrzeug so, dass bereits versprochene Wartezeiten nicht überschritten werden. 49: 8 [8,8]

Reihenfolgeoptimierung bei langen Rüstzeiten Zwei Rotationstiefdruckmaschinen für den Druck von Geschenkpapier 2 8 5+3x# 8 0 4 8 2 2 0 2 0 4 4 8 2 2 0 Anfangszustand M Anfangszustand M2 Passer 25 50: 82 [82,82] Endzustand M Endzustand M2 Farbanpassung neue Farben: 20

Modellierung als ganzzahliges Programm Abstrakte Formulierung über konvexe Hülle der Inzidenzvektoren: 6 0 9 4 2 2 5 3 7 8 R = {, 4, 8, } 6 0 9 3 4 2 8 7 2 5 R 2 = {4, 5, 7, 9} 6 0 9 3 4 2 2 5 7 8 R 3 = {, 6, 9, 2} χ(r ) = 0 0 0 0 0 0 0 0 χ(r 2 ) = 0 0 0 0 0 0 0 0 χ(r 3 ) = 0 0 0 0 0 0 0 0 Für Kantenlängen c R E ist die Länge von Rundreise R: e R c e = c T χ(r). (TSP) min c T x s.t. x conv{χ(r) : R Rundreise in D = (V, E)} =: P TSP Wäre exakt, aber keine lineare Beschreibung A I x b I von P TSP bekannt! 5: 83 [83,83]

Ganzzahlige Formulierung für (TSP) 52: 84 [84,84] Ziel: P TSP durch ein größeres Polytop P = {x R n : Ax b} P TSP möglichst eng einfassen, sodass wenigstens P Z E = {χ(r) : R Rundreise}. Eine Gleichung/Ungleichung heißt gültig für P TSP, wenn sie für alle x {χ(r): R Rundreise} erfüllt ist. 0- Würfel: 0 x ist gültig Gradgleichungen: aus jedem und in jeden Knoten geht genau ein Pfeil, für v V : x (v,u) =, x (u,v) = (v,u) E (u,v) E (pro Zeile/Spalte genau eine Zuweisungsproblem) Schon Formulierung? P Z E = {χ(r) : R Rundreise}? 0 9 2 3 4 5 7 8 2 3 7 8 6 2 0 9 2 Kurzzyklusungleichungen: Aus jeder Knoten-Teilmenge muss mindestens eine Kante hinausführen, für S V, 2 S n 2 : e δ + (S) x e Ist nun eine Formulierung, aber mit etwa 2 n Ungleichungen! 4 5 6

Lösen der TSP LP-Relaxation Geht nur mit Schnittebenenverfahren: Die. Relaxation bildet das Zuweisungsproblem (Box+Gradgleichungen) Dessen Lösung ist ganzzahlig und besteht meist aus getrennten Kreisen. Ab jetzt die Schranke iterativ durch Kurzzyklus-Schnittebenen verbessern P c 0.7 0 0 0 0.3 0 0 0.3 0 0.7 0 9 0.3 0.7 2 3 7 8 4 0.3 6 5 0.7 2 Separationsproblem: Finde ein S V, 2 S n 2 : P c e δ + (S) x e. 53: 85 [85,86]

Lösen der TSP LP-Relaxation Geht nur mit Schnittebenenverfahren: Die. Relaxation bildet das Zuweisungsproblem (Box+Gradgleichungen) Dessen Lösung ist ganzzahlig und besteht meist aus getrennten Kreisen. Ab jetzt die Schranke iterativ durch Kurzzyklus-Schnittebenen verbessern P c 0.7 0 0 0 0.3 0 0 0.3 0 0.7 S 0 9 0.3 0.7 2 3 7 8 4 0.3 6 5 0.7 2 P c e δ + (S) x e. Separationsproblem: Finde ein S V, 2 S n 2 : Finde im Netzwerk D = (V, E) mit Kantenkap. x einen Schnitt x(δ + (S)) <. Maximale s-t-flüsse/minimale s-t-schnitte für s, t V, exakt lösbar! Grad+Kurzz. liefern sehr gute Schranken, aber noch lange nicht P TSP! Schranke mit weiteren Unglg. verbesserbar (Kamm-, etc.), die Lösung der Relaxation wird aber fast nie ganzzahlig! 53: 86 [85,86]

Allgemeine Schnittebenen Es gibt auch problemübergreifende allgemeine Schnittebenen, die in state-of-the-art Lösern für ganzz. Opt. eingesetzt werden: Gomory-Schnitte [Abrunden der Koeffizienten durch ] Ist a T x β gültig für x P Z n + dann ist wegen a T x a T x auch a T x β gültig. So eine verletzte Unglg. ist automatisch aus nicht ganzz. OLs erzeugbar. Lift-and-Project Cuts, Clique-Ungleichungen, etc. P c 54: 87 [87,87] LP-Relaxation mit Schnittebenen erzeugt gute Schranken (obere für Maximierungs-, untere für Minimierungsprobleme), die Lösungen der Relaxation sind (fast) nie ganzzahlig, führen aber oft in die Nähe guter ganzzahliger Lösungen.

Inhaltsübersicht Ganzzahlige Optimierung. Das Heiratsproblem (ungerichtete Graphen).2 Ganzzahligkeit von Polyedern ( und gerichtete Graphen).3 Anwendung: Netzwerkflüsse.4 Mehrgüterflussprobleme.5 Ganzzahlige und Kombinatorische Optimierung.6 Branch-and-Bound.7 Konvexe Mengen, konvexe Hülle, konvexe Funktionen.8 Relaxation.9 Anwendung: Rundreiseprobleme (TSP).0 Finden guter Lösungen, Heuristiken. Gemischt-ganzzahlige Optimierung 55: 88 [88,88]

.0 Finden guter Lösungen, Heuristiken [Heuristik hat den griechischen Wortstamm finden/erfinden] Für kleine x Z n liefert normales Runden der LP-Lösung meist unzulässige oder schlechte Lösungen (selbst bei guter Schranke). 56: 89 [89,89] Es kann vorkommen, dass kein zulässiger Punkt in der Nähe der LP-Lösung ist! In state-of-the-art Lösern gibt es aufwendige Standard-Rundeheuristiken (feasibility pump). Generell: Ganzzahlige Probleme sind meist NP-schwer, haben viele lokale Optima (keine benachbarte bessere Lösung) und es ist unwahrscheinlich, dass man die Optimallösung ohne Enumeration findet. Es kann sogar schwer sein, überhaupt eine zulässige Lösung zu finden! In Anwendungen nützt man möglichst viel problemspezifisches Wissen! Grober Ablauf: (zulässige?) Startlösung erzeugen (meist aus der LP-Lösung) Iterative Verbesserung der Lösung durch lokale Suche (lokal exakt, Simulated Annealing, Tabu Search, Genetische Algorithmen, etc.) P c

Startlösung aus der LP-Relaxation Typische Ansätze: 57: 90 [90,90] Oft darf aus mehreren {0, }-Variablen nur eine gewählt werden: LP-Relaxation: i N x i =, x i [0, ] Interpretiere x i als Wahrscheinlichkeit, dass x i auf gesetzt werden soll und erzeuge damit mehrere Lösungen zufällig, nimm die beste. Abweichungen von Nebenbedingungen mit großen Dualvariablen erzeugen große Verluste im Zielfunktionswert. Versuche, diese beim Runden zu erfüllen. Sukzessives Fixieren: Setze eine oder mehrere Variablen, deren Wert fast ganzzahlig ist, auf den gerundeten Wert und löse das LP für die restlichen Variablen erneut (u.u. rückgängig machen, falls nun unzulässig). Für einige grundlegende Probleme gibt es Rundungsverfahren, die aus LP-Lösung gerundete Lösungen mit Gütegarantie erzeugen (Approximationsalgorithmen), diese sind gute Ideenlieferanten für eigene Rundungsverfahren.

Verbesserungsverfahren allgemein Gemeinsame Grundelemente: Suchumgebung/Nachbarschaft erklären: beschreibt, welche Lösungen ausgehend von der derzeitigen untersucht werden können oder sollen (etwa alle durch gewisse Austauschschritte erreichbaren Lösungen, oder Freigeben gewisser Variablen für lokales Nachoptimieren, etc.) Mathematisch: Jeder Lösung ˆx wird eine (Nachbarschafts-) Menge N (ˆx) von benachbarten Lösungen zugeordnet. Fortschrittsmaß definieren: Bewertungsfunktion f (x) für neu erzeugte Lösungen, die Zielfunktion und Bestrafung von Unzulässigkeiten kombiniert [s. Merit- und Filter-Ansatz der nichtlin. Opt.] Akzeptanz-Schema festlegen: Gibt an, welche neu erzeugten Lösungen zur Fortsetzung der Suche verwendet werden sollen. Um lokale Optima verlassen zu können, werden ab und zu auch Verschlechterungen akzeptiert. 58: 9 [9,9]

Lokal exakte Verfahren/lokales Enumerieren Bestimme N ( ) so, dass (Pˆx ) min f (x) s.t. x N (ˆx) für jedes ˆx durch polynomiale Verfahren oder vollständige Enumeration exakt lösbar ist. 0. Bestimme eine Startlösung ˆx. Löse (Pˆx ) x 2. Ist f ( x) besser als f (ˆx), setze ˆx x und gehe zu., sonst STOP. Bsp: 3-opt für TSP: 3 Kanten entfernen und neu zusammensetzen 59: 92 [92,92] die Kunst: Finde eine möglichst mächtige Nachbarschaft, für die (Pˆx ) noch polynomial lösbar ist. Die Anzahl der Iterationen kann dennoch exponentiell sein!

Simulated Annealing (simuliertes langsames Abkühlen) Erzeuge, in Schritt k, zufällig ein x aus N (ˆx). Akzeptiere es, falls 60: 93 [93,93] f ( x) besser als f (ˆx), sonst akzeptiere es nur mit Wahrscheinlichkeit ( ) f (ˆx) f ( x) exp (0 < T k 0 für k ). T k 0. Bestimme Startlösung ˆx, Nullfolge {T k > 0} k N, setze k = 0.. Wähle zufällig (gleichverteilt) x N (ˆx) setze k k +. 2. Ist f ( x) besser als f (ˆx), setze ˆx x und gehe zu. 3. Ziehe gleichverteilt eine Zufallszahl ζ [0, ]. f (ˆx) f ( x) Ist ζ < exp( T k ), setze ˆx x und gehe zu. 4. Gehe zu. (ohne ˆx zu ändern). Wähle N ( ) so, dass jedes x über Zwischenstationen erreichbar ist. Geht die (Temperatur-/Abkühlungs-)Folge T k sehr langsam gegen Null, wird jedes x mit positiver Wahrscheinlichkeit irgendwann besucht (vollständige Enumeration), also auch das Optimum. (Aber wann?)