Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS 05 20.4

Preview:

Citation preview

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

Recommended