Graphalgorithmen Robert Elsässer

Werbung
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
Herunterladen