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.

Slides:



Advertisements
Lignende præsentationer
HUNDE SPEED km h 34,4 HUNDE SPEED km h 34,1 HUNDE SPEED km h 32,8 HUNDE SPEED km h 31,9 HUNDE SPEED km h 31,8 HUNDE SPEED km h 30,9.
Advertisements

Den danske befolknings syn på handicappedes rettigheder
Atomer Et programmeret forløb. En måde at lære på.
Triangulering i 3D vha. kd-træer
NemID og Fællesskema 2014 v/Signe Hansen Blegmand
Funktioner Grundbegreber.
1 Problemkompleksitet 2 Problemers kompleksitet En ineffektiv algoritme: køretiden vokser eksponentielt med input- størrelsen Et problem, der ikke kan.
Overskrift her Navn på oplægsholder Navn på KU- enhed For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen, vælg ”Indsæt” > ”Sidehoved / Sidefod”.
v/ Professor Lars Ehlers, Aalborg Universitet
Bolig selskabernes Landsforening– Almene lejeboliger - Maj/Juni Almene lejeboliger - Danmarkspanelet - Maj/Juni 2010.
Sortering af affald Dato: 17. december Agenda Sortering af affald Dato: 17. december 2010 TNS Gallup A/S Kontaktperson Celia Paltved-Kaznelson Danmarks.
Analyse for Ældre Sagen: Trafikundersøgelse: Cykel, cykelhjelm mv Rapport Marts 2010.
Flugtveje. Problemanalyse Hvordan finder man optimale flugtveje? Hvordan kan man finde optimale flugtveje ved hjælp af grafteori? Hvordan kan vores optimale.
Symbolsk maskinsprog.
1 Går fra at vil maksimere dækning til at minimere omkostning Det kender vi fra den anden bog Omkostningen er afstanden gange antal enheder der skal transporteres.
1 Effektiv forrentning Kjeld Tyllesen PEØ, CBS Erhvervsøkonomi / Managerial Economics Kjeld Tyllesen, PEØ, CBS.
Statistik.
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 Maksimale Strømninger [CLRS, kapitel ]
Arbejdsmarkedsuddannelser – også for personer med læse-, skrive- og regnevanskeligheder Oplæg fra AMU-Fyn Konference d. 22/5 -07.
Flugtveje mig - Problemanalysen og metode Daniel - Graftori og modelovervejlser Asger - Flugtvejsproblemet og korteste-vej algoritmen THOMAS - Største.
Representations for Path Finding in Planar Environments.
Opslagsfelter (Access, del 6). RHS – Informationsteknologi 2 Udgangspunkt Vi er ofte i den situation, at valg af en type for et felt ikke begrænser vores.
Algoritmer (v. lektor Gerth S. Brodal) Hør om metoder til at beregne gode GPS kørevejledninger og tog- og flyforbindelser, og hvad problemstillingerne.
Østjysk rapport om udligning og tilskud Seminar om udligning den 26. April 2010 Job og Økonomidirektør Asbjørn Friis Jensen, Favrskov.
Titel: Arial, fed, skriftstr. 20, mørkegrå. Tekst: Arial, normal, fed eller kursiv, skriftstr. 10, 12 og 14 til print – 16 og 18 til projektor – mørkegrå.
Relativ vigtighed for elektroniske ressourcer,24,22,20,18,16,14,12,10 Indeks FARM nem at bruge Info om anvendelse af elektroniske.
Oplæg til Nofa4 i Trondheim d maj 2013 Ved Lektor Rune Christiansen
1 Bevisteknikker. 2 Bevisteknikker (relevant både ved design og verifikation) Teorem: Der findes uendeligt mange primtal Bevis: Antag at der findes et.
1 UNION-FIND. 2 inddata: en følge af heltalspar (p, q); betydning: p er “forbundet med” q uddata: intet, hvis p og q er forbundet, ellers (p, q) Eksempel.
Induktion og rekursion
Region Midtjyllands tilbud 2013
1 Algoritme til at løse knude P-center problemet Algoritmen brugte set covering problemet Virker derfor kun til knude problemer Vi vil alligevel bruge.
Udvikling i GODS Transporten Sammenfatningsrapport maj 2010.
D 3 5A A A 16 5D 15 5A 14 5D A B D D A B A A D
Grafer og Algoritmer Rasmus D. Lehrmann DM
Globaliseringsredegørelsen 24.mar. 14 Figurer fra Danmark tiltrækker for få udenlandske investeringer i Sådan ligger landet
1 Sortering I elementære metoder. 2 Plan Terminologi Elementære metoder til sortering -sortering ved udvælgelse -sortering ved indsættelse -Shellsort.
Matematik B 1.
Claus Brabrand, ITU, Denmark Mar 10, 2009EFFECTIVE JAVA Effective Java Presentation Workshop Claus Brabrand [ ] ( “FÅP”: First-year Project.
1 Vi ser nu på en general graf Men antager at alle afstande er heltallige (Det er ikke så restriktivt) Algoritmen leder efter den mindst mulige dækningsdistance.
1 Tråde 2 Plan Trådbegrebet Synkronisering Koordinering Eksempel: et flertrådet spil.
”Lineær Programmering - Minimering”
Grunde til at jeg elsker dig
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Maksimale Strømninger [CLRS, kapitel ]
GP 11, 14/ Grundlæggende programmering Efterår 2001 Forelæsning 11 onsdag 14/ kl. 9:15 – 12:00.
Fundamentale datastrukturer
1 vare på 2 markeder, samme pris
1 Design, analyse og verifikation. 2 Design Bevisteknikker Design ved hjælp at matematisk induktion Analyse O-notation Logaritmer Binær søgning Verifikation.
Algoritmer og Datastrukturer 2 Maksimale Strømninger [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet Ford-Fulkerson.
1 Grafalgoritmer I. 2 Plan Grafer - definition - anvendelser - terminologi - eksempler på grafproblemer Grafgennemgang - dybde-først-gennemgang - bredde-først-gennemgang.
Opslagsfelter (Access, del 6). RHS – Informationsteknologi – Udgangspunkt Vi er ofte i den situation, at valg af en type for et felt ikke begrænser.
1 Sortering. 2 Sortering ved fletning (merge-sort) 7 2 | 9 4  | 2  2 79 | 4   72  29  94  4.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Algoritmer og Datastrukturer 2 Korteste Veje [CLRS, kapitel 24, ] Gerth Stølting Brodal Aarhus Universitet.
1 Kap. 4, Jordens Tyngdefelt = Torge, 2001, Kap. 3. Tyngdekraftens retning og størrelse g (m/s 2 ) Acceleration Tyngdepotentialet (W): evene til at udføre.
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]
Kapitel 5 Lineære DB-modeller
1 Center problems Placer et givet antal nye faciliteter Alt efterspørgsel skal dækkes Dækningsdistancen skal minimeres.
Algoritmer Gerth Stølting Brodal Institut for Datalogi Aarhus Universitet MasterClass i Matematik, 10. april 2014, Aarhus Universitet.
1 Korteste veje. 2 Vægtede grafer I en vægtet graf har enhver kant tilknyttet en numerisk værdi, kaldet kantens vægt Vægte kan repræsentere afstande,
Opgave 10 Erhvervsøkonomi / Managerial Economics
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Korteste Veje [CLRS, kapitel 24]
Grundlæggende programmering Forår 2002
Flugtveje.
Algoritmer og Datastrukturer 2
Præsentationens transcript:

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 kantvægte, hvor vægten af en kant e kaldes kapaciteten c(e) af e To særlige knuder, s og t i G, der kaldes henholdsvis kilden og drænet (eller terminalen), hvor s ikke har nogen indgående kanter, og t ikke har nogen udgående kanter w s v u t z Eksempel: Kilde Dræn

3 Strømning En strømning f for et netværk N er en tildeling af en heltallig værdi f(e) til enhver kant e, som tilfredsstiller følgende egenskaber: w s v u t z 3/33/3 2/92/9 1/11/1 1/31/3 3/73/7 2/62/6 4/54/5 1/11/1 3/53/5 2/2 |f| = 8 Eksempel: Strømningsværdien, betegnet |f|, er den samlede strømning fra kilden, hvilket er det samme som den samlede strømning til drænet Konserveringsreglen: For enhver knude v  s,t, gælder at hvor E - (v) og E + (v ) er henholdsvis de indgående og udgående kanter for v Kapacitetsreglen: For enhver kant e, gælder at 0  f(e)  c(e)

4 Maksimal strømning En strømning for et netværk N siges at være maksimal, hvis dens værdi er den største af alle strømninger for N Det maksimale strømningsproblem (maxflow) består i at bestemme en maksimalt strømning for et givet netværk w s v u t z 3/33/3 2/92/9 1/11/1 1/31/3 3/73/7 2/62/6 4/54/5 1/11/1 3/53/5 2/22/2 Strømning med værdi 8 = = w s v u t z 3/33/3 2/92/9 1/11/1 3/33/3 3/73/7 4/64/6 4/54/5 1/11/1 3/5 2/22/2 Maksimal strømning med værdi 10 = = Anvendelser Hydrauliske systemer Elektriske kredsløb Trafiksystemer Fragt Planlægning Computernetværk

5 Eksempel på anvendelse Betragt en del af Internettet, modelleret som en vægtet, orienteret graf, hvor hver knude svarer til en computer, hver kant svarer til en forbindelse imellem to computere, og vægten på en kant er forbindelsens båndbredde (målt i MB/s). Hvis vi ønsker at sende en meddelelse hurtigst muligt fra en computer til en anden, er det en god ide at opdele meddelelsen i pakker og sende disse igennem netværket, som angivet ved den maksimale strømning. 4 MB/s 2 MB/s 1 MB/s

6 Snit Et snit i et netværk N med kilde s og dræn t er en opdeling  = (V s,V t ) af N’s knuder, hvor s  V s and t  V t Fremadrettet kant for en snit  : startknude i V s og slutknude i V t Bagudrettet kant for en snit  : startknude i V t og slutknude i V s Strømningen f(  )  for et snit  : den samlede strømning af de fremad- rettede minus den samlede strømning for de bagudrettede kanter Kapaciteten c(  ) af et snit  : den samlede kapacitet af de fremad- rettede kanter Eksempel: f(  ) = = 8 c(  ) = = 24 w s v u t z  w s v u t z 3/33/3 2/92/9 1/11/1 1/31/3 3/73/7 2/62/6 4/54/5 1/11/1 3/53/5 2/22/2  VsVs VtVt

7 Strømning og snit Lemma 1: Strømningen f(  ) for ethvert snit  er lig med strømningsværdien |f| Lemma 2: Strømningen f(  ) for et snit  er mindre end eller lig med kapaciteten af snittet, c(  ) Sætning: Værdien for enhver strømning er mindre end eller lig med kapaciteten af ethvert snit. D.v.s. for enhver strømning f og ethvert snit , gælder at |f|  c(  ) w s v u t z 3/33/3 2/92/9 1/11/1 1/31/3 3/73/7 2/62/6 4/54/5 1/11/1 3/53/5 2/22/2 11 22 c(  1 ) = 12 = c(  2 ) = 21 = |f| = 8

8 Forøgende vej Betragt en strømning f for et netværk N Lad e være en kant fra u til v: Residualkapaciteten af e fra u til v:  f (u, v) = c(e)  f(e) Residualkapaciteten af e fra v til u:  f (v, u) = f(e) Lad  være en vej fra s til t Residualkapaciteten  f (  ) er den mindste af residualkapaciteterne af  ’s kanter i retning fra s til t En vej  fra s til t kaldes en forøgende vej, hvis  f (  )  0 w s v u t z 3/33/3 2/92/9 1/11/1 1/31/3 2/72/7 2/62/6 4/54/5 0/10/1 2/52/5 2/22/2   f (s,u)  3  f (u,w)  1  f (w,v)  1  f (v,t)  2  f (  )  1 |f|  7

9 Forøgelse af strømning Lemma 3: Lad  være en forøgende vej for strømning f i netværket N. Der eksisterer da en strømning f for N med værdi | f | = |f |   f (  ) Bevis: Vi beregner strømningen f ved at ændre strømningen på  ’s kanter: Fremadrettet kant: f (e) = f(e)  f (  ) Bagudrettet kant: f (e) = f(e)  f (  ) w s v u t z 3/33/3 2/92/9 1/11/1 1/3 2/72/7 2/62/6 4/54/5 0/10/1 2/52/5 2/22/2  | f | = 7 w s v u t z 3/33/3 2/92/9 0/10/1 2/32/3 2/72/7 2/62/6 4/54/5 1/11/1 3/53/5 2/22/2  | f | = 8  f (  ) = 1

10 Ford-Fulkerson’s algoritme Til at begynde med er f(e)  0 for enhver kant e Gentag: Søg efter en forøgende vej  Forøg strømningen langs  ’s kanter med  f (  ) En specialisering af DFS (eller BFS) søger efter en forøgende vej. En kant (u, v) traverseres kun, hvis  f (u, v)  0 Algorithm FordFulkersonMaxFlow(N) for all e  G.edges() setFlow(e, 0) while G has an augmenting path  { compute residual capacity  of  }    for all edges e  { compute residual capacity  of e } if e is a forward edge of    getCapacity(e)  getFlow(e) else { e is a backward edge }   getFlow(e) if  <    { augment flow along  } for all edges e  if e is a forward edge of  setFlow(e, getFlow(e)  ) else { e is a backward edge } setFlow(e, getFlow(e)  )

11 Eksempel w s v u t z 0/30/3 0/90/9 0/10/1 0/30/3 0/70/7 0/60/6 0/50/5 0/10/1 0/50/5 0/20/2 w s v u t z 1/31/3 0/90/9 1/11/1 0/30/3 2/72/7 1/61/6 1/51/5 0/10/1 1/51/5 1/21/2 w s v u t z 1/31/3 0/90/9 0/10/1 0/30/3 1/71/7 0/60/6 1/5 0/10/1 1/51/5 1/21/2 0/20/2 w s v u t z 0/30/3 0/90/9 0/10/1 0/30/3 1/71/7 0/60/6 0/50/5 1/11/1 1/51/5

12 Eksempel (fortsat) s w v u t z 2/32/3 0/90/9 0/10/1 1/31/3 2/72/7 1/61/6 1/51/5 0/10/1 1/51/5 1/21/2 w s v u t z 3/33/3 1/91/9 1/11/1 3/33/3 3/73/7 4/64/6 2/52/5 0/10/1 1/51/5 1/21/2 w s v u t z 3/33/3 1/91/9 0/10/1 3/33/3 2/72/7 3/63/6 2/52/5 0/10/1 1/51/5 1/21/2 w s v u t z 2/32/3 0/90/9 0/10/1 3/33/3 2/72/7 3/63/6 1/51/5 0/10/1 1/51/5 1/21/2

13 Eksempel (fortsat) w s v u t z 3/33/3 1/91/9 1/11/1 3/33/3 4/74/7 4/64/6 2/52/5 1/11/1 2/52/5 1/21/2 w s v u t z 3/33/3 1/91/9 1/11/1 3/33/3 4/74/7 4/64/6 3/53/5 1/11/1 3/53/5 2/22/2

14 Maksimal strømning og minimalt snit Terminering af Ford-Fulkerson’s algoritme: Der findes ingen forøgende vej fra s til t med hensyn til den aktuelle strømning f Definer V s mængden af knuder, der kan nås fra s med en forøgende vej V t mængden af resterende knuder Snittet   (V s,V t ) har kapacitet c(  ) = |f| Fremadrettet kant: f(e) = c(e) Bagudrettet kant: f(e) = 0 Derfor er strømningen f maksimal, og snittet  har minimal kapacitet w s v u t z 3/33/3 1/91/9 1/11/1 3/33/3 4/74/7 4/64/6 3/53/5 1/11/1 3/53/5 2/22/2  Sætning: Den maksimale strømning er lig med kapaciteten for et minimalt snit c(  )  | f |  10 VsVs VtVt

15 Analyse I værste tilfælde udfører Ford-Fulkerson’s algoritme |f*| strømningsforøgelser, hvor f* er en maksimal strømning Eksempel: De forøgende veje, der findes, skifter imellem  1 og  2 Algoritmen udfører 100 forøgelser Bestemmelse af en forøgende vej og efterfølgende forøgelse af strømningen tager O(n  m) tid Køretiden for Ford-Fulkerson’s algoritme er O(|f*|(n  m)) t s v u 1/11/1 1/50 0/50 1/50 0/50 t s v u 0/10/1 1/50 11 22

16 Edmonds-Karp’s algoritme En variation af Ford-Fulkerson’s algoritme, som giver hurtigere køretider Vælg i hver iteration den forøgende vej, der består af færrest kanter En specialisering af BFS søger efter den forøgende vej. En kant (u, v) traverseres kun, hvis  f (u, v)  0 Analyse Lemma 1: Længden af en korteste forøgende vej bliver aldrig formindsket Lemma 2: Efter højst m forøgelser bliver længden af en korteste forøgende vej øget med mindst 1 kant Antallet af forøgelser er derfor højst nm Hver forøgelse udføres i O(m) tid Givet et netværk med n knuder og m kanter vil Edmonds-Karp algoritmen bestemme en maksimal strømning i O(nm 2 ) tid

17 Algoritmer til bestemmelse af maksimal strømning Edmonds-Karp’s algoritme har køretid O(nm 2 ) Kan forbedres til O(n 2 m) ved samtidig opdatering af forøgende veje af samme længde (Dinitz) “Push-relabel” (Goldberg) har køretid O(n 2 m) Kan ved valg af passende valg af rækkefølge forbedres til O(n 3 ) Den hurtigst kendte algoritme har køretid O(min{n 2/3, m 1/2 } m log(1 + n 2 /m)) log(maksimal kapacitet)

18 Brug af lineær programmering Et maxflow-problem kan formuleres som et LP-problem s t Maksimer x 50 under følgende begrænsninger x 01 ≤ 6, x 02 ≤ 3, x 03 ≤ 5 x 12 ≤ 1, x 15 ≤ 3, x 24 ≤ 9, x 25 ≤ 7, x 32 ≤ 1, x 34 ≤ 2, x 45 ≤ 5 x 50 = x 01 + x 02 + x 03 x 01 = x 12 + x 15 x 02 = x 24 + x 25 x 03 = x 32 + x 34 x 12 + x 02 + x 32 = x 25 + x 24 x 15 + x 25 + x 45 = x 50 kapacitets- regel konserverings- regel

19 Historie Dantzig Opfinder Simplex MetodeStore-O mn 2 U1951 Year Ford, FulkersonForøgende vejmnU1955 Edmonds-KarpKorteste vejm2nm2n1970 DinitzKorteste vej mn Edmonds-Karp, DinitzKapacitetsskaleringm 2 log U1972 Dinitz-GabowKapacitetsskaleringmn log U1973 KarzanovPreflow-push n3n Sleator-TarjanDynamiske træermn log n1983 Goldberg-TarjanFIFO preflow-pushmn log (n 2 / m) Goldberg-RaoLængdefunktion m 3/2 log (n 2 / m) log U mn 2/3 log (n 2 / m) log U 1997

20 Netværk med flere kilder og dræn s1 s3 s2 t2 t1 s4 S T superkilde superdræn

21 V1V1 V2V2 Maksimal parring i en todelt graf En todelt graf er en graf, hvor knuderne kan opdeles i to mængder V 1 og V 2, og hvor hver kant forbinder en knude fra V 1 med en knude fra V 2 En parring i en graf er en mængde af kanter, der ikke har endepunkter til fælles V1V1 V2V2 En maksimal parring er en parring med et maksimalt antal kanter

22 Lad V 1 være en mængde af maskiner og V 2 en mængde af opgaver En kant betyder, at en maskine kan udføre en given opgave En maksimal parring giver arbejde til så mange maskiner som muligt i parallel En anvendelse

23 Løsning som et maxflow-problem V1V1 V2V2 s t Tilføj en kilde, s, og et dræn, t Orientér kanterne fra V 1 til V 2 Indsæt en orienteret kant fra s til enhver knude i V 1 Indsæt en orienteret kant fra enhver knude i V 2 til t Tildel alle kanter kapaciteten 1

24 Billigste maksimale strømning Der er normalt flere løsninger til maxflow-problemet Vi kan da være interesseret i at finde den af de maksimale strømninger, der er “billigst” Antag at der til hver kant e er knyttet en omkostning, w(e), for at transportere 1 enhed igennem kanten. Vi kan da definere omkostningen af en strømning f som s v u t z 2/2, 1 1/3, 4 2/4, 2 1/3, 3 3/3, 1 2/2, 2 1/2, 1 z 0/3, 1 |w| = 21 s v u t z 2/2, 1 0/3, 4 2/4, 2 2/3, 3 2/3, 1 2/2, 2 2/2, 1 z 0/3, 1 |w| = 20

25 Forøgende cykel En forøgende cykel er en forøgende vej, hvor første og sidste knude er den samme Hvis vi adderer residualkapaciteten for en forøgende cykel til strømningen for hver af cyklens kanter, ændres strømningsværdien ikke, men det gør omkostningen af strømningen i netværket muligvis Hvis der findes en forøgende cykel med negativ omkostning, kan vi sænke omkostningen for netværket uden at ændre strømningsværdien s v u t z 2/2, 1 1/3, 4 2/4, 2 1/3, 3 3/3, 1 2/2, 2 1/2, 1 z 0/3, 1 |w| = 21 s v u t z 2/2, 1 0/3, 4 2/4, 2 2/3, 3 2/3, 1 2/2, 2 2/2, 1 z 0/3, 1 |w| = 20

26 1. Bestem en maksimal strømning 2. Så længe der findes en negativ forøgende cykel: Adder cyklens residualkapacitet til strømningen for hver af dens kanter Algoritme til bestemmelse af den billigste maksimale strømning Sætning: En strømning f har en minimal omkostning af alle strømninger med værdi |f|, hvis og kun hvis der ikke findes en negativ forøgende cykel med hensyn til f Analyse: En negativ forøgende cykel kan bestemmes i O(nm) tid ved hjælp af Bellman-Fords korteste-vej algoritme Omkostningen sænkes med mindst 1 for hver sådan cykel Køretiden er derfor O(w*nm), hvor w* er den billigste omkostning for en maksimal strømning

27 Brug af lineær programmering , 2 9, 1 1, 2 3, 6 7, 4 6, 1 5, 2 1, 8 5, 3 2, 3 s t Minimer c = x x x x x 15 + x x x x 50 under følgende begrænsninger x 01 ≤ 6, x 02 ≤ 3, x 03 ≤ 5 x 12 ≤ 1, x 15 ≤ 3, x 24 ≤ 9, x 25 ≤ 7, x 32 ≤ 1, x 34 ≤ 2, x 45 ≤ 5 x 50 = x 01 + x 02 + x 03 x 01 = x 12 + x 13 x 02 = x 24 + x 25 x 03 = x 32 + x 34 x 12 + x 02 + x 32 = x 25 + x 24 x 15 + x 25 + x 45 = x 50 kapacitets- regel konserverings- regel