Tekniska Högskolan i Linköping TAOP88 Matematiska Institutionen Lösning till tentamen Optimeringslära 28--24 Kaj Holmberg Uppgift Lösningar a: Målfunktionen är summan av konvexa funktioner (kvadrater och bivillkoren linjära, så problemet är konvext. Antag att q partier har minst 5%, och att de fick s röster. I exemplet är q = 4 och s = 94. Ledningen ger via KKT2 att alla multiplikatorer för bivillkoren x j ska vara noll. KKT3 ger 2(x j dr j + u = för alla j, vilket ger x j = dr j u/2 för alla j. q q Sätt in i bivillkor : x j = (dr j u/2 = m, vilket ger ds qu/2 = m, vilket med siffror blir. 94 2u =, vilket ger u = (9.4 /2 =.6/2 =.3. Det ger x j = dr j u/2 = dr j +.5 för alla j. Med siffror: x = 3.2 +.5 = 3.35, x 2 = 2.8 +.5 = 2.95, x 3 = 2.6 +.5 = 2.75, x 4 =.8 +.5 =.95. Summering av detta verifierar att summan blir. n n b: Lagrangerelaxationen: ϕ(u = min x (x j dr j 2 + u( x j m. För u = fås, för varje j, ϕ j ( = min xj (x j dr j 2, som har optimum för x j i det heltal som ligger närmast dr j. Det blir x = 3, x 2 = 3, x 3 = 3, x 4 =, med ϕ( =.2 2 +.2 2 +.4 2 +.2 2 =.4 +.4 +.6 +.4 =.28. Detta ger en undre gräns på.28. En subgradient fås genom att stoppa in lösningen i det relaxerade bivillkoret, vilket ger ξ = 3 + 3 + 3 + =. Detta betyder dels att lösningen är tillåten, så vi får övre gräns lika med.28 (som är lika med den undre gränsen, samt att subgradienten är noll, så vi vill varken öka eller minska u. Optimallösningen är funnen. Uppgift 2 2a: Vi får problemet max z = x + x 2 + x 3 + x 4 då 23x + 2x 2 + 5x 3 + 7x 4 28 x j {, } Metod för att lösa LP-relaxationen: Finn max(c j /a j, öka x j, fortsätt tills kappsäcken är full. Kvoter: x : /23, x 2 : /2, x 3 : /5, x 4 : /7. Rangordning: x 3, x 2, x 4, x. (Nu betyder ju x j = att parti j inte ska sitta i regering, så det är inte konstigt att minst kommer först. P: x 3 =, = 28 5 = 23, x 2 =, = 23 2 =, x 4 = /7.65, = =, kappsäcken full, sätt x =. Detta ger LP-lösningen (,,,.65
med z = 2.65, vilket ger z = 2. Förgrena över x 4 : P = P + (x 4, P2 = P + (x 4. P: Som för P, men x 4 =, vilket ger x = /23.48, och z = 2.48, vilket inte förbättrar z. Förgrena över x : P3 = P2 + (x, P4 = P2 + (x. P3: Förgreningen ger x = och x 4 =, så lösningen blir x 2 = och x 3 = (kappsäcken blir inte full, med z = 2. Lösningen är heltalig, vilket ger z = 2. Både P4 och P2 har z = 2, så ingen av dem kan ge bättre lösning, och båda grenarna kapas. Trädet avsökt. Bästa lösning x =, x 2 =, x 3 =, x 4 =, med z = 2. Svar i ord: Tant Brun (parti 2 och Tant Gredelin (parti 4 ska inte sitta i regeringen. Två partier ingår i regeringen. 2b: Bivillkor: 23x + 2x 2 + 5x 3 + 7x 4 29 ( x + x 2 (2 x x 3 + x 4 (3 x 3 x 2 (4 Första rundan ger inget, förgrena över x : P = P + (x =, P2 = P + (x =. P: x = : ( ger x 2 = och x 4 =. Sedan händer inget mer, förgrena över x 3 : P3 = P + (x 3 =, P4 = P + (x 3 =. P3: Allt fixerat, kolla igen. Lösningen tillåten. Vi har en lösning med två partier. Kräv förbättring: x + x 2 + x 3 + x 4 ( P4: Målfunktionsbivillkoret ( kan ej uppfyllas. Kapa. P2: x = : (2 ger x 2 =, (4 ger x 3 =, ( ger x 4 =, (3 ej uppfyllt. P2 gav ingen tillåten lösning. Kapa grenen. Trädet avsökt. Bästa lösningen: (,,,, dvs. parti 2 och 4 (Tant Brun och Farbror Blå ska bilda regering. Uppgift 3 3a: Inför slackvariabler x 5, x 6 och x 7. Starta med slackvariablerna i basen. Bas z x x 2 x 3 x 4 x 5 x 6 x 7 z -4 - -5-2 x 5 x 6 2 3 6 x 7 4 5 Först fås x 3 som inkommande variabel och x 6 som utgående. Bas z x x 2 x 3 x 4 x 5 x 6 x 7 z -2/3 - -2 5/3 x 5 /3 -/3 8 x 3 2/3 /3 2 x 7 /3 4 -/3 3 Sedan fås x 4 som inkommande variabel och x 7 som utgående. 2
Bas z x x 2 x 3 x 4 x 5 x 6 x 7 z 7 2 6 x 5-3 - 5 x 3 2/3 /3 2 x 4 /3 4 -/3 3 Nu är tablån optimal. Optimallösningen blir x =, x 2 =, x 3 = 2, x 4 = 3, (samt x 5 = 5, x 6 =, x 7 = med v = 6. Bivillkor 2 och 3 är aktiva. Bivillkor är inte aktivt, dvs. man använder inte alla personer. Den begränsande faktorn är alltså inte antalet personer utan deras begränsade skicklighet. Duallösningen läses av i målfunktionsraden under slackvariablerna. y =, y 2 =, y 3 = 2, v = 6. Svar i ord: Använd 2 personer till att skicka SMS och 3 personer till valstugor. 3b: Optimallösningen är inte unik, ty ĉ =. Man skulle därför kunna få en lika bra lösning om man valde x som inkommande variabel. Det skulle ge x 3 som utgående variabel, så optimalbasen skulle då bestå av x, x 4 och x 5. Målfunktionsvärdet blir givetvis 6. 3c: Skuggpriser fås av duallösningen, och y 3 = 2 är störst, så man tjänar mest på att öka högerledet till bivillkor 3. (Även bivillkor 2 vore bra att öka högerledet för, y 2 =, medan fler personer inte hjälper, y =. 3d: Reducerad kostnad: ĉ 2 = c 2 a T 2 y. Vi har c 2 =, a T 2 = (,, a 32 och y = (,, 2, så ĉ 4 = 2a 32. Vi får ĉ 2 om 2a 32, dvs. a 32.5. Uppgift 4 4a: Den givna startlösningen är tillåten och ger att basbågarna är (,3, (,5, (2,5, (2,6 och (3,4. Detta ger nodpriserna y =, y 2 =, y 3 = 9, y 4 = 35, y 5 = 6, y 6 = 27, och följande reducerade kostnader: ĉ 2 = 9 > (optimalt ty x =, ĉ 46 = 25 > (optimalt ty x =, ĉ 53 = > (optimalt ty x =, ĉ 54 = 2 < (optimalt ty x = u, ĉ 56 = 4 > (optimalt ty x =, ĉ 64 = <, ej optimalt. Öka. Alltså välj x 64 som inkommande variabel, att öka. Cykeln blir 6-4-3--5-2-6, och maximal ändring blir 5 p.g.a. båge (3,4. Båge (3,4 blir då utgående. Detta ger nodpriserna y =, y 2 =, y 3 = 9, y 4 = 34, y 5 = 6, y 6 = 27, och följande reducerade kostnader: ĉ 2 = 9 > (optimalt ty x =, ĉ 34 = (optimalt ty x =, ĉ 46 = 24 > (optimalt ty x =, ĉ 53 = > (optimalt ty x =, ĉ 54 = < (optimalt ty x = u, ĉ 56 = 4 > (optimalt ty x =. Lösningen är optimal. Uppgift 5 5a: Handelsresandeproblem. Billigaste -träd ger kostnad 85, vilket är en undre gräns. Tillåten lösning är lite svårt att få. Närmaste granne med start i nod 2 ger turen 2--5-3-4-6-2, med kostnaden 98. Smart flyttning av två bågar i -trädet ger turen -3-4-6-5-2-, med kostnaden 92. Vi får övre gräns 92 eller 98 och undre gräns 85. Bivillkor: x 5 + x 25 +x 35 +x 45 +x 56 = 2 (rätt valens för nod 5 eller x 2 +x 25 +x 5 2 (förbjud liten cykel -2-5-. 5b: Kinesiska brevbärarproblemet. Noderna, 2, 3 och 5 har udda valens. De förbinds billigast med bågarna (,2 och (3,5, så dessa bågar dubbleras (körs mer än en gång till kostnad av 23. En rundtur blir då t.ex. -2-5-6-2--3-4-5-3-5- med kostnaden 3
47 + 23 = 7. Uppgift 6 6a: Använd Fords metod. Vi får vägen -4-7-3-5-6-9 med kostnad 3. 6b: y 9 y 7 = 3 8 = 5, så 6 vore för dyrt. Uppgift 7 Skriv problemet på standardform. g (x = x + x 2 3, g 2 (x = x 2, g 3 (x = x, g 4 (x = x 2 2, g 5 (x = x 2, ( 2x 3 f(x =, g 2x 2 5 (x =, g 2 (x = ( g 4 (x =. g 5 (x = konvexa funktioner, och bivillkoren är linjära, så problemet är konvext., g 3 (x = (,. (Målfunktionen är summan av en-dimensionella I startpunkten är bivillkor 3 och 5 aktiva. Första LP-problemet blir min z = 3d 5d 2 då d, d 2, samt d, vilket har optimallösning d = (, med z = 8. Sätt x (2 = (t, t. Maximal steglängd blir.5 pga. bivillkor. Linjesökning skulle ge t = 2 >.5, så vi får t = t max =.5 och x (2 = (.5,.5. Nu är bivillkor aktivt. LP-problemet blir min z = 2d 2 då d + d 2, samt d, vilket har optimallösning d = (, med z = 2. Sätt x (3 = (.5 t,.5 + t. Maximal steglängd blir.5 pga. bivillkor 4. Linjesökning skulle ge t =.5, så vi får t =.5 och x (3 = (, 2. Nu är bivillkor och 4 aktiva. LP-problemet blir min z = d d 2 då d + d 2, d 2, samt d, vilket har optimallösning d = (, med z =. Alltså är x = (, 2 optimal. Svar: Missgynna parti B dubbelt så mycket som parti A. Uppgift 8 Finn maxflöde från nod till nod 9. Minsnittet ger då de gator som har begränsar flödet, och borde göras färdigt snabbt. Lösningsgång: Sök maximal flödesökande väg med Dijkstras metod. Vi får vägen -2-5-6-9, med kapacitet 9. Skicka 9 enheter och ändra tillåtna riktningar. (Båge (5,6 blir full. Sök åter maximal flödesökande väg med Dijkstras metod. Vi får nu vägen -4-7-9, med kapacitet 9. Skicka 9 enheter och ändra tillåtna riktningar. (Båge (4,7 blir full. I nästa iteration kan man i Dijkstras metod bara märka/nå noderna, 2, 3, 4 och 5, så minsnittet går mellan dessa noder och de andra, dvs. över bågarna (4,7 och (5,6 (samt (7,3 baklänges. Maxflödet är 8. Uppgift 9 Efter första steget fås α = (,, 7,, och β = (,,,,. Man kan stryka alla nollor genom att stryka rad 3, 4 och 5 samt kolumn 4, med minsta ostrukna element, vilket 4
gör att vi får α = (2, 3, 7,, och β = (,,, 2,. Nu fås t.ex. lösningen x 2 =, x 24 =, x 33 =, x 45 =, x 5 =, och total kostnad blir 2. Optimal duallösning är ovanstående. Summering av duallösningen ger 2, så starka dualsatsen är uppfylld. 5