Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Adjazenzmatrix-modell Gegeben sei Graph Adjazenzmatrix Frage: Zugriff auf Matrixelemente Matrixelemente sind 0 oder 1 Distanz zwischen Graphen G und H: Hamming Distanz der Matrizen /n 2
Adjazenz listen modell Gegeben sei Graph mit Grad d durch n ungeordnete Arrays von jeweils bis zu d anderen Knoten Freier Zugriff auf Arrays Einzelne Arrayelemente sind entweder Knotennamen oder leer dn Eingaben 2{1,…,n,;}
Adjazenz listen modell Distanz in der Repräsentation: Anzahl der Einträge, die geändert werden müssen Also sind Graphen weit entfernt, wenn dn Einträge verändert werden müssen Beachte: dn · n, also d· 1/
Bipartitheit Ein Graph heisst bipartit, wenn es eine Partition der Knoten in zwei Mengen gibt, so dass alle Kanten zwischen den zwei Mengen verlaufen Bipartitheitsproblem Bip: Entscheide, ob Graph bipartit ist Bip ist antimonotone Grapheigenschaft, also schwer zu entscheiden im Adjazenzmatrixmodell D(Bip)= Linearzeitalgorithmus existiert (Breitensuche)
Welche Repräsentation? Beide sinnvoll! Hier: Tester im Matrixmodell Listenmodell: [GR 96]: Test für Grad 3 Graphen mit =0.01 braucht (n 0.5 ) Fragen ! [GR97]: reicht auch, bis auf polylog. Faktor
Im Listenmodell Tester: von ¼ n 1/2 zufälligen Knoten aus jeweils einen kurzen random walk. Wenn Zyklus ungerader Länge gefunden, verwerfe, sonst akzeptiere Untere Schranke: Unterscheidung schwer zwischen zufälligen Graphen aus zwei Klassen: Ein Hamilton Pfad gerader Länge plus ein Matching Ein Hamilton Pfad gerader Länge plus ein Matching mit Zusatzbedingung
Bipartitheit im Matrixmodell -weit von Bip heisst: n 2 Kanten müssen entfernt werden, um bipartit zu werden D.h. für alle Partitionen V 1,V 2 der Knoten sind n 2 Kanten innerhalb V 1 oder innerhalb V 2
Tester Ziehe m zufällige Knoten m=O(log(1/ )/ 2 ) Frage alle Kanten zwischen solchen Knoten Teste, ob der Subgraph bipartit ist Wenn ja: akzeptiere, nein: verwerfe Laufzeit hängt nur von ab Klar: G ist bipartit, dann auch alle Subgraphen, d.h., bipartite Graphen werden immer akzeptiert Z.z.: -weit entfernte Graphen mit Ws. 2/3 verworfen
Testparadigma Ziehe einige zufällige Knoten Betrachte davon aufgespannten Subgraph Entscheide, ob hier eine Grapheigenschaft gilt (nicht unbedingt dieselbe) Generelle Vorgehensweise Funktioniert nicht im Listenmodell
Analyse des Testers O(log(1/ ) 2 / 4 ) Fragen und Zeit Auf bipartiten Graphen wird immer akzeptiert Theorem 3.1.: Der Tester verwirft -weit entfernte Graphen mit Ws. 2/3
Notationen G: Graph (n Knoten), -weit von bipartit entfernt Partition: der Knoten in zwei Mengen Immer n 2 Kanten intern, d.h. verlaufen nicht zwischen den beiden Mengen der Partition
Grundidee Betrachte Stichprobe (zufällig gezogenen Knoten) als zwei Mengen U, S aus Knoten von G Betrachte alle Partitionen von U in U 1 und U 2 G ist -weit, dann sind für alle Erweiterungen V 1, V 2 der Partition auf alle Knoten n 2 Kanten intern, d.h. verlaufen innerhalb von V 1 bzw. V 2 Hoffen, daß nun für alle Partitionen der Testmenge S mindestens eine Kante intern ist!
Vorbereitungen m 1 =|U|= O(log(1/ )/ ) m 2 =|S|= O(log(1/ )/ 2 ) Ein Knoten heisst wichtig, wenn sein Grad mind. /4¢ n ist Unwichtige Knoten habe nur /4¢ n 2 inzidente Kanten, also sind ¾ n 2 Kanten intern und zwischen wichtigen Knoten (per Partition)
Grundidee Betrachte Stichprobe (zufällig gezogenen Knoten) als zwei Mengen U, S aus Knoten von G U wird zuerst gezogen, dann eine Partition U 1,U 2 bestimmt, dann S gezogen, und getestet, ob es eine Partition von S gibt, bei der U 1,S 1 vs. U 2,S 2 keine internen Kanten enthält S ist Testmenge für U 1,2, durchlaufe dann alle U 1,2
Skizze des Beweises Entferne alle Knoten mit kleinem Grad Wenige Kanten verloren Wähle U zufällig, mit guter Ws. nur wenige Knoten nicht Nachbarn von U, vergesse restliche Wenige Kanten verloren Betrachte feste Partition von U Zufälliges S dient als Tester von U 1,U 2 : kann S partitioniert werden, so dass Subgraph bipartit?
Skizze des Beweises C: Nachbarschaft von U (restlicher Graph) Natürliche Partition von C: C 2 Nachbarn von U 1, und C 1 Rest von C Mit hoher Wahrscheinlichkeit gibt es in S Kanten, die in C 1 oder in C 2 liegen Dann gibt es eine Kante, die Bipartitheit verletzt Die Ws. Ist so gross, das der Test für alle Partitionen von U funktioniert
Vorbereitungen Eine Knotenmenge U überdeckt einen Knoten v, wenn v zu U adjazent Lemma 3.2.: Sei U zufällig. Mit Wahrscheinlichkeit 5/6 gibt es nur n/4 wichtige Knoten, die nicht von u überdeckt werden Interessant, denn wichtige Knoten schwer bipartit zu partitionieren, und so nur wenige verloren
Beweis 3.2. v wichtig. Ws. nicht überdeckt zu sein: Erwartete Anzahl nicht überdeckter wichtiger Knoten also /24¢ n Wahrscheinlichkeit, 6 mal mehr nicht zu überdecken ist durch 1/6 beschränkt Markov Ungleichung
Situation also Mit guter Wahrscheinlichkeit sind viele wichtige Knoten adjazent zu U. Insbesondere sind nur wenige Kanten ( n 2 /2) nicht in W (Menge der wichtigen Knoten) oder nicht in C (von U überdeckte Knoten) Also: für jede Knotenpartition sind n 2 /2 Kanten intern und in WÅC Nennen U dann gut
Verletzende Kanten Tester prüft, ob für alle Partitionen von U, für alle Partitionen von S, es eine interne Kanten gibt (implizit) Partition von U in U 1, U 2 Partition von C in C 2 : von U 1 überdeckt C 1 : C-C 2 Keine Kanten zwischen U 1 und C 1 Partition von C ist induziert von der von U (Keine Kanten zwischen U 1, C 1 )
Verletzende Kanten Eine Kanten heisst verletzend, wenn sie innerhalb von C 1 oder innerhalb von C 2 verläuft Es gibt mindestens /2 n 2 -|U| 2 > /3 n 2 verletzende Kanten Nur /2 n 2 nicht in C, wenige in U
Die Menge S S: Testmenge (gezogene Knoten in U oder in S) Lemma 3.3.: Sei U gut. U 1, U 2 sei Partition von U. Mit Wahrscheinlichkeit über die Wahl von S gibt es für jede Partition S 1,S 2 von S eine Kante in S 1 [ U 1, oder in S 2 [ U 2.
Konsequenz: Wahrscheinlichkeit, daß es eine Partition von U gibt, so daß keine interne Kante existiert, ist Fehlerwahrscheinlichkeit insgesamt also 1/3 denn 1/6 für U nicht gut, 1/6 hier (keine interne Kante intern gefunden).
Beweis Behauptung 1: Mit Ws. gibt es eine verletzende Kante in S, d.h. eine Kante in C 1 Å S oder C 2 Å S Behauptung 2: Wenn das so ist, hat jede Partition von S eine interne Kante in U 1, U 2, S 1, S 2
Behauptung 1 Mit Ws. gibt es eine verletzende Kante in S, d.h. eine Kante in C 1 Å S oder C 2 Å S Beweis: Es gibt /3 n 2 verletzende Kanten (in C 1, C 2 ). Betrachte Wahl von S als Wahl von m 2 /2 Paaren von Knoten. Jedes Paar ergibt keine verletzende Kante mit Ws. 1- /3 Ws., dass alle Paare keine verletzende Kante, ist
Behauptung 2 Es gibt eine verletzende Kante in S, d.h. eine Kante in C 1 Å S oder C 2 Å S Sei das (u,v) in C 2 z. B. Sei S 1, S 2 eine Partition von S Wenn u,v in S 1 oder in S 2 :OK Sonst: in U 1 [ S 1
Andere Sichtweise Wenn ein Graph -weit von Bipartitheit entfernt ist, Dann sind 2/3 aller Subgraphen auf k=k( ) Knoten nicht bipartit, für ein konstantes k abhängig von
Noch eine Bemerkung Beste bekannt Schranken: 1/ 2 ¢ polylog1/ Fragen reichen (1/ ) notwendig