Lokale Suche (Teil I) Wei Huang∗ Freie Universität Berlin 25. November 2008 Zusammenfassung Lokale Suche ist eine sehr allgemeine Technik. Sie beschreibt einen Algorithmus, der eine relativ gute Lösung in einer Menge von möglichen Lösungen sucht. Der Algorithmus bewegt sich in einem Schritt von einer aktuellen Lösung zu einer benachbarten Lösung. Wegen ihrer Allgemeinheit und Flexibilität hat die lokale Suche den Vorteil, dass der zugehörige Algorithmus einfach zu entwerfen ist. Die lokale Suche kann häufig benutzt werden um schwierige Probleme zu approximieren. Allerdings hat sie den Nachteil, dass die Qualität der Lösung schwer vorherzusagen ist. 1 Die Landschaft eines Optimierungsproblems Die Kernidee hat sich mit Gedenken des physikalischen Modells entwickelt. 1.1 Potenzielle Energie Das physikalische Objekt beschleunigt, um seine potenzielle Energie zu minimieren. Es bewegt sich am schnellsten, wenn seine potenzielle Energie am kleinsten ist. 1.2 Zusammenhang mit Optimierung Das physikalische System kann in einem der großen Menge von möglichen Zuständen sein. Seine Energie ist eine Funktion von seinem aktuellen Zustand. Von einem gegeben Zustand führt eine kleine Veränderung zu einem benachbarten Zustand. Wir definieren den Weg, in dem diese benachbarten Zustände zusammengesetzt werden, als eine Energie Landschaft. Also haben wir eine große (normalerweise exponentiell große) Menge von möglichen Lösungen A . Wir haben auch eine Kostenfunktion c(.), um die Qualität einer Lösung zu bewerten. Für eine Lösung S ∈ A , ist die Qualität dieser Lösung dann c(S). Das Ziel ist S ∗ ∈ A zu finden, so dass c(S ∗ ) am kleinsten wird. Wir fügen jetzt die benachbarte Beziehung ein. Wenn wir eine Lösung S 0 mit einer kleinen Abweichung von Lösung S bekommen können, schreiben wir S ∼ S 0 und N (S) := {S 0 : S ∼ S 0 }. 1.3 Anwendung auf das Vertex Cover Problem S ∼ S 0 := der Unterschied zwischen S und S 0 ist genau ein Knoten mehr oder weniger. Lokale Suche kann hier aber sehr schlecht sein, wenn wir einen Stern-Graph haben. ∗ eMail: [email protected] 1 2 Der Metropolis Algorithmus und simulierte Abkühlung Wir brauchen eine Strategie, die uns hilft, von einem schlechten lokalen Optimum wegzuspringen. 2.1 Metropolis Algorithmus 0 Sei P (S 0 , S, k, T ) = e −(c(S )−c(S))/(kT ) eine Wahrscheinlichkeitsfunktion, S 0 , S, k, T siehe unten, der Algorithmus ist also: S t a r t with an i n i t i a l solution S_0 , and constants k and T In one step : Let S be the current solution Let S ’ be chosen uniformly at random from the neighbors of S I f c ( S ’ ) <= c ( S ) then update S with S ’ Else With p r o b a b i l i t y P( S ’ , S , k , T) update S with S ’ Otherwise leave S unchanged EndIf 2.2 Simulierte Abkühlung Für oben genannten Algorithmus können wir noch die Idee einfügen, mit colling schedule k, T dynamisch zu verändern. Die Idee kommt auch aus dem physikalischen Modell. 3 Anwendung der lokalen Suche auf Hopfield Neural Networks 3.1 Das Problem Gegeben sei ein ungerichteter Graph mit ganzzahligen Kantengewichten ωe . Jedes Gewicht kann positiv oder negativ sein. Eine Konfiguration S des Netwerks ist eine Zuweisung von Werten +1 und −1 zu jedem Knoten u, also ist s u der Status des Knoten u. Eine Kante e = (u, v) heißt gut, wenn ωe s u s v ≤ 0. Wir suchen eine Konfiguration für einen gegebenen Graphen, so dass jede Kante gut ist. Aber wir schaffen dies nicht unbedingt, wenn wir z.B. ein Dreieck mit jedem Kantengewicht +1 haben. Alternativ definieren wir einen Knoten u als stabil, wenn gilt: X ωe s u s v ≤ 0 v :e=(u,v)∈E Eine Konfiguration heißt stabil, wenn jeder seiner Knoten stabil ist. Wir wollen für einen gegebenen Graphen eine stabile Konfiguration finden. P Satz 1. Sei W = e |ωe |. Jedes Hopfield network hat eine stabile Konfiguration und eine solche Konfiguration lässt sich in polynomieller Zeit von n und W finden. Bevor wir den Satz beweisen, betrachten wir zuerst den State-Flipping-Algorithmus While the current configuration i s not s t a b l e There must be an u n s a t i s f i e d node Choose an u n s a t i s f i e d node u F l i p the s t a t e of u EndWhile Beweis. Wird an die Tafel geschrieben. 2 4 Maximum-Cut Approximation durch lokale Suche Die lokale Suche ist für einige NP-schwere Probleme geeignet. 4.1 Das Problem Gegeben sei ein ungerichteter Graph G = (V, E) mit positiv ganzzahligen Kantengewichten ωe . Für eine Partition (A, B ) der Menge aller Knoten definieren wir X ω(A, B ) = ωe e=(u,v)u∈A,v∈B Das Ziel ist, eine Partition (A, B ) zu finden, so dass ω(A, B ) maximal ist. 4.2 Entwurf eines Algorithmus P P P P Wenn ein Knoten u in A bzw. v in B existiert, so dass v∈A ωuv > v∈B ωuv bzw. u∈A ωuv > u∈B ωuv , dadurch dass wir u bzw. v in die andere Seite setzen, können wir die Zielfunktion vergrößern. Der Algorithmus ist jetzt einfach. Wenn wir einen solchen Knoten haben, machen wir die Bewegung, bis es keinen solchen Knoten mehr gibt. Wir beweisen später, dass der Algorithmus immer terminiert, also ein lokales Maximum findet. 4.3 Analyse des Algorithmus Satz 2. Sei (A, B ) eine Partition, die wir mit dem Algorithmus berechnet haben. Sei (A ∗ , B ∗ ) die global optimale Partition, es gilt dann: 1 ω(A, B ) ≥ ω(A ∗ , B ∗ ) 2 Beweis. Wird an die Tafel geschrieben. 4.4 Verbesserte Version des Algorithmus bzgl. Laufzeit Der oben genannte Algorithmus ist nur in pseudo-polynomieller Zeit. Es ist offen, ob ein lokales Maximum in polynomieller Zeit gefunden werden kann. Für gegebenes ² > 0 heißt ein Schritt big-improvement|V |. Also läuft der Algoflip wenn der verbesserte Wert der Zielfunktion größer als 2² n ω(A, B ) wobei n = rithmus solange es einen nächsten Schritt (big-improvement-flip) gibt, sonst terminiert er. Satz 3. Sei (A, B ) eine Partition, die wir mit dem verbesserten Algorithmus berechnet haben. Sei (A ∗ , B ∗ ) die global optimale Partition, es gilt dann: (2 + ²)ω(A, B ) ≥ ω(A ∗ , B ∗ ) Beweis. Wird an die Tafel geschrieben. Satz 4. Der verbesserten Algorithmus terminiert in O(²−1 n logW ) Schritten. Also ist der Algorithmus in echt polynomieller Zeit von n und W . Beweis. Wird an die Tafel geschrieben. Literatur J. Kleinberg, E. Tardos, Algorithm Design, Pearson Education 2006 T. Pfeiffer, Template von LaTex 3