summaryrefslogtreecommitdiff
path: root/graph/graph.tex
diff options
context:
space:
mode:
Diffstat (limited to 'graph/graph.tex')
-rw-r--r--graph/graph.tex50
1 files changed, 27 insertions, 23 deletions
diff --git a/graph/graph.tex b/graph/graph.tex
index 596c0d6..37356f6 100644
--- a/graph/graph.tex
+++ b/graph/graph.tex
@@ -1,34 +1,32 @@
\section{Graphen}
-\subsection{Minimale Spannbäume}
+% \subsection{Minimale Spannbäume}
-\paragraph{Schnitteigenschaft}
-Für jeden Schnitt $C$ im Graphen gilt:
-Gibt es eine Kante $e$, die echt leichter ist als alle anderen Schnittkanten, so gehört diese zu allen minimalen Spannbäumen.
-($\Rightarrow$ Die leichteste Kante in einem Schnitt kann in einem minimalen Spannbaum verwendet werden.)
+% \paragraph{Schnitteigenschaft}
+% Für jeden Schnitt $C$ im Graphen gilt:
+% Gibt es eine Kante $e$, die echt leichter ist als alle anderen Schnittkanten, so gehört diese zu allen minimalen Spannbäumen.
+% ($\Rightarrow$ Die leichteste Kante in einem Schnitt kann in einem minimalen Spannbaum verwendet werden.)
-\paragraph{Kreiseigenschaft}
-Für jeden Kreis $K$ im Graphen gilt:
-Die schwerste Kante auf dem Kreis ist nicht Teil des minimalen Spannbaums.
-
-\subsubsection{Kruskal}
-\lstinputlisting{graph/kruskal.cpp}
+% \paragraph{Kreiseigenschaft}
+% Für jeden Kreis $K$ im Graphen gilt:
+% Die schwerste Kante auf dem Kreis ist nicht Teil des minimalen Spannbaums.
\subsection{Kürzeste Wege}
-\subsubsection{Algorithmus von \textsc{Dijkstra}}
-Kürzeste Pfade in Graphen ohne negative Kanten.
+% \subsubsection{Algorithmus von \textsc{Dijkstra}}
+% Kürzeste Pfade in Graphen ohne negative Kanten.
\lstinputlisting{graph/dijkstra.cpp}
-\subsubsection{\textsc{Bellmann-Ford}-Algorithmus}
-Kürzestes Pfade in Graphen mit negativen Kanten.
-Erkennt negative Zyklen.
+% \subsubsection{\textsc{Bellmann-Ford}-Algorithmus}
+% Kürzestes Pfade in Graphen mit negativen Kanten.
+% Erkennt negative Zyklen.
\lstinputlisting{graph/bellmannFord.cpp}
-\subsubsection{\textsc{Floyd-Warshall}-Algorithmus}
-\lstinputlisting{graph/floydWarshall.cpp}
+% \subsubsection{\textsc{Floyd-Warshall}-Algorithmus}
+% \lstinputlisting{graph/floydWarshall.cpp}
+Floyd Warshall:
\begin{itemize}[nosep]
- \item Nur negative Werte sollten die Nullen überschreiben.
+ \item Nur negative Werte sollten die Nullen bei Schlingen überschreiben.
\item Von parallelen Kanten sollte nur die günstigste gespeichert werden.
\item \lstinline{i} liegt genau dann auf einem negativen Kreis, wenn \lstinline{dist[i][i] < 0} ist.
\item Wenn für \lstinline{c} gilt, dass \lstinline{dist[u][c] != INF && dist[c][v] != INF && dist[c][c] < 0}, wird der u-v-Pfad beliebig kurz.
@@ -60,7 +58,7 @@ VISIT(v):
\lstinputlisting{graph/euler.cpp}
\subsection{Lowest Common Ancestor}
-\lstinputlisting{graph/LCA.cpp}
+\lstinputlisting{graph/lca.cpp}
\subsection{Max-Flow}
@@ -68,9 +66,9 @@ VISIT(v):
Gut bei dünn besetzten Graphen.
\lstinputlisting{graph/capacityScaling.cpp}
-\subsubsection{Push Relabel}
-Gut bei sehr dicht besetzten Graphen.
-\lstinputlisting{graph/pushRelabel.cpp}
+% \subsubsection{Push Relabel}
+% Gut bei sehr dicht besetzten Graphen.
+% \lstinputlisting{graph/pushRelabel.cpp}
\subsubsection{Dinic's Algorithm mit Capacity Scaling}
Nochmal ca. Faktor 2 schneller als Ford Fulkerson mit Capacity Scaling.
@@ -103,6 +101,12 @@ Nochmal ca. Faktor 2 schneller als Ford Fulkerson mit Capacity Scaling.
\lstinputlisting{graph/maxCarBiMatch.cpp}
\lstinputlisting{graph/hopcroftKarp.cpp}
+\subsection{Maximum Weight Bipartite Matching}
+\lstinputlisting{graph/maxWeightBipartiteMatching.cpp}
+
+\subsection{Wert des maximalen Matchings}
+\lstinputlisting{graph/matching.cpp}
+
\subsection{2-SAT}
\lstinputlisting{graph/2sat.cpp}