next up previous contents
Next: Matrizenmultiplikation à la Strassen Up: Kürzeste Pfade Previous: Ein besserer Algorithmus für

 Ein Algorithmus für die transitive Hülle mit lin. erwarteter Laufzeit
Ein Algorithmus für die transitive Hülle in Digraphen mit linearer erwarteter Laufzeit

Die Wahrscheinlichkeit eines Digraphen mit n Knoten und m Kanten ist (nur) eine Funktion von n und m. Daraus folgt (wir lassen der Einfachheit halber Schleifen (=Kanten $v \rightarrow v$) zu), daß jede Kante (u,v) mit Wahrscheinlichkeit $\frac{m}{n^2}$ vorhanden ist, falls wir Graphen mit n Knoten und m Kanten betrachten.
Einschub: Breitensuche (BFS): Schlange, queue, FIFO:


\begin{picture}
(50,6)
 \multiput(0,3)(40.5,0){2}{\vector(1,0){9.5}}
 \put(10,0){
\framebox 
(30,6){FIFO}}\end{picture}

Durchlaufe Graphen, indem wir, solange möglich den vordersten Knoten v aus der Queue nehmen, ihn behandeln und die Liste seiner noch nicht behandelten Nachbarn in die queue hinten einfügen.

Beispiel:


\begin{picture}
(127,40)
 
\color {blue}
 
 \multiput(35,35)(-2.5,0){4}{\bezier{...
 ...7.5){\makebox(27,12)[lt]{\underline{Bezeichnungen:}}}
% \end{small}\end{picture}

algorithm exp-lin-transitive-closure

(C.P. Schnorr, An Algorithm for Transitive Closure with Linear Expected Time, SIAM Journal on Computing 7 (1978), pages 127-133.)

Phasen:

0.
Konstruiere die linear geordneten Adjazenzlisten $L^r_i, i=1,\ldots ,n$ des Graphen Gr (entsteht aus G durch Umkehrung aller Knoten).
Beispiel:

$\begin{array}
{ccccc\vert ccccc}
 L_1 & = & 4 & 1 & 2 & L^r_1 & = & 1 & 2 & 4\\...
 ...^r_3 & = & 2 & 3 & \\  L_4 & = & 1 & 4 & 2 & L^r_4 & = & 1 & 2 & 4
 \end{array}$

Ersetze ebenfalls alle Li durch Lrri ($\rightarrow$ sortierte Adjazenzlisten)
1.
Berechne für jeden Knoten i in BFS-Art eine Liste Si von von i aus erreichbaren Knoten, so daß (i) oder (ii) gilt:
(i)
$\vert S_i\vert < \lfloor \frac{n}{2} \rfloor + 1$ und Si enthält alle von i aus erreichbaren Knoten
(ii)
$\vert S_i\vert = \lfloor \frac{n}{2} \rfloor + 1$

2.
Entsprechende Listen Pi von Vorgängern von i
3.

for i:=1 to n do $L^*_i := S_i \cup \{j; i \in P_j\} \cup \{j;
 \vert S_i\vert=\vert P_j\vert=\lfloor\frac{n}{2}\rfloor + 1\}$;od

Bilde (L*i)rr für $i=1,\ldots ,n$
Korrektheit: $j \in L^*_i$ g.d.w. (i,j) in transitiver Hülle.

\fbox {\parbox[c]{12.45cm}{\textbf{Satz:}
Sei die Wahrscheinlichkeit eines Graph...
 ...wert f\uml {u}r die Anzahl der Kanten in 
 der transitiven H\uml {u}lle ist.
}}

Beweis: Das Durchlaufen des Graphen (von V1 aus für die Konstruktion von S1) in BFS-Manier liefert eine Folge ${(a_t)}_{t \geq 1}$ von Knoten. Sei $L_{\sigma(\nu)}$ die $\nu$-te Adjazenzliste, die in der BFS erkundet wird,

\begin{displaymath}
L_{\sigma(\nu)} = \left(a_t;\text{h}(\nu) < t \leq \text{h}(\nu + 1)\right)
 \end{displaymath}

Sei $\Delta L_{\sigma(\nu)}$ die Menge der at in $L_{\sigma(\nu)}$, und sei

\begin{displaymath}
S_i(t) := \{a_1,a_2,\ldots,a_t\}
 \end{displaymath}

Wie bereits gezeigt, ist

\begin{displaymath}
\text{WS}(j \in L_i)=\frac{m}{n^2}, \quad \forall i,j
 \end{displaymath}

Alle n-Tupel von geordneten Listen L1,L2,...,Ln mit

\begin{displaymath}
m=\sum^{n}_{i=1}\vert L_i\vert
 \end{displaymath}

sind aufgrund der Voraussetzungen über die Wahrscheinlichkeitsverteilung gleich wahrscheinlich.

Also:
Beobachtung 1: Die Mengen $\Delta L_{\sigma(\nu)}, \nu = 1,2,\ldots$ sind (paarweise) unabhängig.
Beobachtung 2: Die $\Delta L_{\sigma(\nu)}$ sind gleichverteilt, d.h. für alle $A \subseteq \{1,\ldots,n\}$ gilt:

\begin{displaymath}
\text{WS}(\Delta L_{\sigma(\nu)}=A) = 
 (\frac{m}{n^2})^{\vert A\vert}(1-\frac{m}{n^2})^{n-\vert A\vert}
 \end{displaymath}



Lemma: Sei $A \subseteq \{1,\ldots,n\}$ mit |A|=k. Sei $(\bar{a}_t)_{t\geq 1}$ eine Folge von unabhängigen gleichverteilten Zufallsvariablen mit Wertemenge $\{1,\ldots,n\}$. Dann gilt:

\begin{displaymath}
\min\{t;\bar{a}_t \not\in A\} \quad\text{hat Erwartungswert}\quad 1+\frac{k}{n-k}.
 \end{displaymath}

Beweis: WS$(\bar{a}_1,\ldots,\bar{a}_r \in A$ und $\bar{a}_{r+1} \not\in A)=\left(\frac{k}{n}\right)^r \cdot (1-\frac{k}{n})$.
Also ist der Erwartungswert für min$\{t;\bar{a}_t \not\in A\}$:

\begin{displaymath}
\begin{split}
 &1 + \sum^{\infty}_{r=0} r\left(\frac{k}{n}\r...
 ...frac{k}{n}}{1-\frac{k}{n}} \\  &= 1+\frac{k}{n-k}
 \end{split} \end{displaymath}

$\Diamond$

Anmerkung:

\begin{displaymath}
\sum^{\infty}_{r=0}rz^{r-1}=\frac{d}{dz}\frac{1}{1-z}=\frac{1}{(1-z)^2}
 \end{displaymath}

Lemma: Sei $(\bar{a}_t)_{t\geq 1}$ wie oben, $k \leq \frac{n}{2}$. Dann hat min$\{t;\vert\bar{a}_1,\bar{a}_2,\ldots,\bar{a}_t\vert\gt k\}$ Erwartungswert $\leq \frac{3}{2} (k+1)$.

Beweis: Wegen der Additivität des Erwartungswertes gilt: Der gesuchte Erwartungswert ist

\begin{displaymath}
\begin{split}
 \leq & \sum^{k}_{\nu=0}\left(1+\frac{\nu}{n-\...
 ... k+1+\frac{k(k+1)}{n} \\  \leq & \frac{3}{2}(k+1)
 \end{split} \end{displaymath}

$\Diamond$

Wenn wir jedes $L_{\sigma(\nu)}$ in sich zufällig permutieren, erhalten wir eine Folge $(\bar{a}_t)_{t\geq 1}'$ von Zufallsvariablen, so daß

\begin{displaymath}
\vert\{a_1, \ldots, a_t\}\vert = \vert\{a_1', \ldots, a_t'\}\vert \text{ f\uml {u}r }
 t = \text{h}(\nu), \forall \nu
 \end{displaymath}

Da die at' innerhalb eines jeden Intervalls h$(\nu) < t \leq \text{h}(\nu + 1)$ paarweise verschieden sind, gilt für sie die vorhergehende Abschätzung erst recht. Daher sind $(\vert S_1(t)\vert)_{t\geq 1}$ und $(\vert S_1(t)'\vert)_{t\geq 1}$ gleichverteilte Folgen von Zufallsvariablen, denn dies gilt zunächst für alle Zeitpunkte der Form $t=\text{h}(y)$; da aber für diese Zeitpunkte S1(t) = S1'(t) ist, und $\text{h}()$ zufällig verteilt ist, ist auch die Verteilung der beiden Folgen zwischen diesen Intervallgrenzen identisch.

Sei s der Erwartungswert und sei |Si| die tatsächliche Größe von Si nach der Phase 1. Dann

\begin{displaymath}
s=\sum^{\left\lfloor\frac{n}{2}\right\rfloor + 1}_{k=1}k \cdot \text{WS}(\vert S_i\vert=k)
 \end{displaymath}

Die erwartete Anzahl der Schritte (und damit die Kosten) in der BFS sei q. Dann gilt:

\begin{displaymath}
q \leq \sum^{\left\lfloor\frac{n}{2}\right\rfloor + 1}_{k=1}\text{WS}
 (\vert S_i\vert=k)\frac{3}{2}k = \frac{3}{2}s.
 \end{displaymath}

Also ist der Aufwand des Algorithmus für die Phasen 1 und 2 im Erwartungswert $\leq 3sn$. Da ns=m*, und da die Kosten der anderen Phasen offensichtlich durch $\mathcal{O}(n+m+m^*)$ beschränkt sind, folgt die Behauptung. $\Diamond$


next up previous contents
Next: Matrizenmultiplikation à la Strassen Up: Kürzeste Pfade Previous: Ein besserer Algorithmus für
Abbas-Bardia Kabiri-Jarghouyeh
3/3/1999