www.wikidata.de-de.nina.az
Dieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mit Belegen beispielsweise Einzelnachweisen ausgestattet Angaben ohne ausreichenden Beleg konnten demnachst entfernt werden Bitte hilf Wikipedia indem du die Angaben recherchierst und gute Belege einfugst Flusse und Schnitte in Netzwerken sind Strukturen der Graphentheorie die vielfaltige Anwendungen finden Inhaltsverzeichnis 1 Definitionen wichtige Begriffe und Eigenschaften 1 1 Netzwerk 1 2 Fluss 1 2 1 Exzess 1 2 2 Wert 1 3 Schnitt 1 4 Residualnetzwerk 1 4 1 Algorithmische Konstruktion eines Residualnetzwerks 1 5 Schichtnetzwerk 1 6 Besondere Wege und Flusse 1 7 Praflusse 2 Algorithmen 2 1 Max Flow Algorithmen nach Veroffentlichung 3 Formulierungen als lineares Programm 4 Verallgemeinerungen 5 Anwendung 5 1 Praktische Anwendungen 5 2 Theoretische Anwendungen 6 LiteraturDefinitionen wichtige Begriffe und Eigenschaften BearbeitenNetzwerk Bearbeiten Ein Netzwerk engl network N G u s t displaystyle N G u s t nbsp besteht aus einem gerichteten Graphen G V E displaystyle G V E nbsp mit zwei ausgezeichneten Knoten engl vertex vertices einer Quelle engl source s displaystyle s nbsp und einer Senke engl target t displaystyle t nbsp aus V displaystyle V nbsp sowie einer Kapazitatsfunktion u E R displaystyle u colon E rightarrow mathbb R nbsp die jeder Kante e E displaystyle e in E nbsp eine nichtnegative Kapazitat zuweist e u e displaystyle e mapsto u e nbsp Hat die Kapazitatsfunktion ausschliesslich ganzzahlige Werte so existiert eine maximale Flussfunktion siehe folgende Definition die ebenfalls nur ganzzahlige Werte hat Fluss Bearbeiten nbsp Beispiel fur einen Fluss Die Belegung steht zusammen mit der Kapazitat an den einzelnen Kanten Der Wert des s displaystyle s nbsp t displaystyle t nbsp Flusses ist 2 nbsp Beispiel fur ein Residualnetzwerk Auf dem Pfad s displaystyle s nbsp a displaystyle a nbsp b displaystyle b nbsp t displaystyle t nbsp lasst sich der Fluss um den Wert 2 augmentieren Ein Fluss ist eine Funktion f E R displaystyle f colon E rightarrow mathbb R nbsp die jeder Kante e E displaystyle e in E nbsp im Netzwerk einen nichtnegativen Flusswert f e R displaystyle f e in mathbb R nbsp zuweist Dabei muss folgende Bedingung erfullt sein Kapazitatskonformitat Der Flusswert auf einer Kante ist hochstens so gross wie die Kapazitat der Kante das heisst es gilt e E f e u e displaystyle forall e in E f e leq u e nbsp Ist zusatzlich die folgende Bedingung erfullt heisst der Fluss s displaystyle s nbsp t displaystyle t nbsp Fluss Flusserhalt Abgesehen von der Quelle s und der Senke t muss in jeden Knoten genau so viel hineinfliessen wie herausfliesst das heisst v V s t e d v f e e d v f e displaystyle forall v in V setminus s t sum e in operatorname delta v f e sum e in operatorname delta v f e nbsp Dabei ist d v d e f e x v E x V displaystyle operatorname delta v overset underset mathrm def e x v in E mid x in V nbsp die Menge der in v displaystyle v nbsp hineinfuhrenden und d v d e f e v x E x V displaystyle operatorname delta v overset underset mathrm def e v x in E mid x in V nbsp die Menge der aus v displaystyle v nbsp hinausfuhrenden Kanten Gilt zudem Flusserhalt auch in s displaystyle s nbsp und t displaystyle t nbsp hat man eine Stromung oder Zirkulation Man kann zeigen dass Inzidenzvektoren einer Zirkulation entsprechen wenn sie im Zyklenraum Z G displaystyle Z G nbsp von G displaystyle G nbsp liegen Exzess Bearbeiten Der Exzess ex v displaystyle operatorname ex v nbsp eines Knotens v displaystyle v nbsp oder auch Nettofluss oder Uberschuss genannt ist die Differenz der Summe der Flusswerte der eingehenden Kanten und der Summe der Flusswerte der ausgehenden Kanten ex v d e f e d v f e e d v f e displaystyle operatorname ex v overset underset mathrm def sum e in operatorname delta v f e sum e in operatorname delta v f e nbsp nbsp Beispiel fur einen Schnitt Die Kapazitat des Schnittes ist u s b u a b u a t 1 2 1 4 displaystyle begin aligned amp quad u s b amp u a b amp u a t amp 1 2 1 4 end aligned nbsp Wert Bearbeiten Der Wert eines s displaystyle s nbsp t displaystyle t nbsp Flusses f displaystyle f nbsp ist der Uberschuss im Knoten t displaystyle t nbsp oder der Betrag des Uberschusses im Knoten s displaystyle s nbsp In Formeln f e d s f e e d s f e displaystyle f sum e in operatorname delta s f e sum e in operatorname delta s f e nbsp wobei s displaystyle s nbsp die Quelle des Netzwerkes bezeichnet Fur alle s displaystyle s nbsp t displaystyle t nbsp Flusse ist der Uberschuss bis auf s t displaystyle s t nbsp fur alle Knoten Null Fur alle Zirkulationen ist er auch in s t displaystyle s t nbsp Null Schnitt Bearbeiten Eine echte Teilmenge S displaystyle S nbsp der Knoten in einem Netzwerk die s displaystyle s nbsp aber nicht t displaystyle t nbsp enthalt nennt man einen s displaystyle s nbsp t displaystyle t nbsp Schnitt Oft wird unter einem Schnitt auch die Menge aller Kanten verstanden die zwischen den Partitionen S displaystyle S nbsp und V S displaystyle V setminus S nbsp verlaufen Die Kapazitat eines Schnittes ist die Summe der Kapazitaten der von S displaystyle S nbsp nach V S displaystyle V setminus S nbsp verlaufenden Kanten Schnitte geben eine obere Schranke fur den Wert der s displaystyle s nbsp t displaystyle t nbsp Flusse Das Max Flow Min Cut Theorem besagt dass auch umgekehrt Flusswerte eine Untere Schranke fur Schnittkapazitaten sind Beide Konzepte entsprechen also einander auf eine naturliche Art und Weise Ferner entspricht der Fluss im gesamten Netzwerk dem Fluss durch einen beliebigen Schnitt Zusammen mit der Kapazitat des Schnittes gilt daher f S T f c S T displaystyle f S T f leq c S T nbsp Handelt es sich um einen minimalen Schnitt entspricht der Fluss der Kapazitat des Schnittes 1 Residualnetzwerk Bearbeiten Das Residualnetzwerk N f displaystyle N f nbsp oder auch Restnetzwerk zum Fluss f displaystyle f nbsp mit Residualgraphen G f displaystyle G f nbsp und Residualkapazitaten u f displaystyle u f nbsp zeigt die restlichen Kapazitaten des Netzwerks an Der Residualgraph G f displaystyle G f nbsp hat dieselbe Knotenmenge wie G displaystyle G nbsp und besteht aus den von f displaystyle f nbsp nicht ausgelasteten Kanten erganzt um Ruckkanten Fur jede Kante e v w E displaystyle e v w in E nbsp mit f e gt 0 displaystyle f e gt 0 nbsp enthalt E f displaystyle E f nbsp eine Ruckkante e w v displaystyle overleftarrow e w v nbsp Die Residualkapazitaten u f e displaystyle u f e nbsp geben fur eine Kante e E displaystyle e in E nbsp an um wie viel der Fluss auf ihr noch erhoht werden kann und fur eine Ruckkante e displaystyle overleftarrow e nbsp um wie viel der Fluss auf der zugehorigen Hinkante verringert werden darf Also e E u f e u e f e displaystyle forall e in E u f e u e f e nbsp falls f e lt u e displaystyle f e lt u e nbsp e E f E u f e f e displaystyle forall overleftarrow e in E f setminus E u f overleftarrow e f e nbsp Algorithmische Konstruktion eines Residualnetzwerks Bearbeiten Initialisiere E f displaystyle E f emptyset nbsp u f u displaystyle u f equiv u nbsp 1 Fur alle Kanten e E displaystyle e in E nbsp 2 if f e gt 0 displaystyle f e gt 0 nbsp 3 Fuge e displaystyle overleftarrow e nbsp in E f displaystyle E f nbsp ein 4 Setze u f e f e displaystyle u f overleftarrow e f e nbsp 5 if f e lt u e displaystyle f e lt u e nbsp 6 Fuge e displaystyle e nbsp in E f displaystyle E f nbsp ein 7 Setze u f e u e f e displaystyle u f e u e f e nbsp 8 gib aus N f V E f u f s t displaystyle N f V E f u f s t nbsp Schichtnetzwerk Bearbeiten Der Level eines Knotens level v d e f d f s v displaystyle operatorname level v overset underset mathrm def delta f s v nbsp ist die Anzahl der Kanten eines kurzesten Weges von s displaystyle s nbsp nach v displaystyle v nbsp im Residualnetzwerk zum Fluss f displaystyle f nbsp Der i displaystyle i nbsp te Level eines Graphen ist die Menge aller Knoten mit Level i displaystyle i nbsp also V i d e f v V level v i displaystyle V i overset underset mathrm def v in V mid operatorname level v i nbsp Eine Kante e w v displaystyle e w v nbsp mit Flusswert f e displaystyle f e nbsp heisst nutzlich von w displaystyle w nbsp nach v displaystyle v nbsp falls f e lt u e displaystyle f e lt u e nbsp Falls gilt f e gt 0 displaystyle f e gt 0 nbsp heisst sie nutzlich von v displaystyle v nbsp nach w displaystyle w nbsp Eine Kante heisst nutzlich aus einer Menge falls sie nutzlich von einem Element der Menge in ein Element ausserhalb der Menge ist Analog erklart man nutzlich in eine Menge Das Schichtnetzwerk oder Levelnetzwerk N f displaystyle tilde N f nbsp zum Fluss f displaystyle f nbsp ist ein Teilgraph von G displaystyle G nbsp mit V f d e f V displaystyle tilde V f overset underset mathrm def V nbsp E f d e f e w v E f level w level v 1 displaystyle tilde E f overset underset mathrm def e w v in E f mid operatorname level w operatorname level v 1 nbsp Schicht und Residualnetzwerk konnen in linearer Laufzeit berechnet werden Besondere Wege und Flusse Bearbeiten Ein x y Weg oder Pfad W x y displaystyle W x y nbsp ist eine Folge von Kanten wobei der Ausgangsknoten jeder Kante der Endknoten ihres Vorgangers ist Die Lange eines Weges d W x y displaystyle delta W x y nbsp auch d i s t W x y displaystyle dist W x y nbsp ist die Anzahl der Kanten im Weg Die Distanz zwischen x displaystyle x nbsp und y displaystyle y nbsp ist die Lange eines kurzesten Weges falls einer existiert und unendlich falls nicht Ein Weg im Residualnetzwerk heisst augmentierender Weg die Bezeichnungen verbessernder Weg oder erhohender Weg sind auch gebrauchlich Jeder s displaystyle s nbsp t displaystyle t nbsp Fluss lasst sich in Flusse auf s displaystyle s nbsp t displaystyle t nbsp Wegen und auf Kreisen zerlegen Genau dann wenn in einem Netzwerk zu einem s displaystyle s nbsp t displaystyle t nbsp Fluss kein augmentierender Weg existiert hat der Fluss maximalen Wert Diesen Sachverhalt nutzen der Algorithmus von Ford und Fulkerson und der Algorithmus von Edmonds und Karp aus Ein Fluss f displaystyle f nbsp in einem Netzwerk G u s t displaystyle G u s t nbsp heisst blockierend falls in jedem s displaystyle s nbsp t displaystyle t nbsp Weg in G displaystyle G nbsp eine Kante e displaystyle e nbsp blockiert oder auch saturiert ist d h f e u e displaystyle f e u e nbsp Push Operation PUSH v w displaystyle operatorname PUSH v w nbsp gt Voraussetzungen v V displaystyle v in V nbsp hat Exzess u f v w gt 0 displaystyle u f v w gt 0 nbsp und h v h w 1 displaystyle operatorname h v operatorname h w 1 nbsp gt Beschreibung Schiebe d f v w d e f m i n ex v u f v w displaystyle d f v w overset underset mathrm def min operatorname ex v u f v w nbsp Einheiten Fluss von v displaystyle v nbsp nach w displaystyle w nbsp 1 d f v w m i n ex v u f v w displaystyle d f v w leftarrow min operatorname ex v u f v w nbsp 2 f v w f v w d f v w displaystyle f v w leftarrow f v w d f v w nbsp 3 f w v f v w displaystyle f w v leftarrow f v w nbsp 4 ex v ex v d f v w displaystyle operatorname ex v leftarrow operatorname ex v d f v w nbsp 5 ex w ex w d f v w displaystyle operatorname ex w leftarrow operatorname ex w d f v w nbsp Lift Operation LIFT v displaystyle operatorname LIFT v nbsp Voraussetzungen v V displaystyle v in V nbsp hat Exzess und es gilt fur beliebige w V displaystyle w in V nbsp v w E f h v h w displaystyle v w in E f Rightarrow operatorname h v leq operatorname h w nbsp Beschreibung inkrementiere die Hohe von v displaystyle v nbsp 1 h v 1 m i n h w v w E f displaystyle operatorname h v leftarrow 1 min operatorname h w mid v w in E f nbsp Praflusse Bearbeiten s displaystyle s nbsp t displaystyle t nbsp Praflusse oder auch Vorflusse engl preflow sind eine Verallgemeinerung von s displaystyle s nbsp t displaystyle t nbsp Flussen Dieser Begriff ist nur bei komplexeren und wesentlich effizienteren Flussalgorithmen von Bedeutung Ein s displaystyle s nbsp t displaystyle t nbsp Prafluss ist eine Funktion f A R displaystyle f colon A rightarrow mathbb R nbsp mit Kapazitatskonformitat wie oben und folgender Abschwachung des Flusserhalts u V s ex u 0 displaystyle forall u in V setminus s operatorname ex u geq 0 nbsp Das bedeutet nur den Knoten s displaystyle s nbsp darf mehr Fluss verlassen als ihn erreicht Ein s displaystyle s nbsp t displaystyle t nbsp Prafluss hat Uberschuss in einem Knoten oder auch Overflow falls sein Uberschuss wie oben echt grosser als Null ist Das Residualnetzwerk wird analog zu oben gebildet Die Hohenfunktion oder Distanzmarkierung in einem Netzwerk mit s displaystyle s nbsp t displaystyle t nbsp Prafluss f displaystyle f nbsp ist eine Abbildung h V N 0 displaystyle operatorname h colon V rightarrow mathbb N 0 nbsp mit h s V displaystyle operatorname h s V nbsp h t 0 displaystyle operatorname h t 0 nbsp und h v h w 1 displaystyle operatorname h v leq operatorname h w 1 nbsp fur alle Kanten e v w E f displaystyle e v w in E f nbsp Ferner erklart man die Operationen Push und Lift algorithmisch so wie rechts beschrieben Mit diesen Mitteln kann man Preflow Push Algorithmen entwerfen und untersuchen etwa den Goldberg Tarjan Algorithmus nach Andrew Goldberg und Robert Tarjan Bei diesen Algorithmen kann man die Datenstrukturen wahrend der Algorithmus lauft nicht als s displaystyle s nbsp t displaystyle t nbsp Fluss interpretieren Die Methode von Goldberg und Tarjan initialisiert einen Prafluss und terminiert falls gewisse Manipulationen der Struktur einen s displaystyle s nbsp t displaystyle t nbsp Fluss liefern Das ist dort stets nach endlich vielen Schritten der Fall und dieser s displaystyle s nbsp t displaystyle t nbsp Fluss ist dann stets maximal Algorithmen BearbeitenDer Algorithmus von Ford und Fulkerson sucht nach und nach augmentierende Wege also Wege im Residualnetzwerk und erhoht dort entlang Dieses Verfahren klappt genau dann wenn dieser Algorithmus terminiert also in die Situation kommt dass es tatsachlich keine augmentierenden Wege mehr gibt Dann kann man namlich die maximale von s displaystyle s nbsp aus im Residualnetz erreichbare Knotenmenge betrachten Diese definiert einen s displaystyle s nbsp t displaystyle t nbsp Schnitt dessen Kapazitat dem Flusswert gleicht Um das Terminieren aber zu sichern kann man ein Argument uber die algebraische Struktur der Kapazitatswerte heranziehen Sind es nichtnegative ganze Zahlen ist der Wert eines maximalen s displaystyle s nbsp t displaystyle t nbsp Flusses eine ganze Zahl Zudem gibt es wenigstens einen maximalen s t Fluss der kantenweise lediglich ganzzahlige Werte annimmt Fur jeden maximalen s t Fluss muss das nicht der Fall sein Weil jedes Augmentieren entlang eines s displaystyle s nbsp t displaystyle t nbsp Weges den Wert des s displaystyle s nbsp t displaystyle t nbsp Flusses um einen ganzzahligen Schritt also um mindestens 1 erhoht ist die Terminierung nach endlich vielen Schritten in dem Fall gesichert Eine obere Schranke der Laufzeit des Algorithmus kann dann von den Werten der Kapazitaten abhangen Die Laufzeit kann dann in Bezug auf Anzahl der Knoten und Kanten beliebig gross sein je nachdem welche Kapazitaten auf den Kanten gegeben sind Sind die Kapazitaten nichtnegative rationale Zahlen terminiert der Ford Fulkerson Algorithmus ebenfalls weil das Netzwerk dann algorithmisch aquivalent zu einem Netzwerk ist bei dem die Kapazitaten mit dem Hauptnenner multipliziert sind also nur ganzzahlige Kapazitaten auftreten Bei reellen irrationalen Kapazitaten muss der Algorithmus jedoch nicht terminieren und noch nicht einmal gegen einen maximalen s displaystyle s nbsp t displaystyle t nbsp Fluss konvergieren Der Edmonds Karp Algorithmus stellt eine Weiterentwicklung der Methode von Ford und Fulkerson dar Er funktioniert ganz analog sucht aber augmentierende Wege die bezuglich Kantenanzahl minimal sind Das geht mit einer Breitensuche jeweils in linearer Laufzeit Der Edmonds Karp Algorithmus terminiert auch bei beliebigen reellen Kantenkapazitaten Daruber hinaus ist seine Laufzeit O V E 2 displaystyle mathcal O V cdot E 2 nbsp also im Allgemeinen grossenordnungsmassig deutlich besser als der Ford Fulkerson Algorithmus Der Dinic Algorithmus basiert auf einer weiteren Beobachtung Sucht man im Residualnetzwerk nach einem augmentierenden Weg kann es passieren dass man in Sackgassen gerat also zu einem Knoten von dem aus t displaystyle t nbsp gar nicht erreichbar ist Die Idee ist das Netzwerk zu schichten also in Gruppen zusammenzufassen die dieselbe Entfernung zu s displaystyle s nbsp haben also solche Sackgassen eliminiert sind In diesem Schichtnetzwerken nutzt man dann ferner aus dass eine Suche nicht nur einen Weg liefert sondern immer auch ohne zusatzlichen Aufwand einen Wegbaum Entlang dieses Baumes kann man dann Fluss schicken und das Netzwerk blockieren Das geht alles elementar in O V E displaystyle mathcal O V cdot E nbsp mit einer modifizierten Tiefensuche In der nachsten Iteration hat man dann die Situation wenigstens eine Schicht mehr zu benotigen weil die alte Schichtung blockiert ist Das Argument zur Beschrankung der Schichtzahl auf hochstens V 1 displaystyle V 1 nbsp Stuck liefert eine Schranke an die Anzahl der sogenannten Phasendurchlaufe des Algorithmus also die Anzahl der Schleifeniterationen Somit ergibt sich eine Laufzeit von O V 2 E displaystyle mathcal O V 2 cdot E nbsp Die folgende Tabelle gibt eine Ubersicht der entwickelten Fluss Algorithmen und ihrer Laufzeiten Max Flow Algorithmen nach Veroffentlichung Bearbeiten Jahr Autor en Name Laufzeiten1956 Ford Fulkerson Algorithmus von Ford und Fulkerson O m n u max displaystyle mathcal O left m cdot n cdot u max right nbsp falls alle Kapazitaten ganzzahlig sind1969 Edmonds Karp Algorithmus von Edmonds und Karp O m 2 n displaystyle mathcal O left m 2 cdot n right nbsp 1970 Dinic Algorithmus von Dinic O m n 2 displaystyle mathcal O left m cdot n 2 right nbsp 1973 Dinic Gabow O m n log u max displaystyle mathcal O left m cdot n cdot log left u max right right nbsp 1974 Karzanov O n 3 displaystyle mathcal O left n 3 right nbsp 1977 Cherkassky O n 2 m displaystyle mathcal O left n 2 cdot sqrt m right nbsp 1980 Galil Naamad O m n log n 2 displaystyle mathcal O left m cdot n cdot log left n right 2 right nbsp 1983 Sleator Tarjan O m n log n displaystyle mathcal O left m cdot n cdot log left n right right nbsp 1986 Goldberg Tarjan Goldberg Tarjan Algorithmus O m n log n 2 m displaystyle mathcal O left m cdot n cdot log left frac n 2 m right right nbsp 1987 Ahuja Orlin O m n n 2 log u max displaystyle mathcal O left m cdot n n 2 cdot log left u max right right nbsp 1987 Ahuja Orlin Tarjan O m n log 2 n log u max m displaystyle mathcal O left m cdot n cdot log left 2 frac n cdot sqrt log u max m right right nbsp 1990 Cheriyan Hagerup Mehlhorn O n 3 log n displaystyle mathcal O left frac n 3 log left n right right nbsp 1990 Alon O m n n 8 3 log n displaystyle mathcal O left m cdot n sqrt 3 n 8 cdot log left n right right nbsp 1992 King Rao Tarjan O m n n 2 e displaystyle mathcal O left m cdot n n 2 e right nbsp 1993 Philipps Westbrook 2 O m n log m n n n 2 log n 2 e displaystyle mathcal O left m cdot n cdot log frac m n left n right n 2 cdot log left n right 2 e right nbsp 1994 King Rao Tarjan 3 O m n log m n log n n displaystyle mathcal O left m cdot n cdot log frac m n cdot log n n right nbsp 1997 Goldberg Rao 4 O min m n 2 3 m log n 2 m log u max displaystyle mathcal O left min sqrt m sqrt 3 n 2 cdot m cdot log left frac n 2 m right cdot log u max right nbsp 2012 Orlin King Rao Tarjan O n m displaystyle mathcal O left n cdot m right nbsp 2022 Chen Kyng Liu Peng Gutenberg Sachdeva 5 m 1 o 1 displaystyle m 1 o 1 nbsp fur ganzzahlige Kapazitaten die polynomiell beschrankt sindLegende n V displaystyle n V nbsp Anzahl der Knoten m E displaystyle m E nbsp Anzahl der Kanten u max displaystyle u max nbsp Maximum der Kapazitatsfunktion u displaystyle u nbsp Joost Pieter Katoen Datenstrukturen und Algorithmen Vorlesung 18 Maximaler Fluss K26 S 40 41 archiviert vom Original am 1 Januar 2021 abgerufen am 1 Januar 2021 nbsp Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot moves rwth aachen de Steven J Phillips Jeffery Westbrook On Line Load Balancing and Network Flow In Algorithmica Volume 21 Number 3 Juli 1998 245 261 V King S Rao R Tarjan A Faster Deterministic Maximum Flow Algorithm In Journal of Algorithms Volume 17 Issue 3 November 1994 447 474 David Papp The Goldberg Rao Algorithm for the Maximum Flow Problem PDF 111 kB 2006 Li Chen Rasmus Kyng Yang P Liu Richard Peng Maximilian Probst Gutenberg Sushant Sachdeva Maximum Flow and Minimum Cost Flow in Almost Linear Time arXiv 2022Formulierungen als lineares Programm BearbeitenDas Problem den Flusswert f displaystyle f nbsp zu maximieren lasst sich ebenfalls als lineares Optimierungsproblem beschreiben Wahlt man beispielsweise eine Variable x e displaystyle x e nbsp fur jede Kante e E displaystyle e in E nbsp welche den Fluss f e displaystyle f e nbsp auf der Kante misst so ergibt sich das folgende Programm max e d s x e e d s x e so dass v V s t e d v x e e d v x e e E x e 0 e E x e u e displaystyle begin aligned max amp sum e in operatorname delta s x e sum e in operatorname delta s x e text so dass amp forall v in V setminus s t colon sum e in operatorname delta v x e sum e in operatorname delta v x e amp forall e in E colon x e geq 0 amp forall e in E colon x e leq u e end aligned nbsp Eine alternative Formulierung erhalt man wenn man fur jeden s displaystyle s nbsp t displaystyle t nbsp Pfad P displaystyle P nbsp eine Variable x P displaystyle x P nbsp einfuhrt welche den Fluss auf dem entsprechenden Pfad bezeichnet Es ergibt sich daraus das folgende Programm max P P s t x P so dass e E P P s t e P x P u e P P s t x P 0 displaystyle begin aligned max amp sum P in mathcal P s t x P text so dass amp forall e in E colon sum P in mathcal P s t e in P x P leq u e amp forall P in mathcal P s t colon x P geq 0 end aligned nbsp Dabei bezeichnet P s t displaystyle mathcal P s t nbsp die Menge aller Pfade von s displaystyle s nbsp nach t displaystyle t nbsp Die zweite Formulierung erscheint zunachst ungunstig da die Anzahl der s displaystyle s nbsp t displaystyle t nbsp Pfade im Allgemeinen exponentiell mit der Anzahl der Knoten und Kanten wachst Trotzdem kann diese Formulierung durch Spaltengenerierung effizient also in Polynomialzeit gelost werden Die beiden Formulierungen haben zusatzlich die Eigenschaft dass die Matrizen welche die Nebenbedingungen beschreiben total unimodular sind Damit ist jede Optimallosung der beiden Programme ganzzahlig sofern die Kapazitaten u e displaystyle u e nbsp ganzzahlig sind Es ist zudem lehrreich sich die Dualisierungen der obigen Programme anzusehen Fur die pfadbasierte Formulierung ist das duale Programm beispielsweise gegeben durch min e E u e y e so dass P P s t e P y e 1 e E y e 0 displaystyle begin aligned min amp sum e in E u e y e text so dass amp forall P in mathcal P s t colon sum e in P y e geq 1 amp forall e in E colon y e geq 0 end aligned nbsp Das duale Programm ist ebenfalls total unimodular Dies impliziert dass die Optimallosung des dualen Programms ein 0 1 displaystyle 0 1 nbsp Vektor mit E displaystyle E nbsp Eintragen ist Fur jeden zulassigen 0 1 displaystyle 0 1 nbsp Vektor y displaystyle y nbsp entspricht ausserdem die Menge e E y e 1 displaystyle e in E y e 1 nbsp einem s displaystyle s nbsp t displaystyle t nbsp Schnitt Damit entspricht die Optimallosung des dualen Programms einem s displaystyle s nbsp t displaystyle t nbsp Schnitt minimaler Kapazitat Hieraus folgt durch den starken Dualitatssatz der linearen Optimierung das Max Flow Min Cut Theorem Verallgemeinerungen BearbeitenZu dem Problem gibt es einige wesentliche Verallgemeinerungen Als erstes kann man anstelle von Flussen zwischen einer Quelle beziehungsweise Senke solche zwischen Gebieten betrachten Dazu gibt man sich eine gewisse Menge von Versorgern S displaystyle S nbsp und eine Menge von Empfangern T displaystyle T nbsp vor sowie einen Graphen und Kapazitaten Das Problem ist nicht schwerer als Max Flow und kann entweder durch Vor und Nachschalten von Zusatzknoten oder durch Ubergang zum Quotientengraphen G S T displaystyle G S cup T nbsp auf Max Flow reduziert werden Andererseits kann man die Gultigkeit der den Kanten zugewiesenen Kapazitaten auf eine gewisse Umgebung der Kante ausweiten wobei fur ein festgehaltenes d N displaystyle d in mathbb N nbsp eine d displaystyle d nbsp Umgebung die Menge von Knoten und Kanten ist die d displaystyle d nbsp Elemente von der Kante entfernt liegen Der Spezialfall d 0 displaystyle d 0 nbsp entspricht gerade dem maximalen Flussproblem Der Fall d 1 displaystyle d 1 nbsp entspricht dem maximalen Flussproblem mit Knotenkapazitaten Das kann auf Max Flow reduziert werden indem die Knoten durch ein Gebilde wie im Bild ersetzt werden Dabei wird die Kantenzahl nicht konstant verandert also die Komplexitat des Problems erhoht Es existieren aber Losungen fur Max Flow deren Komplexitat streng von den Knoten abhangt deren Zahl sich hochstens um den konstanten Faktor 2 andert Fur den Fall d 3 displaystyle d geq 3 nbsp kann man beweisen dass das Problem NP vollstandig ist und daher vermutlich nicht in polynomieller Zeit losbar ist es sei denn P N P displaystyle P NP nbsp Fur den Fall d 2 displaystyle d 2 nbsp wurde ein polynomieller Algorithmus gefunden Anwendung BearbeitenPraktische Anwendungen Bearbeiten Diese letzte Verallgemeinerung ist motiviert durch Probleme bei der Verkabelung von VLSI Chips wo es aufwandig ist in eine gewisse Nahe von gelegten Kabeln weitere zu setzen Die Flusstheorie hat sich historisch ausgehend von Problemen aus der Anwendung entwickelt Allgemein ist man von der Situation ausgegangen ein Fluid also ein beliebig in Untergegenstande zerlegbaren Gegenstand auf verschiedenen Wegen durch eine Welt raumlich zu verlagern etwa elektrische Energie uber ein Stromnetzwerk von einer Quelle an einen Bedarfsort oder Daten durch ein Datennetzwerk von einem Sender zu einem Empfanger Auch abstrakte Gegenstande wie einander kennen kann man modellieren Durch maximale Flusse in einem sozialen Netzwerk kann man dann ein Mass dafur erhalten wie stark zwei Mengen von Personen miteinander vernetzt sind nbsp Bipartiter Graph mit der Knotenmenge A rot und B grun und der erganzten Quelle s und Senke tTheoretische Anwendungen Bearbeiten Eine naheliegende und naturliche Anwendung hat die Flusstheorie bei der Transversalentheorie die sich auf sehr naturliche Art und Weise in die Theorie der Flusse einbetten lasst Einen umfassenden Ansatz das zu tun hat Ford 1962 in einem Standardwerk formuliert Auch viele kombinatorische Probleme auf Graphen wie bipartite Matchings lassen sich leicht in ein geeignetes Flussproblem uberfuhren siehe Bild und dort schnell losen Eine weitere Anwendung ist das effiziente Ermitteln der Knotenzusammenhangszahl Kantenzusammenhangszahl oder Bogenzusammenhangszahl Durch das Lemma von Tutte nach William Thomas Tutte werden zudem Anwendungen erweiterter Flusstheorie sogenannten gruppenwertigen Flussen und Farbbarkeitsaussagen deutlich Einige Vermutungen von ihm zur Existenz von k Flussen in planaren Graphen hatten starke theoretische Implikationen Literatur BearbeitenBernhard Korte Jens Vygen Kombinatorische Optimierung Theorie und Algorithmen Aus dem Englischen von Rabe von Randow Springer Verlag Berlin Heidelberg 2008 ISBN 978 3 540 76918 7 Alexander Schrijver Combinatorial Optimization Polyhedra and Efficiency Springer Verlag 2003 ISBN 3 540 44389 4 Thomas H Cormen Charles E Leiserson Ronald L Rivest Clifford Stein Introduction to Algorithms 2 Auflage MIT Press Cambridge MA 2001 ISBN 0 262 03293 7 Lester Randolph Ford junior Delbert Ray Fulkerson Flows in Networks 1962 ISBN 0 691 07962 5 ISBN 978 0 691 07962 2 Abgerufen von https de wikipedia org w index php title Flusse und Schnitte in Netzwerken amp oldid 230921027