black box algorithmen hartmut klauck universität frankfurt ss 05 20.4
TRANSCRIPT
Black Box Algorithmen
Hartmut KlauckUniversität FrankfurtSS 05
20.4.
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 /n2
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 (n0.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:n2 Kanten müssen entfernt werden, um bipartit zu werden
D.h. für alle Partitionen V1,V2 der Knoten sind n2 Kanten innerhalbV1 oder innerhalb V2
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 ZeitAuf 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 MengenImmer n2 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 U1 und U2 G ist -weit, dann sind für alle Erweiterungen
V1, V2 der Partition auf alle Knoten n2 Kanten intern, d.h. verlaufen innerhalb von V1 bzw. V2
Hoffen, daß nun für alle Partitionen der Testmenge S mindestens eine Kante intern ist!
Vorbereitungen
m1=|U|= O(log(1/)/) m2=|S|= O(log(1/)/2)
Ein Knoten heisst wichtig, wenn sein Grad mind. /4¢ n ist
Unwichtige Knoten habe nur /4¢ n2 inzidente Kanten, also sind ¾ n2 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 U1,U2 bestimmt, dann S gezogen, und getestet, ob es eine Partition von S gibt, bei der U1,S1 vs. U2,S2 keine internen Kanten enthält
S ist Testmenge für U1,2, durchlaufe dann alle U1,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 U1,U2: kann
S partitioniert werden, so dass Subgraph bipartit?
Skizze des Beweises
C: Nachbarschaft von U (restlicher Graph) Natürliche Partition von C: C2 Nachbarn von
U1, und C1 Rest von C Mit hoher Wahrscheinlichkeit gibt es in S
Kanten, die in C1 oder in C2 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( n2/2) nicht in W (Menge der wichtigen Knoten) oder nicht in C (von U überdeckte Knoten)
Also: für jede Knotenpartition sind n2/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 U1, U2
Partition von C in C2 : von U1 überdeckt C1: C-C2
Keine Kanten zwischen U1 und C1
Partition von C ist induziert von der von U(Keine Kanten zwischen U1, C1)
Verletzende Kanten
Eine Kanten heisst verletzend, wenn sie innerhalb von C1 oder innerhalb von C2 verläuft
Es gibt mindestens /2 n2-|U|2> /3 n2 verletzende KantenNur /2 n2 nicht in C, wenige in U
Die Menge S
S: Testmenge (gezogene Knoten in U oder in S)
Lemma 3.3.: Sei U gut. U1, U2 sei Partition von U. Mit Wahrscheinlichkeit
über die Wahl von S gibt es für jede Partition S1,S2 von S eine Kante inS1[ U1 , oder in S2 [ U2.
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 C1Å S oder C2Å S
Behauptung 2:Wenn das so ist, hat jede Partition von
S eine interne Kante in U1, U2, S1, S2
Behauptung 1
Mit Ws. gibt es eine verletzende Kante in S, d.h. eine Kante in C1Å S oder C2Å S
Beweis: Es gibt /3 n2 verletzende Kanten (in C1, C2). Betrachte Wahl von S als Wahl von m2/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 C1Å S oder C2Å S
Sei das (u,v) in C2 z. B.
Sei S1, S2 eine Partition von S
Wenn u,v in S1 oder in S2:OK
Sonst: in U1[ S1
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