• Keine Ergebnisse gefunden

6.4 Transitive H¨ulle und DFS

N/A
N/A
Protected

Academic year: 2021

Aktie "6.4 Transitive H¨ulle und DFS"

Copied!
26
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

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

(2)

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

−−→

DFS

I

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

-

uckw¨artskante

-

Querkante

-

Baumkante

-

Vorw¨artskante

Bezeichnungen:

Bem.: Alle Baumkanten zusammen: DFS-Wald (Spannwald).

(3)

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

1

SZK

2

SZK

3

SZK

4

SZK

5

SZK

6

(4)

DFS in ungerichteten Graphen mit c

Zusammenhangskomponenten, n Knoten, m Kanten:

n − c Baumkanten, m − n + c R¨ uckw¨ artskanten, Zeitaufwand O(n + m)

ZK

2

ZK

1

0

0 1 1 1 1

1 1

1 1

1 1 1 1 1

ZK

2

ZK

1

 A

A

aus DFS mit Aufwand Θ(n

2

)

(5)

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.

(6)

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<n

die 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<n

mit d

(l)ij

=

( d

ij

falls d

ij

≤ l

∞ sonst

(7)

Algorithmus a1

co Sei A = (a

ij

)

0≤i,j<n

mit 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)ij

fi

od

od

(8)

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

ω

)

(9)

Algorithmus apsd =

Berechne, mit Algorithmus a1, D

(l)

f¨ ur l = 1, . . . , r; l := r for s := 1 to l

log

3 2

n r

m do for i := 0 to n − 1 do

finde in Zeile i von D

(l)

das d,

l

2

≤ d ≤ l, das in dieser Zeile am wenigsten oft vorkommt

S

i

:= Menge der zugeh¨ origen Spaltenindizes od

l

1

:=

3

2

l

for 0 ≤ i, j < n do

m

ij

:= if S

i

6= ∅ then min

k∈Si

{d

(l)ik

+ d

(l)kj

} else ∞ fi if d

(l)ij

≤ l then d

(lij1)

:= d

(l)ij

elif m

ij

≤ l

1

then d

(lij1)

= m

ij

else d

(lij1)

:= ∞ fi od

l := l

1

od

(10)

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 d3

2le−d≤l

z }| {

d

z }| {

Da f¨ ur d

2l

Werte zur Auswahl stehen, gilt:

|S

i

| ≤ 2n

l

(11)

Damit ist die Laufzeit

O

 rn

ω

+

log3

2 n r

X

s=1

n

3

(

32

)

s

· r

= O

rn

ω

+ n

3

r

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:

(12)

Bemerkung: Beim apsp kann die Gr¨ oße der Ausgabe Ω(n

3

) sein:

- - - - - q q q q · · · q q q

n

3

Knoten

n3

Knoten

| {z }

n 3 Knoten

Verwende stattdessen die k¨ urzeste-Pfade-Nachfolger-Matrix

N ∈ [0, . . . , n − 1]

n×n

, wo n

ij

die 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

c

n) (f¨ ur ein

geeignetes c > 0) bestimmt werden.

(13)

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

0

u

1

u

2

u

M0

= v

(14)

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.

(15)

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:

(16)

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

i

durch L

rri

(→ sortierte

Adjazenzlisten)

(17)

1. Berechne f¨ ur jeden Knoten i in BFS-Art eine Liste S

i

von von i aus erreichbaren Knoten, so dass (i) oder (ii) gilt:

(i) |S

i

| <

n 2

+ 1 und S

i

enth¨ alt alle von i aus erreichbaren Knoten

(ii) |S

i

| =

n

2

+ 1

2. Entsprechende Listen P

i

von Vorg¨ angern von i 3. for i := 1 to n do

L

i

:= S

i

∪ {j; i ∈ P

j

} ∪ {j; |S

i

| = |P

j

| =

n

2

+ 1}

od

Bilde (L

i

)

rr

f¨ ur i = 1, . . . , n

(18)

Korrektheit: j ∈ L

i

gdw (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.

(19)

Beweis:

Das Durchlaufen des Graphen (von v

1

aus f¨ ur die Konstruktion von S

1

) in BFS-Manier liefert eine Folge (a

t

)

t≥1

von 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

t

in 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

(20)

Beweis (Forts.):

Alle n-Tupel von geordneten Listen L

1

, L

2

, . . . , L

n

mit 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|

(21)

Beweis (Forts.):

Lemma 123

Sei A ⊆ {1, . . . , n} mit |A| = k. Sei (¯ a

t

)

t≥1

eine Folge von unabh¨ angigen gleichverteilten Zufallsvariablen mit Wertemenge {1, . . . , n}. Dann gilt:

min{t; ¯ a

t

6∈ A} hat Erwartungswert 1 + k

n − k .

(22)

Beweis:

[des Lemmas] Pr[¯ a

1

, . . . , a ¯

r

∈ A und a ¯

r+1

6∈ A] =

kn

r

· (1 −

kn

).

Also ist der Erwartungswert f¨ ur min{t; ¯ a

t

6∈ A}:

1 +

X

r=0

r k

n

r

1 − k n

= 1 + k n

1 − k

n

X

r≥1

r k

n

r−1

= 1 + k n

1 − k

n

1 1 −

kn

2

= 1 +

k n

1 −

kn

= 1 + k n − k .

Anmerkung:

X

r=0

rz

r−1

= d dz

1

1 − z = 1

(1 − z)

2

(23)

Lemma 124

Sei (¯ a

t

)

t≥1

wie 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) .

(24)

Beweis (Forts.):

Wenn wir jedes L

σ(ν)

in sich zuf¨ allig permutieren, erhalten wir eine Folge (¯ a

t

)

0t≥1

von Zufallsvariablen, so dass

|{a

1

, . . . , a

t

}| = |{a

01

, . . . , a

0t

}| f¨ ur t = h(ν), ∀ν Da die a

0t

innerhalb 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≥1

und (|S

1

(t)

0

|)

t≥1

gleichverteilte 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.

(25)

Beweis (Forts.):

Sei s der Erwartungswert und sei |S

i

| die tats¨ achliche Gr¨ oße von S

i

nach der Phase 1. Dann s =

b

n2

c

+1

X

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

n2

c

+1

X

k=1

Pr[|S

i

| = k] 3 2 k = 3

2 s.

Also ist der Aufwand des Algorithmus f¨ ur die Phasen 1 und 2 im

Erwartungswert ≤ 3sn. Da ns = m

, und da die Kosten der

anderen Phasen offensichtlich durch O(n + m + m

) beschr¨ ankt

sind, folgt die Behauptung.

(26)

C.P. Schnorr:

An algorithm for transitive closure with linear expected time

SIAM J. Comput. 7(2), pp. 127–133 (1978)

Referenzen

ÄHNLICHE DOKUMENTE

2) a heavy vehicle is faster to discharge than its passenger car size-equivalent is; 3) the queue in a left-turn lane discharges faster than that in a through lane; 4) an upgrade

Aufgabe 2: Eine Billardkugel der Masse M mit Radius R wird von einem Queue gestoßen, sodass der Schwerpunkt der Kugel eine Geschwindigkeit v 0 erhält.. Ebenso geht die Richtung

Man kann auch noch auf eine andere Weise pr¨ ufen, ob Klammerausdr¨ ucke korrekt sind: durch Abz¨ ahlen der ¨ offnenden und schließenden Klammern?. F¨ ur jede ¨ offnende

Doppelt verkettete Listen bestehen aus Listenzellen mit zwei Zeigern. • Ein Zeiger prev auf die

Auch hier generiert Isabelle automatisch eine Induktionsre- gel rtc.induct: [[r* x1 x2;

ourStack.push(&#34;Hallo&#34;);.. Dann testen wir, ob eine Exception geworfen wird, wenn wir versuchen, eine Element aus einem leeren Stack zu entnehmen...

Therefore, it is highly necessary to think about anonymity overlays from a network performance perspective: while there is a significant body of work on security and privacy

 Der Prozeß verhält sich nach dem k-ten Ereignis (für beliebiges k) genau wie am Anfang. Die X müssen alle identisch und unabhängig voneinander verteilt sein