Föreläsning 6: Nätverksoptimering. Minkostnadsflödesproblem i nätverk.. Modellering och grafteori.. Simplexmetoden. Föreläsning 6 - Ulf Jönsson & Per Enqvist Nätverksoptimering
Minkostnadsflödesproblem i nätverk 40 x /c 0 x 5 /c 5 x /c x /c x 4 /c 4 5 0 5 x 4 /c 4 4 5 x 45 /c 45 Data skall skickas från servrar i nod och till terminaler i nod, 4, 5. Kostnaden för trafik i länken mellan nod i och j är c ij Kr/Kbyte. Vi vill minimera kostnaden för den totala datatrafiken. Föreläsning 6 - Ulf Jönsson & Per Enqvist Nätverksoptimering
Resulterande optimeringsproblem minimera c ij x ij alla bågar då x + x = 40 x + x + x 4 = 5 x x + x 4 + x 5 = 0 x 4 x 4 + x 45 = 5 x 5 x 45 = 0 x ij 0, för alla bågar i grafen Föreläsning 6 - Ulf Jönsson & Per Enqvist Nätverksoptimering
Vi kommer att behandla följande frågor Modellering av nätverksflödesproblem Grafer, träd, cykler (slingor), uppspännande träd. Hur kan man utnyttja grafens speciella struktur i simplexmetoden. Föreläsning 6 - Ulf Jönsson & Per Enqvist 4 Nätverksoptimering
Modellering och grafteori 5 4 En riktad graf G = (N, B) består av en mängd noder N = {,...,m} och en mängd bågar B Bågen från nod i till nod j betecknas (i,j). Vi skiljer på bågen (i,j) och bågen (j,i). I grafen ovan är N = {,...,5} B = {(, ), (, ), (, ), (, 4), (, 4), (, 5), (4, 5)} Föreläsning 6 - Ulf Jönsson & Per Enqvist 5 Nätverksoptimering
Om vi ordnar bågarna i B i någon ordning, t.e.x. B = {(, ), (, ), (, ), (, 4), (, 4), (, 5), (4, 5)} () ρ ρ ρ ρ 4 ρ 5 ρ 6 ρ 7 då definieras grafens anslutningsmatris (incidensmatris) Ã R m n som, båge ρ j startar i nod i a ij =, båge ρ j slutar i nod i () 0, annars [ ] Man ser enkelt att e T Ã = 0, där e T =.... Raderna är därmed linjärt beroende och man kan stryka sista raden och få den reducerade anslutningsmatrisen A. Föreläsning 6 - Ulf Jönsson & Per Enqvist 6 Nätverksoptimering
För vårt exempel får vi 0 0 0 0 0 0 0 0 0 Ã = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A = 0 0 0 0 0 0 0 Föreläsning 6 - Ulf Jönsson & Per Enqvist 7 Nätverksoptimering
Vägar och cykler En väg från nod s till nod t i en riktad graf är en sammanhängande sekvens av bågar ρ,...,ρ N där ρ k = (i k,i k ), eller ρ k = (i k,i k ), och i 0 = s, i N = t En riktad väg från nod s till nod t i en riktad graf är en sammanhängande sekvens av bågar ρ,...,ρ N där ρ k = (i k,i k ), och i 0 = s, i N = t En (riktad) cykel är en (riktad) väg från en nod till sig själv. Föreläsning 6 - Ulf Jönsson & Per Enqvist 8 Nätverksoptimering
En graf kallas sammanhängande om det existerar en väg mellan varje par av noder. En graf kallas acyklisk om den saknar cykler. Ett träd utgörs av en sammanhängande delmängd av bågarna i en graf som saknar cykler. I en graf med n noder utgör ett träd med n bågar ett uppspännande träd. Sammanhängande graf Ej acyklisk Acyklisk graf Ej sammanhängande Träd Uppspännande träd Föreläsning 6 - Ulf Jönsson & Per Enqvist 9 Nätverksoptimering
Om en båge adderas till ett uppspännande träd uppstår en unik cykel. Om en båge tas bort från ett uppspännande träd då sönderfaller trädet i två nya träd. Om båge adderas uppstår en unik cykel Om båge tas bort sönderfaller trädet i två nya träd Föreläsning 6 - Ulf Jönsson & Per Enqvist 0 Nätverksoptimering
Flödesbalans b b x x x x 4 x 5 5 b 5 b x 4 4 x 45 b 4 x ij betecknar flödet (datatrafik, olja, e.t.c.) i båge (i,j) Om flödet x ij går i riktningen i j så är x ij 0. Annars x ij 0. b i betecknar externt in/ut flöde till nod i. Inflöde om b i 0 och utflöde om b i 0. Föreläsning 6 - Ulf Jönsson & Per Enqvist Nätverksoptimering
Flödesbalans i nod i (utflödet = inflödet): n a ij x ij = b i, i =,...,n Ãx = b j= I ovanstående balansekvation är à grafens anslutningsmatris definierad i ekvation () och x är en kolonnvektor med bågflödena x ij sorterade i samma ordning som bågarna i ekvation (). Slutligen är [ ] T. b = b... b n För att balansekvationen ska kunna lösas krävs det att e T b = n i= b i = 0. Under detta antagandet kan vi reducera flödesbalansekvationen genom att stryka sista raden i à och b, d.v.s. balansekvation nr. n är redundant. [ ] T. Vi får då ekvationssystemet Ax = b, där b = b... b n Föreläsning 6 - Ulf Jönsson & Per Enqvist Nätverksoptimering
Simplexalgoritmen (påminnelse) Initial TBL β = β,..., β m ) ν = (ν,..., ν l ) Beräkna (y,r ν, b) A T β y = c β r ν = c ν A T ν y A β b = b r ν 0 Nej Ja Optimal lösning x = b, x ν = 0 z = y T b Tag ν q så att r ν q < 0 Lös A β ā k = a ν q ā k 0 Obegränsat problem Lösning saknas ( ) bi t max = min ā ik > 0 ā ik ν = ν q, ν q = β p, β p = ν = b p ā pk Kvottest Pivotering Föreläsning 6 - Ulf Jönsson & Per Enqvist Nätverksoptimering
För nätverksproblem förenklas simplexalgoritmen enligt följande. Bågarna svarande mot en basindexvektor svarar mot ett uppspännande träd. Basvariablerna som ges av A β x β = b kan enkelt bestämmas med hjälp av flödesbalanser i det uppspännande trädet.. Simplexmultiplikatorerna som ges av A T β y = c β bestäms enkelt med hjälp av det uppspännande trädet. 4. Kvottestet sker genom att studera flödet i en cykel (slinga). 5. Pivoteringen (byte av bas) sker genom att byta ut en båge i det uppspännande trädet. Vi illustrerar med det inledande exemplet. Föreläsning 6 - Ulf Jönsson & Per Enqvist 4 Nätverksoptimering
Basmatriser svarar mot uppspännande träd Sats. m kolonner ur (m ) n matrisen A i ett MKF-problem är linjärt oberoende om och endast om motsvarande m bågar bildar ett uppspännande träd. Figuren visar två baser och motsvarande uppspännande träd i grafen. x 5 x x 5 x x 5 x 4 x 45 x 4 4 4 B β = {(, ), (, ), (, 4), (4, 5)} B β = {(, ), (, ), (, 4), (, 5)} A β = 0 0 0 0 6 7 4 0 0 05 0 0 A β = 0 0 0 0 6 7 4 0 0 5 0 0 0 Föreläsning 6 - Ulf Jönsson & Per Enqvist 5 Nätverksoptimering
Beräkning av baslösning A β x = b b b x x 5 b 5 b x 4 x 45 4 b 4 Basvariablerna kan bestämmas genom flödesbalanser i det uppspännande trädet, där de externa flödena ges av (b,b,b,b 4 ) = (40, 5, 0, 5). x = b = 40 0 0 0 b x = b = 0 0 b x = x 4 = b + x x = 45 0 0 0 b x 45 = x 4 + b 4 = 0 0 0 b 4 Föreläsning 6 - Ulf Jönsson & Per Enqvist 6 Nätverksoptimering
Vi kan även beräkna basflödet genom flödesbalanser nedströms x 45 = b 5 = 0 x 4 = x 45 b 4 = 45 x = b = 0 x = x + x 4 b = b = 40 Förstår du varför? Vi noterar att x β = b = b b b4 b45 = 40 0 45 0 0 så vi har en tillåten baslösning. Föreläsning 6 - Ulf Jönsson & Per Enqvist 7 Nätverksoptimering
Beräkning av simplexmultiplikatorerna y T A β = c T β Simplexmultiplikatorena bestäms av ekvationen y T A β = c T β. Till nod,...,m svarar simplexmultiplikator y k, k =,...,m. Om vi sätter vi y m = 0 får vi att y i y j = c ij, för all (i,j) B β (alla basbågar) Därmed ser vi att simplexmultiplikatorerna enkelt kan beräknas ur nätverket y y c c 5 y5=0 y c 4 c 45 4 y 4 Föreläsning 6 - Ulf Jönsson & Per Enqvist 8 Nätverksoptimering
y y c c 5 y5=0 y c 4 c 45 4 y 4 Med c T = (c,c,c,c 4,c 4,c 5,c 45 ) = (, 5,,,,, ) får vi (i denna ordning p.g.a. y 5 = 0) y 4 y 5 = c 45 y 4 = c 45 = y y 4 = c 4 y = y 4 + c 4 = + = 4 y y = c y = y c = 4 = y y = c y = y + c = 4 + = 6 Föreläsning 6 - Ulf Jönsson & Per Enqvist 9 Nätverksoptimering
Beräkning av de reducerade kostnaderna r ν = c T ν y T A ν Formeln för de reducerade kostnaderna r ν = c T ν y T A ν resulterar i ekvationerna (y m = 0) r ij = c ij y i + y j för alla (i,j) B ν (dvs för alla icke-basbågar) I vårt exempel har vi B ν = {(, ), (, 4), (4, 5)} 0 0 0 0 0 A ν = 0 0 Föreläsning 6 - Ulf Jönsson & Per Enqvist 0 Nätverksoptimering
Vi kan göra beräkningarna med hjälp av nätverket y r /c y r 5/c 5 r 4 /c 4 5 y5=0 y 4 y 4 r = c y + y = 5 6 + = r 4 = c 4 y + y 4 = + = r 5 = c 5 y + y 5 = + 0 = Vi noterar att r 5 < 0 och den aktuella tillåtna baslösningen är ej optimal. Föreläsning 6 - Ulf Jönsson & Per Enqvist Nätverksoptimering
Kvottest Eftersom r 5 < 0 sätter vi x 5 = t, dvs bågen (, 5) skall in i basen. Frågan är nu vilken båge som skall tas bort för att vi åter skall få ett uppspännande träd som svarar mot en ny basmatris. b b x 5 = t x x 5 b 5 b x 4 x 45 { } bi Den vanliga testen i simplexmetoden t max = min ā ik > 0 = b p ā ik ā pk förenklas genom att vi kan betrakta flödesbalans i slingan som bildats. 4 b 4 Föreläsning 6 - Ulf Jönsson & Per Enqvist Nätverksoptimering
0 40 x = b x = b + t x 5 = t 5 0 5 x 4 = b 4 t 4 x 45 = b 45 t 5 x = b + t = 0 + t x 4 = b 4 t = 45 t x 45 = b 45 t = 0 t Vi ser att t kan ökas till t max = 0 varvid x 45 = 0. x 45 utgår ur basen. Föreläsning 6 - Ulf Jönsson & Per Enqvist Nätverksoptimering
40 x = 40 Pivotering (basbyte) 0 x 5 = 0 x = 50 5 0 5 x 4 = 5 4 5 Vi har B β = {(, ), (, ), (, 4), (, 5)} och vilket är en ny tillåten baslösning. 40 50 x β = b β = 0 5 Föreläsning 6 - Ulf Jönsson & Per Enqvist 4 Nätverksoptimering 0
Nästa iteration Om vi upprepar ovanstående steg får vi y 5 y y = =, r y ν = y 4 r r 4 r 45 = 0 Eftersom samtliga reducerade kostnader är positiva så är den aktuella tillåtna baslösningen optimal. Föreläsning 6 - Ulf Jönsson & Per Enqvist 5 Nätverksoptimering
Sammanfattning av nätverkssimplexmetoden För nätverksoptimering förenklas flera av stegen i simplexmetoden (i) En basindexvektor B β svarar mot bågarna i ett uppspännande träd. (ii) Baslösningen svarande mot B β kan beräknas ur flödesbalanser i ett uppspännande träd. Baslösningen är tillåten om flödet i samtliga basbågar är positivt. (iii) Simplexmultiplikatorerna beräknas som (y m = 0) y i y j = c ij, för all (i,j) B β (alla basbågar) (iv) De reducerade kostnaderna beräknas som (y m = 0) r ij = c ij y i + y j för alla (i,j) B ν (dvs för alla icke-basbågar) (v) Om alla r ij 0 så har vi funnit en optimal baslösning. Föreläsning 6 - Ulf Jönsson & Per Enqvist 6 Nätverksoptimering
(vi) Om någon reducerad kostnad r ij är negativ (tag den mest negativa) så adderar vi bågen (i,j) till det uppsännande trädet som svarar mot basen B β. En slinga bildas och vi lägger på ett flöde x ij = t 0. Genom att studera flödesbalanser i slingan ser man hur mycket t kan ökas innan något av basflödena blir noll. Om t kan ökas obegränsat så är lösningen till optimeringsproblemet obegränsad. (vii) Uppdatera det uppspännande trädet genom att lägga till bågen (i,j) till B β samtidigt som bågen svarande mot det flöde som blev noll tas bort. Vi har nu fått en ny bas (dvs ett nytt uppspännande träd) och en ny tillåten baslösning. (viii) Gå tillbaka till (iii). Föreläsning 6 - Ulf Jönsson & Per Enqvist 7 Nätverksoptimering
De fyra fundamentala underrummen för anslutningsmatrisen Detta avsnitt läses kursivt. Vi diskuterar här de fyra fundamentala underrummen för anslutningsmatrisen à och tolkar dem med hjälp av den associerade grafen G = (N, B). Vi betraktar vårt exempel: y x y x 5 y 5 x x x 4 x 45 5 x 4 4 y y 4 Till varje nod associerar vi en potential y j, j =,...,m. Till varje båge associerar vi ett flöde (ström) x ij. Föreläsning 6 - Ulf Jönsson & Per Enqvist 8 Nätverksoptimering
Vi noterar att nätverket svarar mot nedanstående elektriska krets u x y x y x 4 x 5 u 5 u u 4 y 5 x u y x 4 u 4 y 4 x 45 u 45 y j, j =,...,5 betecknar potentialen i nod j. x ij betecknar strömmen genom båge (i,j). u ij betecknar spänningen över resistorn i båge (i,j). Föreläsning 6 - Ulf Jönsson & Per Enqvist 9 Nätverksoptimering
Vänstra nollrummet Tolkning: Ekvationen ỹ T Ã = u svarar mot krav på spänningarna över bågarna y i y j = u ij spänning = differens mellan potentialer Det finns ingen unik lösning: En godtycklig konstant till samtliga nodpotentialer utan att förändra spänningarna över bågarna. y T A = u svarar mot att potentialen y 5 är fixerad till noll (jordad). N(Ã T ) = span e = Om ỹ N(Ã T ), då gäller u = 0. d.v.s., om alla potentialer är lika så är alla spänningar noll. Föreläsning 6 - Ulf Jönsson & Per Enqvist 0 Nätverksoptimering
Nollrummet N(Ã) = { x R 7 : Ãx = 0 } = span 0 0 0 0, 0 0 0 0, 0 0 0 0 = N(A) Tolkning: Nollrummet svarar mot tre slingor i grafen. 5 4 Föreläsning 6 - Ulf Jönsson & Per Enqvist Nätverksoptimering
Övriga slingor i grafen erhålls som linjärkombinationer av de tre basslingorna i föregående figur. 5 5 5 4 4 4 Basslinga basslinga Basslinga basslinga + basslinga Basslinga basslinga Flödet in/ut ur kretsen påverkas inte av strömmen x i en cykel eftersom à x = 0. Föreläsning 6 - Ulf Jönsson & Per Enqvist Nätverksoptimering
Radrummet R(Ã T ) = { } u = Ã T ỹ (= { u = A T y } ) = N(Ã) (= N(A) ) = { } u R 7 : u = u + u ; u 4 = u + u 4 ; u 5 = u 4 + u 45 Tolkning: Summan av spänningarna över en cykel (slinga) är lika med noll. Detta kallas också Kirchoff s spänningslag. Notera att det finns fler slingor, t.e.x. har vi villkoret u + u 4 = u + u 4, men dessa villkor erhålls linjär kombinationer av de övriga (se föregående OH-bild). Föreläsning 6 - Ulf Jönsson & Per Enqvist Nätverksoptimering
Bildrummet R(Ã) = N(Ã T ) = {b R m : e T b = 0} m = {b R m : b k = 0} Om b j tolkas som en extern ström som matas in i nod j så säger resultatet att summan av dessa strömmar måste vara noll. k= Föreläsning 6 - Ulf Jönsson & Per Enqvist 4 Nätverksoptimering
Kirchoff s lagar b x x u b x 4 x 5 u 5 u u 4 b 5 x u b x 4 u 4 x 45 b 4 u 45 Kirchoff s strömlag: Summan av strömmarna in till en nod är noll. För kretsen i figuren kan detta skrivas Ãx = b. Ett krav är naturligtvis att m j= b j = 0. Kirchoff s spänningslag: Summan av spänningarna över en cykel (slinga) är lika med noll. Föreläsning 6 - Ulf Jönsson & Per Enqvist 5 Nätverksoptimering
Läsanvisningar I optimeringskompendiet: Kapitel 7.. Gamla Materialet : Linjär optimering, gröna häftet, sidan 6-40. Föreläsning 6 - Ulf Jönsson & Per Enqvist 6 Nätverksoptimering