Fortgeschrittene Netzwerk- und Graph-Algorithmen

Ähnliche Dokumente
Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Grundbegriffe der Informatik

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Algorithmen II Vorlesung am

Diskrete Strukturen Kapitel 4: Graphentheorie (Grundlagen)

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Die Komplexitätsklassen P und NP

Komplexitätstheorie. Vorlesung im Sommersemester 2009

Teil III. Komplexitätstheorie

Lösungen zur Vorlesung Berechenbarkeit und Komplexität

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/45

2. Entsprechende Listen P i von Vorgängern von i 3. for i := 1 to n do. (ii) S i = Knoten 2 + 1}

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Eigenwerte und Eigenvektoren

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016

Algebraische und arithmetische Algorithmen

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

Graphenalgorithmen und lineare Algebra Hand in Hand Prof. Dr. Henning Meyerhenke

= n (n 1) 2 dies beruht auf der Auswahl einer zweielementigen Teilmenge aus V = n. Als Folge ergibt sich, dass ein einfacher Graph maximal ( n E = 2

Algorithmische Methoden zur Netzwerkanalyse

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Grundlagen: Algorithmen und Datenstrukturen

Diskrete Mathematik 1

Abschnitt 7: Komplexität von imperativen Programmen

8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0.

Algorithmische Graphentheorie (SS2013)

2. Repräsentationen von Graphen in Computern

Übung 2 Algorithmen II

Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck. 10 Matching-Probleme

Algorithmen zum Lösen von Vertex und Set Cover Instanzen zur Planung von Angriffen auf Netzwerke

6. Transitive Hülle. 6.1 Min-Plus-Matrix-Produkt und Min-Plus-Transitive Hülle Ring Z(+, ) Semiring N(+, )

Lineare Differenzengleichungen

Bemerkung: Es gibt Algorithmen für minimale Spannbäume der Komplexität O(m + n log n) und, für dünnbesetzte Graphen, der Komplexität O(m log n), wobei

Theoretische Informatik 1

Matchings in Graphen. Praktikum Diskrete Optimierung (Teil 5)

Am Dienstag, den 15. Dezember, ist Eulenfest. 1/60

Theoretische Grundlagen der Informatik. Vorlesung am 27. November INSTITUT FÜR THEORETISCHE INFORMATIK

Satz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,...

Vorlesung 1: Graphentheorie. Markus Püschel David Steurer. Algorithmen und Datenstrukturen, Herbstsemester 2018, ETH Zürich

Klausur Algorithmentheorie

12. Graphen. Notation, Repräsentation, Traversieren (DFS, BFS), Topologisches Sortieren, Ottman/Widmayer, Kap ,Cormen et al, Kap.

Approximationsalgorithmen

Wenn wir zudem a ii = 1 für 1 i n setzen, dann gilt für A k (boolesches Produkt, A 0 = I) 0 falls es im Graphen keinen Pfad von v i nach v j,

WS 2015/16 Diskrete Strukturen Kapitel 4: Graphen (Matchings)

Die Komplexitätsklassen P und NP

Organisatorisches. Cartesium 2.59 Cartesium 2.56 Tel. (218) Tel. (218)-64432

Algorithmen für schwierige Probleme

Algorithmen & Komplexität

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme

Einheit 11 - Graphen

Das Rucksackproblem. Definition Sprache Rucksack. Satz

Algorithmische Graphentheorie

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

Wie komme ich von hier zum Hauptbahnhof?

Approximationsalgorithmen für NP-harte Optimierungsprobleme

Algebraische und arithmetische Algorithmen

Approximationsalgorithmen für NP-harte Optimierungsprobleme

Kombinatorische Optimierung

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

Algorithmen und Datenstrukturen

Effiziente Algorithmen 2

Beweis: Färbe jede Kante zufällig und unabhängig mit Ws 1 2. Ereignis A i : i-te Clique K (i), i = 1,..., ( n K (i)

Musterlösung Informatik-III-Nachklausur

Seien u, v V, u v. Da G zusammenhängend ist, muss mindestens ein Pfad zwischen u und v existieren.

Algorithmische Methoden für schwere Optimierungsprobleme

Digraphen, DAGs und Wurzelbäume

Tutorium 23 Grundbegriffe der Informatik (7. Sitzung)

WS 2008/09. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen

Übungsblatt 5. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18

Algorithmische Bioinformatik 1

RSA Parameter öffentlich: N = pq mit p, q prim und e Z RSA Parameter geheim: d Z φ(n)

Planare Graphen und Färbungen. Kapitel 7. Peter Becker (H-BRS) Graphentheorie Wintersemester 2018/ / 296

Dynamische Programmierung II

Formale Grundlagen der Informatik 1 Kapitel 21 P und NP

Vorlesung 2 KÜRZESTE WEGE

Grundbegriffe der Informatik Musterlösung zu Aufgabenblatt 9

Algorithmen und Datenstrukturen (für ET/IT)

1. Datenstrukturen zur Lösung von Mengenverwaltungsproblemen

Diskrete Strukturen WS 2005/06. Ernst W. Mayr. 27. Januar Fakultät für Informatik TU München

ADS: Algorithmen und Datenstrukturen 2

Vorlesung 3: Graphenalgorithmen. Markus Püschel David Steurer Peter Widmayer. PDF download goo.gl/ym3spq

Übung zur Vorlesung Berechenbarkeit und Komplexität

Grundbegriffe der Informatik

Lernmodul 7 Algorithmus von Dijkstra

Vorlesung 2: Graphentheorie

KESS - Die Komplexität evolutionär stabiler Strategien

12. Graphen. Königsberg Zyklen. [Multi]Graph

Transkript:

Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester 2010/11 H. Täubig (TUM) Fortg. Graph- u. Netzwerk-Algorithmen WS 10/11 1 / 620

Versteckte Folgerung Falls P N P gilt, gibt es keinen Polynomialzeit-Algorithmus, der eine Clique der Größe k in einem Graphen findet, der garantiert eine solche Clique der Größe k enthält. Bemerkung: Die Schwierigkeit, eine versteckte Clique zu finden, hängt nicht von der Größe der Clique ab. Auch der Größe (1 ε) n können nicht in Polynomialzeit gefunden werden. H. Täubig (TUM) Fortg. Graph- u. Netzwerk-Algorithmen WS 10/11 282 / 620

Maximum-Clique: besserer exponentieller Algorithmen Satz Eine Maximum-Clique (also eine Clique maximaler Kardinalität) kann in Zeit O (1.3803 n ) berechnet werden. (O ignoriert polynomielle Faktoren) H. Täubig (TUM) Fortg. Graph- u. Netzwerk-Algorithmen WS 10/11 283 / 620

Maximum-Clique: besserer exponentieller Algorithmus Beweis. Falls δ(g) n 3, dann fehlen in G nur einfache Pfade und Kreise im Vergleich zum vollständigen Graphen K n Maximum Clique kann in O(m + n) berechnet werden: betrachte zur Veranschaulichung den komplementären Graphen entsprechen unabhängigen Mengen In einem Pfad P kann man die Größe einer unabhängigen Menge (independent set) maximaler Kardinalität berechnen als V (P) /2. In einem Kreis C ist die Größe V (C) /2. Da die Pfade und Kreise paarweise disjunkt sind, kann man die einzelnen Werte einfach addieren. H. Täubig (TUM) Fortg. Graph- u. Netzwerk-Algorithmen WS 10/11 284 / 620

Maximum-Clique: besserer exponentieller Algorithmus Beweis. Ansonsten sei v ein Knoten mit Grad deg G (v) n 4 Jede Maximum-Clique ist entweder {v} vereinigt mit einer Maximum-Clique von G[N(v)] oder eine Maximum-Clique von G[V \ {v}]. Rekursive Berechnung mit worst-case-zeit T (n) T (n 4) + T (n 1) + c (m + n) mit Erzeugendenfunktionen kann man zeigen, dass T (n) O (β n ) mit β 1.3803, wobei β die größte reelle Nullstelle des charakteristischen Polynoms β 4 β 3 1 ist H. Täubig (TUM) Fortg. Graph- u. Netzwerk-Algorithmen WS 10/11 285 / 620

Approximation von Maximum- Approximation der größten Clique mit Faktor n/2 ist einfach: wähle die Endknoten einer Kante, falls es eine gibt. Satz Es gibt einen Algorithmus, der bei Eingabe eines Graphen G mit n Knoten in polynomieller ( Zeit ) eine Clique ausgibt, deren Größe maximal um einen Faktor O n von der Maximum-größe ω(g) abweicht. (log n) 2 Satz Falls nicht N P = ZPP gilt, dann existiert kein Polynomialzeitalgorithmus, der bei Eingabe eines Graphen G mit n Knoten eine Clique ausgibt, deren Größe maximal um einen Faktor n 1 ɛ von der Maximum-größe ω(g) abweicht (für jedes ɛ > 0). ZPP: Klasse der Probleme, die von randomisierten Algorithmen in erwarteter Polynomialzeit gelöst werden können ohne Fehler zu machen H. Täubig (TUM) Fortg. Graph- u. Netzwerk-Algorithmen WS 10/11 286 / 620

Suche nach fester Größe In einigen Fällen reicht es, nach fester Größe zu suchen größe wird nicht als Teil der Eingabe betrachtet Vollständige Suche: O(k 2 n k ) = O(n k ), wenn größe k fest ist H. Täubig (TUM) Fortg. Graph- u. Netzwerk-Algorithmen WS 10/11 287 / 620

Bessere Komplexität für Dreiecke A(G): Adjazenzmatrix von Graph G B(G) = A(G) 2 = A(G) A(G): Einträge b ij sind die Wege der Länge 2 zwischen den Knoten v i und v j läßt sich durch schnellere Matrixmultiplikation ausrechnen, z.b. in O(n 2.376 ) (Coppersmith / Winograd, 1990) Existiert ein Eintrag b ij 1 mit i j, dann gibt es einen Knoten u V, der zu v i und zu v j adjazent ist. Wenn nun auch eine Kante {v i, v j } existiert, dann enthält der Graph ein Dreieck {v i, v j, u} Checke für alle echt positiven Werte b ij, ob es eine Kante {v i, v j } gibt Zeit-Komplexität: O(n α ), wobei α < 2.376 der Exponent für Matrixmultiplikation ist H. Täubig (TUM) Fortg. Graph- u. Netzwerk-Algorithmen WS 10/11 288 / 620

fester Größe k 3 Sei α(r, s, t) so definiert, dass man die Multiplikation einer n r n s -Matrix mit einer n s n t -Matrix in Zeit O ( n α(r,s,t)) berechnen kann. Satz Für jedes k 3 existiert ein Algorithmus, der eine Clique der Größe k in einem Graphen mit n Knoten finden kann (falls eine solche existiert) und der in Zeit O ( n β(k)) läuft, wobei β(k) = α( k/3, (k 1)/3, k/3 ). H. Täubig (TUM) Fortg. Graph- u. Netzwerk-Algorithmen WS 10/11 289 / 620

fester Größe k 3 Beweis. Seien k 1 = k/3, k 2 = (k 1)/3 und k 3 = k/3 Es gilt k = k 1 + k 2 + k 3. Konstruiere tripartiten Hilfsgraph G Ṽ = Ṽ1 Ṽ2 Ṽ3, wobei V i aus allen der Größe k i in G besteht (kann man mit dem naiven Algorithmus in O(n k i ) berechnen) Knoten U Ṽi und U Ṽ j sind adjazent in G g.d.w. i j und U U eine Clique der Größe k i + k j in G ist. Berechne dazu die partiellen Adjazenzmatrizen A 12, A 13 und A 23, die die Kanten zwischen den jeweiligen Knotenmengen darstellen Teste G auf Dreiecke H. Täubig (TUM) Fortg. Graph- u. Netzwerk-Algorithmen WS 10/11 290 / 620

fester Größe k 3 Beweis. Dreieck {U 1, U 2, U 3 } impliziert eine Clique der Größe k in G geht mit schneller Matrixmultiplikation, aber hier muss eine O(n k 1 ) O(n k 2 )-Matrix (Kanten zwischen Ṽ1 und Ṽ2) mit einer O(n k 2 ) O(n k 3 )-Matrix (Kanten zwischen Ṽ 2 und Ṽ 3 ) multipliziert werden, und zwar in Zeit O ( n β(k)) Berechnung der drei Matrizen A 12, A 23 und A 13 in O ( n max{k 1+k 2,k 1 +k 3,k 2 +k 3 } ) = O (n 2k 3 ) (wird dominiert durch die Zeit O(n β(k) ) für die Multiplikation der rechteckigen Matrizen, also B 13 = A 12 A 23 ) H. Täubig (TUM) Fortg. Graph- u. Netzwerk-Algorithmen WS 10/11 291 / 620

fester Größe k 3 k3 O( ) n k2 O( ) n A 23 k2 O( ) n O( ) n k 1 A 12 B 13 B 13 wird dann mit A 13 verknüpft H. Täubig (TUM) Fortg. Graph- u. Netzwerk-Algorithmen WS 10/11 292 / 620

fester Größe k 3? k 1 k 2 k 3 H. Täubig (TUM) Fortg. Graph- u. Netzwerk-Algorithmen WS 10/11 293 / 620

fester Größe: Beispielkomplexitäten größe Vollständige Suche Matrixmultiplikation 3 O(n 3 ) O(n 2.376 ) 4 O(n 4 ) O(n 3.376 ) 5 O(n 5 ) O(n 4.220 ) 6 O(n 6 ) O(n 4.751 ) 7 O(n 7 ) O(n 5.751 ) 8 O(n 8 ) O(n 6.595 ) H. Täubig (TUM) Fortg. Graph- u. Netzwerk-Algorithmen WS 10/11 294 / 620

fester Größe: Mitgliedszahlen Satz Für jedes k 3 existiert ein Algorithmus, der in Zeit O ( n β(k)) läuft und der für jeden Knoten zählt, an wieviel der Größe k er beteiligt ist (in einem Graphen mit n Knoten), wobei β(k) = α( k/3, (k 1)/3, k/3 ). H. Täubig (TUM) Fortg. Graph- u. Netzwerk-Algorithmen WS 10/11 295 / 620

fester Größe: Mitgliedszahlen Beweis. Für k = 3 (Dreiecke) kann man nicht nur feststellen, ob zwei Knoten v i und v j zu einem Dreieck gehören, sondern auch zu wievielen. Wenn Kante {v i, v j } in G existiert, dann ist diese Anzahl gleich dem Eintrag b ij in der quadrierten Adjazenzmatrix B(G) = A(G) A(G). Anwendung im allgemeinen Fall von G: für jeden Knoten v V sei C k (v) die Anzahl verschiedener der Größe k, in denen v enthalten ist. Entsprechend sei C 3 (U) die Anzahl der Dreiecke in G, zu denen Knoten U gehört. (U ist eine Clique der Größe kleiner als k) H. Täubig (TUM) Fortg. Graph- u. Netzwerk-Algorithmen WS 10/11 296 / 620

fester Größe: Mitgliedszahlen Beweis. der Größe k können viele verschiedene Repräsentationen in G haben. Diese Anzahl ist die Anzahl der Partitionierungen von einer Menge der Kardinalität k in drei Mengen der Kardinalitäten k 1, k 2 und k 3, also der Multinomialkoeffizient ( ) k k 1,k 2,k 3. o.b.d.a. sei k 1 der kleinste der drei Parameter. Sei U(v) die Menge aller U der Größe k 1 in G, so dass v U. Dann gilt: ( ) (k 1) C 3 (U) = C k (v) (k 1 1), k 2, k 3 U U(v) Berechne linke Seite in O ( n β(k)) (berechne Matrizen; suche Einträge für alle U, die v enthalten); Berechne C k (v)) H. Täubig (TUM) Fortg. Graph- u. Netzwerk-Algorithmen WS 10/11 297 / 620