Effiziente Algorithmen

Slides:



Advertisements
Ähnliche Präsentationen
Christian Scheideler SS 2009
Advertisements

Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung
Man bestimme den „minimalen aufspannenden Baum“ des Graphen.
Minimum Spanning Tree: MST
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
ADS Vorlesung Prof. Dr. W. Conen, FH Gelsenkirchen
Kapitel 6: Klassifizierung von Sortiertechniken
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Approximationsalgorithmen …liefern in polynomieller.
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts
Seminar parallele Programmierung SS 2003
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Minimum Spanning Tree: MST
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Diskrete Mathematik II
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Effiziente Algorithmen
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation
Information und Kommunikation
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Kapitel 8: Graphalgorithmen 8. 1 Grundlagen 8
Kapitel 8: Graphalgorithmen 8. 1 Grundlagen 8
Analyse der Laufzeit von Algorithmen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Gliederung der Vorlesung
 Präsentation transkript:

Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS 06 30.5.

Linearzeit Algorithmen? Berechnung minimaler Spannbäume Wenn m¸ n log n erreichen wir Linearzeit mit Prims Algorithmus Sonst? Es ist bekannt, dass minimale Spannbäume in Laufzeit O(m (m,n)) berechnet werden können, für die inverse Ackermann Funktion  (m,n)· 4 für alle denkbaren Eingaben Algorithmus ist sehr komplex

Linearzeit Unser Ziel ist ein Linearzeit Algorithmus, der randomisiert ist Wir brauchen einen weiteren Algorithmus als Basis: Boruvka

Boruvka Idee: An jedem Knoten wählen wir die billigste Kante (diese ist somit leicht für einen Schnitt) Wir kontrahieren die so gebildeten Knotenmengen und iterieren Nach O(log n) Phasen alles kontrahiert

Boruvka Eine Unterroutine [„Boruvka Phase“] Eingabe: Graph G, Gewichte W (paarweise verschieden) Bestimme für jeden Knoten u eine kleinste inzidente Kante eu={u,v} Betrachte den Graphen G‘=(V,[u {eu}) und bestimme dessen Zusammenhangskomponenten Kontrahiere alle Zusammenhangskomponenten zu Knoten in einer neuen Knotenmenge V‘ Durchlaufe Kantenmenge E von G: Entferne alle Selbstkanten (für V‘) Ersetzte Mehrfachkanten durch die Kante kleinsten Gewichts.

Boruvka Sortiere alle Kanten Iteriere Boruvka Phasen, bis nur noch ein Knoten übrig ist In jeder Phase speichere Kanten eu. Gib die gespeicherten Kanten aus.

Implementierung Schritt 1 und 2 mit Adjazenzlisten Speichere Zusammenhangskomponenten als Pointer auf einen Repräsentantenknoten (Wurzel des Suchbaums) Schritt 3 so implizit Schritt 4: durchlaufe alle Kanten (aufsteigendes Gewicht) Füge alle Kanten in neue Adjazenzliste ein, ausser Selbstkanten bezüglich V‘ Ignoriere Mehrfachkanten implizit: später wird einfach die leichteste Kante als die erste in der Liste bestimmt Laufzeit einer Boruvka Phase somit O(n+m)

Laufzeit Eine Knoten heisse aktiv, wenn er nach Phase i noch im Graphen vorhanden ist, d.h. noch als Repräsentant einer Zusammenhangskomponente In jeder Runde wird die Anzahl aktiver Knoten mindestens halbiert: Jeder Knoten sucht sich einen Nachbarn Im worst case bilden die gewählten Kanten ein Matching Laufzeit damit O(m log n)

Korrektheit Wir wählen die Kanten eu als Kanten des Spannbaums Zu zeigen: Diese bilden Spannbaum: pro Phase wählt jeder Knoten genau einen Nachbarn Zyklus bei dieser Wahl ergäbe Widerspruch (da Kantengewichte paarweise verschieden) Am Schluss sind alle Zusammenhangskomponenten verbunden Der Baum ist minimal, da alle gewählten Kanten sicher sind

Zusammenfassung Wir erhalten Algorithmen, die in Laufzeit O(m+n log n) das Spannbaumproblem lösen Boruvkas Algorithmus läuft in Zeit O((m+n) log n), wird unsere Grundlage für einen randomisierten Algo mit Linearzeit sein.

Vorbereitungen Sei F ein Spannwald in G=(V,E) Knoten u,v liegen in derselben Zusammenhangskomponente in F, dann sei gF(u,v) das Gewicht der schwersten Kante auf dem Weg u! v in F Ansonsten setze gF(u,v)=1 Eine Kante e={u,v} heisst F-schwer, falls gF(e)<W(e), sonst F-leicht Alle Kanten in einem Spannwald F sind F-leicht

Vorbereitungen Beobachtung: Sei F irgendein Spannwald von G Kein minimaler Spannbaum T von G enthält eine F-schwere Kante Beweis: Sei e={u,v} F-schwer, und in T Betrachte Weg p von u! v in F Alle Kanten in p sind leichter als e Es gibt eine Kante e‘ in p, die einen Kreis in T schliesst Einfügen von e‘ und Entfernen von e gibt einen besseren Spannbaum, Widerspruch zur Optimalität von T

Ansatz Angenommen wir haben einen Spannwald F F-leichte Kanten verbessern den Wald, wenn sie entweder Bäume verbinden, oder mit F einen Zyklus bilden, auf dem eine grössere Kante liegt F-schwere Kanten sind nutzlos Wir benötigen einen Algorithmus zur Bestimmung schwerer Kanten

Ein Ergebnis Es gibt einen Algorithmus, der auf ungerichteten Graphen mit nichtnegativen Gewichten, und auf einem Wald F alle F-schweren Kanten identifiziert. Die Laufzeit ist O(n+m) Tatsächlich ist dies auch ein Algorithmus zur Verifikation der Minimalität eines gegebenen Spannbaums.

Der randomisierte Algorithmus Eingabe: ungerichteter Graph G mit Gewichten W Führe 3 Boruvka Phasen aus, erhalte neuen Graphen H [dieser hat · n/8 Knoten]; Q sei die Menge der durch Boruvka gewählten Kanten; wenn Graph zu einem Knoten kontrahiert gebe Q aus Für jede Kante e in H entferne e mit Wahrscheinlichkeit ½, erhalte Graph H* Bestimme einen minimalen Spannwald T1 in H* rekursiv Bestimme alle T1-schweren Kanten in H und entferne diese aus H Bestimme einen minimalen Spannbaum T2 für H rekursiv Gib T2 [ Q aus

Eine Behauptung Theorem 12.1: Sei H* ein Teilgraph von H, der entsteht, indem jede Kante mit Wahrscheinlichkeit 1-p entfernt wird. Sei F ein minimaler Spannwald in H* Dann ist die erwartete Zahl von T-leichten Kanten in H durch n/p beschränkt Intuition: H* sollte eine gute „Stichprobe“ für H ergeben, wenige T-leichte Kanten in H heisst wenige Kanten müssen noch „getestet“ werden

Laufzeit Schritte 2,3,5 in Zeit O(n+m) Wir werden auf folgende Rekursion geführt: T(n,m) sei die erwartete Laufzeit bei n Knoten und m Kanten T( O(1), O(1) ) =O(1) T(n,m)· T(n/8, m/2) per Induktion und Linearität des Erwartungswertes +T(n/8, n/4) durch Theorem 12.1 +O(m+m) Auflösung: T(m,n)=O(m+n)

Zur Korrektheit Ausgabe bildet einen Spannbaum [wenn G zusammenhängend ist, sonst Spannwald mit 1 Baum pro Komponente] Beweis per Induktion, Basis wenn G nach 3 Boruvka Phasen zu 1 Knoten kontrahiert Induktion: Kanten aus den Boruvka Phasen korrekt, Kanten in T2 bilden Spannbaum welcher diese verbindet per Induktion In Schritt 5 entfernte Kanten liegen in keinem minimalen Spannbaum, ohne diese ist der Graph also noch zusammenhängend Minimalität analog: Per Induktion: Boruvka Phasen korrekt T2 minimaler Spannbaum per Induktion Entfernung der T1 schweren Kanten beeinflusst Minimalität nicht