black box algorithmen hartmut klauck universität frankfurt ss 05 15.5
TRANSCRIPT
Black Box Algorithmen
Hartmut KlauckUniversität FrankfurtSS 05
15.5.
Property Testing
Property Testing: Alle Graphen mit der Eigenschaft sollen akzeptiert
werden (mit Ws. 2/3) Alle Graphen, die weit von der Eigenschaft sind,
sollen verworfen werden (mit Ws. 2/3) Alle anderen Graphen: egal
Komplexität eines Testers: Anzahl der Fragen/Zeit Im allgemeinen sind Tester randomisiert! Eine Eigenschaft heisst testbar, wenn sie einen Tester
besitzt, der obigen Anforderungen genügt, und der in Zeit f(1/) läuft
Zeit/Fragen zum Beispiel log(1/) oder poly(1/) oder exp(1/) [wichtig!]
Property Testing
Allgemeiner: Eingaben aus Xn
Boolesche Funktion f auf der Menge Distanzfunktion D auf Xn
Eingaben mit f(x)=1 werden akzeptiert mit Ws. 2/3
Eingaben mit D(x,y)¸ für alle y mit f(y)=1 werden verworfen mit Ws. 2/3
Kosten: Anzahl der Fragen nach Position i der Eingabe (Element von X)
Für Grapheigenschaften
G,H Graphen, P Eigenschaft D(G,H)=# zu verändernde Kanten/ Entspricht normalisierter Hamming
Distanz zwischen Matrizen G und H D(G,P)=min{D(G,H): H hat P}
Graphzusammenhang
Ein ungerichteter Graph heisst zusammenhängend, wenn es zwischen jedem Paar von Knoten einen Weg gibt
Sei Connect das Problem zu entscheiden, ob ein Graph zusammenhängend ist (dann Connect(G)=1)
Klar: Connect ist monotone Grapheigenschaft
Theorem 2.1: D(Connect)=
Beweis
Adversary Methode: Algorithmus fragt Kanten, Gegner
beantwortet Fragen Angenommen Algo stellt weniger als
Fragen Strategie des Gegners:
Sage immer: “Keine Kante”, ausser dadurch wird der Graph unzusammenhängend
Beweis
Genauer: Im Spiel werden Kanten des vollständigen
Graphen gefärbt Algo wählt nächste Kante, Gegner
entscheidet, ob Kante rot oder blau (rot: ist nicht vorhanden, blau: ist vorhanden)
Gegner gewinnt, wenn die letzte Kante entscheidet, ob blaue Kanten alle Knoten als zusammenhängenden Graphen verbinden oder nicht
Beweis
Strategie des Gegners: Auf Frage nach einer Kante (u,v):
Wenn es noch einen möglichen Spannbaum für alle Knoten mit ungefärbten und blauen Kanten gibt, ohne (u,v), dann rot, sonst blau
Behauptung: Gegner gewinnt Angenommen (i,j) wurde nicht gefragt/gefärbt, aber Algo
gibt eine Antwort Dann muss der Graph der blauen Kanten
zusammenhängend sein, Antwort also: ja• Invariant: es gibt einen Spannbaum aus blauen und
ungefärbten Kanten Daher muss schon ein Weg i nach j bekannt sein (blaue
Kanten) Sei (k,l) letzte gefragte Kante auf einem solchen Weg Widerspruch, denn Gegner hätte (k,l) nicht blau gefärbt
Property Tester für Connect? Angenommen zusammenhängende Graphen sollen
akzeptiert werden Jeder Graph ist höchstens n-1 Kanten von einem
zusammenhängenden entfernt, also Distanz ¼ 1/n Für >1/n reicht es also aus, jeden Graphen zu
akzeptieren Umgekehrt, angenommen nicht zusammenhängende
Graphen sollen akzeptiert werden, weit davon entfernte nicht Hier kann ein Knoten mit n-1 Kantenentfernungen
isoliert werden Ist das Problem trivial?
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,;} Untere Schranke: D(Connect)=dn Beweis: Übung
Adjazenz “listen” modell
Distanz in der neuen 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/
Property Tester für Connect
Idee: Wenn ein Graph weit entfernt davon ist, zusammenhängend zu sein, gibt es viele Komponenten
Werkzeug: Zusammenhang kann in linearer Zeit durch Breitensuche entschieden werden
Breitensuche im Modell: Finde alle Nachbarn in Zeit d
Property Tester für Connect
Algorithmus: Wähle m=16/(d) Knoten zufällig Für alle Knoten mache eine Breitensuche,
und teste, ob• mindestens 8/(d) Knoten gesehen werden• oder Komponente erschöpft
Wenn zweiter Fall jemals auftaucht, Ausgabe “nein”, sonst ”ja”
Idee: Weit von connected, dann viele Komponenten, also normalerweise klein, sonst gar keine kleine Komponente
Property Tester für Connect
Klar: Wenn G zusammenhängend, dann wird nie verworfen
Wenn G weit von zusammenh., dann gibt es viele Komponenten, formal:
Lemma 2.1:Sei G -weit entfernt von “Zusammenhang”, dann hat G mindestens dn/4 Komponenten hat G mindestens dn/8 Komponenten der Grösse ·
8/(d) Also: viele Komponenten sind klein, Tester wird eine
kleine mit hoher Ws. finden und den Graphen verwerfen
Analyse
Lemma 2.1.:Sei G -weit entfernt von “Zusammenhang”, dann hat G mindestens dn/4 Komponenten hat G mindestens dn/8 Komponenten der
Grösse ·8/(d) Beweis Teil 2 aus 1:
Wenn es ·dn/8 Komponenten mit·8/(d) Knoten gibt, gibt es mehr als dn/8 Komponenten mit mehr als 8/(d) Knoten, also mehr als n Knoten!
Analyse
Angenommen Lemma 2.1. gilt: Sei G -weit von Zusammenhang entfernt und habe
daher mindestens dn/8 Komponenten der Grösse ·8/(d)
Wahrscheinlichkeit eines Knoten, in einer kleinen Komponente zu liegen, ist
Also mindestens #kleine Komponenten / n ¸ d/8 Also ist mit hoher Wahrscheinlichkeit einer der zufällig
gewählten Knoten in einer solchen. Dann wird verworfen!
Analyse
Anzahl Fragen: Sample size: m=16/(d)Aufgeben, wenn 8/(d) Knoten in
Komponente, jeweils Zeit d um Nachbarn zu finden
Also ·m ¢ 8/(d) ¢ d · O(1/(d2)) Fragen
Somit testbar, beachte d · 1/
Beweis: Lemma 2.1.
G sei -weit entfernt von Zusammenhang
Dann hat G mindestens dn/4 Komponenten
Intuition:Sei Grad <d überallDann sind <dn durch<dn Kanten
verbindbar, Distanz also <dn
Beweis: Lemma 2.1.
Habe also G <dn/4 Komponenten Komponenten C1,...,Cl Behauptung: dn/2 Kanten reichen, um G zu
verbinden Einfacher Fall: In jeder Komponente Summe
der Grade d|C|-2, dann verbinde jeweils Ci mit Ci+1, Kanten: <dn/4
Sonst: Ci habe Grad > d|Ci|-2• Finde Spannbaum Ti in Ci
• Es gibt mind. 1 Kante in Ci, die nicht in Ti liegt• Entferne diese• Anzahl Kanten rein/raus: dn/2
Bipartitheit
Ein Graph heisst bipartit, wenn es eine Partition der Knoten in zwei Mengen gibt, so dass alle Kanten zwischen den zwei Mengen verlaufen
Betrachten Adjazenzmatrixmodell Distanz: Anzahl zu verändernde Kanten/
Bipartitheitsproblem Bip: Entscheide, ob Graph bipartit ist
Bip ist antimonotone Grapheigenschaft, also schwer D(Bip) maximal
Linearzeitalgorithmus existiert (Breitensuche)
Bipartitheit
-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ällig 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