Lokale Suche (Teil I) - Freie Universität Berlin

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