Kapitel 7 Sublineare Algorithmen – Property Testing – sublineare Approximationsalgorithmen 279 Sublineare Algorithmen • Laufzeit sublinear in der Länge der Eingabe → Eingabe kann nicht vollständig gelesen werden → Ausgabe (oft) approximativ Algorithmen (oft) randomisiert sublineare Approximationsalgorithmen Property Testing 280 • Speicherplatz sublinear Szenario: riesige Datenmengen, auf die nur in Form eines Datenstroms, d.h. sequentiell zugegriffen werden kann → nur ein kleiner Teil der Daten (eine Skizze) kann gespeichert werden Datenstromalgorithmen (nicht in dieser VL) 281 Beispiel: Eingabe: metrischer Raum über Menge P, gegeben mittels seiner Distanzmatrix D Aufgabe: Berechne Durchmesser d = max D[u, v ]. u,v ∈P Algorithmus: • Wähle zufällig gleichverteilt p ∈ P • Gib z = max D[u, p] aus u∈P Offensichtlich: Laufzeit O (n), also sublinear Frage: Wie gut “ist Ausgabe gemessen an d ? ” 282 Behauptung: d/2 ≤ z ≤ d X Sei d = D[u, v ]. Es gilt d = D[u, v ]≤ D[u, p] + D[p, v ]≤ 2z Dreiecksungleichung Symmetrie D[p, v ] = D[v , p] z ≥ d/2 X 283 Beispiel: Eingabe: ω ∈ {0, 1}n Frage: ω = 0n ? Exakte Lösung ω muss vollständig betrachtet werden Relaxation: Parameter ε > 0 Antwort Ja, wenn ω ∈ 0n Nein, wenn ω mehr als εn 1en enthält 284 • Wähle s = Θ(1/ε) Bitpositionen zufällig gleichverteilt • Überprüfe, ob Xi = 1 für ein i aus der gewählten Menge Wenn ja Ansonsten Antwort nein ja Fehlerwahrscheinlichkeit Pr( keine 1 in Stichprobe | mehr als εn 1en in ω ) < (1 − ε)s < e−εs =e−c 1 x (1 − x ) < e−1 Konstante 285 Kapitel 7.1 Property Testing – Einführung, Test auf Sortiertheit – Testen von Grapheigenschaften : Modelle Test auf Kreisfreiheit in gerichteten Graphen Test auf Graphzusammenhang – Testen visueller Eigenschaften: • Test auf Halbebene • Test auf Konvexität – Test auf Bipartitheit 286 Beispiel: ω = 0n ? approximative Entscheidung Beispiel: Durchmesser in metrischem Raum approximativer Wert Frage: Was verstehen wir unter Approximation eines Entscheidungsproblems? Property Testing Hier: Eigenschaft Nullstring sein“ ” 287 Definition: Property Testing ist die Berechnungsaufgabe zu entscheiden, ob ein gegebenes Objekt • eine vorgegebene Eigenschaft P erfüllt oder • weit entfernt“ ist, Eigenschaft P zu erfüllen. ” Beispiel: • Objekt: Funktion zu testende Eigenschaft: Monotonie • Objekt: Graph zu testende Eigenschaft: Kreisfreiheit 288 Entscheidungsproblem Eingaben/Objekte, die Eigenschaft P nicht erfüllen Eingaben/Objekte mit Eigenschaft P Property Testing Eingaben/Objekte mit Eigenschaft P 1111111 0000000 0000000 1111111 0000000 1111111 0000000 1111111 0000000 1111111 0000000 1111111 0000000 1111111 0000000 1111111 0000000 1111111 0000000 1111111 0000000 1111111 0000000 1111111 0000000 1111111 0000000 1111111 0000000 1111111 0000000 1111111 0000000 1111111 0000000 1111111 0000000 1111111 0000000 1111111 0000000 1111111 0000000 1111111 Universum“ ” Eingaben/Objekte, die weit entfernt“ ” vonP sind 289 Mögliche Anwendungen • Objekt kann zu groß sein, um vollständig betrachtet zu werden approximative Entscheidung notwendig • Exakte Lösung zu bestimmen, kann NP-hart sein • Schneller Testalgorithmus als Preprocessing für langsamen Entscheidungsalgorithmus: ♦ Verwirft Testalgorithmus, liefert er oft Zeugen“ ” ♦ Akzeptiert er, kann Entscheidungsalgorithmus sicherstellen, dass Eigenschaft erfüllt 290 Frage: Wann ist Objekt weit davon entfernt, eine Eigenschaft zu erfüllen? Notwendig: • Distanzmaß zwischen Objekten • Distanzparameter ε, 0 ≤ ε < 1 Typischerweise Distanz zwischen 2 Objekten O1 , O2 gegeben als Anteil des Objekts O1 , der verändert werden muss, um O2 zu erhalten. O1 ε-weit von Eigenschaft P, wenn Distanz zu jedem Objekt mit P größer als ε; ansonsten ist O1 ε-nah zu P 291 Beispiele: • Distanz zwischen Funktionen: Anteil der Elemente aus Definitionsbereich, für die sich Funktionswerte unterscheiden • Distanz zwischen Graphen G1 und G2 , die durch Adjazenzmatrizen AG1 und AG2 gegeben sind: Anteil der Matrixeinträge in AG1 , die sich von Einträgen von AG2 unterscheiden In Literatur häufig: Hamming Abstand, edit distance Einfügungen, Löschungen, Substitutionen 292 • Herkömmlicher Algorithmus: erhält vollständige Beschreibung des betrachteten Objekts als Eingabe • Testalgorithmus: darf Anfragen (queries) über lokale Struktur des Objekts stellen Art der erlaubten Anfragen hängt vom betrachteten Objekt ab. Beispiele: • Funktionen f : D W , Funktionswert f (x), x ∈ D ? • Graph mittels Adjazenzmatrix AG gegeben, Eintrag AG [i, j] ? 293 Qualität eines Testalgorithmus wird gemessen an • seiner Anfragekomplexität, Anzahl Anfragen, die er über Eingabe stellt, und • seiner Laufzeit, die zusätzliche Zeit für weitere Berechnungen angibt. schwierigste“ Eingaben ” müssen nicht richtig klassifiziert werden Relaxation der Anforderungen, dafür Erwartung, dass • so wenig Anfragen wie möglich, • Laufzeit sublinear, besser unabhängig von Eingabelänge 294 Definition: Ein ε-Testalgorithmus A für eine Eigenschaft P ist ein randomisierter Algorithmus, der für Distanzparameter ε • jedes Objekt mit Eigenschaft P mit Wahrscheinlichkeit mindestens 2 3 akzeptiert, • jedes Objekt, das ε-weit von P ist, mit Wahrscheinlichkeit mindestens 2 3 verwirft. (Keine Anforderung an A für Objekte, die keine der beiden Bedingungen erfüllen.) 295 Definition: Eigenschaft P ist ε-testbar, wenn ε-Testalgorithmus für P existiert, dessen Anzahl Anfragen nur von ε abhängt (konstant ist, wenn ε konstant ist). Eigenschaft P ist testbar, wenn P ε-testbar für alle ε > 0. 296 Beispiel: Sortiertheit / Monotonie Eingabe: Liste x1 , . . . , xn mit xi ∈ N, 1 ≤ i ≤ n Frage: Gilt xi ≤ xj für alle i, j ∈ {1, . . . n}, i < j ? Ziel: ε-Testalgorithmus mit Anfragekomplexität O logε n 1. Versuch: • Wähle zufällig gleichverteilt s Zahlen xi1 , . . . , xis mit ij ≤ ik für j ≤ k • Akzeptiere genau dann, wenn xij ≤ xik für ij ≤ ik 297 Gegenbeispiel: 1 0 2 1 3 2 4 3 5 4 6 5 ... Behauptung 1: Abstand der Liste von Eigenschaft 1 2 Sortiertheit mindestens X Behauptung 2: Wahrscheinlichkeit, dass Stichprobe der Größe s ≤ √ n 2 ein Paar mit Indizes 2j − 1, 2j, 1 ≤ j ≤ n2 , enthält, ist kleiner 1 3 Beweis: Ek ,l Ereignis, dass ik = 2j − 1, il = 2j, 1 ≤ k ≤ l ≤ s Pr (Ek ,l ) = n1 , S P Pr Pr (Ek ,l ) = Ek ,l ≤ k <l k <l s 2 · 1 n 298 Beispiel (fortgesetzt): 2. Versuch: • Wähle xi und verwirf genau dann, wenn xi > xi+1 Gegenbeispiel: 1 | 1 1{z1 1 1} 0 | 0 0{z0 0 0} n 2 n 2 Beobachtung: Von n − 1 aufeinanderfolgenden Zahlenpaaren ist nur 1 Zeuge“ ” für Unsortiertheit Ω (n) Wiederholungen notwendig für konstante Fehlerwahrscheinlichkeit 299 ε-Testalgorithmus mit Anfragekomplexität O Annahme: xi 6= xj für i 6= j log n ε Beobachtung: keine große Einschränkung, xi (xi , i) möglich • Wähle für s = 2ε zufällig xi1 , . . . , xis • Führe binäre Suche für jedes xij , 1 ≤ j ≤ s, durch. Verwirf, wenn ungeordnete Zahlen gefunden werden. • Akzeptiere, wenn binäre Suche für alle xij erfolgreich 300 Definition: Ein Algorithmus ist adaptiv, wenn seine Anfragen von den vorherigen Anfragen abhängen. 301 Offensichtlich: Algorithmus akzeptiert sortierte Listen einseitiger Fehler Sei x1 , . . . , xn ε-weit von Sortiertheit entfernt. xi Zeuge für Unsortiertheit, wenn binäre Suche nach xi fehlschlägt. Behauptung: Es gibt mehr als εn Zeugen. Wahrscheinlichkeit, dass Algorithmus fälschlicherweise akzeptiert: Pr(kein Zeuge in Stichprobe) < (1 − ε)s < e−εs = e−2 < 1 3 X 302 Beweis (Behauptung): z.z. Nichtzeugen sind zueinander sortiert Betrachte xi , xj , i < j. Sei u letzte Zahl, bevor binäre Suche nach xi und xj sich teilt. xi ≤ u ≤ xj , denn binäre Suche nach xi und xj erfolgreich und u kommt in beiden Suchpfaden vor. X 303 Testen von Grapheigenschaften Art der erlaubten Anfragen und Distanzmaß hängen von Darstellung ab Zwei Standardmodelle, die zu unterschiedlichen Modellen für das Testen von Grapheigenschaften führen: • Adjazenzmatrix-Modell • Adjazenzlisten-Modell – gradbeschränktes Modell – unbeschränktes Modell 304 • Adjazenzmatrix-Modell Existiert Kante (u, v ) ? • Gradbeschränktes Adjazenzlisten-Modell Gradschranke d, i-ter Nachbar von v , 1 ≤ i ≤ d ? (Weniger als i Nachbarn Antwort ∅) Eingabe soll verworfen werden, wenn mehr als εn2 bzw. εdn Kantenmodifikationen notwendig, um zu testende Eigenschaft zu erfüllen (symmetrische Differenz der Fkten, die die Graphen darstellen, dividiert durch Größe des Definitionsbereichs) 305 Ergebnisse über Testen von Grapheigenschaften am wichtigsten, wenn Anzahl Kanten mit Größenordnung des Definitionsbereichs übereinstimmt. Adjazenzmatrix-Modell z.B. für spärliche / dünne Graphen G mit o(n2 ) Kanten ungeeignet, denn G für jede konstante Distanz nah zu jeder Eigenschaft leerer Graphen. 306 Unbeschränktes Adjazenzlisten-Modell • Adjazenzlisten variabler Länge Grad d(v ) ? i-ter Nachbar von v , i ≤ d(v )? • Kein fester Definitionsbereich, obere Schranke m für Kantenanzahl. Distanz zweier Graphen ist Anzahl Kanten in genau einem Graphen dividiert durch m. • Eingabe soll verworfen werden, wenn mehr als εm Kantenmodifikationen notwendig, damit zu testende Eigenschaft erfüllt ist. 307 Kreisfreiheit Adjazenzmatrix-Modell: • ungerichtete Graphen G Sei ε > 2n (ansonsten Entscheidung deterministisch in poly( 1ε ) Zeit, indem G vollständig untersucht wird). – G höchstens εn2 Kanten G kreisfrei“, denn ” G ε-nah zum leeren Graphen – Lediglich sehr spärliche / dünne Graphen mit höchstens n − 1 < 2ε n2 Kanten können kreisfrei sein. Algorithmus schätzt Kantenanzahl ab und trifft Entscheidung in Abhängigkeit der geschätzten Kantenanzahl 308 • gerichtete Graphen können sehr dicht sein und trotzdem keine gerichteten Kreise enthalten Beobachtung: – G ε-weit von Kreisfreiheit entfernt G enthält große Teilmengen von Knoten, so dass jeder dieser Knoten große Anzahl ausgehender Kanten zu anderen Knoten dieser Teilmenge hat. – Stichprobe aus dieser Knotenmenge induziert mit großer Wkeit Subgraphen, der Kreis enthält 309 Definition: Ein gerichteter Graph ist kreisfrei, wenn er keine gerichteten Kreise enthält, d.h. ein gerichteter Graph G ist genau dann kreisfrei, wenn es eine bijektive Funktion Φ : V → {1, . . . , |V |} gibt, so dass für alle Kanten (v , u) ∈ E gilt: Φ(v ) < Φ(u). Eine Kante (v , u) ∈ E heißt verletzende Kante bzgl. Φ(·), wenn Φ(v ) > Φ(u) gilt. 310 Algorithmus: Kreisfreiheit (Adjazenzmatrix-Modell für gerichtete Graphen) 1. Wähle zufällige gleichverteilt eine Teilmenge U von 1 O log( ε )/ε Knoten aus. 2. Für jedes Knotenpaar v1 , v2 ∈ U überprüfe, ob (v1 , v2 ) ∈ E oder (v2 , v1 ) ∈ E gilt. 3. Überprüfe, ob der Subgraph über U einen Kreis enthält. Übernehme die Entscheidung. Satz: Algorithmus Kreisfreiheit ist einseitigerTestalgorithmus mit Laufzeit und Anfragekomplexität Õ ε12 . 311 Definition: Für v ∈ V sei O(v ) := {u | (v , u) ∈ E}. Für eine Knotenteilmenge W ⊆ V hat v einen geringen Ausgangsgrad bzgl. W , wenn |O(v ) ∩ W | ≤ 2ε n für einen festgelegten Parameter ε; ansonsten hat v einen hohen Ausgangsgrad bzgl. W . 312 Lemma 1: Ist G ein gerichteter Graph, der ε-weit von Kreisfreiheit entfernt ist, dann existiert eine Knotenteilmenge W ⊆ V mit 1 ε 2 mindestens 2 n Knoten, so dass jeder Knoten v ∈ W hohen Ausgangsgrad bzgl. W hat. Lemma 2: Sei W ⊆ V mit ∀v ∈ W : |O(v ) ∩ W | ≥ ε′ |W | für 0 < ε′ ≤ 12 . 1 ′ Für Θ log( ε′ )/ε zufällig gleichverteilt gewählte Knoten aus W gilt, dass der Subgraph über den ausgewählten Knoten mit Wkeit mindestens 9 10 einen Kreis enthält. 313 Beweis: Lemma 1 (Kontraposition) z.z. W existiert nicht G ist ε-nah an Kreisfreiheit ∀Z : Z ⊆ V und |Z | ≥ (ε/2)1/2 · n ∃v :v ∈ Z und v hat geringen Ausgangsgrad bzgl. Z ∃Φ : Φ : V → {1, . . . , |V |} und Φ bijektiv und Menge T aller verletzenden Kanten bzgl. Φ hat höchstens εn2 Elemente • Konstruktion von Φ und T in n Schritten/Phasen • In jedem Schritt wird einem noch unnummerierten Knoten eine neue Nummer zugewiesen und alle seine verletzenden Kanten entfernt. 314 Beweis (Fortsetzung): • Index l, Initialisierung l := n • Beginn einer Phase: Sei Z ⊆ V die Menge der noch unnummerierten Knoten. Initialisierung Z := V Solange |Z | ≥ (ε/2)1/2 n, Existenz von v aufgrund der – wähle einen Knoten v ∈ Z , der einen geringen Ausgangsgrad bzgl. Z hat – Φ(v) = l höchstens ε/2 · n, denn – l := l − 1 – T := T ∪ {(v, u) ∈ E | u ∈ Z } Annahme gesichert 315 Beweis (Fortsetzung): • |Z | < (ε/2)1/2 n – nummeriere Knoten aus Z beliebig zwischen 1 und l – alle ausgehenden Kanten von Knoten aus Z in die ” Menge Z“ werden zu T hinzugefügt −→ T enthält höchstens (n − (ε/2)1/2 n + 1) · (ε/2)n+((ε/2)1/2 · n)2 ≤ εn2 Kanten noch z.z. Es gibt keine weiteren verletzenden Kanten bzgl. Φ. Klar wegen Bildungsvorschrift“ für T X ” 316 Beweis: Lemma 2 Sei c ln(1/ε′ ) m= ε′ + 1 die Anzahl ausgewählter Knoten. c wird später bestimmt z.z. Wahrscheinlichkeit, dass jeder ausgewählte Knoten eine Kante zu einem anderen ausgewählten Knoten hat, ist mindestens 9/10 Seien v1 , . . . , vm die ausgewählten Knoten. Sei ξi das Ereignis, dass ein Knoten vj existiert mit (vi , vj ) ∈ E, 1 ≤ i ≤ m. 317 Beweis (Fortsetzung): ′ m−1 Pr (ξi )≤(1 − ε ) <e −(m−1)ε′ =e −cln(1/ε′ ) = (ε′ )c Pr ( m S Knoten zufällig gleichverteilt gewählt und jeder Knoten aus W hat mindestens ε′ |W | Kanten zu Knoten aus W ξi )≤ i=1 m P Pr (ξi ) < i=1 c ln(1/ε′ ) ( ε′ + 1) · (ε′ )c union bound Wir wissen: ε′ ≤ 1/2 c groß genug wählen, z.B. c ≥ 10, so dass höchstens 1/10 ist 318 Beweis: Satz – Laufzeit und Anfragekomplexität X – Korrektheit: • G kreisfrei X • G ε-weit von Kreisfreiheit entfernt: Lemma 1 −−−−−→ ∃W : W ⊆ V und |W | ≥ (ε/2)1/2 · n und alle v ∈ W haben hohen Ausgangsgrad bzgl. W n Wähle 2m · |W | Knoten zufällig gleichverteilt aus V . → Erwartungswert für die Anzahl der (nicht notwendigerweise verschiedenen) gewählten Knoten aus W mindestens 2m 319 Beweis (Fortsetzung): Chernoff −−−−→ Wkeit, dass weniger als m Knoten aus W 2 sind, nach oben beschränkt durch e m ≥ 12 1/10 ′ Sei ε := min{1/2, ε/2 · −( 21 ) ·m Def. hoher Ausgangsgrad n }. |W | bzgl. W n ·|W | |W | {z } Für jeden Knoten v ∈ W gilt: |O (v ) ∩ W | > ε/2 · Setze m := Θ(log(1/ε′ )/ε′ ). Lemma 2 | ≥ε′ −−−−−→ Wkeit, dass Kreis gefunden wird, mindestens 9/10 −→ Fehlerwahrscheinlichkeit nach oben beschränkt durch 1/10 + 9/10 · 1 10 = 19/100 320 Beweis (Fortsetzung): #Anfragen: 2m |Wn | = O (log(1/ε) · 1/ε) ≥ (ε/2)1/2 · n Θ(log(1/ε′ ) · 1/ε′ ) min{1/2, (ε/2) · n |W | } 321 Graphzusammenhang Definition: Graph G = (V , E) ist zusammenhängend, wenn für alle u, v ∈ V ein Weg zwischen u und v existiert. Eine Zusammenhangskomponente ist eine maximale Knotenmenge V ′ ⊆ V , so dass alle u, v ∈ V ′ durch einen Weg miteinander verbunden sind. 322 • Adjazenzmatrix-Modell: jeder Graph ist 1n -nah zu Graphzusammenhang (GZ) → für ε ≥ 1 n ist trivialer Algorithmus, der jeden Graphen akzeptiert, ε-Testalgorithmus. • Adjazenzlisten-Modell: random sampling ungeeignet für spärliche / dünne Graphen, denn Stichprobe enthält meistens“ keine Kante ” Verfeinerung der Technik notwendig 323 Idee: G ε-weit von GZ entfernt G enthält viele“ Zusammenhangskomp. (ZKs) ” mit wenigen“ Knoten ” Beh 1: G ε-weit von GZ entfernt G enthält mehr als εm + 1 ZKs Beh 2: G ε-weit von GZ entfernt G enthält mehr als 2ε d̄n ZKs mit jeweils weniger als 2/(εd̄) Knoten, wobei d̄ := m n durchschnittl. Knotengrad (unbeschränktes Adjazenzlisten-Modell) 324 Beh 1: G ε-weit von GZ mehr als εm + 1 ZKs Beweis: Annahme: Höchstens εm + 1 ZKs εm Kanten reichen, um alle ZKs zu verbinden Beh 2: G ε-weit von GZ G mehr als (ε/2)m ZKs der Größe kleiner als (2/ε) · n/m Beweis: • #ZKs > εm + 1 (Beh. 1) • Annahme: höchstens (ε/2)m ZKs mit jeweils weniger als (2/ε) · n/m Knoten #ZKs mit mindestens (2/ε) · n/m Knoten höchstens εm 2 325 G ε-weit von GZ entfernt Wkeit, dass zufällig gleichverteilt gewählter Knoten zu kleiner“ ZK gehört, größer als ” ε d̄n 2 n = 2ε d̄ Idee: Genügend viele“ Knoten zufällig gleichverteilt ” wählen und überprüfen, ob sie zu einer kleinen“ ZK gehören ” 326 Algorithmus: 1. Wähle zufällig gleichverteilt s = 4/(εd̄) Knoten aus V . 2. Für jeden ausgewählten Knoten v : BFS bis 2/(εd̄) verschiedene Knoten besucht worden sind oder kein weiterer Knoten erreicht werden kann. 3. Akzeptiere genau dann, wenn in Schritt 2 keine kleine“ ZK gefunden worden ist. ” Anfrage- und Zeitkomplexität 2 −3 −3 O (4/(εd̄)) 2/(εd̄) = O ε d̄ 327 Korrektheit: • G zusammenhängend X • G nicht zusammenhängend: Wkeit, G wird akzeptiert: 1 − εd̄ 2 4/(εd̄ ) < e−2 < 1 3 X Beobachtung: Abschätzung pessimistisch, denn • bei Abschätzung Wkeit, dass Knoten in kleiner ZK, Annahme jede kleine ZK hat nur einen Knoten • bei Abschätzung Anfragekomplexität Annahme, dass kleine ZKs maximal groß sind 328 Idee: • Geschickte Aufteilung der kleinen ZKs nach ihrer Größe in verschiedene Gruppen • Schubfachprinzip Gruppe mit Anzahl kleiner ZKs Anzahl Gruppen vielen kleinen ZKs Enthält G mehr als L := 2ε m kleine ZKs, so existiert i mit i ≤ l = ⌈log(2/(εd̄))⌉, so dass G mindestens L l ZKs enthält, deren Größe jeweils zwischen 2i−1 und 2i − 1 liegen Problem: i unbekannt alle möglichen i probieren 329 Algorithmus: GZ 1) Für i = 1 bis ⌈log(2/(εd̄))⌉ • wähle zufällig gleichverteilt mi = (8⌈log(2/(εd̄ ))⌉)/(2i εd̄ ) Knoten aus V und • starte für jeden ausgewählten Knoten einen BFS bis 2i verschiedene Knoten besucht worden sind oder kein weiterer Knoten erreicht werden kann. 2) Akzeptiere genau dann, wenn in Schritt 1 keine kleine“ ZK gefunden worden ist. ” 330 Satz: Algorithmus GZ ist ein ε-Testalgorithmus mit einseitigem Fehler. Die Anfrage- und Zeitkomplexität betragen 2 2 O log(1/(εd̄))/(ε d̄ ) = Õ(ε−2 d̄ −2 ). Beweis: Korrektheit: G nicht zusammenhängend Sei Cj Klasse der ZKs mit 2j−1 bis 2j − 1 Knoten und |Cj | ≥ L = l j−1 mindestens 2 ( 2ε m)/⌈log(2/(εd̄))⌉ |Cj | Knoten in ZKs aus Cj Wkeit, dass G akzeptiert wird: 1− mj j−1 ε 2 ( 2 d̄)/⌈log 2/(εd̄)⌉ 331 Beweis: Wkeit, dass G fälschlicherweise akzeptiert wird, nach oben beschränkt durch: 1− 8⌈log(2/(εd̄ ))⌉/(2j εd̄) j−1 ε 2 2 d̄/⌈log(2/(εd̄))⌉ ≤ e−2 ≤ 1 3 X Anfragekomplexität: ⌈log(2/(ε P d̄ ))⌉ i=1 2i mi · 2 = ⌈log(2/(εd̄))⌉/(εd̄) P 8 · 2i i=1 = 8⌈log(2/(εd̄))⌉/(εd̄) 2⌈log(2/(εd̄ ))⌉+1 − 2 2 2 = O ⌈log(2/(εd̄))⌉/(ε d̄ ) 332 Testen visueller Eigenschaften Darstellung diskreter s/w-Bilder: 0 1 0 1 M n−1 n−1 Eintrag 1 = b schwarz b weiß Eintrag 0 = Objekte = b {(i, j) | Mi,j = 1} Eigenschaft = b Menge von Objekten Testalgorithmus für 1 • Halbebene O ε 1 • Konvexität O ε4 333 Frage: ∃ω : ω ∈ R2 , ∃a ∈ R : Mi,j = 1 ⇔ ω T · (i, j) ≥ a Ecke .. . ··· Rand 0 0000 1111 00 11 11 0 00 11 00 11 0 1 0000 1111 00 11 0 1 00 11 00 11 00 11 0 1 0 1 0000 1111 00 11 0 1 00 11 00 11 00 11 0 1 00 11 0 1 0 1 00 11 0 1 00 11 0 1 00 11 · · · 0 1 00 11 . . 0 1 00 11 . 0 1 00 11 0 1 00 11 0 1 00 11 0 1 0 1 00 11 00 11 0 1111 1 0000 00 11 01 1 0000 1111 0 00 11 00 11 0000 01 1 01111 00 11 00 11 00 11 b Gerade durch p1 und p2 l(p1 , p2 ) = R1 (p1 , p2 ) und R2 (p1 , p2 ) = b Bereiche, in die l(p1 , p2 ) das Bild“ partitioniert ” 334 Beispiel: 111111 000000 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 000000 111111 Objekt entspricht Halbebene 11111111 00000000 00000000 11111111 00000000 11111111 00000000 11111111 00000000 11111111 00000000 11111111 00000000 11111111 00000000 11111111 00000000 11111111 Objekt weit entfernt von einer Halbebene 335 Algorithmus: Halbebene (HE) • Frag die 4 Ecken ab. Sei s die Anzahl der Ränder mit unterschiedlichen Ecken. – Ist s = 0, ziehe zufällig gleichverteilt lnε3 Pixel. Akzeptiere, wenn alle die gleiche Farbe haben wie die Ecken. Verwirf ansonsten. – Ist s = 2: für beide Ränder mit unterschiedlich gefärbten Ecken führe binäre Suche auf den Pixeln der jeweiligen Ränder durch, um 2 unterschiedlich gefärbte mit geringerem Abstand als ε2 · n zu finden 336 Algorithmus: HE (Fortsetzung) Sei w1 weißes Pixel, b1 schwarzes Pixel des einen Randes, w2 und b2 die des anderen Randes. Sei Wi = Ri (w1 , w2 ) und Bi = Ri (b1 , b2 ), i ∈ {1, 2}. O.B.d.A. nimm an, dass W2 und B1 sich überlappen, W1 und B2 jedoch disjunkt sind: Ziehe zufällig gleichverteilt 2 lnε 3 Pixel aus W1 ∪ B2 Akzeptiere, wenn alle Pixel aus W1 weiß und alle Pixel aus B2 schwarz sind. Verwirf ansonsten. – Ist s = 4 verwirf. 337 Klar: s = 1 oder s = 3 nicht möglich: 1) 2) 3) 4) s s s s =2 =2 =4 =2 Satz: Algorithmus HE ist ein einseitiger ε-Testalgorithmus mit Anfrage- und Zeitkomplexität O 1ε . 338 Beweis: • Laufzeit/Anfragekomplexität X • Korrektheit: – Bilder die HE darstellen werden immer akzeptiert, denn verworfen wird nur, wenn 4 Pixel gefunden werden, so dass gilt oder s=2 oder s=0 s=4 (siehe s = 2) 339 Beweis (Fortsetzung): w1 b1 W1 B2 w2 b2 < (ε/2)n • s=2: Beobachtung: Höchstens (ε/2) · n2 Pixel außerhalb von W1 ∪ B2 (die falsch“ gefärbt sein können) ” – Bilder die weit entfernt von einer Halbebene sind: • s=0: Es gibt mehr als εn2 falsche“ Pixel. ” Wkeit, dass keins dieser Pixel gefunden wird, höchstens (1 − ε)ln 3/ε < e− ln 3 = 1/3 • s=4:X 340 Beweis (Fortsetzung): Mindestens (ε/2)n2 falsche“ Pixel in W1 ∪ B2 ” Wkeit, dass akzeptiert wird, höchstens 2 ln 3 (1 − ε/2) ε < e− ln 3 = 1/3 X 341 Test auf Konvexität Definition: Ein Bild ist konvex, wenn die konvexe Hülle der schwarzen Pixel nur schwarze Pixel enthält. Idee: u u=Θ(ε2 n) u-Quadrat Skizze des Bildes bestimmen Ecken eines Frage: u-Quadrates Stimmt Bild mit Skizze überein? 342 Algorithmus: Test auf Konvexität 1. Frage alle Pixel an, für die die beiden Koordinaten durch ε2 n u:=⌊ 300 ⌋ teilbar sind. 2. Sei B die konvexe Hülle der gesehenen schwarzen Pixel. Wähle zufällig gleichverteilt 5ε Pixel innerhalb Bs . Verwirf, wenn ein weißes Pixel in B entdeckt wird. 3. Sei W die Vereinigung aller u-Quadrate, die kein Pixel aus B enthalten. Ist die Fläche“ von W mindestens 25 εn2 , wähle zufällig ” gleichverteilt 5ε Pixel aus W . Verwirf, wenn ein schwarzes Pixel in W entdeckt wird. Ansonsten akzeptiere. 343 F B W Idee: Test auf Konvexität (u.a.) z.z. F enthält wenig Pixel Rundgang durch die begrenzenden u-Quadrate 344 Lemma 1: In einer n × n Bildmatrix sei B die konvexe Hülle der schwarzen Pixel, deren Koordinaten beide durch u teilbar sind. Sei W die Menge aller u-Quadrate, die kein Pixel aus B enthalten. Sei F die Menge aller Pixel außerhalb von B ∪ W . Dann enthält F höchstens 4un Pixel. Beweis: F besteht nur aus Pixeln, die zu begrenzenden u-Quadraten gehören, wobei u-Quadrate begrenzend sind, wenn sie nicht vollständig in B oder in W liegen. Reicht z.z. # begrenzender u-Quadrate höchstens 4n u 345 Beweis (Fortsetzung): Idee: Begrenzende u-Quadrate im Uhrzeigersinn abgehen“, ” von Mittelpunkt zu Mittelpunkt Beobachtung: Grenze zwischen W und F immer links von Rundgang“ durch die begrenzenden ” u-Quadrate. • n u u-Zeilen“ ” • für jede u-Zeile“ höchstens einmal Bewegung“ in die ” ” Zeile darüber, höchstens einmal Bewegung“ in die Zeile ” nächste Folie) darunter ( • analog für u-Spalte“ ” höchstens 4 un begrenzende u-Quadrate 346 Behauptung: Es gibt u-Zeile “ von der aus mindestens 2mal die u-Zeile “ ” ” darüber erreicht wird. 347 Proposition: Sind alle Pixel, deren Koordinaten beide durch u teilbar sind, weiß, enthält die entsprechende Bildmatrix (eines konvexen Bildes) weniger als 2un schwarze Pixel. Beweis: Sei s(r ) Anzahl schwarzer Pixel in Zeile r . Beobachtung: Bild konvex schwarze Pixel einer Zeile liegen in aufeinanderfolgenden Spalten Alle Zeilen, deren Zeilennummer durch u teilbar sind, haben weniger als u schwarze Pixel. 348 Beweis (Fortsetzung): Sei r = k u + t, 0 ≤ t < u, Zeile mit s(r ) ≥ u ( Existiert keine Zeile r mir s(r ) ≥ u weniger als un schwarze Pixel X) Bild konvex s(r1 ) < s(r ) s(r2 ) < s(r ) wenn r2 < r1 < r oder r2 > r1 > r Nur die Zeilen k u + 1 bis (k + 1)u − 1 können mindestens u schwarze Pixel enthalten. insgesamt weniger als 2un schwarze Pixel X 349 Lemma 2: Für ein konvexes Bild enthält W weniger als 8un schwarze Pixel. Beweis: Pixel, deren beiden Koordinaten durch u teilbar sind und die zu W und F gehören, heißen Grenzpunkte. Beobachtung: Grenzpunkte sind immer weiß gefärbte Pixel. Das konvexe Bild kann sich nur zwischen den Grenzpunkten hindurchschieben“. ” Beobachtung: Summe der Winkel α 360◦ α W F 350 Beweis (Fortsetzung): α konvexes 0000000 1111111 0000000 1111111 Objekt 0000000 1111111 W 1111111 0000000 0000000 1111111 0000000 1111111 0000000 1111111 0000000 1111111 0000000 1111111 0000000 1111111 Beweisidee: • höchstens 3 mal α > 90◦ möglich Proposition jeweils weniger als 2un Pixel • α ≤ 90◦ F (!) konvexes Objekt bleibt direkt an Grenze zwischen F und W insgesamt höchstens 2un Pixel insgesamt weniger als 8un Pixel X α ≤ 90◦ : • Teilobjekt liegt in Kreis mit u, der die entsprechenden Grenzpunkte enthält 2 u Fläche ≤ 2 • höchstens 4n dieser Teilobjekte u 351 Satz: Algorithmus Test auf Konvexit ät ist ein ε-Testalgorithmus mit Anfragekomplexität O ε14 . Beweis: • Anfragekomplexität: • Korrektheit: ( un )2 +O 1 ε =O 1 ε4 – konvexes Bild: B enthält nur schwarze Pixel in Schritt 2 wird nicht verworfen Lemma 2 W enthält weniger als 8un schwarze Pixel W wird überprüft, d.h. W groß genug“ ” Wahrscheinlichkeit schwarzes Pixel zu finden kleiner 8un ε = 2 15 εn2 5 352 Beweis (Fortsetzung): union bound −−−−−−−→ Wahrscheinlichkeit, dass in Schritt 3 ε verworfen wird, kleiner 5ε · 15 = 13 X – Bildmatrix ε-weit von einem konvexen Bild entfernt: mindestens 2εn2 /5 weiße Pixel in B oder mindestens 2εn2 /5 schwarze Pixel in W (sonst falsch“ gefärbte Pixel umfärben, so das Bild ” konvex) • W insgesamt weniger als 2εn2 /5 Pixel mindestens 2εn2 /5 weiße Pixel in B • sonst o.B.d.A. mindestens 2εn2 /5 schwarze Pixel in W Wahrscheinlichkeit, dass in Schritt 3 akzeptiert wird, 5 2 X höchstens (1 − 5 ε) ε < e−2 < 31 353 Exkurs Chernoff-Schranken Satz: Seien X1 , . . . , Xn unabhängige Zufallsvariablen mit Xi ∈ {0, 1} und Pr(Xi = 1) = pi für i ∈ {1, . . . , n}. n n P P Xi und µ := E[X ] = pi : Dann gilt für X = i=1 i=1 i) für alle δ ≥ 0 und alle m ≥ µ: m δ e Pr(X ≥ (1 + δ)m) ≤ (1+δ) 1+δ ii) für alle 0 ≤ δ < 1: Pr(X ≤ (1 − δ)µ)≤ e−δ (1−δ)1−δ µ 354 Beweis: Vorüberlegung: Für x ∈ R gilt: 1 + x ≤ ex . Denn: f (x) = ex − (1 + x) f ′′ (x) = ex > 0 für x ∈ R =0 f ′(0) = e0 − 1 f (x) ≥ f (0) = 0 für alle x ∈ R 355 Beweis (Fortsetzung): Beobachtung: t ∈ R E[etX ] Unabh. von X1 , . . . , Xn " n # n Y Y tX t(X +...+Xn ) tXi 1 e E e i =E e =E = i=1 = n Y t 1 · (1 − pi ) + e · pi = i=1 ≤e p1 (et −1) · ...·e pn (et −1) i=1 n Y i=1 t 1 + pi (e − 1) Vorüberlegung für x = pi · (et − 1) =e (p1 +...+pn )(et −1) =e µ·(et −1) 356 Beweis (Fortsetzung): Zu i) δ=0: Pr(X ≥ m) ≤ 1 X δ>0: Pr(X ≥ (1 + δ)m) t>0 = Markoff-Ungl. ≤ ≤ tX t(1+δ)m Pr e ≥ e tX t −1) µ(e E e e ≤ (1+δ)tm t(1+δ)m e e m(et −1) e e(1+δ)tm t = ln(1 + δ) > 0 ≤ em(1+δ−1) e(1+δ)m ln(1+δ) eδm = (1 + δ)(1+δ)m 357 Beweis (Fortsetzung): Zu ii) δ=0: X Pr(X ≤ (1 − δ) · µ) t<0 = Markoff-Ungl. ≤ t = ln(1 − δ) < 0 ≤ Pr(etX ≥ et(1−δ)µ ) tX t −1) µ(e E e e ≤ (1−δ)tµ t(1−δ)µ e e −δ e (1 − δ)1−δ µ 358 Bipartitheit (Adjazenzmatrix-Modell) Definition: Ein Graph G = (V , E) ist bipartit, wenn V in 2 Mengen V1 , V2 partitioniert werden kann, so dass für alle Kanten (u, v ) ∈ E gilt: (u ∈ V1 und v ∈ V2 ) oder (u ∈ V2 und v ∈ V1 ) Beobachtung: Ist ein Graph G = (V , E) dargestellt durch seine Adjazenzmatrix ε-weit von Bipartitheit entfernt, so gilt, dass für jede Partitionierung V1 , V2 der Knotenmenge V mehr als εn2 der Kanten innerhalb von V1 oder V2 liegen. 359 Definition: Sei V1 , V2 eine Partitionierung der Knotenmenge V eines Graphen G = (V , E). Die Partitionierung wird bipartit genannt, wenn es keine Kanten in E gibt, die innerhalb von V1 oder V2 liegen. Kanten (u, v ) ∈ E mit u, v ∈ V1 oder u, v ∈ V2 heißen verletzende Kanten (bzgl. V1 , V2 ). Bemerkung: Es existiert ein deterministischer Linearzeitalgorithmus, der überprüft, ob ein Graph bipartit ist. 360 Ziel: ε-Testalgorithmus für Bipartitheit, der • bipartite Graphen stets akzeptiert und • Graphen, die ε-weit von Bipartitheit entfernt sind, mit Wkeit mindestens 2 3 verwirft und einen Zeugen“ liefert, dass G nicht bipartit ist ” Hier: Teilgraph, der nicht bipartit ist 361 Algorithmus: Bipartitheit 1. Wähle zufällig gleichverteilt m = Θ log aus V . 1 ε /ε 2 Knoten 2. Für jedes gewählte Knotenpaar u, v , überprüfe, ob (u, v ) ∈ E. 3. Überprüfe (BFS), ob der induzierte Subgraph bipartit ist. Übernimm das Ergebnis. Satz: Algorithmus Bipartitheit ist ein einseitiger ε-Testalgorithmus mit Laufzeit und Anfragekomplexität O log2 1ε /ε4 = −4 Õ ε . 362 Beweis: • Laufzeit / Anfragekomplexität X • Korrektheit: – bipartite Graphen X – Graphen, die ε-weit von Bipartitheit entfernt sind: Analyse (1.Versuch) Betrachte feste Partitionierung V1 , V2 von V . bzgl. V gefunden Wkeit, dass keine verletzende Kante wird, wenn m = Θ 1ε log 1δ Knotenpaare zufällig gleichverteilt gewählt werden, höchstens (1 − ε)m < e−εm ≤ δ (geeignet gewählte Konstante) 363 Beweis (Fortsetzung): union bound #Partitionen · δ als obere Schranke :-( Problem: 2n mögliche Partitionierungen δ < 2−n lineare Stichprobe erforderlich Neue Beweisidee: • Stichprobe besteht aus zwei Mengen: – U enthält die ersten m1 = Θ log /ε Knoten 2 1 – W erhält die übrigen m2 = Θ log ε /ε Knoten 1 ε • U induziert Partitionierung von V (# möglicher Partitionierungen viel kleiner als 2n ) • W evaluiert“die Partitionierung ” 364 Definition: Sei G = (V , E) und U, W ⊆ V . Für eine Partitionierung U1 , U2 von U heißt W nicht kompatibel bzgl. U1 , U2 , wenn keine Partitionierung W1 , W2 von W existiert, so dass U1 ∪ W1 , U2 ∪ W2 bipartit ist. Ziel: G = (V , E) ε-weit von Bipartitheit entfernt, dann ist mit hoher Wkeit (über Wahl von U und W ) W nicht kompatibel bzgl. einer beliebigen Partitionierung U1 , U2 von U U ∪ W induzieren Subgraph der nicht bipartit ist 365 Definition: Sei G = (V , E) und U ⊆ V . Sei U1 , U2 eine bipartite Partitionierung von U. Knoten w ∈ V heißt Zeuge gegen U1 , U2 , wenn es Knoten u1 ∈ U1 und u2 ∈ U2 gibt mit (w , u1 ) ∈ E und (w , u2 ) ∈ E. Knotenpaar w1 , w2 ∈ V heißt Zeuge gegen U1 , U2 , wenn (w1 , w2 ) ∈ E und es 2 Knoten u1 , u2 ∈ U1 oder u1 , u2 ∈ U2 gibt mit (w1 , u1 ), (w2 , u2 ) ∈ E. U2 U1 u2 u1 U1 u2 U2 u1 w1 w w2 366 z.z. Mit hoher Wkeit (über Wahl von U und W ) enthält W Zeugen gegen jede Partition von U. Vereinfachende Annahme: Jeder Knoten aus V \U hat Nachbarn in U. U1 U2 Bild zeigt von U1 , U2 induzierte Partitionierung von V : U2 ∪ Γ(U1 ), U1 ∪ V \{U ∪ Γ(U1 )} | {z } | {z } V2 V1 Zeuge gegen U1 , U2 V \{U ∪ Γ(U1 )} Γ(U1 )\U2 367 – Für jede der höchstens 2|U| Partitionen von V existieren mehr als εn2 verletzende Kanten. – Konstruktion V1 , V2 verletzende Kanten = b Zeugen gegen U1 , U2 W nicht kompatibel bzgl. U1 , U2 – Zeuge in W • Betrachte W als Menge von zufällig gleichverteilt gewählten Kanten. εn2 • Wkeit Zeugenpaar zu wählen größer n2 = ε • Wkeit, dass keine Kante aus W Zeugenpaar kleiner |W | (1 − ε) 2 • |W | = Θ( |U| ) ε • union bound Wkeit kleiner ( 61 ) · 2−|U| (geeignet gewählte Konstante) Wkeit W kompatibel zu einer Partitionierung von U kleiner 16 368 Jetzt: vereinfachende Annahme weglassen, d.h. es gibt Knoten in V , die zu keinem Knoten aus U benachbart sind Definition: Knoten v ∈ V hat hohen Grad, wenn mindestens Kanten zu v inzident sind. ε 4 ·n Lemma: 5 Mit einer Wahrscheinlichkeit von mindestens über der 6 24 4 ln Wahl von Knoten, haben alle bis auf ε ε | {z } U höchstens 4ε · n der Knoten aus V mit hohem Grad einen Nachbarn in U. 369 Beweis: Sei v ein Knoten mit hohem Grad. Wkeit, dass U keinen Nachbarn von v enthält, ist kleiner als ε |U| ε < 1− 4 24 erwarteter Anteil Knoten mit hohem Grad ohne Nachbarn in U kleiner Markoff ε 24 Wkeit, dass Anteil Knoten mit hohem Grad mehr als das 6fache über seinem Erwartungswert, höchstens 1 6 X 370 U1 U2 Bild zeigt von U1 , U2 induzierte Partitionierung von V : U2 ∪ Γ(U1 ), U1 ∪ V \{U ∪ Γ(U1 )} | {z } | {z } V2 V1 Jetzt: mehr als εn2 verletzende Kanten Γ(U1 )\U2 R Aber: nicht alle entsprechen Zeugen, diese mit Knoten aus R inzident 371 # Kanten inzident zu Knoten aus R kleiner als ε ε ·n·n ·n·n = + | 4 {z } | 4 {z } # Kanten inzident # Kanten inzident zu Knoten mit zu Knoten mit kleinem Grad hohem Grad ohne Nachbarn in U (mit Wkeit mindestens 56 ) ε 2 · n2 Analyse in diesem Fall weiter wie zuvor, |U| 1 2 wobei |W | = Θ ε = Θ log ε /ε entsprechend gewählt wird (Konstante entsprechend) 372 Fehlerwkeit für Graphen, die ε-weit von Bipartitheit entfernt sind, höchstens: Pr( U überdeckt nicht alle bis auf höchstens ” Knoten mit hohem Grad“) ε 4 ·n + Pr( kein Zeugenpaar gefunden“) ” ≤ 16 + 16 = 13 X 373 Kapitel 7.2 Sublineare Approximationsalgorithmen – Anzahl Zusammenhangskomponenten – Gewicht minimaler Spannbäume 374 Anzahl Zusammenhangskomponenten Sei G = (V , E) ein ungerichteter Graph in Adjazenzlistendarstellung mit maximalem Grad d und c die Anzahl der Zusammenhangskomponenten in G. Beobachtung: c= P 1 C = P C =n #Knoten in C 1 |C| P C Zusammenhangskomponente =n P C · z}|{ |C| 1 · | {z n} 1 |C| |C| = ˆ Wkeit, dass zufällig gleichverteilt gewählter Knoten in C liegt 1 Pr (v |C| ∈ C) 375 Definition: Sei X eineP Zufallsvariable mit Pr (X ≥ k ) = k1 . c = n Pr (X ≥ |C|) · Pr (v ∈ C) C Zwischenbetrachtung: • Wähle Knoten v zufällig gleichverteilt. • Starte BFS bis Zusammenhangskomponente von v vollständig besucht oder bis X Knoten besucht • Indikatorvariable 1, wenn Zusammenhangskomponente C vollständig besucht bc = 0, sonst Pr (bc = 1) = Pr (X ≥ |C|) · Pr (v ∈ C) 376 P Pr(bC = 1) =Pr(b = 1) C ր Indikatorvariable, die angibt, ob Zusammenhangskomponente von v vollständig besucht wird c = n · Pr(b = 1) = nE[b] = E[nb] Entwurf eines Algorithmus, dessen Ausgabe den Erwartungswert c hat Problem“: Ausgabe nimmt nur 2 Werte an ” große Streuung Verfeinerung notwendig 377 Vorgehensweise: (Exkurs) – Ausgabe eines Algorithmus: Zufallsvariable Y – Y1 , . . . , Yk unabhängige Kopien der Zufallsvariablen Y (gehören zu unabhängigen Ausführungen des Algorithmus) −→ neue Ausgabe Ỹ := k1 (Y1 + · · · + Yk ) Offensichtlich: E(Ỹ ) = E(Y ) Satz: Seien Y1 , . . . , Yk unabhängige Kopien der reelen Zufallsvariablen Y und sei Ỹ = var (Ỹ ) = ↑ Y1 +···+Yk . k Dann gilt var(Y ) . k Varianz 378 Beweis: Für beliebige reele Zufallsvariablen Z und a ∈ R gilt: var(aZ ) = a2 var(Z ). Für unabhängige Zufallsvariablen Z1 , . . . , Zl gilt außerdem: var(Z1 + · · · + Zl ) = var(Z1 ) + · · · + var(Zl ). Damit folgt: var(Ỹ ) = 1 k2 k P i=1 var(Yi ) = var(Y ) k 379 Satz: Für ε < 1 2 und δ > 0 sei Pr(|Y − y | ≥ δy ) ≤ ε. Seien Y1 , . . . , Yk unabhängige Kopien der Zufallsvariablen Y und sei Ỹ =median(Y1 , . . . , Yk ). Dann gibt es für jedes ε′ > 0 eine Zahl c = c(ε) > 0 unabhängig von k und ε′ , so dass für k ≥ c · log( ε1′ ) gilt: Pr(|Ỹ − y | ≥ δy ) ≤ ε′ 380 Beweis: Beobachtung: Median der Ausgabenwerte Y1 , . . . , Yk ∈ R mindestens (1 + δ)y → alle Werte oberhalb“ des Medians, # ⌊ k2 ⌋, ” mindestens (1 + δ)y (analog höchstens (1 − δ)y ) zu große Abweichung des Medians impliziert zu große Abweichung für mindestens ⌊ k2 ⌋ der Werte Zi Indikatorvariable, die angibt, ob Yi zu stark abweicht, d.h. 1, wenn |Yi − y | ≥ δy Zi := 0, sonst 381 Beweis (Fortsetzung): Z := Z1 + · · · + Zk Es gilt: Pr(|Ỹ − y | ≥ δy ) ≤ Pr(Z ≥ k2 ). E[Zi ]= Pr(|Yi − y | ≥ δy ) ≤ ε E[Z ] ≤ ε · k (ε < 12 ) Zi Indikatorvariable starke“ Abweichung von Ỹ von korrekter Ausgabe, ” nur wenn Z hohe Abweichung von ihrem Erwartungswert Chernoff-Ungleichung Pr(Z ≥ k2 )≤ Pr(Z − E[Z ] ≥ ( 12 − ε)k) 1 2 ≤e 3ε 1 ( log e 2 −2 ε< c = c(ε) := ( 1 −ε)2 k 2 − 2 3E[Z ] ≤e − ε) : für k ≥ c ( 1 −ε)2 k − 2 3ε −ln( ε1′ ) 1 log( ε′ ) . . . ≤e = ε′ X 382 Algorithmus: • Wähle v ∈ V zufällig gleichverteilt. • Wähle X nach Verteilung Pr(X ≥ k ) = k1 . • Führe BFS von v aus, bis (i) X Knoten besucht sind oder (ii) alle Knoten der ZK von v erreicht worden sind. • Im Fall (i) setze b = 0, sonst b = 1. Ausgabe: ĉ = n · b 383 Algorithmus: Approx #ZK • Wähle r = O ̺·ε1 2 Knoten v1 , . . . , vr zufällig gleichverteilt. • Für jeden Knoten vi , 1 ≤ i ≤ r : – wähle Xi nach Verteilung Pr(Xi ≥ k) = 1 k – führe BFS von vi aus, bis (i) Xi Knoten besucht sind oder (ii) alle Knoten der ZK von v erreicht worden sind. – Im Fall (i) setze bi = 0, sonst bi = 1. Ausgabe: ĉ = n r r P bi i=1 384 Ziel: Algorithmus Approx #ZKs berechnet mit Wahrscheinlichkeit 1 − ̺ einen Wert ĉ, der die Anzahl ZKs bis auf einen additiven Term von εn approximiert. Hilfreich: Tschebyscheff-Ungleichung Varianz von ĉ: var [ĉ] = var Unabhängigkeit der bi = n2 r2 n r r P bi = i=1 r var [bi ] n2 r2 var r P i=1 bi Varianz von bi : Indikatorvariable bi 2 2 2 var [bi ] = E bi − E [bi ] ≤ E bi = E [bi ] = c n 385 var [ĉ] = var [bi ] ≤ n2 r2 c n · r · var [bi ] −→ var [ĉ] ≤ nc r Tschebyscheff-Ungleichung: Pr (|ĉ − E [ĉ] | ≥ εn) ≤ Wähle r = var[ĉ] (εn)2 ≤ c ε2 rn ≤ 1 ε2 r 1 : ̺ε2 Pr (|ĉ − E [ĉ] | ≥ εn) ≤ ̺ maximaler ւ Knotengrad n X Laufzeit: E [T (n)] = O(dn) · Pr(Xi > n) + O(d · j) · Pr(Xi = j) | {z } j=1 für iten O(d) | {z } BFS-Durchlauf O(d) n P j(Pr(Xi ≥j)−Pr(Xi ≥j+1)) j=1 386 n P E[T (n)] = O(d) + O(d) j 1j − j=1 n X 1 = O(d) + O(d) j +1 j=1 | {z } =O (d log n) 1 j+1 Hn+1 −1 log n Insgesamt erwartete Laufzeit von O (r · d log n) = O d̺·ε . 2 Satz: Sei G = (V , E) ein Graph mit maximalem Knotengrad d der durch Adjazenzlisten gegeben ist. Mit Wahrscheinlichkeit 1 − ̺ kann seine Anzahl ZKs in erwarteter Zeit O d log n ̺ε2 mit einem additiven Term von εn approximiert werden. 387 Minimale Spannbäume Erinnerung: Definition: Ein ungerichteter Graph heißt Baum, wenn er zusammenhängend und kreisfrei ist. Sei G = (V , E) ein ungerichteter, zusammenhängender Graph. Ein Teilgraph T = (V , ET ) von G heißt Spannbaum von G, falls T ein Baum ist. Sei ω : E → R eine Gewichtsfunktion, dann ist das Gewicht eines Spannbaums die Summe der Gewichte seiner Kanten: P ω(T ) := ω(ET ) := ω(e). e∈ET 388 Ein minimaler Spannbaum ist ein Spannbaum mit minimalem Gewicht. Definition: Minimum Spanning Tree (MST) Gegeben: ungerichteter, zusammenhängender Graph G = (V , E) mit Gewichtsfunktion ω : E → R Gesucht: Spannbaum T von G mit minimalem Gewicht ω(T ) Variante: Gewicht ω(T ) eines minimalen Spannbaums T von G Beispiel: 10 4 2 7 11 9 12 7 2 4 5 8 5 1 389 Gewicht minimaler Spannbäume Frage: Was haben minimale Spannbäume mit ZKs zu tun? Beispiel: 2 a) 2 1 2 2 G 2 1 1 b) 2 1 1 2 1 1 1 G1 c 1 =# ˆ ZKs in G1 = ˆ ZK Beobachtung: In einem minimalen Spannbaum von G sind Knoten einer ZK in G1 durch Kanten mit Kosten 1 verbunden. ZKs sind durch Kanten mit Kosten 2 verbunden. → # Kanten mit Kosten 2 : c 1 − 1 390 G = (V , E) ungerichteter Graph mit maximalem Knotengrad d, Kantengewichte aus {1, . . . , W } mit W ≤ n/2 (im Beispiel Kantengewichte aus {1, 2}) Gewicht minimaler Spannbaum: 2(c 1 − 1) + 1(n − 1 − (c 1 − 1)) MST = n + c1 − 2 Verallgemeinerung: Gi = (V , E i ), wobei E i alle Kanten aus E, die höchstens Kosten i haben, enthält ci = ˆ # ZKs in Gi Behauptung: MST= n − W + W −1 P c i für W ≥ 2 i=1 391 Beweis: Beobachtung: # Kanten eines bestimmten Gewichts / mit bestimmten Kosten in einem minimalen Spannbaum ist unabhängig von Wahl des minimalen Spannbaums Sei αi Anzahl Kanten mit Gewicht / Kosten i in einem minimalen Spannbaum in G. P Es gilt αi = c l − 1. i>l MST= W P i=1 i · αi = WP −1 W P αi = l=0 i=l+1 W −1 P = −W + l=0 W −1 P cl − 1 l=0 cl = n − W + ↑ c0 = n W −1 P cl l=1 392 Algorithmus: Approx MST Für i = 1 bis W − 1: ĉ (i) = Approx # ZK (Gi , ε, ̺) Ausgabe: M̂ = n − W + W −1 P ĉ i i=1 Bemerkung: Gi nicht explizit gegeben Algorithmus läuft auf G und überprüft für jede angefragte Kante, ob ihr Gewicht höchtens i ist. 393 Lemma: Algorithmus Approx MST berechnet mit Wahrscheinlichkeit mindestens 1 − ̺ einen Wert M̂, der sich von MST um höchstens ε·MST unterscheidet. Die erwartete Laufzeit des Algorithmus ist O d·W ·log n ̺·ε2 . Beweis: • Laufzeit X W −1 W −1 P P i • Sei c = c und ĉ = ĉ i und r Anzahl der jeweils i=1 i=1 ausgewählten Knoten im Algorithmus Approx # ZK. 394 Beweis (Fortsetzung): Wir wissen: → n·c i var[ĉ ] ≤ r , var[ĉ] ≤ n · cr i 1≤i ≤W −1 Tschebyscheff-Ungleichung: Pr(|M̂ − MST| ≥ ε· MST) = Pr(|(n − W + ĉ) − (n − W + c)| ≥ ε(n − W + c)) Voraus. W ≤ n2 (n − W + c)2 ≥ ( n2 > nc = Pr(|ĉ − c| ≥ ε(n − W + c)) + c)2 = Pr(|ĉ − E[ĉ]| ≥ ε(n − W + c)) ≤ r≥ n·c r ·ε2 (n−W +c)2 1 ̺ε2 ≤ ̺ 395