LP. Leksjon 9: Kapittel 13: Nettverk strøm problemer, forts.2

Like dokumenter
LP. Leksjon 8: Kapittel 13: Nettverk strøm problemer, forts.1

LP. Leksjon 7. Kapittel 13: Nettverk strøm problemer

LP. Leksjon 5. Kapittel 5: dualitetsteori. motivasjon det duale problemet svak og sterk dualitet det duale til LP problemer på andre former

Kapittel 5: dualitetsteori

LP. Leksjon 3. Kapittel 3: degenerasjon.

Korteste vei problemet (seksjon 15.3)

LP. Leksjon 2. Kapittel 2: simpleksmetoden, forts. initialisering to faser ubegrenset løsning geometri

LP. Leksjon 1. Kapittel 1 og 2: eksempel og simpleksmetoden

LP. Leksjon 6: Kap. 6: simpleksmetoden i matriseform, og Seksjon 7.1: følsomhetsanalyse

Kapittel 3: degenerasjon.

Kapittel 1 og 2: eksempel og simpleksmetoden

UNIVERSITETET I OSLO

Kapittel 2: simpleksmetoden, forts.

ingen Fase I nødvendig konvergerer dersom LP er begrenset og konsistent skifter mellom primal og dual pivotering MoD233 - Geir Hasle - Leksjon 8 2

η = 2x 1 + x 2 + x 3 x 1 + x 2 + x 3 + 2x 4 3 x x 3 4 2x 1 + x 3 + 5x 4 1 w 1 =3 x 1 x 2 x 3 2x 4 w 2 =4 x 1 x 3 w 3 =1 2x 1 x 3 5x 4

UNIVERSITETET I OSLO

LP. Leksjon 4. Kapittel 4: effektivitet av simpleksmetoden

UNIVERSITETET I OSLO

Kapittel 4: effektivitet av simpleksmetoden

Avanserte flytalgoritmer

Minimum spenntrær. Lars Vidar Magnusson Kapittel 23. Kruskal Prim

IN Algoritmer og datastrukturer

Moderne optimering mer enn å derivere!!

LP. Kap. 17: indrepunktsmetoder

INF Algoritmer og datastrukturer

Heltallighetsteoremet for nettverksflyt Königs teorem Denne gang: Anvendelser nettverksflyt

TMA4140 Diskret Matematikk Høst 2016

INF Algoritmer og datastrukturer

Vann i rør Ford Fulkerson method

INF1020 Algoritmer og datastrukturer GRAFER

GRAFER. Korteste vei i en vektet graf uten negative kanter. Korteste vei, en-til-alle, for: Minimale spenntrær

Repetisjon og mer motivasjon. MAT1030 Diskret matematikk. Repetisjon og mer motivasjon

Grafteori og optimering en kort innføring. Geir Dahl

Svarforslag til ukeoppgaver til INF 4130

MAT1030 Diskret matematikk

Oppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Forelesning 23: Grafteori

Matchinger i ikke-bipartite grafer

Øvingsforelesning 12 Maks flyt

Go with the. Niende forelesning. Mye matematikk i boka her ikke så komplisert, men mye å holde styr på.

MAT1030 Diskret Matematikk

Forelesning 29: Kompleksitetsteori

Løsningsforslag for utvalgte oppgaver fra kapittel 9

Go with the. Niende forelesning. Mye matematikk i boka her ikke så komplisert, men mye å holde styr på.

MAT1030 Diskret matematikk

Forelesning 23. Grafteori. Dag Normann april Oppsummering. Oppsummering. Oppsummering. Digresjon: Firefarveproblemet

Korteste vei i en vektet graf uten negative kanter

Kompleksitetsteori reduksjoner

Grafteori. MAT1030 Diskret Matematikk. Repetisjon og mer motivasjon. Repetisjon og mer motivasjon. Forelesning 23: Grafteori.

Øvingsforelesning 9. Flytnettverk, maksimum flyt og maksimum bipartitt matching. Jon Marius Venstad

MAT1030 Diskret Matematikk

Forelesning 23. MAT1030 Diskret Matematikk. Repetisjon og mer motivasjon. Repetisjon og mer motivasjon. Forelesning 23: Grafteori.

Algdat - Øvingsforelesning. Maks flyt

UNIVERSITETET I OSLO

IN Algoritmer og datastrukturer

Litt om Javas håndtering av tall MAT-INF 1100 høsten 2004

Introduksjon. MAT1030 Diskret matematikk. Søkealgoritmer for grafer. En graf

MAT1030 Diskret matematikk

Kombinatorikk. MAT1030 Diskret Matematikk. Oppsummering av regneprinsipper

MAT1030 Diskret Matematikk

Introduksjon. MAT1030 Diskret Matematikk. Introduksjon. En graf. Forelesning 22: Grafteori. Roger Antonsen

Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Dag Normann

Verdens beste håndball-lag?

MAT1030 Diskret Matematikk

Universitetet i Oslo Institutt for informatikk. Visualisering av grafalgoritmer. Lars Duvaas. Hovedoppgave

LØSNINGSFORSLAG EKSAMEN HØST 2012 I TIØ4120 OPERASJONSANALYSE, GRUNNKURS

MAT1030 Forelesning 23

Lineære likningssystemer og matriser

3.9 Teori og praksis for Minste kvadraters metode.

Grafteori. MAT1030 Diskret matematikk. Induksjonsbevis

MAT1030 Diskret matematikk

Øvingsforelesning 4. Topologisk sortering, Strongly Connected Components og Minimale spenntrær. Magnus Botnan

MAT1140: Kort sammendrag av grafteorien

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

INF Algoritmer og datastrukturer

4 Matriser TMA4110 høsten 2018

GRAFER. Noen grafdefinisjoner. Korteste vei i en uvektet graf V 2 V 1 V 5 V 3 V 4 V 6

Løsningsforslag Øving 9 TMA4140 Diskret matematikk Høsten i for i = 0, 1, 2, 3, 4, og så er W 4 svaret

Online datingtjeneste The Hungarian Algorithm

MAT1030 Forelesning 22

MAT1030 Forelesning 22

Grafteori. MAT1030 Diskret Matematikk. Oppsummering. Oppsummering. Forelesning 24: Grafer og trær. Dag Normann

Maks Flyt og NPkompletthet

Matriser. Kapittel 4. Definisjoner og notasjon

6.5 Minste kvadraters problemer

MAT1030 Forelesning 24

7 Egenverdier og egenvektorer TMA4110 høsten 2018

Svar til. EKSAMEN I EMNE TIØ4120 OPERASJONSANALYSE, GK Onsdag 10. august 2011 Tid: kl Bokmål

LP. Leksjon Spillteori

MAT1030 Diskret matematikk

MAT1030 Diskret Matematikk

Oppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Eksempel

INF Algoritmer og datastrukturer

Eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 18. Desember 2000, kl

Lineære ligningssystemer og gausseliminasjon

Kontinuasjonseksamen i tdt4125 Algoritmekonstruksjon, videregående kurs

Lineære ligningssystemer og gausseliminasjon

4.4 Koordinatsystemer

MAT1030 Diskret matematikk

Innledning. MAT1030 Diskret matematikk. Kapittel 11. Kapittel 11. Forelesning 33: Repetisjon

Transkript:

LP. Leksjon 9: Kapittel 13: Nettverk strøm problemer, forts.2 Vi tar siste runde om (MKS): minimum kost nettverk strøm problemet. Skal oppsummere algoritmen. Se på noen detaljer. Noen kombinatorisk anvendelser 1 / 15

Den primale nettverk simpleks algoritmen Algoritme oppsummering: Vi starter med et spenntre T der den tilhørende treløsningen x B er tillatt, dvs. x B O. Sjekk optimalitet ved å beregne duale variable y og z og sjekke om z O. Hvis ikke optimal: gjennomfør en pivotering. Dette skjer ved å velge en kant (u, v) der z uv < 0, og finne et nytt spenntre T ved å legge til e og fjerne en viss annen kant (slik at T blir et spenntre). Oppdater treløsningen x. Beregningen av både x og y skjer ved bladeliminasjon ved å bruke triangulariteten slik vi har sett. Beregningen av hver z uv skjer direkte fra den tilhørende likningen i det duale problemet: z uv = c uv + y u y v. 2 / 15

Effektiv oppdatering av variablene i en pivotering Oppdatering av x: Vi trenger ikke starte helt på nytt når ny x skal beregnes. Grunnen er at x endrer seg bare for visse kanter. Den nye kanten e (inngående basisvariabel) gir opphav til en syklus C i grafen. Endringen av x blir da La inngående variabel få verdien ɛ (som skal bestemmes). For hver kant f C med samme retning som e i syklusen ( foroverkanter ), så vil x f økes med ɛ. I de kantene i C som går motsatt vei ( bakoverkanter ) vil strømmen bli redusert med ɛ. Ingen andre x f -er endres. ɛ velges som minimum av strømmen i bakoverkanter. 3 / 15

Oppdatering av spenntreet T : Inngående kant e erstatter en bakoverkant f i syklusen som nå har fått verdien x f = 0. Dette gir et nytt spenntree T. Kommentarer: 1. Det kan være flere bakoverkanter som får strømverdi 0; da får vi en degenerert løsning etter pivoteringen. Hvis man ikke bruker en bestemt pivoteringsregel, så velges bare en av disse kantene vilkårlig som utgående variabel. 2. Degenerasjon forekommer ofte i (MKS) problemer. Noen hevder at ofte er ca. 70-80% av pivoteringene degenererte! Men heldigvis oppfattes ikke sirkling som noe praktisk problem. Videre finnes en pivoteringsregel (via såkalte sterkt tillatte spenntrær) som unngår sirkling (og som i praksis ofte reduserer antall pivoteringer). 4 / 15

3. Hvis syklusen C ikke har noen bakoverkanter, så er problemet ubegrenset. Altså: vi kan ved å sende passe stor strøm rundt i denne syklusen få totalkostnad til å gå mot. (Dette skjer vanligvis ikke i praktiske problemer.) 4. Som nevnt har man også ofte øvre skranker på x i (MKS) problemer: 0 x uv a uv ((u, v) E). Algoritmen kan enkelt tilpasses denne mer generelle situasjonen. Kort fortalt er endringene følgende. Hver x e der e T (ikkebasisvariable) har enten verdien 0 eller den øvre skranken a e. Ved bestemmelse av maksimal ɛ må vi også passe på at ingen foroverkanter får strøm over kapasiteten. Ikkebasisvariable som er på sin øvre skranke, kan bare reduseres, så optimalitetstesten må utvides i henhold til dette. Det betyr at en slik variabel kan taes inn i basis dersom den tilhørende z-komponenten er positiv (mens for ikkebasisvariable på sin nedre skranke 0 er de kandidater når z er negativ der). 5 / 15

Oppdatering av y: Anta at vi skal føye til e og fjerne f i vårt spenntre T. T \ {f } består av to (sub)trær T r og T der T r innholder rotnoden r. Da gjelder følgende for oppdateringen av de duale variablene y: Hvis ny kant e går fra T r til T, så økes alle duale variable i T med samme størrelse (lik verdien på den duale slakkvariabelen z e, så < 0). Variablene i T r forblir uendret. Hvis ny kant e går fra T til T r, så reduseres alle duale variable i T med. Variablene i T r forblir uendret. 6 / 15

Oppdatering av z: Her gjelder: Det blir ingen endring på z uv dersom u og v ligger i det samme av de to subtrærne T r og T (fordi y u og y v er endret med samme størrelse). For kanter mellom de to subtrærne og som har samme retning for inngående kant e vil z bli redusert med (den opprinnelige) verdien z e, mens de som går motsatt vei økes med z e. Hvordan finne startløsning? Vi har hittil bare antatt at vi har en tillatt startløsning, dvs. et spenntre slik at den tilhørende treløsningen er ikkenegativ. Noen ganger er man heldig og ser en slik løsning direkte, men vanligvis kreves mer arbeid. Det er flere teknikker for å finne en tillatt startløsning. En mulighet er å bruke den duale simpleks algoritmen, tilpasset strukturen i (MKS). 7 / 15

Duale simpleks algoritme for å finne tillatt startløsning: Se på (MKS) problemet med modifisert kostnadsfunksjon nemlig der c = O. Da er ethvert spenntre dualt tillatt, så vi velger et vilkårlig spenntre T. Basisen er altså dualt tillatt, og hvis vi er heldig er den også primalt tillatt. I så fall er jobben gjort og vi brukes T som startløsning for vår (MKS) algoritme med den opprinnelig kostnadsfunksjonen c. Hvis derimot x har negative komponenter, går vi til skritt 2. Velg en kant e = (u, v) med x e < 0. Vil nå foreta en pivotering der e forlater basis. Grunnen er at vi da får strøm 0 i e (siden variabelen er utenfor basis). Spørsmålet er hvilken variabel som skal inn i basis. Se på de to subtrærne T r og T som oppstår hvis e fjernes fra T (T r inneholder rotnoden r). For å få et nytt spenntre må vi velge en kant f som forbinder de to trærne (har en endenode i hvert tre). Klart at f må gå motsatt vei av e (for ellers ville en økning av x f gi en lavere x e og vi vil jo øke x e ). Men det kan være flere slike kanter! 8 / 15

(forts.) Vi velger da f med z f minst mulig (blant kanter mellom de to subtrærne og med motsatt retning av e). Grunnen til dette valget er at vi etter pivoteringen vil ha en ny løsning som også er dualt tillatt. Det er jo slik at alle kandidatkantene får redusert sin z-verdi med samme størrelse; dette så vi foran i forbindelse med oppdateringen av z-variabelen i en pivotering. På denne måten er utgående kant e og inngående kant f bestemt og vi gjennomfører pivoteringen og oppdaterer variable som in den vanlige (MKS) algoritmen. Vi gjentar slike pivoteringer inntil x er ikkenegativ. (Dette lar seg gjøre dersom problemet virkelig har en tillatt strøm.) Vi forlater nå algoritmer og ser på en interessant anvendelse av teorien innenfor kombinatorikk. 9 / 15

Anvendelse: kombinatorikk/heltallighet Vi kaller en vektor heltallig dersom alle komponenenter er heltall. Her er resultatet. Teorem Betrakt (MKS) problemet min{c T x : Ax = b, x O} der b er heltallig, og anta at en optimal løsning fins. Da fins en optimal løsning x som er heltallig. Bevis: I hver iterasjon beregnes treløsningen x ved bladeliminasjon. Den første variabelen som beregnes blir da lik ±b v som er heltall. Hver av de neste variablene blir en sum av visse heltall (en viss b v og ± andre allerede beregnede strømmer som er heltallige). Dermed er x heltallig. 10 / 15

Kommentarer: Som forklart i beviset er altså alle x underveis i algoritmen heltallige, ikke bare den optimale løsningen. Dersom c er heltallig, så fins en optimal dual løsning (y, z) som er heltallig. (Dette ser vi direkte av algoritmene for å beregne y og deretter z.) Teoremet over gjelder også når vi har heltallige kapasiteter på x, så 0 x e a e (e E) der a er heltallig. Så også da fins en heltallig optimal løsning x. 11 / 15

Dette teoremet har en lang rekke anvendelser i kombinatorikk (diskret matematikk). La oss se på en slik. Betrakt grafen La b v = 1 for hver av de tre nodene til venstre og b v = 1 for de til høyre. Dessuten har vi visse kostnader for kantene, men disse behøver vi ikke bry oss om nå. 12 / 15

Siden b er heltallig, finnes en optimal strøm x som også er heltallig (og vi vet hvordan vi finner den). Men ut fra verdiene i b ser vi at x må ha nøyaktig tre komponenter som er lik 1, mens resten er 0. Videre er de tre kantene der x e = 1 disjunkte, dvs. de har ingen endenoder felles. En slik kantmengde (riktignok i en urettet graf) kalles en perfekt matching, se kantene med tykke linjer i figuren. I dette eksemplet er det 3! = 6 ulike perfekte matchinger og alle svarer til tillatte løsninger i (MKS) problemet. Men da følger at løsningen vi fant faktisk er en optimal perfekt matching, dvs. en perfekt matching med minimum total kostnad. 13 / 15

Dette problem kalles, naturlig nok, minimum kost (vekt) perfekt matching problemet i en bipartitt graf (som er den grafen vi får hvis vi ignorerer retningen på kantene; den er bipartitt (todelt) fordi hver kant har en endenode i hver av de to node-delmengdene (venstre og høyre)). Generelt har vi n noder til venstre og n noder til høyre. Antallet perfekte matchinger er da n!, som selv for moderat n er et gigantisk tall. Så metoden finner optimal perfekt matching i et problem der enummerering av alle muligheter er umulig. Dette er viktig! En praktisk anvendelse av perfekt matching er ved tilordning av jobber til personer, datamaskiner eller noe annet. Anta at hver person skal utføre nøyaktig én jobb og hver jobb skal gjøres av én person. Problemet er da å finne en slik tilordning av jobber med lavest mulig kostnad: kalles tilordningsproblemet. Det finnes også andre varianter av simpleksalgoritmen (også teoretisk effektive) for dette problemet. 14 / 15

Andre spesialtilfeller av (MKS) som er viktige i mange sammenhenger er korteste vei problemet. maksimum strøm problemet. transportproblemet. Dette generaliserer bipartitt perfekt matching ved generell tilførsel/behov b som er negativ til venstre og positiv til høyre ; gi dette problemet en transport-tolkning! Og dette er et grunnleggende problem i feltet transport optimering. Igjen finnes effektive kombinatoriske algoritmer; mer om disse tingene i høstkurset INF-MAT 5360 Matematisk optimering. Der lærer du også mer om matematikken som danner basis for analyse/forståelse/løsning av disse problemene. Du inviteres dit! 15 / 15