6.4 Transitive H¨ ulle und DFS
Wir erinnern uns an den DFS-Algorithmus:
for all nodes v do unmark v od count := 0
while ∃ unvisited v do
r := pick (random) unvisited node push r onto stack
while stack 6= ∅ do v := pop top element if v unvisited then
mark v visited
push all neighbours of v onto stack num[v]:= + + count
fi
od
od
Beispiel 117 Graph G
1:
q
q q
q
q q q
q q
q q
@
@
@
@
@
@
@
@
−−→
DFS@
@
@
@ q
q q
q
q q q
q q
q q 1
2 3
4 5
6
7 8
9
10 11
Digraph G
2:
q
q q
q
q q q
q q
q q -
6
?
@
@ I
@
@ R
@
@ I
@
@ R
−−→
DFSI
I
- 6 ?
@
@ R
@
@ R
q
q q
q
q q q
q q
q q 1
2 3
4 5
11
6 8
7
9 10
-
R¨uckw¨artskante-
Querkante-
Baumkante-
Vorw¨artskanteBezeichnungen:
Bem.: Alle Baumkanten zusammen: DFS-Wald (Spannwald).
Beispiel 118 (Starke Zusammenhangskomponenten (in Digraphen))
q q q q
q q
+
?
@
@
@ @ R
?
1 2
3 4
5
6
Quelle Senke
l l l e
DAG (Directed Acyclic Graph) Schrumpfen ⇓ der SZK’s
q q q q
q q q q
q q q q q
-
@
@ @ R @
@ @ I -
@
@
@ R
?
@
@
@ I l
l l
l '
&
$
%
SZK
1SZK
2SZK
3SZK
4SZK
5SZK
6DFS in ungerichteten Graphen mit c
Zusammenhangskomponenten, n Knoten, m Kanten:
n − c Baumkanten, m − n + c R¨ uckw¨ artskanten, Zeitaufwand O(n + m)
ZK
2ZK
10
0 1 1 1 1
1 1
1 1
1 1 1 1 1
ZK
2ZK
1
A
∗A
∗aus DFS mit Aufwand Θ(n
2)
DFS in gerichteten Graphen (Digraphen) mit n Knoten, m Kanten:
Baum-, Vorw¨ arts-, R¨ uckw¨ arts- und Querkanten:
-
@
@ @ R
? I
?
r r r
r r
1 r 2
3 4
5
6 - Vorw¨ artskanten - R¨ uckw¨ artskanten - Querkanten
- Baumkanten Bezeichnungen:
Zeitaufwand: O(n + m)
u ist von v aus auf einem gerichteten Pfad erreichbar gdw u Knoten in dem DFS-Baum (DFS-visit(v)) mit Wurzel v ist.
Also: Transitive H¨ ulle in Zeit O(n · (m + n)). Sehr gut f¨ ur d¨ unne
Graphen.
7. Ein besserer Algorithmus f¨ ur das apsd-Problem in ungewichteten Digraphen
Sei G = (V, E) ein Digraph mit der Knotenmenge {0, . . . , n − 1}, dessen Kanten alle die L¨ ange 1 haben.
Sei D = (d
ij)
0≤i,j<ndie zugeh¨ orige Distanzmatrix, mit Eintr¨ agen d
ij∈ {0, 1, ∞}.
Entsprechend sei D
∗die Distanzmatrix, so dass
d
∗ij= L¨ ange eines k¨ urzesten Wegs zwischen i und j
Setze weiterhin
D
(l)= (d
(l)ij)
0≤i,j<nmit d
(l)ij=
( d
∗ijfalls d
∗ij≤ l
∞ sonst
Algorithmus a1
co Sei A = (a
ij)
0≤i,j<nmit a
ij=
( 1 falls d
ij≤ 1
0 sonst oc
B := I co boolesche Einheitsmatrix oc for l := 2 to r + 1 do
B := A · B
for 0 ≤ i, j < n do
if b
ij= 1 then d
(l)ij:= l else d
(l)ij:= ∞ fi if d
(l−1)ij≤ l then d
(l)ij:= d
(l−1)ijfi
od
od
Dieser Algorithmus berechnet D
(1)= D, D
(2), D
(3), . . . , D
(r). Sei ω eine Zahl ≥ 2, so dass die Matrixmultiplikation in Zeit O(n
ω) durchgef¨ uhrt werden kann (Winograd/Coppersmith: ω ≤ 2, 376).
Zeitaufwand f¨ ur Algorithmus a1: O(rn
ω)
Algorithmus apsd =
Berechne, mit Algorithmus a1, D
(l)f¨ ur l = 1, . . . , r; l := r for s := 1 to l
log
3 2n r
m do for i := 0 to n − 1 do
finde in Zeile i von D
(l)das d,
l2
≤ d ≤ l, das in dieser Zeile am wenigsten oft vorkommt
S
i:= Menge der zugeh¨ origen Spaltenindizes od
l
1:=
32
l
for 0 ≤ i, j < n do
m
ij:= if S
i6= ∅ then min
k∈Si
{d
(l)ik+ d
(l)kj} else ∞ fi if d
(l)ij≤ l then d
(lij1):= d
(l)ijelif m
ij≤ l
1then d
(lij1)= m
ijelse d
(lij1):= ∞ fi od
l := l
1od
apsd berechnet
zun¨ achst D
(1), . . . , D
(r), dann D
(l)f¨ ur l = r,
3 2 r
,
3 2
3 2 r
, . . . , n
0|{z}
≥n
r ? r r
i j
k ∈ S
i d32le−d≤l
z }| {
d
z }| {
Da f¨ ur d
2lWerte zur Auswahl stehen, gilt:
|S
i| ≤ 2n
l
Damit ist die Laufzeit
O
rn
ω+
log3
2 n r
X
s=1
n
3(
32)
s· r
= O
rn
ω+ n
3r
Setze r so, dass die beiden Summanden gleich sind, also r = n
3−ω2. Damit ergibt sich f¨ ur apsd die Laufzeit O
n
3+ω2. Satz 119
Das all-pairs-shortest-distance-Problem f¨ ur Digraphen mit
Kantenl¨ ange = 1 l¨ asst sich in Zeit O(n
3+ω2) l¨ osen (ω Exponent f¨ ur Matrixmultiplikation).
Beweis:
√
Bemerkung: Beim apsp kann die Gr¨ oße der Ausgabe Ω(n
3) sein:
- - - - - q q q q · · · q q q
n
3
Knoten
n3Knoten
| {z }
n 3 Knoten
Verwende stattdessen die k¨ urzeste-Pfade-Nachfolger-Matrix
N ∈ [0, . . . , n − 1]
n×n, wo n
ijdie Nummer des zweiten Knoten auf
” dem“ k¨ urzesten Pfad von Knoten i zu Knoten j ist.
Eine solche Matrixdarstellung f¨ ur die k¨ urzesten Pfade zwischen
allen Knotenpaaren kann in Zeit O(n
3+ω2· log
cn) (f¨ ur ein
geeignetes c > 0) bestimmt werden.
Satz 120
F¨ ur Digraphen mit Kantenl¨ angen ∈ {1, 2, . . . , M }, M ∈ N , kann APSD in Zeit O((M n)
3+ω2) gel¨ ost werden.
Beweis:
Idee: Ersetze u r - v r
M0≤M
durch:
r - r - r · · · r - r
u = u
0u
1u
2u
M0= v
8. Ein Algorithmus f¨ ur die transitive H¨ ulle in Digraphen mit linearer erwarteter Laufzeit
Wir nehmen an, dass die Wahrscheinlichkeit eines Digraphen mit n Knoten und m Kanten (nur) eine Funktion von n und m ist.
Daraus folgt (wir lassen der Einfachheit halber Schleifen (=
Kanten v → v) zu), dass jede Kante (u, v) mit Wahrscheinlichkeit
m
n2
vorhanden ist, falls wir Digraphen mit n Knoten und m Kanten betrachten.
Erinnerung: Breitensuche (BFS): Schlange, queue, FIFO:
- FIFO -
Durchlaufe Graphen, indem wir, solange m¨ oglich, den vordersten
Knoten v aus der Queue nehmen, ihn behandeln und die Liste
seiner noch nicht behandelten Nachbarn in die Queue hinten
einf¨ ugen.
Beispiel 121
-
-
?
@
@ @ R
@
@ @ R
@
@ @ R
? - 6
@
@ @ I
- ?
@
@ @ R
q
q q q q
q q q q q q
q q q
1
2 3
4 5 6
7 8 9 10
11 12
13 14
- Querkanten
- Baumkanten
Bezeichnungen:
algorithm exp-lin-transitive-closure
0. Konstruiere die linear geordneten Adjazenzlisten L
ri, i = 1, . . . , n des Graphen G
r(entsteht aus G durch Umkehrung aller Kanten).
Beispiel:
L
1= 4 1 2 L
r1= 1 2 4
L
2= 1 4 3 L
r2= 1 3 4
L
3= 3 2 L
r3= 2 3
L
4= 1 4 2 L
r4= 1 2 4
Ersetze ebenfalls alle L
idurch L
rri(→ sortierte
Adjazenzlisten)
1. Berechne f¨ ur jeden Knoten i in BFS-Art eine Liste S
ivon von i aus erreichbaren Knoten, so dass (i) oder (ii) gilt:
(i) |S
i| <
n 2+ 1 und S
ienth¨ alt alle von i aus erreichbaren Knoten
(ii) |S
i| =
n2
+ 1
2. Entsprechende Listen P
ivon Vorg¨ angern von i 3. for i := 1 to n do
L
∗i:= S
i∪ {j; i ∈ P
j} ∪ {j; |S
i| = |P
j| =
n2
+ 1}
od
Bilde (L
∗i)
rrf¨ ur i = 1, . . . , n
Korrektheit: j ∈ L
∗igdw (i, j) in transitiver H¨ ulle.
Satz 122
Sei die Wahrscheinlichkeit eines Graphen (lediglich) eine Funktion der Anzahl n seiner Knoten und der Anzahl m seiner Kanten.
Dann ist der Erwartungswert f¨ ur die Laufzeit des obigen Algorithmus von Schnorr O(n + m
∗). Dabei ist m
∗der
Erwartungswert f¨ ur die Anzahl der Kanten in der transitiven H¨ ulle.
Beweis:
Das Durchlaufen des Graphen (von v
1aus f¨ ur die Konstruktion von S
1) in BFS-Manier liefert eine Folge (a
t)
t≥1von Knoten. Sei L
σ(ν)die ν-te Adjazenzliste, die in der BFS erkundet wird,
L
σ(ν)= (a
t; h(ν) < t ≤ h(ν + 1))
Sei ∆L
σ(ν)die Menge der a
tin L
σ(ν), und sei S
i(t) := {a
1, a
2, . . . , a
t}.
Wie bereits gezeigt, ist
Pr[j ∈ L
i] = m
n
2, ∀i, j
Beweis (Forts.):
Alle n-Tupel von geordneten Listen L
1, L
2, . . . , L
nmit m =
n
X
i=1
|L
i|
sind aufgrund der Voraussetzungen ¨ uber die
Wahrscheinlichkeitsverteilung gleich wahrscheinlich. Also:
Beobachtung 1: Die Mengen ∆L
σ(ν), ν = 1, 2, . . . sind (paarweise) unabh¨ angig.
Beobachtung 2: Die ∆L
σ(ν)sind gleichverteilt, d.h. f¨ ur alle A ⊆ {1, . . . , n} gilt:
Pr[∆L
σ(ν)= A] = ( m
n
2)
|A|(1 − m
n
2)
n−|A|Beweis (Forts.):
Lemma 123
Sei A ⊆ {1, . . . , n} mit |A| = k. Sei (¯ a
t)
t≥1eine Folge von unabh¨ angigen gleichverteilten Zufallsvariablen mit Wertemenge {1, . . . , n}. Dann gilt:
min{t; ¯ a
t6∈ A} hat Erwartungswert 1 + k
n − k .
Beweis:
[des Lemmas] Pr[¯ a
1, . . . , a ¯
r∈ A und a ¯
r+16∈ A] =
knr· (1 −
kn).
Also ist der Erwartungswert f¨ ur min{t; ¯ a
t6∈ A}:
1 +
∞
X
r=0
r k
n
r1 − k n
= 1 + k n
1 − k
n
X
r≥1
r k
n
r−1= 1 + k n
1 − k
n
1 1 −
kn2= 1 +
k n
1 −
kn= 1 + k n − k .
Anmerkung:
∞
X
r=0
rz
r−1= d dz
1
1 − z = 1
(1 − z)
2Lemma 124
Sei (¯ a
t)
t≥1wie oben, k ≤
n2. Dann hat min{t; |¯ a
1, ¯ a
2, . . . , ¯ a
t| > k}
Erwartungswert ≤
32(k + 1).
Beweis:
[des Lemmas] Wegen der Additivit¨ at des Erwartungswertes gilt:
Der gesuchte Erwartungswert ist
≤
k
X
ν=0
1 + ν n − ν
≤ k + 1 +
k
X
ν=1
ν
n 2
≤ k + 1 + k(k + 1)
n ≤ 3
2 (k + 1) .
Beweis (Forts.):
Wenn wir jedes L
σ(ν)in sich zuf¨ allig permutieren, erhalten wir eine Folge (¯ a
t)
0t≥1von Zufallsvariablen, so dass
|{a
1, . . . , a
t}| = |{a
01, . . . , a
0t}| f¨ ur t = h(ν), ∀ν Da die a
0tinnerhalb eines jeden Intervalls h(ν ) < t ≤ h(ν + 1) paarweise verschieden sind, gilt f¨ ur sie die vorhergehende
Absch¨ atzung erst recht. Daher sind (|S
1(t)|)
t≥1und (|S
1(t)
0|)
t≥1gleichverteilte Folgen von Zufallsvariablen, denn dies gilt zun¨ achst f¨ ur alle Zeitpunkte der Form t = h(y); da aber f¨ ur diese Zeitpunkte S
1(t) = S
10(t) ist und h( ) zuf¨ allig verteilt ist, ist auch die
Verteilung der beiden Folgen zwischen diesen Intervallgrenzen
identisch.
Beweis (Forts.):
Sei s der Erwartungswert und sei |S
i| die tats¨ achliche Gr¨ oße von S
inach der Phase 1. Dann s =
b
n2c
+1X
k=1
k · Pr[|S
i| = k] .
Die erwartete Anzahl der Schritte (und damit die Kosten) in der BFS sei q. Dann gilt:
q ≤ b
n2c
+1X
k=1