1 Minkostnadsflödesproblem i nätverk

Relevanta dokument
Föreläsning 6: Nätverksoptimering

1 LP-problem på standardform och Simplexmetoden

Lösningar till SF1852 Optimeringslära för E, 16/1 08

Flöde i nätverk. Flöde i nätverk. Specialfall av minkostnadsflödesproblemet

Lösningar till SF1861/SF1851 Optimeringslära, 24/5 2013

Lösningar till SF1861 Optimeringslära, 28 maj 2012

1 Duala problem vid linjär optimering

Lösningar till 5B1762 Optimeringslära för T, 24/5-07

TNSL05 Optimering, Modellering och Planering. Föreläsning 10

Föreläsning 10/11! Gruppuppgifter: Gruppuppgift 1: Alla har redovisat. Gruppuppgift 2: Alla har redovisat Gruppuppgift 3: På gång.

Flöde i nätverk. Flöde i nätverk. Specialfall av minkostnadsflödesproblemet

Hemuppgift 1, SF1861 Optimeringslära, VT 2017

Flöde i nätverk. Flöde i nätverk. Specialfall av minkostnadsflödesproblemet. Specialfall av minkostnadsflödesproblemet. Slutsats.

1 De fyra fundamentala underrummen till en matris

1 Grundläggande kalkyler med vektorer och matriser

Vectorer, spannet av vektorer, lösningsmängd av ett ekvationssystem.

Lösningar till tentan i SF1861 Optimeringslära, 1 juni 2017

Lösningar till tentan i SF1861 Optimeringslära, 3 Juni, 2016

1 Kvadratisk optimering under linjära likhetsbivillkor

Föreläsning 6: Transportproblem (TP)

Lösningsförslag till tentamen i SF1861 Optimeringslära för T. Torsdag 28 maj 2010 kl

Optimeringslära Kaj Holmberg

LP-problem. Vårt första exempel. Baslösningar representerar extrempunkter. Baslösningar representerar extrempunkter

Föreläsning 2: Simplexmetoden. 1. Repetition av geometriska simplexmetoden. 2. Linjärprogrammeringsproblem på standardform.

Stora bilden av Linjära algebran. Vektorrum, linjära transformationer, matriser (sammanfattning av begrepp)

Optimeringslära Kaj Holmberg

Optimeringslära Kaj Holmberg

1 Ickelinjär optimering under bivillkor

2 = 3 = 1. ekvationssystem är beskriven som de vektorer X =

Optimeringslära Kaj Holmberg

Hemuppgift 1, SF1861 Optimeringslära för T

TNK049 Optimeringslära

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A

SF1624 Algebra och geometri

Vektorgeometri för gymnasister

Optimeringslära Kaj Holmberg

Dagens ämnen. Linjära ekvationssystem: Successiv elimination Vektorer Definitionen Grundläggande räkneoperationer Bas och koordinater Ortsvektorer

TAOP07/TEN1 OPTIMERINGSLÄRA GRUNDKURS för Y. Antal uppgifter: 7 Uppgifterna är inte ordnade efter svårighetsgrad.

Linjär Algebra M/TD Läsvecka 1

Tentamensinstruktioner. När Du löser uppgifterna

De optimeringsproblem som kommer att behandlas i denna kurs kan alla (i princip) skrivas. 1 2 xt Hx + c T x. minimera

Definition 1 Ett vektorrum M (över R) är en mängd element, vektorer, sådan att det finns en kommutativ operation + på mängden M som uppfyller

Optimeringslära Kaj Holmberg

Speciell användning av heltalsvariabler. Heltalsprogrammering. Antingen-eller-villkor: Exempel. Speciell användning av heltalsvariabler

TMV166/186 Linjär Algebra M/TD 2011/2012 Läsvecka 1. Omfattning. Innehåll Lay, kapitel , Linjära ekvationer i linjär algebra

1 Positivt definita och positivt semidefinita matriser

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

Vektorgeometri för gymnasister

Hemuppgift 2, SF1861 Optimeringslära för T, VT-10

Uppsala Universitet Matematiska Institutionen Bo Styf. Sammanfattning av föreläsningarna

Vektorgeometri för gymnasister

Mer om analytisk geometri

Ett linjärprogrammeringsproblem på allmän form ser ut som

1(8) x ijt = antal mobiltelefoner av typ i=1,,m, Som produceras på produktionslina 1,, n, Under vecka t=1,,t.

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS för D och C

Algebraiska egenskaper hos R n i)u + v = v + U

M0043M Integralkalkyl och Linjär Algebra, H14, Linjär Algebra, Föreläsning 11

3 1 = t 2 2 = ( 1) ( 2) 1 2 = A(t) = t 1 10 t

SF1624 Algebra och geometri Tentamen med lösningsförslag onsdag, 11 januari 2017

Lösningar till tentan i SF1861/51 Optimeringslära, 3 juni, 2015

SF1624 Algebra och geometri Lösningsförslag till tentamen Fredagen den 23 oktober, 2009 DEL A

Minsta kvadratmetoden

1 Konvexa optimeringsproblem grundläggande egenskaper

x 1 x 2 T (X) = T ( x 3 x 4 x 5

Dagens program. Linjära ekvationssystem och matriser

TANA17 Matematiska beräkningar med Matlab

Vektorgeometri för gymnasister

18 juni 2007, 240 minuter Inga hjälpmedel, förutom skrivmateriel. Betygsgränser: 15p. för Godkänd, 24p. för Väl Godkänd (av maximalt 36p.

Tentamensinstruktioner

Tentamensinstruktioner

Vektorgeometri för gymnasister

reella tal x i, x + y = 2 2x + z = 3. Här har vi tre okända x, y och z, och vi ger dessa okända den naturliga

Sats: Varje anslutningsmatris ar fullstandigt unimodular. Bevis: Lat m beteckna antalet rader i anslutningsmatrisen.

Determinanter, egenvectorer, egenvärden.

Lösningsförslag till tentamen i SF1861 Optimeringslära för T. Onsdag 25 augusti 2010 kl

LINJÄRA AVBILDNINGAR

MULTIPLIKATION AV MATRISER, BASER I RUMMET SAMT FÖRSTA MÖTET MED MATRISINVERSER = = =

Vektorrum. EX. Plan och linjer i rummet genom origo. Allmänt; mängden av lösningar till AX = 0.

SKRIVNING I VEKTORGEOMETRI

5B1146 med Matlab. Laborationsr. Laborationsgrupp: Sebastian Johnson Erik Lundberg, Ann-Sofi Åhn ( endst tal1-3

TENTAMEN. Tentamensinstruktioner. Datum: 30 augusti 2018 Tid: 8-12

SF1624 Algebra och geometri Lösningsförslag till modelltentamen DEL A

Vektorgeometri för gymnasister

TMV166 Linjär algebra för M, vt 2016

1 Linjära ekvationssystem. 2 Vektorer

Vektorgeometri för gymnasister

Sidor i boken Figur 1: Sträckor

TNK049 Optimeringslära

SKRIVNING I VEKTORGEOMETRI

Lösningar till tentan i 5B1760 Linjär och kvadratisk optimering, 17 december 2003.

Optimeringslära Kaj Holmberg

min c 1 x 1 + c 2 x 2 då x 1 + x 2 = 1, x 1 {0, 1}, x 2 {0, 1} plus andra bivillkor. Vi måste göra k st av n alternativ:

1. Ekvationer 1.1. Ekvationer och lösningar. En linjär ekvation i n variabler x 1,..., x n är en ekvation på formen. 2x y + z = 3 x + 2y = 0

Föreläsning 8 i kursen Ma III, #IX1305, HT 07. (Fjärde föreläsningen av Bo Åhlander)

Vektorgeometri för gymnasister

min c 1 x 1 + c 2 x 2 då x 1 + x 2 = 1, x 1 {0, 1}, x 2 {0, 1} plus andra bivillkor. Vi måste göra k st av n alternativ:

Analys o Linjär algebra. Lektion 7.. p.1/65

6. Matriser Definition av matriser 62 6 MATRISER. En matris är ett rektangulärt schema av tal: a 11 a 12 a 13 a 1n a 21 a 22 a 23 a 2n A =

Moment 4.2.1, 4.2.2, 4.2.3, Viktiga exempel 4.1, 4.3, 4.4, 4.5, 4.6, 4.13, 4.14 Övningsuppgifter 4.1 a-h, 4.2, 4.3, 4.4, 4.5, 4.

8 Minsta kvadratmetoden

Transkript:

Krister Svanberg, april 2012 1 Minkostnadsflödesproblem i nätverk Ett nätverk består av en given mängd noder numrerade från 1 till m (där m är antalet noder) samt en given mängd riktade bågar mellan vissa par av noderna. En båge som går från nod nr i till nod nr j betecknas (i, j) och ritas som en pil med spetsen vid nod j. Ibland kan det finns två bågar mellan två givna noder, dels en båge (i, j) från nod nr i till nod nr j, dels en båge (j, i) från nod nr j till nod nr i. Dessa måste man skilja på. Låt B beteckna mängden av bågar (i, j) i nätverket, och låt n beteckna antalet bågar i B. Det förutsätts genomgående att nätverket är sammanhängande, vilket betyder att det inte är fråga om ett antal separata nätverk som fullständigt saknar förbindelse med varann. Låt x ij beteckna flödet (av någon storhet) i bågen (i, j) B. Till varje båge (i, j) B hör en given kostnad per flödesenhet, betecknad c ij. Låt x IR n och c IR n vara vektorer med komponenterna x ij resp c ij, för (i, j) B, i någon väldefinierad ordning. Vissa noder är källnoder, i vilka nätverket fylls på med givna kvantiteter flöde ( utifrån ). Vissa noder är sänknoder, i vilka nätverket tappas av på givna kvantiteter flöde. De återstående noderna kallas mellannoder. I varje nod råder flödesbalans, dvs utflödet = inflödet, där utflödet från noden är summan av flödet i alla bågar ut från noden plus eventuell avtappning i noden (om det är en sänknod), medan inflödet till noden är summan av flödet i alla bågar in till noden plus eventuell påfyllning i noden (om det är en källnod). Låt b i beteckna hur mycket flöde som tillförs nätverket i nod nr i. För källnoder är b i > 0, m för sänknoder är b i < 0 och för mellannoder är b i = 0. Vi förutsätter att b i = 0. För att konkretisera den kommande framställningen ska vi utgå från ett nätverk bestående av fem stycken noder, dvs m = 5, numrerade från 1 till 5, samt följande bågmängd: B = {(1, 2), (1, 3), (2, 3), (2, 4), (3, 4), (3, 5), (4, 5)}, dvs n = 7. Läsaren rekommenderas att utan dröjsmål rita upp detta nätverk; den fortsatta läsningen kommer att underlättas väsentligt av en sådan figur. Vi antar att noderna nr 1 och 2 är källnoder med påfyllningen 40 resp 35 flödesenheter, medan noderna 3, 4 och 5 är sänknoder med avtappningen 30, 25 resp 20 flödesenheter. Vi antar vidare att kostnaderna per flödesenhet i de olika bågarna ges av c T = (c 12, c 13, c 23, c 24, c 34, c 35, c 45 ) = (2, 5, 2, 2, 1, 1, 2). (1.1) i=1 1

Minkostnadflödesproblemet svarande mot detta nätverk kan skrivas på följande form: MKF : minimera c T x då Ãx = b, x 0, (1.2) där x = (x 12, x 13, x 23, x 24, x 34, x 35, x 45 ) T, c = (c 12, c 13, c 23, c 24, c 34, c 35, c 45 ) T, 1 1 0 0 0 0 0 b 1 40 1 0 1 1 0 0 0 à = 0 1 1 0 1 1 0 0 0 0 1 1 0 1 och b b 2 = b 3 b 4 = 35 30 25. 0 0 0 0 0 1 1 b 5 20 Denna matris à har linjärt beroende rader, ty med y T = (1 1 1 1 1) T är y T à = (0 0 0 0 0 0 0). Därmed är exempelvis den sista raden i à = summan av de övriga raderna i Ã. Likaså är den sista komponenten i vektorn b = summan av de övriga komponenterna i b. Det betyder att vi kan stryka (exempelvis) den sista av ekvationerna i systemet Ãx = b utan att påverka lösningsmängden till systemet, eftersom den sista ekvationen automatiskt blir uppfylld om de övriga ekvationerna är uppfyllda. Fortsättningsvis ska vi därför i stället skriva minkostnadsflödesproblemet på formen MKF : minimera c T x då Ax = b, x 0, (1.3) där (m 1) n matrisen A har erhållits genom att stryka sista raden i Ã, medan vektorn b IR m 1 har erhållits genom att stryka sista komponenten i b. Vi har alltså att A = 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 1 0 1 och b = b 1 b 2 b 3 b 4 = 40 35 30 25 Denna matris A har linjärt oberoende rader, ty den enda lösningen till y T A = 0 T, som på komponentform kan skrivas y 1 y 2 = 0, y 1 y 3 = 0, y 2 y 3 = 0, y 2 y 4 = 0, y 3 y 4 = 0, y 3 = 0 och y 4 = 0, är uppenbarligen y = 0. Vi ska nu visa hur simplexmetoden förenklas när den tillämpas på MKF-problemet (1.3). Eftersom A har linjärt oberoende rader så har varje baslösning m 1 st basvariabler och n m+1 st icke-basvariabler. Motsvarande basmatris A β är (m 1) (m 1), dvs 4 4. Det finns en trevlig tolkning av baslösningar till MKF problemet, baserat på begreppet uppspännande träd. En given delmängd av bågarna utgör ett uppspännande träd om dels varje nod i nätverket vidrörs av minst en båge ur delmängden, dels det delnätverk som bildas av bågarna ur delmängden är sammanhängande, dels det inte finns någon slinga bestående av bågar ur delmängden, utan hänsyn tagen till bågarnas riktning. 2

Sats: m 1 st kolonner ur (m 1) n matrisen A i ett MKF-problem är linjärt oberoende om och endast om motsvarande m 1 st bågar bildar ett uppspännande träd. Givet ett uppspännande träd, och därmed en motsvarande basmatris A β, så är det lätt att direkt i nätverket bestämma vilka värden de aktuella basvariablerna måste ha, dvs att lösa ekvationssystemet A β x β = b. Detta ska nu illustreras i vårt exempel. Välj exempelvis trädet bestående av bågarna B β = {(1, 2), (2, 3), (2, 4), (4, 5)}. (Rita figur!) Motsvarande basmatris A β respektive icke-basmatris A ν är då A β = 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 och A ν = 1 0 0 0 0 0 1 1 1 0 1 0. (1.4) De tre icke-basvariablerna x 13, x 34 och x 35 är samtliga = 0 i den aktuella baslösningen. Basvariablernas värden kan bestämmas i exempelvis följande ordning (se din figur): x 12 = 40, pga flödesbalansvillkoret i nod nr 1. x 23 = 30, pga flödesbalansvillkoret i nod nr 3. x 24 = 45, pga flödesbalansvillkoret i nod nr 2. x 45 = 20, pga flödesbalansvillkoret i nod nr 4. Här blev resultatet en tillåten baslösning, ty samtliga basvariablerna blev 0, men detta gäller inte för alla val av uppspännande träd. Vi ska senare antyda hur man på ett systematiskt sätt kan bestämma en tillåten baslösning att starta simplexmetoden från. Antag nu att vi, i likhet med ovan, har lyckats hitta en tillåten baslösning. Nästa steg är då att avgöra om denna lösning är optimal, genom att beräkna de reducerade kostnaderna r ij för icke-basvariablerna. Först ska då vektorn y IR m 1 beräknas ur ekvationssystemet y T A β = c T β, som i vårt fall, med y T = (y 1, y 2, y 3, y 4 ) och A β enligt (1.4), blir följande fyra ekvationer: y 1 y 2 = c 12, y 2 y 3 = c 23, y 2 y 4 = c 24 och y 4 = c 45. Om vi inför y 5 = 0 så kan dessa ekvationer kortfattat skrivas y i y j = c ij för alla (i, j) B β (dvs för alla basbågar). (1.5) Varje skalär y i svarar alltså mot en nod i nätverket. Värdet på dessa skalärer kan bestämmas direkt i nätverket i exempelvis följande ordning (se din figur): Först sätts y 5 = 0, vilket gäller per definition. Basbågen (4, 5) ger sedan att y 4 y 5 = c 45, dvs y 4 = c 45. Basbågen (2, 4) ger sedan att y 2 y 4 = c 24, dvs y 2 = y 4 + c 24. Basbågen (2, 3) ger sedan att y 2 y 3 = c 23, dvs y 3 = y 2 c 23. Basbågen (1, 2) ger slutligen att y 1 y 2 = c 12, dvs y 1 = y 2 + c 12. Enligt ovan är c T = (c 12, c 13, c 23, c 24, c 34, c 35, c 45 ) = (2, 5, 2, 2, 1, 1, 2). Då blir (i tur och ordning) y 5 = 0, y 4 = 2, y 2 = 4, y 3 = 2 och y 1 = 6. 3

Nästa steg är att beräkna reducerade kostnaderna ur formeln r T ν = c T ν y T A ν, som i vårt fall, med y T = (y 1, y 2, y 3, y 4 ) och A ν enligt (1.4), blir: r 13 = c 13 y 1 + y 3 = 5 6 + 2 = 1, r 34 = c 34 y 3 + y 4 = 1 2 + 2 = 1, r 35 = c 35 y 3 = 1 2 = 1. Om vi som tidigare inför y 5 = 0 så kan nyssnämnda uttryck kortfattat skrivas: r ij = c ij y i + y j för alla (i, j) B ν (dvs för alla icke-basbågar). (1.6) Om r ν 0 så är den aktuella tillåtna baslösningen optimal. Om minst en icke-basvariabel har r ij < 0 så ska vi byta bas genom att låta en av dessa icke-basvariabler bli en ny basvariabel. I exemplet ovan var r 35 = 1 (och övriga r ij 0), vilket medför att vi sätter x 35 = t och låter t öka från 0, medan övriga icke-basvariabler ligger kvar vid 0. Därvid ändras basvariablernas värden entydigt som funktion av t. Hur de ändras kan bestämmas i exempelvis följande ordning (se din figur): x 12 (t) = 40, pga flödesbalansvillkoret i nod nr 1. (Påverkas ej av t.) x 23 (t) = 30 + t, pga flödesbalansvillkoret i nod nr 3. x 24 (t) = 45 t, pga flödesbalansvillkoret i nod nr 2. x 45 (t) = 20 t, pga flödesbalansvillkoret i nod nr 4. Vi ser att den nya bågen (3, 5) tillsammans med några av trädbågarna (dvs några av bågarna svarande mot basvariabler) bildar en entydig slinga i nätverket. Varje basvariabel i denna slinga ändras med +t eller t. Basvariabler som inte ligger i slingan påverkas ej av t. Den basvariabel, bland de som ändras med t, som först blir = 0 då t växer ska ut ur basen. I vårt exempel kan t ökas till t = 20. Då blir x 45 = 0. Den nya tillåtna baslösningen ges av x 12 = 40, x 23 = 50, x 24 = 25, x 35 = 20 (basvariablerna) och x 13 = 0, x 34 = 0, x 45 = 0. Motsvarande uppspännande träd ges av B β = {(1, 2), (2, 3), (2, 4), (3, 5)}. (Rita figur.) Nu är en simplexiteration fullbordad och vi upprepar ovanstående steg. Skalärerna y i beräknas i exempelvis följande ordning: Först sätts y 5 = 0, vilket gäller per definition. Basbågen (3, 5) ger sedan att y 3 y 5 = c 35, dvs y 3 = c 35 = 1. Basbågen (2, 3) ger sedan att y 2 y 3 = c 23, dvs y 2 = y 3 + c 23 = 3. Basbågen (2, 4) ger sedan att y 2 y 4 = c 24, dvs y 4 = y 2 c 24 = 1. Basbågen (1, 2) ger slutligen att y 1 y 2 = c 12, dvs y 1 = y 2 + c 12 = 5. Nästa steg är att beräkna reducerade kostnaderna för icke-basvariablerna ur formeln r ij = c ij y i + y j, vilket ger r 13 = c 13 y 1 + y 3 = 5 5 + 1 = 1, r 34 = c 34 y 3 + y 4 = 1 1 + 1 = 1, r 45 = c 45 y 4 + y 5 = 2 1 = 1. Eftersom alla r ij 0 så är den aktuella tillåtna baslösningen ovan optimal. 4

Man kan notera att när simplexmetoden tillämpas på MKF enligt ovan så består kalkylerna enbart av additioner och subtraktioner. Därav följer att om alla b i och c ij är heltal så behöver man bara addera och subtrahera heltal, varvid exempelvis avrundningsfel aldrig uppkommer. Vidare följer att om alla b i är heltal så blir alla x ij hela tiden heltal. Speciellt kommer då den optimala lösning som metoden hittar att vara heltalig, trots att man inte explicit kräver det! Denna egenskap medför att man exempelvis kan lösa så kallade assignmentproblem (där variablerna är binära) som minkostnadsflödesproblem, utan att explicit kräva att varje variabel endast får anta något av värdena 0 och 1. Avslutningsvis ska antydas hur man kan bestämma en tillåten baslösning till MKF-problemet, utan att behöva pröva sig fram med gissade uppspännande träd. Utöka nätverket genom att först införa en extranod som vi kallar nummer m+1, dvs nummer 6 i vårt fall. Inför sedan m st extrabågar enligt följande: För varje källnod införs en båge från källnoden till extranoden. För varje sänknod införs en båge till sänknoden från extranoden. För varje mellannod införs antingen en båge från mellannoden till extranoden eller en båge till mellannoden från extranoden. I vårt exempel innebär detta att vi inför extrabågarna {(1, 6), (2, 6), (6, 3), (6, 4), (6, 5)}, utöver de ursprungliga bågarna. Betrakta sedan ett MKF-problem i detta utökade nätverk, där kostnadskoefficienterna c ij för extrabågarna väljs till ett stort tal M, så att flödet i dessa bågar blir väldigt dyrt, medan de ursprungliga bågarna i nätverket behåller sina från början givna c ij. En tillåten baslösning till detta utökade MKF-problem erhålls genom att till basvariabler välja de variabler som svarar mot extrabågarna (som utgör ett uppspännande träd till det utökade nätverket). Basvariablernas värden ges av x i,m+1 = b i 0 i bågar till extranoden, och x m+1,i = b i 0 i bågar från extranoden. I vårt exempel ges dessa basvariabelvärden av x 16 = 40, x 26 = 35, x 63 = 30, x 64 = 25 och x 65 = 20. Sedan appliceras simplexmetoden (som den har beskrivits ovan) på detta utökade MKFproblem. Eftersom extrabågarna är väldigt dyra i förhållande till de ursprungliga bågarna, så kommer simplexmetoden automatiskt att se till att flödet i alla extrabågar blir = 0 (om detta är möjligt), varvid flödet har förflyttats till det ursprungliga nätverkets bågar. Optimala lösningen till det utökade MKF-problemet kommer då att vara optimal lösning även till det ursprungliga nätverket. 5