Øvingsforelesning 9 Flytnettverk, maksimum flyt og maksimum bipartitt matching Jon Marius Venstad Redigert og forelest av Gleb Sizov.

Slides:



Advertisements
Liknende presentasjoner
12.Studienreise nach Finnland,
Advertisements

Kvinner og politikk Kvinnelig valgmobilisering i Nord-Norge: Glasstak eller etterslep? Marcus Buck.
1 NTNUs Multimediesenter 1.Integrasjon 2.Produksjon 3.Framtidsvisjon NTNUs Multimediesenter REN Medlemsmøte Trondheim 31. August 2005.
Litt mer om PRIMTALL.
Ti måter å ødelegge en CT-undersøkelse av halsen på
Grafisk design Visuell kommunikasjon
Tekster til kapittel 2.
Kontrollstrukturer (Kapittel 3)
The Travelling Salesperson. LOG530 Distribusjonsplanlegging 2 2 Et forsyningsskip skal starte fra VestBase for å betjene 10 forskjellig installasjoner.
Hobro februar 2010 Kurs om elektrokjemisk tæring
Sentrum og byutvikling: balansens dilemma
Managerial Decision Modeling Cliff Ragsdale 6. edition Rasmus RasmussenBØK350 OPERASJONSANALYSE1 Chapter 5 Network Modeling.
Seksjon psykoser, sykehuset Levanger
Monopolistisk konkurranse og oligopol
Kundekrav og restordrer. LOG530 Distribusjonsplanlegging 2 2 Vi endrer litt på kundeønskene i eksempel 8, og bruker kapasiteter og etterspørsel fra eksempel.
Forelesning nr.2 INF 1411 Elektroniske systemer
Presentasjon Fylkesbiblioteket i Akershus. Spørreundersøkelse blant bibliotekansatte i Akershus. 1.
Gjenfinningssystemer og verktøy II
Forside Korteste sti BFS Modifikasjon Dijkstra Eksempel Korrekthet Analyse Øving Spørsmål Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no.
Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no
Forelesningsnotater SIF8039/ Grafisk databehandling
Øvingsforelesning 9 Flytnettverk, maksimum flyt og
1 Øvingsforelesning Andreas Knudsen Nils Grimsmo
Øvingsforelesning 12 Redusering av problemer,
LOG530 Distribusjonsplanlegging
Maksimal gjennomstrømming. LOG530 Distribusjonsplanlegging 2 2 StartOil må transportere store mengder utstyr og materialer til utbyggingen av et nytt.
Omlasting og direkteleveranser. LOG530 Distribusjonsplanlegging 2 2 Vi har nå utvidet nettverket med direkteleveranser. Distribusjonen går enten via lagrene.
LOG530 Distribusjonsplanlegging
Transport fra lager til kunder. LOG530 Distribusjonsplanlegging 2 2 Lager 1 Lager 1 Lager 2 Lager 2 Lager 3 Lager 3 Kunde 1 Kunde 1 Kunde 2 Kunde 2 Kunde.
P-MP modeller. LOG530 Distribusjonsplanlegging 2 2 Det skal opprettes p fasiliteter (lager) for å betjene en gitt mengde kunder. Kundenodene er også potensielle.
Lokalisering og minimum maxavstand. LOG530 Distribusjonsplanlegging 2 2 I mange situasjoner ønsker en å finne lokaliseringer som minimerer maksimalavstanden.
Tildeling av snødeponeringssted. LOG530 Distribusjonsplanlegging 2 2 Kommunen skal kommende vinter frakte snø fra 10 soner til 5 deponeringssteder. Snøen.
UFLP modeller. LOG530 Distribusjonsplanlegging 2 2 Det skal opprettes p fasiliteter (lager) for å betjene en gitt mengde kunder. Kundenodene er også potensielle.
The Postmans Problem. LOG530 Distribusjonsplanlegging 2 2 Mista har fått i oppdrag å vedlikeholde veiene i landsdelen. Dette er et eksempel på den klassiske.
P-CP modeller. LOG530 Distribusjonsplanlegging 2 2 Det skal opprettes p fasiliteter for å betjene en gitt mengde kunder. Kundenodene er også potensielle.
Highlights fra markedsundersøkelse Utarbeidet av Inger Marie Brun,
Kap 06 Diskrete stokastiske variable
Øvingsforelesning 9 - Børge Rødsjø
Kap 10 Graf.
Post 4, sykehuset Levanger
Vokabular barneoppdragelse (m) bleie (f/m) blikk (n) bortskjemt (adj.)
Skriv om slik at setningene betyr omtrent det samme
Kapittel 1, oppgave b) å kaste loss å seile uvær (n) kuling (m)
11 IKT-baserte læremidler Arne Ketil Eidsvik Avd. for lærerutdanning.
SINTEF Teknologi og samfunn PUS-prosjektet Jan Alexander Langlo og Linda C. Hald 1 Foreløpig oppsummering – underlag for diskusjon på PUS-forum
INF 295 Forelesning 16 - kap 9 Minimalt spenntre og korteste vei i grafer Hans Fredrik Nordhaug (Ola Bø)
INF 295 Forelesning 17 - kap 9 Korteste vei i grafer Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 18 - kap 9 Aktivitetsgrafer
INF 295 Forelesning 19 - Dynamisk programmering Korteste vei alle til alle (Floyd) Hans Fr. Nordhaug (Ola Bø)
GRØNNALGER BRUNALGER RØDALGER
1 BM-dagen 29.okt BM1 Fysisk miljøplanlegging Studieprogram for Bygg- og miljøteknikk Meny Prosjektoppgaven Arealbruk og befolkning Transport og.
Figur 1 Behov. Figur 2 Behov Figur 3 Prioritering/ressursinnsats.
Kostratall for tjenester Overhalla kommune Av seniorrådgiver Helge Holthe Kristiansund
Samdata 2012 Somatikk.
Lokalisering i to-delt graf. LOG530 Distribusjonsplanlegging 2 2 Vi skal nå beskrive en transhipmentmodell med to varesorter som skal leveres fra to fabrikker.
Magnus Haug Algoritmer og Datastrukturer
Avlevering i praksis KDRS-samling
Sett inn preposisjoner eller adverb som passer
Maks oppfylte kundekrav og maks resultat. LOG530 Distribusjonsplanlegging 2 2 Vi fortsetter eksempel 10.1, men gjør trinnene i motsatt rekkefølge: max.
Inflation og produktion 11. Makroøkonomi Teori og beskrivelse 4.udg. © Limedesign
Sett inn riktig form av adjektivene, med artikkel hvis nødvendig
Alg. Dat Øvingsforelesning 11 Dynamisk programmering, grådighet
Kapittel 1, oppgave i) Sett inn preposisjoner eller adverb som passer.
Dagligbankundersøkelsen Fakta Dagligbankundersøkelsen intervju Befolkning 15 år + TNS Gallup Forfatter Bente Pettersen Roar Thorvaldsen.
Sorterings- Algoritmer Algoritmer og Datastrukturer.
Befolkning og arbejdsmarked 7. Mikroøkonomi Teori og beskrivelse © Limedesign
Sett inn preposisjoner eller adverb som passer.
Prioritetskøer Binære heaper Venstrevridde heaper (Leftist) Skeive heaper (Skew) Binomialheaper Fibonacciheaper Prioritetskøer er viktige i bla. operativsystemer.
Basisgrupper en nær professoren-opplevelse Knut Kaasen Nordisk institutt for sjørett Det juridiske fakultet Knut Kaasen 1.
1 Øvingsforelesning 4 Topologisk sortering Minimale spenntrær Håkon Jacobsen
Utskrift av presentasjonen:

Øvingsforelesning 9 Flytnettverk, maksimum flyt og maksimum bipartitt matching Jon Marius Venstad Redigert og forelest av Gleb Sizov 1

Dagens tema  Øving 8: Mumien  Teori  Flytnettverk  Terminologi  Max-flow min-cut teoremet  Ford-Fulkersons metode og algoritme  Edmond-Karps algoritme  Maksimum bipartitt matching  Spesialtilfelle av flyt  Andre algoritmer  Øving 7: Teori & Praksis 2

Terminologi: Flytnettverk  En graf med kapasitet på kantene  Ønsker å sende flyt fra en kildenode s (source) til en sluknode t (terminal/sink) 3

Flytnettverk  Eksempler  Væske som flyter gjennom et rørsystem til en destinasjon  Varer igjennom et varehus, produksjonslinjer  Informasjon gjennom et datanettverk  Strøm gjennom strømledninger 4

Flytnettverk  Flyt og kapasitet på kanter benevnes f/c  Flyt inn i en node = flyt ut (unntatt for s og t)  f(v, u) = - f(u, v) f(u,v) = 4 c(u,v) = 5 f(v,u) = -4c(v,u) = 0 5

Residual nettverk  En graf som viser hvor mye man kan øke flyten med, til man når kapasiteten på kantene  Kalles G f = (V,E f ) for flytnettverket G = (V,E)  c f (u,v) er residualkapasiteten for en kant (u,v)  Dvs. hvor mye mer flyt kan man sende over kanten før man når kapasiteten.  (Eller: Hvor mye flyt man kan kansellere, for motsatt retning.) 6

Residual nettverk  c f (u,v) = c(u,v) – f(u,v)  der f(u,v) er flyten for kanten (u,v) c(u,v) = 7f(u,v) = 3 c f (u,v) = 7 – 3 = 4 c(v,u) = 0 f(v,u) = -3c f (v,u) = 0 – (-3) = 3 7

Residual nettverk  Lettere å finne flytforøkende stier i G f enn i G  Flytforøkende sti er en sti fra s til t der alle kanter har tilgjengelig kapasitet 8

Residual nettverk  Lettere å finne flytforøkende stier i G f enn i G  Flytforøkende sti er en sti fra s til t der alle kanter har tilgjengelig kapasitet 9

Ford-Fulkerson metoden Ford-Fulkerson-Method(G, s, t) Initialiser all flyt f til 0 så lenge det finnes en flytforøkende sti p øk flyten f langs p returner f 10 • En generell metode for å finne maksimal flyt i et flytnettverk

Ford-Fulkerson algoritmen Ford-Fulkerson(G, s, t) sett all flyt til 0 så lenge p er en sti fra s til t i G f c f (p) = min{ c f (u,v) : (u,v) i p }for hver (u,v) i p f[u,v] = f[u,v] + c f (p) f[v,u] = -f[u,v] 11 p er en flytforøkende sti c f (p) er residualkapasiteten til den ”minste” kanten i p  Kjøretid O(E*| f’ |)  Der f’ er maksflyten funnet i algoritmen

Ford-Fulkerson algoritmen  Eksempelkjøring av algoritmen  Jukser litt, initialiserer ikke flyten til 0 først 12

Ford-Fulkerson algoritmen 13 Residualnettverk Etter flytforøkning Initialsteg| f | = 7

Ford-Fulkerson algoritmen 14 Residualnettverk Etter flytforøkning Flytforøkning| f | = 8

Ford-Fulkerson algoritmen 15 Residualnettverk Etter flytforøkning Flytforøkning| f | = 9

Ford-Fulkerson algoritmen 16 Residualnettverk Etter flytforøkning Ingen flere flytførkende stier| f | = 9 Vi har funnet maks-flyt og er ferdige

Ford-Fulkerson algoritmen 17  Algoritmen avhenger av hvordan man finner den flytforøkende stien p, fra s til t  Ford-Fulkerson algoritmen kjører raskt hvis maksflyt er liten, men for stor |f’| blir kjøretiden O(E*|f’|) dårlig  Hvis man bruker BFS til å finne flytforøkende sti i G f, ender vi opp med Edmonds-Karps algoritme

Edmonds-Karps algoritme  Bruker BFS for å finne korteste flytforøkende sti i G f, og øker flyten langs denne stien  BFS kan finne korteste vei fra s til t, ved å ha enhetslengde på kantene (unit-length)  Ellers er Edmonds-Karp slik som Ford- Fulkersons algoritme  Kjøretid O(V*E 2 ) 18

Edmonds-Karps algoritme Edmonds-Karp(G, s, t) sett all flyt til 0 bruk BFS og finn korteste sti p, som går fra fra s til t i G f c f (p) = min{ c f (u,v) : (u,v) i p } for hver (u,v) i p f[u,v] = f[u,v] + c f (p) f[v,u] = -f[u,v] 19 p er en flytforøkende sti c f (p) er residualkapasiteten til den ”minste” kanten i p  Kjøretid O(V*E 2 )

Superkilde og supersluk  Hva hvis flytnettverket har flere kilder og flere sluker?  Superkilde og supersluk 20

Snitt i flytnettverk  Vi kan dele opp grafen i to partisjoner, ved å ta et snitt (S,T), der mengden S inneholder kilden s og T inneholder sluket t  Kan ha mange snitt på en graf 21

Snitt-terminologi  Flyt over et snitt: f(S,T)  Flyt fra S til T: legges til f(S,T)  Flyt fra T til S: trekkes fra f(S,T)  Kapasitet over et snitt: c(S,T)  Legger bare til kapasiteter fra S til T  Minimum-snitt (min-cut) på et flytnettverk: det snittet som har lavest kapasitet av alle snitt  Netto flyt over ethvert snitt er det samme, nemlig flyten | f | 22

Snitt i flytnettverk Partisjonerer flytnettverket i to deler: S = { s, u } T = { v, w, x, t } f(S,T) = = 7 c(S,T) = = 13 snitt1 er ikke et min-cut 23

Max-flow min-cut teoremet  Anta flytnettverk G = (V,E) med kilde s og sluk t. Da er følgende utsagn ekvivalente:  f er maksimal flyt i G  Residualnettverket G f har ingen flytforøkende sti  | f | = c(S,T) for et snitt (S,T) av G  Et slikt snitt er et min-cut av G Viktig! 24

Max-flow min-cut teoremet 25  G er fylt opp med maksflyt 9  G f har ingen flytforøkende stier  min-cut har kapasitet 9

Max-flow min-cut teoremet  min-cut angir en flaskehals i flytnettverket  Kan ikke sende mer flyt igjennom nettverket enn det vi kan sende gjennom flaskehalsen  Kan ikke finne noen flytforøkende sti over flaskehalsen 26

Maksimum bipartitt matching • Terminologi • Hvordan finne maksimum bipartitt matching 27

Maksimum bipartitt matching  Hva er en bipartitt graf?  En graf der nodene kan deles opp i to mengder L og R, slik at:  Nodene i R bare har kanter til noder i L  Nodene i L bare har kanter til noder i R 28

Maksimum bipartitt matching  Eksempel  Jenter som skal danse med gutter, noen vil danse med mange, mens noen vil danse med bare én annen. Ikke lov til å danse med samme kjønn. Hvordan få flest mulig personer ut på dansegulvet? 29

Maksimum bipartitt matching  Hva er bipartitt matching?  Anta G=(V,E) er en bipartitt graf, og M er en undermengde av E, slik at for grafen G’ = (V,M) holder følgende egenskap:  For alle noder v i V, deg(v) ≤ 1  Så hver node kan ha maks 1 nabo  Ønsker å maksimere |M|  Maksimum bipartitt matching er når |M| er størst mulig 30

Maksimum bipartitt matching 31 G = (V,E) V = {a,b,c,d,e,f} M = {} |M| = 0

Maksimum bipartitt matching 32 G = (V,E) V = {a,b,c,d,e,f} M = {(a,d), (c,b) (e,f)} |M| = 3

Maksimum bipartitt matching  Hvordan får vi til maskimum bipartitt matching?  Dvs. hvordan maksimerer vi |M| ?  Bygger på grafen litt slik at vi får ett flytnettverk  Legger til en kilde s, sluk t, retninger på kantene fra L til R, og makskapasitet på hver kant til 1  Kilden har en kant til hver node i L, og hver node i R har en kant til sluken 33

Maksimum bipartitt matching 34 Har en bipartitt graf

Maksimum bipartitt matching 35 Legger til kilde s og sluk t, og rettede kanter fra s til t

Maksimum bipartitt matching 36 Legger på kapasitet 1 på kantene

Maksimum bipartitt matching  Etter man har gjort disse stegene, kan man kjøre en flytalgoritme på flytnettverket  Da vil maksflyten |f| = |M|, og vi har løst problemet med maskimal bipartitt matching  Brukes Ford-Fulkersens metode blir kjøretiden O(V*E) 37

Korteste vei - Teori  BFS – like kantvekter, O(V + E)  DAG shortest path – acyclic, topological ordering O(V + E)  Dijkstra – nonegative, with list O(V^2), with heap O(ElogV)  Bellman-Ford – O(VE)  Floyd-Warshall – alle til alle, O(V^3)  Faster-All-Pairs-Shorthest-Paths – O(V^3lgV)  ? - negative cycles 16. oktober 2009Øvingsforelesning 9 - Børge Rødsjø38