Computational Techniques, Einheit 1 Markus Sinnl Sprechstunde: MO, 13-14 Uhr Oskar-Morgenstern-Platz 1, Raum [04/343] [email protected] http://homepage.univie.ac.at/markus.sinnl 16.10.2014 1/19 Einleitung I Optimierung und Suche Optimierungsproblem (in Minimierungsform) I I I I I I 2/19 min F (x) (1) x ∈S (2) F : Zielfunktion (goal/cost function) x: Lösung (feasible solution) S: zulässige Menge (feasible region) Struktur von S, F : verschiedene Arten von Optimierung (linear, non-linear, kombinatorisch, . . . ) Linear Programmierung (LP): kommerzielle Solver vorhanden exakte vs inexakte (heuristisch) Lösungsverfahren Kombinatorische Optimierung: Überblick 3/19 I Zulässige Menge S endlich, Lösungen haben kombinatorische Struktur I Permutation, Teilmenge, Baum, . . . I oft als Graph darstellbar I Problem vs Probleminstanz Kombinatorische Optimierung: Lösungsverfahren I exakte Algorithmen I I 4/19 Problem-spezifische Algorithmen Integer Linear Programming (ILP) I Problem-spezifische Heuristiken I Meta-Heuristiken I Approximationsalgorithmen (Mixed-) Integer Linear Programming (ILP) 5/19 I Lineares Program, mit Zusatzbedinung, dass manche/alle Variablen in Lösung Integer sein müssen I beachte: ILP i.A. NP-hard I LP-Relaxierung eines ILPs: Integer-Bedingung wird weggelassen I Relaxierung: Lösung ist untere Schranke (bei min) I ILP ist totally unimodular → LP-Relaxierung gibt Integer Sol. I andere Arten von Relaxierung möglich (zB andere Bedingungen weglassen) I Branch-and-Bound, Branch-and-Cut (nächste Einheiten) I viele kommerzielle Pakete für ILP (CPLEX, Gurobi, XPRESS, ...) I Open-Source: SCIP Travelling Salesman Problem (TSP) Figure: Relevant XKCD 6/19 Travelling Salesman Problem (TSP) 7/19 Problemstellung I Graph G (V , E ), Kosten ce ≥ 0, e ∈ E I S: alle Touren, die jeden Knoten exakt einmal besuchen (i.e., Hamiltonian Cycle) I Kostenminimierung Figure: aus Wikipedia Travelling Salesman Problem (TSP) 8/19 Formulierung min X ce xe (3) e∈E X xij = 2, ∀i ∈ V (4) {i,j}∈E x hat keine Subtouren (5) x ∈ {0, 1} (6) I xe = 1 : Kante e in Lösung I NP-hard I das wahrscheinlich am meisten studierte Problem in der Community Assignment Problem Problemstellung 9/19 I Arbeiter A und Tasks T I cij ≥ 0: Kosten, wenn Arbeiter i ∈ A Task j ∈ T erledigt I S: Zuordnung Arbeitern zu Tasks, sodass alle Tasks erledigt werden; jeder Arbeiter kann nur einen Task erledigen! I Kostenminimierung Assignment Problem 10/19 Formulierung min XX cij xij (7) i∈A j∈T X xij = 1, ∀i ∈ A (8) ∀j ∈ T (9) j∈T X xij = 1, i∈A x ∈ {0, 1} I xij = 1 : Arbeiter i erledigt Task j I poly-time (10) Job-Shop Scheduling Problem Problemstellung 11/19 I |M| Maschinen, |J| Jobs, Laufzeiten wjm I Liste Lj ⊆ M für jeden Job j: Maschinen, auf denen j geschedult werden muss I S: gültige Zuordnung von Jobs zu Maschinen (i.e., eine Schedule) I Minimierung der Gesamtlaufzeit (=Makespan) I NP-hard Knapsack Problem 12/19 Problemstellung I |I | items mit Gewicht wi ≥ 0 und Profit pi ≥ 0, Kapazität K ≥0 I S: Subset der Items, sodass deren Gewicht K nicht übersteigt I Profitmaximierung Figure: aus Wikipedia Knapsack Problem 13/19 Formulierung max X pi xi (11) wi xi ≤ K (12) x ∈ {0, 1} (13) i∈I X i∈I I xi = 1 : item i in Lösung I NP-hard I Pseudo poly-time mit Dynamic Programming Maximum Clique Problem Problemstellung 14/19 I Graph G (V , E ) I S: alle Subgraphen von G , wo von jedem Knoten zu jedem anderen Knoten eine Kante existiert (=Clique) I Maximierung der Größe (=Anzahl der Knoten) der Lösung Figure: aus Wikipedia Maximum Clique Problem 15/19 Formulierung max X xi (14) i∈V xi + xj ≤ 1, ∀{i, j} 6∈ E x ∈ {0, 1} I xi = 1 : Knoten i in Lösung I NP-hard (15) (16) Minimum Spanning Tree Problem Problemstellung I Graph G (V , E ), Kosten ce ≥ 0 I S: Baum, der alle Knoten verbindet I Kostenminimierung Figure: aus Wikipedia 16/19 Minimum Spanning Tree Problem 17/19 Formulierung min X ce xe (17) xe = |V | − 1 (18) e∈E X e∈E X xij ≤ |S| − 1, ∀S ⊂ V (19) {i,j}∈E :i,j∈S x ∈ {0, 1} I I I I xe = 1 : Kante e in Lösung (19): Subtour Elimination Constraints (SEC) exponentiell viele SEC, aber poly-time separierbar poly-time (20) Minimum Steiner Tree Problem Problemstellung I Graph G (V , E ), Terminal set T ⊆ V , Kosten ce ≥ 0 I S: Baum, der alle Knoten in T verbindet I Kostenminimierung Figure: aus Wikipedia 18/19 Minimum Steiner Tree Problem 19/19 Formulierung min X ce xe (21) e∈E X xe ≥ 1, ∀ Steiner cuts C e∈C I xe = 1 : edge E in Lösung I Cut: Sei V 0 , V 00 ⊂ V , V 0 ∩ V 00 ∅ I (V 0 , V 00 ) = {{i, j} ∈ E : i ∈ V 0 , j ∈ V 00 } I Steiner cut: T ∩ V 0 6= ∅, T ∩ V 00 6= ∅ I NP-hard (22)