Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS 05 15.5.

Ähnliche Präsentationen


Präsentation zum Thema: "Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS 05 15.5."—  Präsentation transkript:

1 Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS 05 15.5.

2 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!]

3 Property Testing Allgemeiner: Eingaben aus X n Boolesche Funktion f auf der Menge Distanzfunktion D auf X n 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)

4 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}

5 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)=

6 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

7 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

8 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

9 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?

10 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

11 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/

12 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

13 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

14 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

15 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!

16 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!

17 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/(d 2 )) Fragen Somit testbar, beachte d · 1/

18 Beweis: Lemma 2.1. G sei -weit entfernt von Zusammenhang Dann hat G mindestens dn/4 Komponenten Intuition: Sei Grad <d überall Dann sind < dn durch< dn Kanten verbindbar, Distanz also < dn

19 Beweis: Lemma 2.1. Habe also G < dn/4 Komponenten Komponenten C 1,...,C l Behauptung: dn/2 Kanten reichen, um G zu verbinden Einfacher Fall: In jeder Komponente Summe der Grade d|C |-2, dann verbinde jeweils C i mit C i+1, Kanten: < dn/4 Sonst: C i habe Grad > d|C i |-2 Finde Spannbaum T i in C i Es gibt mind. 1 Kante in C i, die nicht in T i liegt Entferne diese Anzahl Kanten rein/raus: dn/2

20 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)

21 Bipartitheit -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

22 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


Herunterladen ppt "Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS 05 15.5."

Ähnliche Präsentationen


Google-Anzeigen