diff options
Diffstat (limited to 'graph/graph.tex')
| -rw-r--r-- | graph/graph.tex | 50 |
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} |
