next up previous contents
Next: Zusammenfassung Up: Digraphen mit negativen Kantengewichten Previous: Modifikation von Floyd's-Algorithmus

Der Algorithmus von Johnson

Definition: Sei $d:A\rightarrow \mathbbm{R}$ eine Distanzfunktion. Eine Abbildung
$r:V\rightarrow \mathbbm{R}$ heißt

Rekalibrierung , falls gilt:

\begin{displaymath}
\forall (u,v)\in A : r(u) + d(u,v) \geq r(v)\end{displaymath}

Beobachtung: Sei r eine Rekalibrierung (für d). Setze d'(u,v):=d(u,v)+r(u)-r(v). Dann gilt:

\begin{displaymath}
d'(u,v) \geq 0\end{displaymath}

Sei $u=v_0\rightarrow \cdots \rightarrow v_1=v$ ein Pfad. Dann ist:

\begin{displaymath}
d\text{-L\uml {a}nge} =\sum_{i=1}^{r}d(v_i,v_{i-1})\end{displaymath}

Demnach ist:

\begin{displaymath}
\begin{split}
d'\text{-L\uml {a}nge } & = \sum_{i=1}^{r}d'(v...
 ...\\ & = \sum_{i=1}^{r}d(v_i,v_{i-1})+r(v_r)+r(v_0)\\ \end{split}\end{displaymath}

Also ist ein d-kürzester Pfad von u (v0) nach v (vr) auch ein d'-kürzester Pfad und umgekehrt. Man kann jetzt mit Hilfe von d' beliebige Algorithmen (Dijkstra, Floyd, etc.) anwenden.

Berechnung einer Rekalibrierung: a-Algorithmus.


\begin{picture}
(72,48)

\color {green}
 
 \qbezier(5,30)(35,45)(55,40)
 \qbezie...
 ...raph $G$}}
\put(58,28){\makebox(0,0){$d:A\rightarrow \mathbbm{R}$}}\end{picture}
$\textstyle\parbox{50mm}{F\uml {u}ge einen neuen Knoten $s$\space hinzu und verb...
 ...
jedem anderen Knoten $v\in V$\space durch eine Kante der L\uml {a}nge $0$.\\ }$
Berechne sssp von s nach allen anderen Knoten $v\in V$ (z.B. mit Floyd). Sei r(v) die dadurch berechnete Entfernung von s zu $v\in V$. Dann r Rekalibrierung, denn es gilt:

\begin{displaymath}
r(u)+d(u,v)\geq r(v)\end{displaymath}



Abbas-Bardia Kabiri-Jarghouyeh
3/3/1999