Tllämpnngar av dekomposton: Flervaruflödesproblemet v = mn j: x k c k x k xj k = r k för alla N, k C (1) x k b för alla (, j) A (2) j:(j,) A x k 0 för alla (, j) A, k (3) Struktur: Om man relaxerar kapactetsbvllkoren (2), faller subproblemet sär ett vanlgt mnkostnadsflödesproblem för varje vara. Flervaruflödesproblemet: Lagrangeheurstk En Lagrangeheurstk använder en Lagrangerelaxaton som subproblem, och löser Lagrangedualen med subgradentoptmerng, kombnerat med en prmal heurstk som ger prmalt tllåtna lösnngar. Relaxera kapactetsbvllkoren (2), med multplkatorerna, u. Låt X k = {x k : x k xj k = r k för alla N, x 0}. j: j:(j,) A Subproblemet blr ϕ(ū) = g k (ū) ū b där, för alla k C, g k (ū) = mn c k x k x k X k (DS) och c k = c k + ū. DS är ett lnjärt mnkostnadsflödesproblem för varje vara. Kaj Holmberg (LU) TAOP61 Optmerng 10 november 2015 1 / 18 Flervaruflödesproblemet: Lagrangeheurstk Lagrangedualen kan lösas med subgradentoptmerng. Multplkatorerna, ū, uppdateras med en subgradent som fås som ξ = x k b för alla, j där x är lösnngen tll Lagrangerelaxatonen, DS. I teraton l, sätts ū (l+1) = (ū (l) + t (l) ξ (l) ) +, där t (l) = λ l ˆv ϕ(ū (l) ) ξ (l) 2, 0 < λ l < 2 och ˆv v. Lösnngen tll DS är oftast nte tllåten. Använd en prmal heurstk för htta tllåtna lösnngar. Detta ger övre gränser, ˆv v, som kan användas steglängsformeln. Prmal heurstk: Börja med lösnngen tll DS och omdrgera flödet bågar där det totala flödet överskrder kapacteten. Kaj Holmberg (LU) TAOP61 Optmerng 10 november 2015 2 / 18 Flervaruflödesproblemet: Dantzg-Wolfedekomposton Dantzg-Wolfedekomposton: Samma subproblem. Masterproblemet: v DM = mn λ l ( l P c k x k(l) ) λ l ( x k(l) ) b för alla (, j) A (1) l P λ l = 1 (2) l P λ l 0 för alla l P (3) där x (l) är lösnngen tll subproblemet teraton l. DM ger en övre gräns på v och ū tll DS. DS ger en undre gräns på v och en ny lösnng x (l) tll DM. Efter ett ändlgt antal teratoner fås exakt optmum av x k = λ l x k(l) för alla (, j) A, för alla k C. l P (DM) Kaj Holmberg (LU) TAOP61 Optmerng 10 november 2015 3 / 18 Kaj Holmberg (LU) TAOP61 Optmerng 10 november 2015 4 / 18
Bendersdekomposton: Subproblemet fås genom fxerng av y-varablerna, vlket ger ett vanlgt lnjärt mnkostnadsflödesproblem. ψ(ȳ) = mn c x + f ȳ (PS) j: x j:(j,) A x j = b k för alla N x u ȳ för alla (, j) A x 0 för alla (, j) A x = 0 om ȳ = 0, så problemet kan lösas det mndre nätverket Ā = {(, j) A : ȳ = 1}. ψ(ȳ) = mn c x + (,j) Ā j:(,j) Ā x (,j) Ā j:(j,) Ā f x j = b för alla N 0 x u för alla (, j) Ā LP-dualen tll PS blr ψ(ȳ) = max b α u ȳ β + f ȳ då α + α j β c (, j) A β 0 (, j) A (DPS) När man löser PS fås nodprser (α) samt reducerade kostnader, ĉ = c + α α j. De duala bvllkoren blr då β ĉ. V har även bvllkoren β 0, och v vll mnmera β. V kan skrva bvllkoren på β som β max(0, ĉ ). Värdet på β fås alltså som: β = 0 om ĉ 0, och β = ĉ om ĉ < 0. Kaj Holmberg (LU) TAOP61 Optmerng 10 november 2015 5 / 18 Benders masterproblem: v PM = mn q + f y q b α (l) 0 b α (l) y {0, 1} för alla (, j) A u β (l) y för alla l P u β (l) y för alla l R PS ger övre gränser på v och duala lösnngar, α (l) och β (l) (eller obegränsade duala lösnngar α (l) och β (l) ), för PM, och PM ger undre gränser på v och ett nytt ȳ för PS. Konvergensen är exakt och ändlg. Tllåtenhetssntten ska se tll att det nstalleras tllräcklgt med kapactet för att efterfrågat flöde ska komma fram. Ibland fnns det en tllåten lösnng med redan exsterande bågar (med f = 0), och då behövs nte tllåtenhetssntten. (PM) Kaj Holmberg (LU) TAOP61 Optmerng 10 november 2015 7 / 18 Kaj Holmberg (LU) TAOP61 Optmerng 10 november 2015 6 / 18 För bågar med f = 0 kan man redan förväg fxera y = 1. Låt A 0 = {(, j) : f = 0} och A 1 = A \ A 0 (A 0 är bågarna med fast kostnad noll och A 1 bågarna med postv fast kostnad), och fxera y = 1 för alla (, j) A 0. Benderssntten kan då skrvas som q C0 l + ū β (l) u β (l) y 1 1 där C0 l = b α (l) ū β (l) och ū är den kapactet man använt när man löste subproblemet som gav α (l) och β (l) (vanlgtvs är ū = u ȳ ). Man kan drekt beräkna konstanten C0 l när man har löser subproblemet, och behöver nte spara de många β (l) för (, j) A 0, utan bara de få β (l) för (, j) A 1. (Vneopt kan göra detta.) Kaj Holmberg (LU) TAOP61 Optmerng 10 november 2015 8 / 18
Anläggnnglokalserng v = mn n c x + f y x = 1 för alla j (1) n d j x s y för alla (2) x y för alla, j (3) 0 x j 1 för alla, j (4) y {0, 1} för alla (5) En starkare formulerng erhålles genom att addera följande bvllkor. s y D TOT (6) där D TOT = j d j. (CFLP) Först utan (6): Lagrangerelaxaton: Lagrangerelaxera bvllkor 1, dvs. efterfrågevllkoren. n n ϕ(u) = mn c x + f y + u j (1 då n d j x s y för alla x y för alla, j 0 x 1 för alla, j y {0, 1} för alla x ) Obs: nga bvllkor bnder hop. DS separerar ett problem per. Lös DS genom att lösa problemet x, med y tllfällgt fxerad, och sedan lösa det resulterande problemet endast y. (DS) Kaj Holmberg (LU) TAOP61 Optmerng 10 november 2015 9 / 18 Om y = 1, fås följande kontnuerlga kappsäcksproblem. mn n (c u j )x n d j x s, 0 x 1 för alla j Om k = arg mn j (c u j )/d j, så fås lösnngen x k = s y /d k och x = 0 för alla j k. Sätt n detta DS. Kvar blr bara ϕ(ū) = C + mn ˆf y då y {0, 1} för alla där ˆf = f + (c k u k )s /d k och C = n ūj. Trvalt att lösa: Sätt y = 1 om ˆf 0. Sätt y = 0 om ˆf > 0. V får då ϕ(ū) = C + mn(ˆf, 0). Kaj Holmberg (LU) TAOP61 Optmerng 10 november 2015 11 / 18 Kaj Holmberg (LU) TAOP61 Optmerng 10 november 2015 10 / 18 Med (6): Lagrangerelaxaton: n ϕ(u) = mn c x + då f y + n u j (1 n d j x s y för alla x y för alla, j s y D TOT 0 x 1 för alla, j y {0, 1} för alla x ) Använd samma metod: Fxera y tllfällgt, lös x, sätt n, lös sedan y. (DS) Kaj Holmberg (LU) TAOP61 Optmerng 10 november 2015 12 / 18
Som förut: Om y = 1: n mn (c u j )x n d j x s, 0 x 1 för alla j Om k = arg mn j (c u j )/d j, sätt x k = s y /d k och x = 0 för alla j k. DS reduceras då tll följande kappsäcksproblem. ϕ(ū) = C + mn ˆf y då s y D TOT, y {0, 1} för alla där ˆf = f + (c k u k )s /d k och C = n ūj. Med I = { : ˆf > 0} är det optmalt att sätta y = 1 för alla I. Kappsäcksproblemet blr då reducerat tll I, och högerledet byts ut mot D MOD = D TOT I s. Om D MOD 0 är det optmalt att sätta y = 0 för alla I, och problemet är löst. Annars får v ett vanlgt kappsäcksproblem med z = 1 y. Låt D RES = I s D MOD och C 1 = C + I ˆf. Lös sedan följande kappsäcksproblem: ϕ(ū) = C 1 + mn I ˆf z då I V kan här fxera z tll 0 (dvs. y tll 1) om s > D RES. s z D RES, z {0, 1} för alla I Kaj Holmberg (LU) TAOP61 Optmerng 10 november 2015 13 / 18 Anläggnnglokalserng Subgradentoptmerng: En subgradent fås som ξ j = 1 x för alla j, där x är optmal DS. 1 Välj en startpunkt, u (1), sätt v = och k = 1, välj ɛ 1 > 0 och ɛ 2 > 0, ntera v. 2 Lös subproblemet, DS, vlket ger ϕ(u (k) ) och ( x, ȳ). Om ϕ(u (k) ) > v, låt v = ϕ(u (k) ) och spara u (k) som den bästa duala lösnngen httlls. 3 Försök att modfera ( x, ȳ) tll en tllåten lösnng, och uppdatera eventuellt v. 4 Beräkna sökrktnng ξ (k), och en steglängd, t (k), med steglängsformeln nedan. Låt u (k+1) = u (k) + t (k) ξ (k). 5 Stoppa om: d (k) ɛ 1, u (k+1) u (k) ɛ 2 eller k K. Annars sätt k = k + 1 och gå tll steg 2. Kaj Holmberg (LU) TAOP61 Optmerng 10 november 2015 14 / 18 Anläggnnglokalserng En prmal heurstk: Fxera y-delen av lösnngen tll DS och lös det återstående problemet x tll optmaltet. (Lknar Benders subproblem, PS.) Blr ett kapacterat transportproblem, som effektvt kan lösas med en nätverkskod. En annan möjlghet: 1 Ta bort leveranser från kunder som får mer än sn efterfrågan. Leveranserna från anläggnngar med de högsta transportkostnaderna avlägsnas först. 2 Lägg tll leveranser tll kunder nte får tllräcklgt. Jämför först öppna anläggnngar med återstående kapactet, och välj en med mnst transportkostnader. Om ngen öppen anläggnng kan tllgodose efterfrågan, måste en ny anläggnng öppnas. Välj då den med mnst total kostnad, transportkostnad plus fast kostnad, relatvt kunden. (Jämför lab 4 TAOP88.) Kaj Holmberg (LU) TAOP61 Optmerng 10 november 2015 15 / 18 Kaj Holmberg (LU) TAOP61 Optmerng 10 november 2015 16 / 18
Anläggnnglokalserng: Bendersdekomposton Anläggnnglokalserng: Bendersdekomposton Subproblemet fås genom fxerng av y. n ψ(ȳ) = mn c x + f ȳ x = 1 för alla j (1) n d j x s ȳ för alla (2) x = 0 för alla j om ȳ = 0. x ȳ för alla, j (3) 0 x j 1 för alla, j (4) Låt I = { : ȳ = 1}. Subproblemet är då ett transportproblem med anläggnngarna I som källor och kunderna som sänkor. (PS) Benders masterproblem, PM: v PM = mn q + f y q n α (l) j β (l) s y n γ (l) y för alla l P (1 s y D TOT (2 y {0, 1} för alla (3 PS ger övre gränser på v och duala lösnngar, α (l), β (l) och γ (l), för PM, medan PM ger undre gränser på v och ett ȳ för PS. Metoden har exakt, ändlg konvergens. Kaj Holmberg (LU) TAOP61 Optmerng 10 november 2015 17 / 18 Kaj Holmberg (LU) TAOP61 Optmerng 10 november 2015 18 / 18