Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

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

Lignende præsentationer


Præsentationer af emnet: "Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Maksimale Strømninger [CLRS, kapitel 26.1-26.3]"— Præsentationens transcript:

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

2 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

3 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

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

5 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)

6 maximale forøgelse langs stien p Ford-Fulkerson 1962

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

8 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*|).

9 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

10 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

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

12 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

13 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)

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

15 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 ≡

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

17

18


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

Lignende præsentationer


Annoncer fra Google