From def239013164b72e26b7d856df217e8ede88dad4 Mon Sep 17 00:00:00 2001 From: Thomas Ba Date: Thu, 22 Mar 2012 17:09:47 +0100 Subject: [PATCH] ford-fulkerson (todo) --- Algorithmen/Algorithmen.tex | 5 ++- Algorithmen/flussnetzwerke.tex | 60 +++++++++++++++++++++++++++++++++- 2 files changed, 63 insertions(+), 2 deletions(-) diff --git a/Algorithmen/Algorithmen.tex b/Algorithmen/Algorithmen.tex index f6c787a..af81883 100644 --- a/Algorithmen/Algorithmen.tex +++ b/Algorithmen/Algorithmen.tex @@ -53,6 +53,8 @@ \setlength{\leftbarsep}{10pt} \colorlet{leftbarcolor}{gray} +\usepackage{pseudocode} + \usepackage{listings} \lstdefinelanguage{pseudo}{ morekeywords= @@ -69,6 +71,7 @@ {rfloor} {$\rfloor$}{1} {cdot} {$\cdot$}{1} } \lstset{ + language=pseudo, basicstyle=\ttfamily\footnotesize, keywordstyle=\color{red}, commentstyle=\color{blue}, @@ -79,7 +82,7 @@ frame=single, showstringspaces=true, breaklines=true, - numberstyle=\footnotesize\textcolor{grey}, + numberstyle=\footnotesize\textcolor{gray}, numbers=left, tabsize=4, captionpos=b diff --git a/Algorithmen/flussnetzwerke.tex b/Algorithmen/flussnetzwerke.tex index ca267f8..4fe92ca 100644 --- a/Algorithmen/flussnetzwerke.tex +++ b/Algorithmen/flussnetzwerke.tex @@ -63,7 +63,65 @@ Im \bsp \( c_f(p) = 4 \) Für \( (u,v) \in p \) ist \(f_p(u,v) = c_f(p) \le c_f(u,v) \) nach Definition von \(c_f(p) \) \item Symmetrie gilt nach Definition \item Kirchhoffsches Gestz: Sei $u$ Knoten auf $p$\\ - \includegraphics{img/restnetzwerk_p.pdf} + \includegraphics{img/restnetzwerk_p.pdf}\\ + \begin{align} + \sum\limits_{v\in V} f(u,v) &= f(v,u) + f(u,v) + f(u,w) + f(w,u)\\ % TODO: Underbrace c_f(...) + &= 0 + \end{align}\\ \end{enumerate} +Wert \(\|f_p\| = c_f(p) \) (Im \bsp \(=4\)) + +\lemma Sei $f$ Fluss in $G$ und $f'$ Fluss in $G_f$. Dann ist \( f + f' \) ein Fluss in $G$ und der Wert \(\|f+f'\| = \|f\| + \|f'\|\). + +\bew +\begin{enumerate} + \item \underline{Symmetrie} + \begin{align} + (f+f')(u,v) &= f(u,v) + f'(u,v)\\ + &= -f(v,u) - f'(v,u)\\ + &= -\left( (f+f')(v,u) \right) + \end{align} + \item \underline{Kapazität} + \begin{align} + (f+f')(u,v) &= f(u,v) + \underbrace{f'(u,v)}_{ \le c_f(u,v) = c(u,v)-f(u,v) }\\ + &\le f(u,v) + c(u,v) - f(u,v)\\ + &= c(u,v) + \end{align} + \item \underline{Kirchhoff}: + \begin{align} + \sum\limits_{v\in V} (f+f')(u,v) &= \sum\limits_{v\in V} \left(f(u,v) + f'(u,v)\right)\\ + &= \sum\limits_{v\in V} f(u,v) + \sum\limits_{v\in V} f'(u,v)\\ + &= 0 + 0 = 0 + \end{align} +\end{enumerate} +\begin{align} + \text{Wert:} \|f+f'\| &= \sum\limits_{v\in V} (f+f')(s,v)\\ + &= \sum\limits_{v\in V} f(s,v) + \sum\limits_{v\in V} f'(s,v)\\ + &= \|f\| + \|f'\| +\end{align} + +\subsection{Ford-Fulkerson-Methode} + +\begin{pseudocode}[framebox]{Ford-Fulkerson-Methode}{G,s,t,c} +f \GETS 0\\ +\WHILE \text{es gibt einen Erweiterungspfad }p\text{ in }G_p +\DO \text{erhöhe den Fluss um }f_p\\ +\RETURN f +\end{pseudocode} + +Genauer: + +\begin{pseudocode}[framebox]{Ford-Fulkerson}{G,s,t,c} + \FOREACH (u,v) \in E + \DO \BEGIN + f(u,v) \GETS 0\\ + f(v,u) \GETS 0 + \END + \WHILE \text{Es gibt einen Weg } p \text{ von } s \text{ nach } t \text{ in } G_f + \DO\BEGIN + % TODO + \END +\end{pseudocode} + % vim: ft=tex :