\section{Flüsse in Netzwerken}

\includegraphics{img/flussnetzwerk.pdf}

Ein \underline{Flussnetzwerk} besteht aus einem gerichteten Graph \(G=(V,E)\) und einer \underline{Kapazitätsfunktion} \(c: V\times V \to \mathbb R\) mit \(c(u,v) \ge 0 \forall u,v \in V\) und \(c(u,v) = 0\), falls \((u,v) \not\in E\).\\
Außerdem seien \(s\ne t \in V\) 2 ausgezeichnete Knoten. Dabei liege jeder Knoten auf einem Weg von \(s\) nach \(t\).

Ein \underline{Fluss (im Netzwerk)} ist eine Funktion \( f: V\times V \to \mathbb R\) mit folgenden Eigenschaften:

\begin{enumerate}
	\item \underline{Kapazitätsbedingung}: \(f(u,v) \le c(u,v) \forall u,v \in V\)
	\item \underline{Symmetriebedingung}: \(f(u,v) = -f(v,u) \forall u,v \in V\)\\
		Ein Fluss von z.\,B. 12 von $u$ nach $v$ ist auch ein Fluss von \(-12\) von $v$ nach $u$.
	\item \underline{Kirchhoffsches Gesetz}:\\
		\(\forall u\in V - \{s,t\}\)\\
		\(\sum\limits_{v\in V} f(u,v) = 0\)\\
		Bsp.: \(v: 12+(-11)+(-1) = 0\)
\end{enumerate}

\subsection{Wert des Flusses}

Der Wert des Flusses $f$ ist \( |f| = \sum\limits_{v\in V} f(s,v) \)\\
Kurzschreibweise sei \(X,Y \subseteq V\)\\
dann Def. \( f(X,Y) = \sum\limits_{x\in X} \sum\limits_{y\in Y} f(x,y) \)

\underline{Maximaler Fluss} berechnen:

Gegeben: \( G=(V,E), \  s,t \in V, c \)\\
Gesucht: Fluss $f$, so dass \(|f|\) maximal ist.

Ist \((u,v) \not\in E\) und \((v,u) \not\in E\), dann ist \( c(u,v) = c(v,u) = 0 \).\\
Für \(f\) muss also gelten:
\begin{itemize}
	\item \( f(u,v) \le 0 \) und \( f(v,u) \le 0 \)
	\item \( f(u,v) = -f(v,u) \Rightarrow f(u,v) = f(v,u) = 0 \)
\end{itemize}

\subsection{Restnetzwerk}

Sei $f$ ein Fluss in $G$. Die \underline{Restkapazität der Kante \((u,v)\)} ist \( c_f(u,v) = c(u,v) - f(u,v) \). Das \underline{Restnetzwerk von $G$ bzgl. $f$} ist \( G_f = (V,E_f) \) mit \( E_f = \{ (u,v) \in V\times V \mid c_f(u,v) > 0 \}\).

\bsp\\
\includegraphics{img/restnetzwerk.pdf}

Sei $p$ Weg von $s$ nach $t$ in $G_f$ die \underline{Restkapazität von $p$ in $G_f$}\\
\( c_f(p) = min \{ c_f(u,v) \mid (u,v) \in p \} \)\\
Im \bsp \( c_f(p) = 4 \)

\begin{mydef}
	Definiere \(f_p\):\\
	\begin{math}
		f_p(u,v) = \begin{cases}
			c_f(p)  &,\text{ falls } (u,v) \in p\\
			-c_f(p) &,\text{ falls } (v,u) \in p\\
			0       &,\text{ sonst}
		\end{cases}
	\end{math}
\end{mydef}

\(f_p\) ist Fluss:
\begin{enumerate}
	\item Kapazitätsbedingung:\\
		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}\\
		\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*}
\newpage
\subsection{Ford-Fulkerson-Methode}

\begin{algorithm}
	\caption{\textsc{Ford-Fulkerson-Methode} $(G,s,t,c)$}
	\begin{algorithmic}[1]
		\State \(f \leftarrow 0\)
		\While{es gibt einen Erweiterungspfad $p$ in $G_p$}
			\State erhöhe den Fluss um $f_p$
		\EndWhile\\
		\Return{f}
	\end{algorithmic}
\end{algorithm}

Genauer:

\begin{algorithm}
	\caption{\textsc{Ford-Fulkerson} $(G,s,t,c)$}
	\begin{algorithmic}[1]
		\ForAll{\((u,v) \in E\)}
			\State \(f(u,v) \leftarrow 0\)
			\State \(f(v,u) \leftarrow 0\)
		\EndFor
		\While{Es gibt einen Weg \(p\) von \(s\) nach \(t\) in \(G_f\)}
			\State \(G_f(P) \leftarrow min\{ c_f(u,v) \mid (u,v) \in P \} \)
			\ForAll{\((u,v) \in P\)}
				\State \(f(u,v) \leftarrow f(u,v) + c_f(P) \)
				\State \(f(v,u) \leftarrow -f(u,v) \)
			\EndFor
		\EndWhile
	\end{algorithmic}
\end{algorithm}


% vim: ft=tex :
