Computational Techniques, Einheit 1

Werbung
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)
Herunterladen