Graphalgorithmen Robert Elsässer Vorlesung vom 11. November 2010 Programm des Tages: • Kürzeste Wege, Matchings Robert Elsässer Universität Paderborn Graphalgorithmen WS 10/11 0 4. Approximationsalgorithmen für APSP • Wir betrachten nun den Fall von gerichteten gewichteten Graphen, wobei alle Gewichte natürliche Zahlen ≤ M sind. • Wir werden durch Matrixmultiplikation ähnlich wie zuvor die paarweisen Distanzen zu approxmieren. Distanzprodukte • Betrachte zwei Matrizen A, B mit Einträgen aus {0, . . . , M, ∞}. • Das Distanzprodukt zwischen A und B ist eine Matrix P mit P [i, j] = mink A[i, k] + B[k, j] • Wir zeigen, dass das Distanzprodukt für zwei Matrizen mit gegebenem maximalem Gewicht M in Zeit O(M · M M (n)) berechnet werden kann. Robert Elsässer Universität Paderborn Graphalgorithmen WS 10/11 1 Algorithmus Dist-Prod(A,B) • • • • Setze A0[u, v] = (n + 1)M −A[u,v] wenn A[u, v] ≤ M , sonst 0. Setze B 0[u, v] = (n + 1)M −B[u,v] wenn B[u, v] ≤ M , sonst 0. Berechne das Produkt P 0 = A0 · B 0. Setze P [u, v] = 2M − blogn+1 P 0[u, v]c, wenn P 0[u, v] > 0, sonst auf ∞. Robert Elsässer Universität Paderborn Graphalgorithmen WS 10/11 2 Approximation von Dist-Prod(A,B) • • • • Skalierung der Gewichte Kantengewichte des Graphen im Intervall {0, 1, . . . , M } Gewichte werden auf die Menge {0, 1, . . . , R} skaliert Man wendet Dist-Prod auf die skalierten Werte an Robert Elsässer Universität Paderborn Graphalgorithmen WS 10/11 3 Algorithmus scale(A,Q,R) • Eingabe: Matrix A mit Einträgen aus der Menge der natürlichen Zahlen und die Zahlen Q und R (R ≤ Q) • A0[u, v] = dA[u, v] · R/Qe, wenn A[u, v] ≤ Q • A0[u, v] = ∞, wenn A[u, v] > Q • Ausgabe: A’ (Laufzeit: O(n2 log Q)) Robert Elsässer Universität Paderborn Graphalgorithmen WS 10/11 4 Algorithmus Approx-Dist-Prod(A,B,M,R) • Eingabe: Matrizen A,B, Schranke M und Parameter R (R ≤ M) • Setze Matrix C überall auf ∞ • Durchlaufe alle r von blog Rc bis dlog M e – scale(A, 2r , R) – scale(B, 2r , R) – C 0 =Dist-Prod(A’,B’) r – C[u, v] = min{C[u, v], 2R C 0[u, v]} • Ausgabe C Robert Elsässer Universität Paderborn Graphalgorithmen WS 10/11 5 Laufzeit, Korrektheit von Approx-Dist-Prod(A,B,M,R) O(M M (n) · R log2 n log log n) für Dist-Prod per Iteration O(log M ) Iterationen Rest: O(n2 log M ) Insgesamt O(M M (n) log M · R log2 n log log n) Falls M und R Potenzen von 2, A,B ∈ {0, . . . , M, ∞}n×n, P Distanzprodukt von A und B, C Ausgabe von Approx-Dist-Prod ´ ` • Dann gilt: P [u, v] ≤ C[u, v] ≤ 1 + R4 P [u, v] • Betrachte R = Θ(log n) • • • • • Robert Elsässer Universität Paderborn Graphalgorithmen WS 10/11 6 Approximation der Distanzen • • • • Effizienter Algorithmus für die Approximation des Distanzproduktes Berechne An für das Distanzprodukt Wiederholtes Quadrieren: O(log n) Multiplikationen Bei jeder Multiplikation: Approximationsqualität Robert Elsässer Universität Paderborn 1 log n Graphalgorithmen WS 10/11 7 Algorithmus Approx-Dist(A,²) • • • • • • Eingabe: Matrix A ∈ {0, . . . , M, ∞}n×n; keine Nulleinträge außerhalb der Diagonale Approximationsparameter ² Setze R = 4 log n ln(1+²) Erhöhe R zur nächsten Zweierpotenz Setze D = A Weiderhole log n mal – D 0 =Approx-Dist(D,D,Mn,R) – D[u, v] = min{D[u, v], D 0[u, v]} • Augabe D Robert Elsässer Universität Paderborn Graphalgorithmen WS 10/11 8 5. Matchings in bipartiten Graphen • G = (V1 ∪ V2, E) bipartit: V1 ∩ V2 = ∅ und E ⊆ V1 × V2 • Ein Matching M ist eine Kantenmenge in G, bei der keine zwei Kanten einen Knoten gemeinsam haben • M maximales Matching: ∀(u, v) ∈ E ∃w ∈ V so dass (u, w) ∈ M oder (v, w) ∈ M • M maximum Matching: |M | maximal unter allen Matchings in G • Knoten u heißt saturiert (von M ), wenn es einen Knoten v gibt, so dass (u, v) ∈ M . • M perfektes Matching: M saturiert alle Knoten in G Robert Elsässer Universität Paderborn Graphalgorithmen WS 10/11 9 Definition 1: Sei M ein Matching in G = (V1 ∪ V2, E). Ein M -alternierender Pfad ist ein Pfad P = (u1, v1, u2, v2, . . . , uk , vk ) oder P = (u1, v1, u2, v2, . . . , uk , vk , uk+1), in dem (ui, vi) ∈ M für alle i oder (vi, ui+1) ∈ M für alle i. Ein M -alternierender Pfad mit unsaturierten Endknoten heißt M -augmentierender Pfad. Definition 2: Seien G = (V, EG) und H = (V, EH ) zwei Graphen mit der selben Knotenmenge V . Die symmetrische Differenz G∆H ist ein Graph mit der Knotenmenge V und Kantenmenge E = {e | e ∈ EG oder e ∈ EH }. Satz 1: Seien M und M 0 zwei Matchings in G = (V1 ∪V2, E). Jede Zuammenhangskomponente von M ∆M 0 ist entweder ein Pfad oder ein Kreis gerader Länge. Satz 2: Ein Matching M ist ein maximum Matching in einem Graphen G = (V1 ∪ V2, E) genau dann, wenn G keinen M -augmentierenden Pfad enthält. Satz 3: Sei G = (V1 ∪ V2, E) ein bipartiter Graph. Ein Matching M saturiert jeden Knoten von V1 genau dann, wenn |N (S)| ≥ |S| für alle S ⊆ V1. Robert Elsässer Universität Paderborn Graphalgorithmen WS 10/11 10