\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} \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 :