Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Maksimale Strømninger [CLRS, kapitel 26.1-26.3]

Slides:



Advertisements
Lignende præsentationer
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17] Gerth Stølting Brodal.
Advertisements

Flugtveje. Problemanalyse Hvordan finder man optimale flugtveje? Hvordan kan man finde optimale flugtveje ved hjælp af grafteori? Hvordan kan vores optimale.
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
Algoritmer og Datastrukturer 1 Merge-Sort [CLRS, kapitel 2.3] Heaps [CLRS, kapitel 6] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Grådige Algoritmer [CLRS ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal.
Flugtveje mig - Problemanalysen og metode Daniel - Graftori og modelovervejlser Asger - Flugtvejsproblemet og korteste-vej algoritmen THOMAS - Største.
Parringer (matchings)
Algoritmer (v. lektor Gerth S. Brodal) Hør om metoder til at beregne gode GPS kørevejledninger og tog- og flyforbindelser, og hvad problemstillingerne.
Algoritmer og Datastrukturer 1 Union-Find [CLRS, kapitel ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Merge-Sort [CLRS, kapitel 2.3] Heaps [CLRS, kapitel 6] Gerth Stølting Brodal.
1 Maksimal strømning. 2 Strømningsnetværk Et strømningsnetværk (eller blot et netværk) N består af En vægtet, orienteret graf G med ikke-negative heltallige.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Mønstergenkendelse [CLRS, kapitel , 32.4]
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel 2.3, , problem 30.1.c] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Maksimale Strømninger [CLRS, kapitel ]
Algoritmer og Datastrukturer 2 Maksimale Strømninger [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet Ford-Fulkerson.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Dynamisk Rang & Interval Træer [CLRS, kapitel 14] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Korteste Veje [CLRS, kapitel 24, ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 2 Topologisk Sortering, Stærke Sammenhængskomponenter [CLRS, kapitel ] Gerth Stølting Brodal.
Algoritmer Gerth Stølting Brodal Institut for Datalogi Aarhus Universitet MasterClass i Matematik, 10. april 2014, Aarhus Universitet.
Algoritmer og Datastrukturer 1 Union-Find [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Grådige Algoritmer [CLRS ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Grådige Algoritmer [CLRS ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Korteste Veje [CLRS, kapitel 24]
Algoritmer og Datastrukturer 1 Quicksort [CLRS, kapitel 7] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
Algoritmer og Datastrukturer 1 Union-Find [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Korteste Veje [CLRS, kapitel ]
Flugtveje.
Clicker Test a)Ja b)Nej c)Ved ikke. Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Analyseværktøjer [CLRS, 1-3.1]
Algoritmer og Datastrukturer 1 Dynamisk Rang & Interval Træer [CLRS, kapitel 14] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Topologisk Sortering, Stærke Sammenhængskomponenter [CLRS, kapitel ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Dynamisk Rang & Interval Træer [CLRS, kapitel 14] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Grådige Algoritmer [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Topologisk Sortering, Stærke Sammenhængskomponenter [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Heaps [CLRS, kapitel 6] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Korteste Veje [CLRS, kapitel 24, ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Korteste Veje [CLRS, kapitel 24, ]
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Korteste Veje [CLRS, kapitel ]
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
Algoritmer og Datastrukturer 2 Korteste Veje [CLRS, kapitel 24]
Dynamisk Rang & Interval Træer [CLRS, kapitel 14]
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 1
Union-Find [CLRS, kapitel ]
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 2 Korteste Veje [CLRS, kapitel ]
Dynamisk Rang & Interval Træer [CLRS, kapitel 14]
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 2
Grundlæggende Algoritmer og Datastrukturer
Grundlæggende Algoritmer og Datastrukturer
Præsentationens transcript:

Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Maksimale Strømninger [CLRS, kapitel ]

Maximale Strømninger i Netværk Input: En orienteret graf G=(V,E), hvor alle kanter (u,v) har en kapacitet c(u,v), og to knuder kilde s є V (source), og afløbet t є V (sink). Output:En maximal strømning f i netværket fra s til t. kilde kapacitet c(u,v) afløb

Maximale Strømninger i Netværk Krav til f : f(u,v) = - f(v,u) for alle kanter (strømbevaring) Σ vєV f(u,v) = 0 for alle knuder ≠ s, t (strøm in=strøm ud) f(u,v) ≤ c(u,v) for alle kanter (strømbevaring) kapacitet (ingen strømning) strømning / kapacitet

Flere kilder og afløb (super)kilde (super)afløb kilder afløb

Ford-Fulkerson 1962 Strømning / KapacitetRest-netværk & forbedrende sti Observation: s-t sti i rest-netværket ≡ forbedrende sti i netværket c f (u,v)=c(u,v)-f(u,v) f(u,v) / c(u,v)

maximale forøgelse langs stien p Ford-Fulkerson 1962

Ford-Fulkerson : eksempel rest-netværk aktuelle strømning

Ford-Fulkerson : Analyse Sætning Hvis alle kapaciteterne i et netværk er heltallige og f* er en maximal strømning, så tager Ford-Fulkerson algoritmen tid O(E·|f*|).

De forbedrende stier p 0,{p 1,p 2,p 1,p 3 }* konvergerer mod en strømning af størrelse hvilket er langt fra det optimale på 2X+1. Ford-Fulkerson ∞ mange forbedrende stier ABCD p 0 = sBCt p 1 = sDCBAt p 2 = sBCDt p 3 = sABCt Aktuel strømning Forbedrende sti ForbedringStrømning BABCDC 0,0000 1,00000,0000sBCt1,0000 0,61800,38200,6180sDCBAt0,61801,6180 0,61801,00000,0000sBCDt0,61802,2361 1,00000,61800,3820sDCBAt0,38202,6180 0,61801,00000,3820sABCt0,38203,0000 0,85410,76390,6180sDCBAt0,23613,2361 0,85411,00000,3820sBCDt0,23613,4721 1,00000,85410,5279sDCBAt0,14593,6180 0,85411,00000,5279sABCt0,14593,7639 0,94430,90980,6180sDCBAt0,09023,8541 0,94431,00000,5279sBCDt0,09023,9443 1,00000,94430,5836sDCBAt0,05574,0000 0,94431,00000,5836sABCt0,05574,0557 0,97870,96560,6180sDCBAt0,03444,0902 0,97871,00000,5836sBCDt0,03444,1246 1,00000,97870,6049sDCBAt0,02134,1459 0,97871,00000,6049sABCt0,02134,1672 0,99190,98680,6180sDCBAt0,01324,1803 0,99191,00000,6049sBCDt0,01324,1935 1,00000,99190,6130sDCBAt0,00814,2016 0,99191,00000,6130sABCt0,00814,2098 0,99690,99500,6180sDCBAt0,00504,2148 0,99691,00000,6130sBCDt0,00504,2198 1,00000,99690,6161sDCBAt0,00314,2229 0,99691,00000,6161sABCt0,00314,2260 0,99880,99810,6180sDCBAt0,00194,2279 0,99881,00000,6161sBCDt0,00194,2299 1,00000,99880,6173sDCBAt0,00124,2310 0,99881,00000,6173sABCt0,00124,2322 0,99950,99930,6180sDCBAt0,00074,2330 0,99951,00000,6173sBCDt0,00074,2337 1,00000,99950,6178sDCBAt0,00054,2341 0,99951,00000,6178sABCt0,00054,2346 0,99980,99970,6180sDCBAt0,00034,2349 0,99981,00000,6178sBCDt0,00034,2352 1,00000,99980,6179sDCBAt0,00024,2353 0,99981,00000,6179sABCt0,00024,2355 ··· X = stort tal

Lemma 1  v : d f (v) ≤ d f´ (v) Bevis Antag modsætnings der findes en knude v med d f (v) > d f´ (v), og v har mindst mulig d f´ (v). d f (v) = d f (u) – 1 ≤ d f´ (u) – 1 ≤ d f´ (v) – 2 f = flow i G A= forbedrende sti i G f f´= flow efter A d f (v)= afstand (#kanter) fra s til v i G f Edmonds-Karp Algoritmen = Ford-Fulkerson hvor forbedrende stier har færrest mulige kanter (BFS) Sætning Finder O(V·E) forbedrende stier, dvs. tid O(V·E 2 ) 1970 t A s v u v u G d f (v) d f´ (v) d f (v) Bevis BFS (Edmonds-Karp) Lemma 2 En kant (u,v) kan kun være flaskehalsen på en forbedrende sti ≤ |V|/2 gange Bevis Antag (u,v) flaskehalsen når A 1 og senere A 3 anvendes; inden A 3 må der findes A 2 der sender flow langs (v,u). f i flow før A i. d f 3 (v) = d f 3 (u)+1 ≥ d f 2 (u)+1 = d f 2 (v)+2 ≥ d f 1 (v)+2 Lemma følger fra 0 ≤ d f i (v) ≤ |V|-2 for v  {s,t} Korollar #forbedrende stier er ≤ 2|E|·|V|/2 t A1A1 s v u G A2A2 A3A3 def. af d f´ minimalitet af v Lemma 1 BFS

n = # knuder, m = # kanter, kapaciteter i intervallet [1..U] Andrew Goldberg 1998 Maksimale strømninger – Historisk overblik [CLRS 26.2] 2012 Orlin O(mn)

Maximale strømninger Sætning Maximal strømning = kapaciteten af et minimalt snit Sætning Hvis alle kapaciteter er heltallige så finder Ford-Fulkerson og Edmonds-Karp algoritmerne en strømning hvor strømmen langs alle kanter er heltalligt

Parringer Parring (en delmængde af kanterne hvor hver knude indgår max én gang) Maximal Parring (parring hvor ingen kanter kan tilføjes – kan findes v.h.a grådig algoritme) Maximum Parring (findes ingen parringer med flere kanter)

Parringer i todelte grafer Maximal Parring af størrelse 2 Maximum Parring af størrelse 3 L R

Parring vs. Strømning Todelt graf Maximum matching Strømnings netværk Maximum strømning (i en heltallig løsning, f.x. Ford-Fulkerson) alle kanter kapacitet 1 ≡

Problem B: March of the Penguins 2007.nwerc.eu/problems/nwerc07-problemset.pdf