Evolutionäre Algorithmen für Minimale Spannbäume Martin Bullinger Technische Universität München Zusammenfassung Klassische Greedy-Algorithmen zum Auffinden Minimaler Spannbäume (MST) sind schon seit der Mitte des zwanzigsten Jahrhunderts bekannt. Neuere Erkenntnisse liefern alternative Herangehensweisen an dieses Problem. Dazu gehören Randomisierte Lokale Suche (RLS) und Evolutionäre Algorithmen (EA). Ziel des Artikels ist es, auf diesen beiden Verfahren basierende Algorithmen speziell für MST einzuführen und eine detaillierte Laufzeitanalyse durchzuführen. Dazu werden einige wichtige Rechenwerkzeuge wie die Chernoff-Ungleichungen eingeführt. Beim Erstellen wird sich in weiten Zügen am Artikel von Neumann und Wegener orientiert. Inhaltsverzeichnis 1 Einleitung 1.1 Beschreibung des MST-Problems . . . . . . . 1.2 Bekannte Algorithmen zum Finden Minimaler 1.2.1 Kruskal’s Algorithmus . . . . . . . . . 1.2.2 Prim’s Algorithmus . . . . . . . . . . 1.3 Definition der Fitness-Funktionen für EA . . . . . . . . . . Spannbäume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 2 2 2 2 2 Randomisierte lokale Suche und (1+1) Evolutionärer Algorithmus 3 3 Lokale Veränderungen an Spannbäumen 3.1 Lemma: Erzeugen eines MST aus einem beliebigen Spannbaum . . . . . . . . . 3.2 Lemma: Erzeugen eines MST mit konstanter Anzahl an Flips . . . . . . . . . . 3.3 Lemma: Erzeugen eines MST aus einem zshg. Graphen . . . . . . . . . . . . . . 3 3 4 4 4 Detaillierte Analyse von RLS und (1+1) EA für das MST-Problem 4.1 Lemma: Laufzeit zur Konstruktion eines zshg. Graphen . . . . . . . . . 4.2 Lemma: Laufzeit zur Konstruktion eines Spannbaumes . . . . . . . . . . 4.3 Beispielgraph zur Bestapproximation . . . . . . . . . . . . . . . . . . . . 4.4 Vorbemerkungen zur Analyse des Beispielgraphen . . . . . . . . . . . . . 4.4.1 Wahrscheinlichkeit 1 − o(1) . . . . . . . . . . . . . . . . . . . . . 4.4.2 Chernoff-Ungleichungen . . . . . . . . . . . . . . . . . . . . . . . 4.4.3 Markovsche Ungleichung . . . . . . . . . . . . . . . . . . . . . . . 4.5 Satz: Grenze für die erwartete Laufzeit . . . . . . . . . . . . . . . . . . . 4.5.1 Behauptung: Eigenschaften nach der Initialisierung . . . . . . . . 4.5.2 Behauptung: Finden des Suchpunktes mit einer ZHK . . . . . . . 4.5.3 Behauptung: Finden des Suchpunktes, der einen Baum darstellt 4.5.4 Behauptung: Mindestzeit zum Finden des MST . . . . . . . . . . 5 Weiterführende Gedanken: Andere Mutations-Operatoren 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5 6 6 7 7 7 8 8 9 10 11 11 12 1 1.1 Einleitung Beschreibung des MST-Problems Gegeben sei ein zusammenhängender (im Folgenden: zshg.) gewichteter Graph G = (V, E) aus n Knoten und m nicht gerichteten Kanten. Gesucht ist eine Kantenmenge E 0 ⊂ E mit der Eigenschaft, dass E 0 alle Knoten von G verbindet und dass das Gewicht von E 0 minimal ist. Dann heißt T := (V, E 0 ) minimaler Spannbaum (engl.: Minimum Spanning Tree). Das zugehörige Problem nennt man MST. Wenn G nicht zshg. ist, kann man alternativ nach einem Minimalen Spannwald (engl.: Minimum Spanning Forest) suchen. Anwendung findet die Problemstellung beispielsweise beim Auffinden kostenminimaler Netzwerke zur Versorgung einer Menge an Haushalten mit Internetzugang, Strom oder Wasser. 1.2 me Bekannte Algorithmen zum Finden Minimaler Spannbäu- Zwei Algorithmen zum Auffinden minimaler Spannbäume erfreuen sich besonderer Bekanntheit und sollen deswegen hier einführend genannt werden. Beide Algorithmen finden einen MST; falls dieser nicht eindeutig ist, kann mehrmaliges Ausführen zu verschiedenen Ergebnissen führen. 1.2.1 Kruskal’s Algorithmus „Führe den folgenden Schritt so oft wie möglich aus: Wähle unter den noch nicht ausgewählten Kanten von G (dem Graphen) die kürzeste Kante, die mit den schon gewählten Kanten keinen Kreis bildet.“1 1.2.2 Prim’s Algorithmus Wähle einen beliebigen Knoten k in G aus. Finde eine minimale Kante e, die k mit einem neuen Knoten k 0 verbindet. Setze T = (k ∪ k 0 , e). Solange es Knoten aus G gibt, die noch nicht in T sind, suche weitere minimale Kanten, die einen weiteren, neuen Knoten mit T verbinden. 1.3 Definition der Fitness-Funktionen für EA Bekannterweise gibt es eine Bijektion zwischen der Potenzmenge der Kantenmenge E zur Menge S = {0, 1}|E| . Man kann also jede Teilmenge der Kantenmenge als eine Bitfolge aus 0und 1-Bits auffassen, bei der jede Position für eine Kante steht und 1-Bits bedeuten, dass die Kante Element der Teilmenge ist. Jedes s ∈ S nennen wir Suchpunkt. Bei der Suche müssen nicht zshg. Graphen und Graphen, die keine Bäume sind, ausgeschlossen werden (bad fitness). Dazu stellen wir Fitness-Funktionen auf. Sei wi das Gewicht der Kante ei . Sei weiter wmax das maximale Gewicht. Dann ist wub := n2 · wmax eine obere Grenze für das Gewicht einer Kantenmenge. Zu s ∈ S seien nun: 2 w(s) := (c(s) − 1) · wub + (e(s) − (n − 1)) · wub + X i|si =1 w0 (s) := (c(s) − 1)wub + X i|si =1 1 Vgl. [1] Kruskal 1956. 2 wi wi wobei e(s) die Anzahl der Kanten im von s beschriebenen induzierten Subgraphen von G sei und c(s) die Anzahl der Zusammenhangskomponenten (im Folgenden: ZHK) von s. Es enthält also w0 (s) eine Information weniger, nämlich die Information, ob s einen Baum beschreibt. Man hat jedoch eine Information weniger im Input und muss weniger Rechnungen durchführen, falls der Algorithmus auch mit dieser Fitness-Funktion funktioniert. 2 Randomisierte lokale Suche und (1+1) Evolutionärer Algorithmus Generell geht die Formulierung Wähle i ∈ {1, . . . , m} zufällig im Folgenden von einer Gleichverteilung aus. Es werden im Folgenden andere Algorithmen eingeführt, die man nutzen kann, um einen Minimalen Spannbaum zu finden. Diese werden detailliert auf ihre Laufzeit hin untersucht. Zunächst werden die beiden Algorithmen betrachtet. Randomisierte Lokale Suche wird wie im Folgenden Algorithmus 1 charakterisiert: Algorithmus 1 1. Wähle s ∈ {0, 1}m zufällig. 2. Wähle b ∈ {0, 1} zufällig. (a) Falls b = 0, wähle i ∈ {1, . . . , m} zufällig und definiere s0 , indem die i-te Stelle von s geändert wird. (b) Falls b = 1, wähle (i, j) ∈ {(k, l)|1 ≤ k < l ≤ m} und definiere s0 , indem die i-te und die j-te Stelle von s geändert wird. 3. Ersetze s durch s0 , falls w(s0 ) ≥ w(s). 4. Wiederhole 2 und 3 für immer. Bislang fehlt das Beende-Kriterium. Dies muss sich nach der erwarteten Laufzeit richten, die der Algorithmus braucht, um einen MST zu finden. Schritt 2 des Algorithmus beschreibt den Mutationsoperator bei RLS. Dieser wird bei (1 + 1) EA2 folgendermaßen gewählt: „Jede Stelle von s wird mit der Wahrscheinlichkeit 1/m geändert.“ 3 Lokale Veränderungen an Spannbäumen Sei wopt das Gewicht eines MST. Nun sollen Auswirkungen von Veränderungen am Kantenset in Bezug auf die Veränderung des Gewichtes untersucht werden. Dabei wird die Differenz w(s) − wopt betrachtet. 3.1 Lemma: Erzeugen eines MST aus einem beliebigen Spannbaum Sei s ∈ S ein Suchpunkt, der einen nicht-minimalen Spannbaum T beschreibt. Dann existiert ein k ∈ 1, . . . , n − 1 und k verschiedene akzeptierte 2-bit Flips, sodass die durchschnittliche 2 Der (1+1) Evolutionäre Algorithmus ist ein Algorithmus, der sich an der Evolution orientiert. Dies kann man sich folgendermaßen vorstellen: Es gibt immer Elterngenerationen, aus denen nach einem bestimmten Mutations-Operator Kindergenerationen erzeugt werden. In unserem speziellen Fall gibt es immer ein Element in der Elterngeneration und ein Element in der Kindergeneration. Daher der Name (1 + 1) EA. Allgemein besitzt ein (λ + µ) EA λ Elemente in der Elterngeneration und µ Elemente in der Kindergeneration. 3 Gewichtsverminderung dieser Flips bei mindestens (w(s) − wopt )/k liegt. Beweis Sei s∗ ein Suchpunkt, der einen MST T ∗ beschreibt. Seien E(T ) und E(T ∗ ) die Kantenmengen von T und T ∗ . Sei k := |E(T ∗ ) − E(T )| = |{e ∈ E : e ∈ E(T ∗ ) ∧ e ∈ / E(T )}|. Dann gibt es eine Bijektion3 α : E(T ∗ ) − E(T ) → E(T ) − E(T ∗ ), sodass: 1. α(e) liegt auf dem Kreis in T, der kreiert wird, indem e in T eingefügt wird ∀e ∈ E(T ∗ ) − E(T ). 2. w(α(e)) ≥ w(e) ∀e ∈ E(T ∗ ) − E(T ). Wähle die k 2-bit Flips, die durch Ändern von e und α(e) ∀e ∈ E(T ∗ )−E(T ) gefunden werden. Dadurch wird T in T ∗ überführt bei einem Gewichtsverlust von w(s) − wopt . Diesen Satz kann man vereinfachen, indem in Lemma 3.1 immer der gleiche Parameter k gewählt wird. Dazu erlaubt man nicht-akzeptierte 2-bit Flips mit einer Gewichtsverminderung definiert als 0. Wenn man zu den k 2-bit Flips aus Lemma 3.1 also n−k nicht-akzeptierte Flips hinzufügt, hat man immer genau n Flips. Der Gesamtgewichtsverlust liegt dann mindestens bei w(s)−wopt , d.h. der durchschnittliche Gewichtsverlust pro Flip bei mindestens (w(s)−wopt )/n. 3.2 Lemma: Erzeugen eines MST mit konstanter Anzahl an Flips Sei s ein Suchpunkt, der einen Spannbaum T beschreibt. Dann existiert eine Menge von n 2-bit Flips, sodass die durchschnittliche Gewichtsabnahme für diese Flips bei (w(s) − wopt )/n liegt. In einem dritten Lemma wollen wir sogar nicht-Spannbäume, aber zshg. Graphen akzeptieren, deren Gewicht durch 1-bit Flips verbessert wird, wenn diese einen Kreis zerstören. Wie anfangs angekündigt, werden nicht zshg. Graphen übergangen, da man in diesem Falle jede ZHK einzeln betrachten kann. 3.3 Lemma: Erzeugen eines MST aus einem zshg. Graphen Sei s ein Suchpunkt, der einen zshg. Graphen beschreibt. Dann gibt es eine Menge von n 2-bit Flips und eine Menge von m − (n − 1) 1-bit Flips, sodass die durchschnittliche Gewichtsabnahme dieser Flips bei mindestens (w(s) − wopt )/(m + 1) liegt. Beweis Zunächst finden wir m − (n − 1) 1-bit Flips, mit denen wir den zshg. Graphen zu einem Baum T verringern. Danach wenden wir auf T Lemma an. 4 Detaillierte Analyse von RLS und (1+1) EA für das MST-Problem Zunächst berechnen wir einige wesentliche Laufzeiten. Mithilfe der Laufzeiten kann man zeigen, dass RLS und (1+1) EA Spannbäume effizient konstruieren. Andererseits beweisen wir, dass die angegebene Grenze wirklich angenommen wird, die errechneten Laufzeiten also eine Bestabschätzung sind. Alle Laufzeiten sind im Folgenden erwartete Laufzeiten. 3 Der Beweis der Existenz dieser Bijektion ist keinesfalls elementar, vgl. [2] Mayr, Plaxton 1992. 4 4.1 Lemma: Laufzeit zur Konstruktion eines zshg. Graphen Die erwartete Zeit, bis RLS oder (1+1) EA mithilfe einer der beiden Fitness-Funktionen w oder w0 einen zshg. Graphen konstruiert haben, ist O(m log n). Beweis In akzeptierten Schritten wird die Anzahl der ZHK nie vergrößert. Sei s eine Kantenmenge mit k ZHK. Dann gibt es mindestens k − 1 Kanten, deren Hinzufügen die Anzahl der ZHK um 1 reduziert. (Ansonsten wäre der ursprüngliche Graph G nicht zshg.) Die Wahrscheinlichkeit, die Anzahl der Komponenten in einem Schritt um 1 zu verringern, 1 k−1 beträgt mindestens 21 · k−1 m für RLS und e · m für (1+1) EA. Dies kann man sich folgendermaßen klarmachen. Nur im schlechtesten Fall wird der Graph um genau eine ZHK verringert. Die Wahrscheinlichkeit ist also definitiv höher, als wenn in einem Schritt der Graph um genau eine ZHK verringert wird. Dafür sind die angegebenen Wahrscheinlichkeiten untere Grenzen. Es ist in RLS zu einer Wahrscheinlichkeit von 1/2 die Variable aus RLS b = 0 (d.h. Wahrscheinlichkeit für genau einen Flip ist 1/2). Nun muss eine der k − 1 Kanten gewählt werden. Dafür ist die Wahrscheinlichkeit k−1 m . Insgesamt erhalten wir also die für RLS angegebene Wahrscheinlichkeit als Mindestwahrscheinlichkeit. Für (1+1) EA ist die Berechnung ein wenig komplizierter. Wir machen uns vor allem den Vorfaktor 1/e klar. Dieser resultiert aus der Wahrscheinlichkeit p, dass genau eine Kante geplippt wird. Dafür gilt nach unserer Variante von (1+1) EA: ! p= m · 1 1 m 1 · = m−1 m 1 m−1+1 m−1 m−1 = m−1 = m−1 m m−1 1 1+ 1 m−1 = 1 = (m/(m − 1))m−1 m−1 > 1 e Für m → ∞ ist die Wahrscheinlichkeit 1/e der Grenzwert, der von oben angenähert wird. Für den Erwartungswert müssen somit mindestens das Inverse der Wahrscheinlichkeiten an Durchläufen durchgeführt werden. Da uns nur die Größenordnung interessiert und k−1 m = 1 k−1 Θ( e · m ), werfen wir RLS und (1+1) EA in einen Topf, indem wir beides durch e abschätzen. Um die erwartete Gesamtzeit zu erhalten, bis der Graph nur noch aus einer ZHK besteht, müssen wir noch aufsummieren: 1 e · m · 1 + ··· + n−1 = O(m log n)4 Wir haben jetzt also eine Abschätzung für die Laufzeit, um einen Suchpunkt mithilfe von RLS oder (1+1) EA in einen Suchpunkt eines zshg. Graphen zu verwandeln. Aus diesem Graphen wollen wir nun einen Spannbaum konstruieren. 4 Die Abschätzung mit der Landau-Notation kann man sich folgendermaßen klarmachen: Wenn man die Kurve f (x) = 1/x betrachtet, dann erhält man die Abschätzung: 1/2 + ... + 1/n ≥ ln(n) ∀n ≥ 2 (Integral!). Für n ≥ 3 gilt ln(n) > 1 und damit: 1 e · m · 1 + ... + ≤ e · m · (1 + ln(n − 1)) ≤ e · m · (ln(n) + ln(n − 1)) ≤ e · m · (ln(n) + ln(n)) n−1 ≤ 2 · e · m · ln(n) = O(m ln n) ∀m ∈ N ∀n ∈ N, n ≥ 3. 5 4.2 Lemma: Laufzeit zur Konstruktion eines Spannbaumes Es beschreibe s einen zshg. Graphen. Dann ist die erwartete Zeit bis RLS oder (1+1) EA einen Spannbaum mithilfe der Fitness-Funktion w konstruiert hat nach oben beschränkt durch O(m log n). Beweis Die Fitness-Funktion w ist so definiert, dass nur zshg. Graphen aus einer Zshgskomponente akzeptiert werden. Es enthalte s nun N ≤ m Kanten. Dann enthält s (da der durch s definierte Graph zshg. ist) einen Spannbaum aus n − 1 Kanten. Fall 1: s enthält n − 1 Kanten. Dann beschreibt s einen Spanning Tree. Fall 2: s enthält n−1 < N ≤ m Kanten. Dann gibt es mindestens N −(n−1) Kanten, deren Streichen die Anzahl der Kanten verringern würde. Im worst case sind das also m − (n − 1) Kanten. Wegen der Wahrscheinlichkeit 1e · m−(n−1) für (1+1) EA folgt wie in Lemma 4.1 als obere m Grenze: e · m · 1 + ··· + 1 m − (n − 1) = O(m · log(m − (n − 1))) = O(m log n) Man sollte sich einen wichtigen Unterschied zwischen RLS und (1+1) EA bezüglich w0 klarmachen. Bei RLS werden höchstens zwei Kanten verändert und es kann deswegen in einem Schritt nicht ohne Gewichtszunahme zu einer Erhöhung der Anzahl der Kanten kommen (auch bzgl. w0 , obwohl w0 nicht die Anzahl der Kanten evaluiert!). Dies ist bei (1+1) EA möglich. 4.3 Beispielgraph zur Bestapproximation Wir betrachten den in Abb. 1 dargestellten Beispielgraphen, mit dem wir beweisen, dass die erwartete Zeit bestmöglich abgeschätzt wird. Abbildung 1: Beispielgraph, zitiert aus [3] Neumann, Wegener 2007. Ein Graph bestehe aus p Dreiecken und am Ende aus einem vollständigen Graphen aus q Knoten (vgl. Abb. 1). Es gelten also für die Anzahl der Knoten und der Kanten: n = 2p + q und m = 3p + q(q − 1)/2. Wir betrachten den Fall p = n/4 und q = n/2, d.h. m = n2 /8 + n/2; folglich gilt m = Θ(n2 ). Die Kanten des vollständigen Graphen haben jeweils das Gewicht 1. Es sei a := n2 . Über den Graph kann folgendes noch gesagt werden: 1. Der Graph enthält 3n/4 Kanten im Dreiecksteil und (n + 2) n8 Kanten im Cliquen-Teil. 6 2. Die Gesamtzahl der Kanten im Dreiecksteil liegt in der Größenordnung Θ(n), die Gesamtzahl der Kanten liegt aufgrund des Cliquenteils in der Größenordnung Θ(n2 ). Dies werden wir später verwenden! (wir gehen von der späteren Definition von n schon hier aus.) 4.4 Vorbemerkungen zur Analyse des Beispielgraphen Für den Satz 4.5 brauchen wir einige Rechenwerkzeuge und wollen uns im Vorhinein schonmal einige der wesentlichen Gedanken beim folgenden Beweis klarmachen. 4.4.1 Wahrscheinlichkeit 1 − o(1) Uns interessieren für den Algorithmus vor allem sehr große Graphen, denn für kleine Graphen könnte man prinzipiell ja auch einen relativ schlecht implementierten Algorithmus verwenden, da die Rechenzeit aufgrund der Größe des Graphen ohnehin klein sein wird. Unser Algorithmus soll also vor allem für große Graphen gut sein, d.h. für Graphen mit einer großen Anzahl an Knoten n. Deswegen reicht uns für alle der folgenden Schritte eine Fehlerwahrscheinlichkeit von o(1). Dies bedeutet konkret: ∀ c > 0 ∃ n0 , sodass ∀ n ≥ n0 : Die Wahrscheinlichkeit, dass bei bei n Durchläufen durch RLS oder (1+1) EA nicht das gewünschte Ergebnis eintritt ist kleiner gleich c · 1 = c. Für große n wird also jede mögliche Grenze unterschritten und die Trefferwahrscheinlichkeit erfolgt mit nahezu Sicherheit (genau mit 1 − o(1)) eben. In anderen Worten gilt für den Fehler f (n), dass limn→∞ f (n) = 0. Mit diesem Hintergedanken wollen wir nun versuchen, dass in allen Schritten unseres Beweises immer die Wahrscheinlichkeit, nicht das gewünschte Ergebnis zu erreichen o(1) ist. 4.4.2 Chernoff-Ungleichungen Ein wichtiges Mittel für das Unterschreiten der Grenze o(1) sind die Chernoff-Ungleichungen, die hier als wichtiges Mittel für den kommenden Beweis genannt, aber nicht bewiesen werden sollen: Sei X1 , X2 , . . . , Xn eine Folge von n unabhängigen Bernoulli-Experimenten mit P [Xi = 1] = p und P [Xi = 0] = 1 − p. Es ist p · n die erwartete Anzahl an Erfolgen (Xi = 1) des Experiments. Dann gelten: 1. ∀δ > 0 : P hX min{δ, δ 2 } Xi ≥ (1 + δ) · p · n ≤ exp − p·n 3 i ! 2. ∀δ ∈ [0, 1] gilt: P hX δ2 Xi ≤ (1 − δ) · p · n ≤ exp − p · n 2 i ! In unserem Fall wird es so sein: Wir führen RLS oder (1+1) EA n mal durch und haben eine gewisse Wahrscheinlichkeit dafür, 7 dass der nächste Schritt, den wir uns gerade vornehmen, eintrifft. Die Chernoff-Ungleichungen liefern uns dann eine Abschätzung für die Abweichung vom Erwartungswert. Für beliebiges δ > 0 liegt die Wahrscheinlichkeit für eine Abweichung in o(1). Somit haben wir mit den Chernoff-Ungleichungen also ein Mittel, zu zeigen, dass unser Schritt in der im Abschnitt 4.4.1 behandelten Größenordnung liegt. 4.4.3 Markovsche Ungleichung Sei X nichtnegative, integrierbare Zufallsvariable und a > 0. Außerdem bezeichne E(X) den Erwartungswert. Dann gilt E(X) P [X ≥ a] ≤ . a Wir werden auch auf diese Ungleichung später zurückkommen, ohne sie jetzt hier zu beweisen. 4.5 Satz: Grenze für die erwartete Laufzeit Die erwartete Optimierungszeit bis RLS oder (1+1) EA einen MST finden ist für den Beispielgraphen Θ(m2 log n) = Θ(n4 log n). Beweis der Untergrenze5 Zunächst definieren wir einige Begriffe für den weiteren Verlauf des Beweises: Der Graph G werde partitioniert in den Dreiecks-Teil T und den Clique-Teil C. Jeder Suchpunkt x beschreibt eine Kantenmenge. C2 2a D2 2a 2a 3a C1 C3 D1 D3 Abbildung 2: Beispiel für ein komplettes (links) und ein getrenntes Dreieck (rechts) G2 B2 2a 2a 2a 3a B1 B3 G1 G3 Abbildung 3: Beispiel für ein schlechtes (links) und ein gutes Dreieck (rechts) Seien d(x) die Anzahl der getrennten Dreiecke („disconnected“), c(x) die Anzahl der kompletten Dreiecke („complete“), d.h. alle drei Kanten (vgl. Abb. 2), b(x) die Anzahl der schlechten 5 Es wird sich in diesem Rahmen auf den Beweis der Untergrenze beschränkt, obwohl es natürlich genauso wichtig ist, zu erkennen, dass man einen MST tatsächlich in der gewünschten Zeit findet. Eine Obergrenze von O(m2 (log n + log wmax )) wird in [3] Neumann, Wegener 2007 bewiesen. Für polynomiell beschränktes wmax entschspricht dies einer Obergrenze von O(m2 log n). 8 Dreiecke („bad“), d.h. genau eine 2a-Kante und die 3a-Kante, g(x) die Anzahl der guten Dreiecke („good“), d.h. genau die beiden 2a-Kanten (vgl. Abb. 3). Weiter bezeichnen conG (x), conT (x) und conC (x) die Anzahl der ZHK im Graphen und in den beiden Teilen der Partition. T (x) sei die Menge der Kanten aus dem Dreiecks-Teil, die durch x gewählt werden. Wir führen den Beweis des Satzes nun in mehreren Schritten, die man folgendermaßen skizzieren kann: 1. Wir zeigen, dass mit der Initialisierung des Programms bereits zu einer Wahrscheinlichkeit von 1 − o(1) für den Suchpunkt x folgendes gilt: b(x) = Θ(n) und conC (x) = 1. 2. Wir betrachten eine Phase der zunächst willkürlich erscheinenden Länge n5/2 (die gewählte Länge wird später begründet). Dann wird, falls b(x) = Θ(n) und conC (x) = 1 gelten, ein Suchpunkt y kreiert mit b(y) = Θ(n) und conG (y) = 1. D.h. wir verringern die Zusammenhangskomponenten des gesamten Graphen auf eine ZHK. 3. Wenn b(y) = Θ(n) und conG (y) = 1 gelten, so wird in einer Phase der Länge n5/2 ein Suchpunkt z kreiert mit b(z) = Θ(n) und conG (z) = 1 und T (z) ist ein Baum (die Kanten des Dreiecks bilden bereits einen (beliebigen) Baum). 4. Seien b(z) = Θ(n) und conG (z) = 1 und T (z) ist Baum gegeben. Dann ist die erwartete Zeit bis ein MST gefunden wird Ω(n4 log n). Dabei achten wir immer auf eine Fehlerhöchstwahrscheinlichkeit von o(1) um so die gewünschte Trefferwahrscheinlichkeit für große n zu finden. 4.5.1 Behauptung: Eigenschaften nach der Initialisierung Nach der Initialisierung gelten: b(x) = Θ(n) und conC (x) = 1. Beweis Die Wahrscheinlichkeit, dass ein Dreieck schlecht ist, beträgt 1/4. Da es n/4 Dreiecke gibt, folgt wegen der Chernoff-Ungleichung b(x) = Θ(n). Diese Folgerung mit der Chernoff-Ungleichung wollen wir uns noch etwas ausführlicher überlegen. Es gilt also p = 1/4 für die Wahrscheinlichkeit, dass ein schlechtes Dreieck kreiert wird. (Für jedes Dreieck ist jede der drei Kanten zu 50 % Wahrscheinlichkeit im Graphen. Insgesamt gibt es 8 gleichwahrscheinliche Möglichkeiten, von denen zwei zu einem schlechten Dreieck führen.) Da es n/4 Dreiecke gibt, wird das Experiment aus der Chernoff-Ungleichung n/4 mal durchgeführt. (Vorsicht, hier ist n ein wenig schlecht gewählt; für das n =: n̄ aus dem Satz der Chernoff-Ungleichung gilt also n̄ = n/4.) Somit ist der Erwartungswert für die Dreiecke n p · n = 14 · n4 = 16 = Θ(n). Dieser wird mit mit einer Wahrscheinlichkeit von 1 − o(1) (wegen den Chernoff-Ungleichungen) angenommen. Mit derselben Argumentation wird im Folgenden vielfach hantiert, ohne weiterhin so ausführliche Begründungen zu liefern. Sei v ein Knoten in C. v hat n/2−1 mögliche Nachbarn. Laut der Chernoff-Ungleichung ist die Wahrscheinlichkeit sehr hoch (sehr hoch bedeutet in unserem Fall immer 1 − o(1)), dass v mit mindestens n/6 Knoten verbunden ist. Für jeden weiteren Knoten ist die Wahrscheinlichkeit, mit keinem dieser n/6 Knoten verbunden zu sein bei (1/2)n/6 . Es ist also sehr unwahrscheinlich (d.h. Wahrscheinlichkeit ist o(1)), dass es mehr als eine ZHK in der Clique gibt. Damit ist der erste Abschnitt des Satzes im Rahmen der gewünschten Wahrscheinlichkeit gezeigt. 9 Im Folgenden werden die Schritte von RLS und (1+1) EA dadurch entschieden, wie viele der Dreiecks-Kanten verändert werden. Wegen den Fitness-Funktionen tritt der Fall nicht ein, dass durch das Entfernen einer Kante aus dem Cliquen-Teil mehrere ZHK entstehen. Sei nun ein k-Schritt ein Schritt, in dem k Dreieckskanten getauscht werden. (d.h. es müssen i.a. nicht notwendigerweise nur k Kanten bei einem k-Schritt verändert werden). Sei pk die Wahrscheinlichkeit für einen k-Schritt. Es gilt dann für RLS: p1 = Θ(n−1 ), p2 = Θ(n−2 ) und pk = 0 ∀k ≥ 3. Diese Wahrscheinlichkeiten kann man sich folgendermaßen klarmachen: Es gibt 3n/4 = Θ(n) Dreieckskanten, außerdem insgesamt Θ(n2 ) Kanten, d.h. 1 n p1 = · Θ 2 n2 Analog gilt p2 = 1 2 · Θ n n2 2 = Θ(n−1 ) = Θ(n−2 ). Für (1+1) EA und konstantes k berechnet sich die Wahrscheinlichkeit nach einem BernoulliExperiment: ! pk = 3n/4 k 1 m k 1 1− m 3n/4−k = Θ(nk m−k ) = Θ(n−k ) Nun betrachten wir die Phase der Länge n5/2 . 4.5.2 Behauptung: Finden des Suchpunktes mit einer ZHK Sei b(x) = Θ(n) und conC (x) = 1. In einer Phase der Länge n5/2 wird ein Suchpunkt y mit b(y) = Θ(n) und conG (y) = 1 produziert. Beweis Laut Lemma 4.1 wissen wir, dass die Wahrscheinlichkeit, einen zusammenhängenden Graphen zu finden, hoch genug ist. Es gilt nämlich wegen m = n2 /8+n/2, also O(m log n) = O((n2 /8+n/2) log n) = O(n2 log n) = o(n5/2 )6 die genannte Abschätzung. Sei nun also y der erste Suchpunkt, sodass conG (y) = 1. Zu zeigen bleibt also, dass b(y) = Θ(n). Alle 2-Schritte können den b-Wert höchstens um O(n1/2 ) verringern. (vgl. Vorbemerkungen) Welche Möglichkeiten hat ein 1-step, ein schlechtes Dreieck zu zerstören? 1. Es könnte die Kante eines schlechten Dreiecks entfernt werden. Dies würde conG (y) erhöhen. Gleichzeitig müsste also der conC -Wert erniedrigt werden. Dies ist wegen conC (y) = 1 nicht möglich. 2. Es könnte die fehlende Kante des Dreiecks eingefügt werden, folglich also conc (y) wieder erniedrigt werden. Dies ist auch nicht möglich, da sich das Gewicht des Graphen nur erhöhen würde. Ein Schritt, der den conC -Wert erhöht, muss notwendigerweise den conT -Wert um mindestens denselben Wert erniedrigen. Für jeden 1-Schritt wird dann aber das Gewicht des Graphens 6 Das letzte Gleichheitszeichen kann man nachrechnen, indem man limn→∞ 10 n2 log(n) n5/2 = 0 zeigt. erhöht und der Schritt würde von keiner der Fitness-Funktionen akzeptiert werden. Es werden also nur schlechte Dreiecke durch O(n1/2 ) 2-Schritte hinzugefügt. Dies impliziert, dass wir insgesamt Θ(n) + O(n1/2 ) = Θ(n) schlechte Dreiecke im Suchpunkt y haben. 4.5.3 Behauptung: Finden des Suchpunktes, der einen Baum darstellt Sei b(y) = Θ(n) und conG (y) = 1. In einer Phase der Länge n5/2 wird ein Suchpunkt z mit b(z) = Θ(n), conG (z) = 1 und T (z) ein Baum produziert. Beweis Wegen Behauptung 4.5.1 wissen wir, dass d(z) = 0. Wir müssen zeigen, dass b(z) = Θ(n) und dass z innerhalb der gewünschten Anzahl an Schritten gefunden wird. Damit T (z) ein Baum wird, müssen alle kompletten Dreiecke eliminiert werden. Es darf also nur noch gute und schlechte Dreiecke geben. Ein 1-Schritt kann nur dann akzeptiert werden, wenn er ein komplettes Dreieck in ein gutes oder schlechtes Dreieck verwandelt. (Es kann wegen der Fitness-Funktionen nicht die Anzahl der ZHK erhöht werden.) Weiterhin kann die Anzahl der kompletten Dreiecke nicht erhöht werden. Um ein komplettes Dreieck zu erhalten, muss gleichzeitig ein schon vorhandenes komplettes Dreieck in ein gutes oder schlechtes Dreieck umgewandelt werden, damit die Gewichtszunahme kompensiert wird. Sei nun c(x) = l, dann ist die Wahrscheinlichkeit, den c-Wert zu verringern mindestens 3l/(e · m) (vgl. Lemma 4.1). Wie in Lemma 4.1 folgt für die erwartete Zeit, bis alle kompletten Dreiecke eliminiert, sind O(m log n) = O(n2 log n). Analog zur Behauptung 4.5.2 wissen wir also, dass die Anzahl der Durchläufe ausreicht, um einen Baum zu finden. Außerdem wissen wir analog zur vorherigen Behauptung, dass die Anzahl der schlechten Dreiecke in den O(n1/2 ) 2-Schritten verringert werden kann, was b(z) = Θ(n) impliziert. 4.5.4 Behauptung: Mindestzeit zum Finden des MST Sei b(z) = Θ(n), conG (z) = 1, T (z) ein Baum. Die erwartete Zeit, um einen MST zu finden, ist dann Ω(n4 log n). Beweis Die Wahrscheinlichkeit, dass ein schlechtes in ein gutes Dreieck umgewandelt wird, liegt bei Θ(n−4 ). Dies setzt sich zusammen aus: Wahrscheinlichkeit für einen 2-Schritt (O(n−2 )), Wahrscheinlichkeit, dass die beiden Kanten gewählt werden (O(n−1 )). Damit liegt die erwartete Zeit für das Umwandeln eines schelchten in ein gutes Dreieck bei O(n4 ). 4 Um das b-te schlechte Dreieck in ein gutes Dreieck umzuwandeln, wird die Zeit O( nb ) benötigt. (Wahrscheinlichkeit mit b multiplizieren); insgesamt ist die erwartete Zeit, um alle schlechten Dreiecke in gute Dreiecke umgewandelt sind, da b von n bis 1 laufen muss, bei: Θ n4 X (1/b) = Θ(n4 log n).7 1≤b≤Θ(n) 7 Man muss sich jetzt eigentlich noch Gedanken machen, dass es keine schnellere Möglichkeit gibt, die schlechten Dreiecke zu eliminieren, indem man zeigt, dass k-Schritte für k 6= 2 die schlechten Dreiecke nicht schneller eliminieren. 11 Das Abschätzen der Summe mit dem Logarithmus läuft analog zu Lemma 4.1. Damit ist Satz 4.5 bewiesen. 5 Weiterführende Gedanken: Andere Mutations-Operatoren Die Algorithmen sind bis jetzt noch relativ einfach gehalten und es ist natürlich eine Vielzahl an Variationen denkbar. Wie man an den Lemmata 4.1 und 4.2 sieht, ist die Konstruktion eines Spannbaumes relativ einfach. Sobald ein Spannbaum konstruiert ist, ist es sinnvoll, wenn man Kindgenerationen (im Sinne von EA) verwendet, die die Anzahl der Kanten nicht verändern. Dazu könnten MutationsOperatoren folgendermaßen aussehen: 1. RLS: falls ein 2-bit Flip stattfindet, wird zufällig ja ein 0-bit und ein 1-bit getauscht. 2. (1+1) EA: beinhaltet die Kantenmenge s insgesamt k 1-bits, so wird jeder 1-bit mit der Wahrscheinlichkeit 1/k und jeder 0-bit mit der Wahrscheinlichkeit 1/(m − k) getauscht. Literatur [1] Kruskal, Joseph: On the shortest spanning subtree and the traveling salesman problem. In: Proceedings of the American Mathematical Society. 7 (1956), S. 48–50. [2] Mayr, Ernst W.; Plaxton, C. Greg: On the spanning trees of weighted graphs. In: Combinatoria 12 (1992), S. 433-447. [3] Neumann, Frank; Wegener, Ingo: Randomized local search, evolutionary algorithms, and the minimum spanning tree problem. In: Theoretical Computer Science 378 (2007), S. 32-40. Dazu muss man für alle anderen Schritte den Einfluss auf o(n4 log n) limitieren. 12