summaryrefslogtreecommitdiff
path: root/graph/graph.tex
diff options
context:
space:
mode:
authorPaul Jungeblut <paul.jungeblut@gmail.com>2016-01-07 23:15:32 +0100
committerPaul Jungeblut <paul.jungeblut@gmail.com>2016-01-07 23:15:32 +0100
commitf5eab7d7e0342ffde45f84243e08fe5a9e2ed036 (patch)
tree1e0284488ea7dd057732d4ae237d280f8116e2dc /graph/graph.tex
parentcd95c7b0239c92a11aec9c15ffdda009e6f17750 (diff)
Improvemnts for Floyd Warshall with negative edges/cycles.
Diffstat (limited to 'graph/graph.tex')
-rw-r--r--graph/graph.tex10
1 files changed, 6 insertions, 4 deletions
diff --git a/graph/graph.tex b/graph/graph.tex
index 8ac82e5..0661ae1 100644
--- a/graph/graph.tex
+++ b/graph/graph.tex
@@ -30,10 +30,12 @@ Erkennt negative Zyklen.
\subsubsection{\textsc{Floyd-Warshall}-Algorithmus}
\lstinputlisting{graph/floydWarshall.cpp}
\begin{itemize}
- \item \textsc{Floyd-Warshall} findet auch negative Kreise.
- Es existiert genau dann ein negativer Kreis, wenn \lstinline{dist[i][i] < 0} ist.
- \item \textbf{Evtl. überschreibt die Eingabe die Nullen auf der Hauptdiagonalen.}
- Das ist fast immer ungewollt!
+ \item Evtl. überschreibt die Eingabe die Nullen auf der Hauptdiagonalen.
+ Nur negative Werte sollten die Nullen überschreiben.
+ \item Von parallelen Kanten sollte nur die günstigste gespeichert werden.
+ \item Knoten \lstinline{i} liegt genau dann auf einem negativen Kreis, wenn \lstinline{dist[i][i] < 0} ist.
+ \item Ein u-v-Pfad existiert nicht, wenn \lstinline{dist[u][v] == INF}.
+ \item Gibt es einen Knoten \lstinline{c}, sodass \lstinline{dist[u][c] != INF && dist[c][v] != INF && dist[c][c] < 0}, wird der u-v-Pfad beliebig kurz.
\end{itemize}
\subsection{Strongly Connected Components (\textsc{Tarjans}-Algorithmus)}