6 2. Beispiele... 7... 8 2.3 Konvexe Mengen und Funktionen... 9 2.4 Konvexe Optimierungsprobleme... 0 2. Beispiele 7- Ein (NP-)Optimierungsproblem P 0 ist wie folgt definiert Jede Instanz I P 0 hat einen Zulässigkeitsbereich S I aus sogenannten Lösungen (solutions) Zulässigkeit (Test y S I ) kann in polynomialer Zeit überprüft werden Aufgabe: bestimme für eine Instanz I und eine Zielfunktion c : S I -> Q (rationale Zahlen) eine Optimallösung y = OPT(I) d.h. y S I mit OPT(I) = c(y)! c(x) für alle x S I OPT(I) bezeichnet je nach Kontext die optimale Lösung oder den Zielfunktionswert der optimalen Lösung eine solche Lösung heißt globales Optimum (globales Minimum) oder Optimum (Minimum) Ein Algorithmus, der dies leistet, heißt exakt 2. Beispiel: Traveling Salesman Problem (TSP) Instanz vollständiger Graph K n, n " 3 Kantenbewertung c(e) mit rationalen Zahlen " 0 Aufgabe
2. Beispiele 7-2 Bestimme einen Hamilton Kreis C mit minimaler Länge!!"" # # $!""!!#" Beispiel einer Instanz G = K n in der Ebene mit Euklidischem Abstand Zwei zulässige Lösungen 2. Beispiele 7-3 2.2 Beispiel: Minimum Spanning Tree (MST) Instanz ungerichteter (einfacher) Graph G reellwertige Kantengewichte c(e), e E(G) Aufgabe finde spannenden Baum T von G mit minimalem Gewicht c(t)!!"" # # $!""!!#" oder stelle fest, dass G nicht zusammenhängend (zh) ist
2. Beispiele 7-4 Beispiel von Instanzen Instanz G = K n in der Ebene mit Euklidischem Abstand und eine zulässige Lösung Instanz 2 G = K 4 mit Kantenkosten c(e) aus Kostenmatrix " # $ %!! " & # " $ " => zugehöriger Graph G ist 2. Beispiele 7-5 => zugehöriger Graph G ist G 2 4 2 3 3 2 4 zugehörige Menge S I zulässiger Lösungen besteht aus n n-2 = 6 verschiedenen spannenden Bäumen
2. Beispiele 7-6 4 4 5 5 7 6 6 7 6 6 8 6 9 9 8 8 2.3 Beispiel: Lineare Optimierung (LP) Instanz m x n Matrix A = (a ij ), m Spalten-Vektor b, n Spalten-Vektor c, alle mit rationalen bzw. o.b.d.a. ganzen Zahlen diese Größen definieren den zulässigen Bereich 2. Beispiele 7-7! "!!# R $ " %#! &' # # "$ Zielfunktion c(x) = c T x LP ist ein stetiges Optimierungsproblem! MST und TSP waren diskret. Dennoch lässt sich LP als ein diskretes Beispiel A = (,,), b = (2) zulässige Lösungen erfüllen x + x 2 + x 3 = 2, x j " 0 und bilden damit einen Simplex x 3 v 3 v 2 x 2 v x Beachte: hier gibt es unendlich viele Lösungen, darunter auch nicht ganzzahlige Mann kann jedoch zeigen: Das Optimum wird in einer der endlich vielen "Ecken" v angenommen
2. Beispiele 7-8 Mann kann jedoch zeigen: Das Optimum wird in einer der endlich vielen "Ecken" v k angenommen => Beschränkung auf endliche Menge im Prinzip möglich Umgekehrt lassen sich auch diskrete Probleme als LP auffassen minimal spannende Bäume als Vektoren gegebener Graph G 3 2 minimal spannende Bäume von G als Vektoren (Inzidenzvektoren)! 2 0 3! 0 3 2! 0 Konvexe Hülle der Inzidenzvektoren = Polytop (gelbe Menge) 2. Beispiele 7-9 x 3 v 3 v x 2 x v 2 Polytop = gelbe Menge Ermittlung minimal spannender Baum = lineare Optimierung über diesem Polytop zugehöriges LP ist gegeben durch x + x 2 + x 3 = 2 x! x 2! x 3! x j " 0 sogenannte lineare Beschreibung, nützlich für Entwurf von Algorithmen
2. Beispiele 7-0 sogenannte lineare Beschreibung, nützlich für Entwurf von Algorithmen 8- Nachbarschaften Nachbarschaften sind für stetige Probleme in natürlicher Weise als!-umgebung bzgl. einer Norm definiert. Wie für diskrete Probleme? Eine Nachbarschaft für eine Problemklasse P 0 ist gegeben durch eine Abbildung! "! # " " # " für jede Instanz I P 0 N I (y) heißt die Nachbarschaft von y S I. Ist I klar, so schreiben wir kurz N(y) 2.4 Beispiel: TSP Definieren Nachbarschaft über 2-Tausch N 2 (y) := { x S I x entsteht aus y durch Ersetzen von! 2 Kanten aus y durch andere Kanten } Verallgemeinerung auf k " 2 möglich, führt zu Nachbarschaft N (y)
8-2 Verallgemeinerung auf k " 2 möglich, führt zu Nachbarschaft N k (y) 2.5 Beispiel: MST Nachbarschaft über Austausch einer Kante auf Fundamentalkreis definieren N(y) := { x S I x entsteht aus y durch Hinzufügen einer Kante und Entfernen einer anderen auf dem entstehenden Kreis } G T T' 2.6 Beispiel: LP Nachbarschaft über!-umgebung definieren N (y) := { x Ax = b, x " 0, y-x! 8-3 N! (y) := { x Ax = b, x " 0, y-x!! } y! Lokale und globale Optima Sei Problemklasse P 0 mit Nachbarschaft N gegeben und I P 0 y S I heißt lokal optimal bzgl. N, falls c(y)! c(x) für alle x N I (y) 2.7 Beispiel: Lokale Minima in der Analysis
8-4 2.8 Beispiel: TSP Lokal optimale Lösungen bzgl. N k heißen k-optimal Exakte Nachbarschaft Eine Nachbarschaft bzgl. einer Problemklasse P 0 heißt exakt :<=> für jede Instanz I gilt: ist y S I lokal optimal bzgl. N I, so ist y global optimal für I 2.9 Beispiel: TSP N 2 ist nicht exakt Gegenbeispiel: 8-5 Kosten a 5 2 Kosten b Kosten c 4 3 a < b < c Tour y = "außen rum" hat Kosten 5b Da die beiden grünen Kanten adjazent sind, kommt bei jedem 2-Tausch höchstens eine grüne Kante dazu, im günstigsten Fall also eine grüne und eine rote Die neue Tour ist schlechter, falls a+c > 2b => y lokal optimal bzgl. N 2 Durch doppelten 2-Tausch können die beiden grünen Kanten in die Tour kommen
8-6 5 2 5 2 5 2 4 3 4 3 4 3 Diese Tour ist besser als y, falls 2a+c < 3b a < b < c und a+c > 2b und 2a+c < 3b ist erfüllt für a =, b = 4, c = 8 N n ist exakt klar, da N (y) = S! n I 2.0 Beispiel: MST Die Nachbarschaft von MST ist exakt Beweis: Nutze Satz aus ADM I: T ist optimal <=> Für jede Nicht-Baum-Kante e gilt: e ist teuerste Kante in dem von e erzeugten Kreis bzgl. T 8-7! Nachbarschaft motiviert das Prinzip der Lokalen Suche Algorithmus Lokale Suche Input Instanz I eines Optimierungsproblems P 0 mit Nachbarschaft N I Startlösung y S I Output lokales Optimum bzgl. N I Methode iterative Verbesserung while es gibt bessere Lösung x N I (y) do wähle bessere Lösung x N I (y) y := x return y 2. Satz (Lokale Suche für MST)
8-8 2. Satz (Lokale Suche für MST) Die lokale Suche bzgl. der MST-Nachbarschaft ist ein polynomialer Algorithmus zur Bestimmung eines (global) optimalen MST, falls (a) immer eine Nichtbaumkante f gewählt wird, die billiger als die teuerste Kante auf dem von f induzierten Kreis K ist (b) immer die teuerste Baumkante e aus dem von f induzierten Kreis K entfernt wird Beweis:. Da die Nachbarschaft exakt ist, liefert der Algorithmus bei Terminierung eine global optimale Lösung 2. Der Algorithmus terminiert in polynomialer Zeit Claim : Eine ausgetauschte Kante kommt nie wieder zurück in den Baum Beweis durch Widerspruch Sei K der Kreis beim Austausch der Kante e, d.h. e wird entfernt. e K Betrachte späteren Zeitpunkt t, zu dem e zum ersten Mal als Nichtbaumkante gewählt wird und 8-9 Betrachte späteren Zeitpunkt t, zu dem e zum ersten Mal als Nichtbaumkante gewählt wird und wieder in den Baum kommt. => e erzeugt einen Kreis K' e K K' => K' ist aus K entstanden durch die Folge der lokalen Suchschritte bis zum Zeitpunkt t In jedem dieser Schritte schließt e (als Nichtbaumkante) einen Kreis K(e) im momentanen Baum Claim 2: In jedem Schritt gilt c(e) " c(g) für alle Kanten g K(e) Beweis durch Induktion entlang der Folge von Kreisen K = K, K 2, K 3,... Induktionsanfang (klar für K = K nach Konstruktion) Induktionsschritt von K i auf K i+ klar für K i = K i+ sei K i # K i+ Dann sind 2 Fälle möglich K entsteht durch Vergrößerung von K
8-0 K i+ entsteht durch Vergrößerung von K i => K i+ = K i - (einige Kanten inklusive der momentan gelöschten Kante e') + P (P ist Teil des momentanen Kreises aus dem wir e' löschen) P e e e' => c(e') " c(f) für alle Kanten f P wegen (b) c(e) " c(e') nach Induktionsvoraussetzung, (b) => c(e) " c(f) für alle Kanten f K i+ K i+ entsteht durch Verkleinerung von K i => K i+ = K + (einige Kanten inklusive der momentan hinzugefügten Kante e') - P (P ist Teil von K i ) 8- f 0 P e e e' => c(e') < c(f 0 ) für entfernte Kante f 0, c(e) " c(f) für alle Kanten f P nach Induktionsvoraussetzung => c(e) " c(f) für alle Kanten f K i+ Claim 2 => Widerspruch zur Wahl von e gemäß (a) Also gibt es maximal m-n+ Austauschschritte (m = # Kanten, n = # Knoten). Jeder dieser Schritte kann in O(n) durchgeführt werden teuerste Kante e im induzierten Kreis ermitteln und mit der Nichtbaumkante f vergleichen [durch Breitensuche in O(# Kanten im Baum) = O(n)] e und f austauschen, falls c(e) < c(f) [bei Speicherung des Baumes als Array von Adjazenzlisten in O(n)] Insgesamt also O((m-n+)n) = O(mn)
8-2 Insgesamt also O((m-n+)n) = O(mn)! Bemerkung: Haben in ADM I bessere Algorithmen kennengelernt, Kruskal O(m log n) und Prim O(n 2 ) Übung: Analyse der lokalen Suche für TSP mit der k-opt Nachbarschaft. Ist sie polynomial? 2.3 Konvexe Mengen und Funktionen 9- Konvexkombination zweier Vektoren Seien x, y R n. Dann heißt jeder Punkt der Form z = λ x + (-λ) y mit 0! λ! eine Konvexkombination von x und y (strikte Konvexkombination falls 0 < λ < ) die Konvexkombinationen sind genau die Punkte auf der Verbindungsgeraden zwischen x und y x-y x y Punkte auf Verbindungsgeraden haben als Vektoren die Form y + λ(x-y) Konvexe Menge S! R n heißt konvex, falls S alle Konvexkombinationen von je zwei Punkten x, y S enthält 2.2 Beispiel:
2.3 Konvexe Mengen und Funktionen 9-2 R n, Ø, {x}, x R n sind konvex Im R sind die konvexen Mengen genau die Intervalle Die konxen Mengen im R 2 sind solche ohne "Einbuchtungen" A B C 2.3 Lemma Der Durchschnitt von (beliebig vielen) konvexen Mengen ist konvex Beweis: Sei S = " i I S i, S i konvex Seien x, y S, 0! λ!, z = λ x + (-λ) y Def. S => x,y S i für alle i => z S i für alle i => z S! Lemma 2.3 ist Basis für die Definition der konvexen Hülle einer Menge Die konvexe Hülle conv(s) einer Menge S ist die kleinste konvexe Menge, die S enthält, d.h. 2.3 Konvexe Mengen und Funktionen 9-3!"#$%!& ' "! "# " ("#$)* Dieser Durchschnitt existiert, da M = R n an der Durchschnittsbildung beteiligt ist eine äquivalente Beschreibung (Übung) ist conv(s) = { λ x +... + λ k x k x i S, λ i " 0, $ λ i =, k endlich } Satz von Caratheodory: k! n+ reicht im R n Konvexe Funktion Sei S! R n konvex. Eine Funktion c : S -> R heißt konvex in S, falls c(λ x + (-λ) y)! λ c(x) + (-λ) c(y) für alle x, y S, 0! λ! 2.4 Beispiel Jede lineare Funktion ist konvex Interpretation von konvexen Funktionen c : R -> R
2.3 Konvexe Mengen und Funktionen 9-4 c(y)!"c(x) + (-!) c(y) c(x) c x z y z := λ x + (-λ) y c(z)! λ c(x) + (-λ) c(y) 2.5 Lemma Sei c konvex in S! R n. Dann ist für jede reelle Zahl t die Niveaumenge S t := { x S c(x)! t } konvex Beweis: Sei z := λ x + (-λ) y mit x, y S t, 0! λ! => c(z)! λ c(x) + (-λ) c(y) da c konvex => z S t!! λ t + (-λ) t da x, y S t Niveaumengen einer konvexen Funktion c : R 2 -> R 2.3 Konvexe Mengen und Funktionen 9-5 Niveaumengen einer konvexen Funktion c : R 2 -> R c = 3 2 Konkave Funktion c in S! R n heißt konkav, falls -c konvex ist <=> c(λ x + (-λ) y) " λ c(x) + (-λ) c(y) für alle x, y S, 0! λ!
2.4 Konvexe Optimierungsprobleme 0- Konvexe Optimierung = Minimierung einer konvexen Funktion über einer konvexen Menge. 2.6 Satz (lokal - global) Sei I eine Instanz eines Optimierungsproblems mit S I! R n konvex und c konvex in S I. => Die Nachbarschaft N! (y) := { x S I : y-x!! } definiert durch den Euklidischen Abstand ist für jedes! > 0 exakt. Beweis: Sei! > 0 fest und y lokales Optimum bzgl. N!. Sei x S I beliebig. Zeige c(y)! c(x). Klar falls x N! (y) Sei also x N! (y) => für geeignete Wahl von λ ist z := λ x + (-λ) y N! (y) und z # y. 2.4 Konvexe Optimierungsprobleme 0-2 S I x z N! (y) y c konvex => c(z)! λ c(x) + (-λ) c(y), außerdem c(z) " c(y), da y lokal optimal!!#" "!# " $"!!%"!!%" "!# " $"!!%"!!""!! $!!%" $ $ Also c(x) " c(y)! Beachte: dies gilt ohne weitere Annahmen an c; insbesondere braucht c nicht differenzierbar zu sein. Historische Definition konvexer Optimierungsprobleme Eine Instanz I eines Optimierungsproblems heißt konvexes Optimierungsproblem falls S ist gegeben als Menge aller x R n, die folgende Nebenbedingungen erfüllen:
2.4 Konvexe Optimierungsprobleme 0-3 S I ist gegeben als Menge aller x R n, die folgende Nebenbedingungen erfüllen: g i (x) " 0 g i : R n -> R konkav, i =,...,m i =,...,m c ist konvex in S I 2.7 Lemma Die zulässige Menge S I einer Instanz I eines historisch definierten konvexen Optimierungsproblem ist konvex Beweis: g i konkav => -g i konvex => S i := { x -g i (x)! 0 } = { x g i (x) " 0 } konvex => S I = " i S i ist konvex wegen Lemma 2.3! 2.8 Satz In einem konvexen Optimierungsproblem ist jedes lokale Optimum ein globales Optimum 2.9 Bemerkung Es kann viele globale Optima geben 2.4 Konvexe Optimierungsprobleme 0-4 Es kann viele globale Optima geben Jede Instanz von LP ist ein konvexes Optimierungsproblem => jedes lokale Minimum ist ein globales Minimum Die Analysis bietet hinreichende Kriterien für die Konvexität glatter Funktionen: D! R n offen, c : D -> R ist 2-mal stetig differenzierbar, Hessematrix (= Matrix der 2. partiellen Ableitungen) von c ist positiv semidefinit