Lagrangedualitet Lagrangedualitet: Numeriskt exempel z = min då Lagrangerelaxation: “Stoppa upp vissa bivillkor i målfunktionen”. Dvs. ersätt vissa bivillkor med en term (straff) i målfunktionen. Låt X = {x : 0 ≤ x1 ≤ 2, 0 ≤ x2 ≤ 2}, och relaxera det första bivillkoret med multiplikator u. Detta ger subproblemet ϕ(ū) = min −3x1 − 2x2 + ū(12x1 + 17x2 − 29) Linjär straffunktion. Ger enklare problem att lösa (subproblem). x∈X eller Men måste hitta rätt straff (lutning). ϕ(ū) = min (12ū − 3)x1 + (17ū − 2)x2 − 29ū x∈X Måste lösa subproblemet många gånger, och uppdatera straffkoefficienterna. Testa med ū = 0: Subproblemet blir ϕ(0) = min −3x1 − 2x2 x∈X Subproblemet är en relaxation, ger en optimistisk (undre) gräns för det optimala målfunktionsvärdet. och har lösningen x1 = 2, x2 = 2. ϕ(0) = −10, vilket är en undre gräns. Beräkna ξ = 12x1 + 17x2 − 29 = 29 > 0, så lösningen är inte tillåten (i det relaxerade bivillkoret). Vi får ingen övre gräns. En tillåten lösning ger en pessimistisk (övre) gräns. Kaj Holmberg (LiU) TAOP61 Optimering −3x1 − 2x2 12x1 + 17x2 ≤ 29 0 ≤ x1 ≤ 2, 0 ≤ x2 ≤ 2 10 november 2015 1 / 42 Lagrangedualitet: Numeriskt exempel Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 2 / 42 Lagrangedualitet Mer allmän dualitet (än LP-dualitet). Lagrangerelaxationen: ϕ(ū) = min (12ū − 3)x1 + (17ū − 2)x2 − 29ū x∈X v ∗ = min f (x) då gi (x) ≤ 0 i = 1, . . . , m x ∈X Testa med ū = 1: Subproblemet blir ϕ(1) = min 9x1 + 15x2 − 29 x∈X med lösningen x1 = 0, x2 = 0. ϕ(1) = −29 (en sämre undre gräns). (P) (1) (2) X t.ex. en begränsad heltalsmängd. Beräkna ξ = 12x1 + 17x2 − 29 = −29 < 0, lösningen tillåten. Relaxera bivillkorsgrupp 1 med u som Lagrangemultiplikatorer. Lagrangefunktionen: m X L(x, u) = f (x) + ui gi (x). Övre gräns: 0. Vi har z = −10 och z̄ = 0. Testa med ū = 0.2: Subproblemet blir ϕ(1) = min −0.6x1 + 1.4x2 − 5.8 i=1 Jämförelse: KKT-villkoren: x∈X Projektion av målfunktionsgradient på gradienter för aktiva bivillkor: KKT3: ∇x L(x, u) = 0 m X eftersom ∇x L(x, u) = ∇f (x) + ui ∇gi (x). med lösningen x1 = 2, x2 = 0. ϕ(1) = −7, en bättre undre gräns. ξ = −5, lösningen är tillåten. Övre gräns: −6. Vi har nu z = −7 och z̄ = −6. Ganska bra. i=1 Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 3 / 42 Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 4 / 42 Lagrangedualitet Lagrangedualitet Lagrangerelaxationen (subproblemet): Sätt priser, u, på bivillkoren. För fixerade priser ū: Lös ett problem i x: m X ūi gi (x) ϕ(ū) = min L(x, ū) = min f (x) + x∈X x∈X (L) i=1 Praktiskt krav: L ska vara mycket lättare att lösa än P. Stark dualitet: vL = v ∗ om X är konvex. Vi måste lösa L för flera olika värden på ū. Om problemet är konvext och f (x) är strikt konvex så har Lagrangerelaxationen en unik lösning ϕ(u) kallas den duala funktionen. Den är konkav. och den duala funktionen, ϕ(u), är differentierbar. Svag dualitet: ϕ(u) ≤ v ∗ för alla u ≥ 0. Om X inte är konvex, så är det möjligt att vL < v ∗ . Detta kallas dualgap. Relaxation: Det blir för bra. Vi vill maximera den undre gränsen, dvs. lösa följande problem i u. vL = max ϕ(u) då u ≥ 0 (PL) PL kallas det duala problemet. Vi vet att vL ≤ v ∗ . Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 5 / 42 Lagrangedualitet på linjära heltalsproblem (P) ϕ(ū) = min c T x + ū T (Ax − b) (L) x∈X v∗ = min då n X j=1 n X cj xj x∈X Kaj Holmberg (LiU) j=1 6 / 42 z = min då −3x1 − 2x2 x1 + 2x2 ≤ 4 0 ≤ x1 ≤ 1 0 ≤ x2 ≤ 2 ϕ(ū) = min c T x + ū T (Ax − b) = min −3x1 − 2x2 + ū(x1 + 2x2 − 4) aij xj ≤ bi (P) i = 1, . . . , m cj xj + m X i=1 ūi ( n X x∈X x∈X Det tillåtna området X är en rektangel med de fyra extrempunkterna x (1) = (0, 0), x (2) = (0, 2), x (3) = (1, 2) och x (4) = (1, 0). x ∈X ϕ(ū) = min 10 november 2015 Låt X = {x : 0 ≤ x1 ≤ 1, 0 ≤ x2 ≤ 2}, och relaxera det första bivillkoret med multiplikator u. Detta ger subproblemet j=1 n X TAOP61 Optimering Lagrangedualitet: Numeriskt exempel v ∗ = min c T x då Ax ≤ b x ∈X eller Kaj Holmberg (LiU) aij xj − bi ) (L) När vi ändrar ū, vrides målfunktionen, så vi får olika hörn som optimallösningar. j=1 TAOP61 Optimering 10 november 2015 7 / 42 Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 8 / 42 Lagrangedualitet Lagrangedualitet: Dual funktion Det tillåtna området till L (dvs. X ) beror ej på u. Om vi ändrar priserna u, så ändras enbart målfunktionen i L. Låt x (k) vara alla punkter i X som skulle kunna vara optimala i L. (T.ex. extrempunkter.) ϕ(ū1 ) = min c T x +ū1T (Ax −b) = min c T x (k) +ū1T (Ax (k) −b) = min lk (ū1 ) x∈X k∈PX k∈PX där lk (ū1 ) = (Ax (k) − b)T ū1 + c T x (k) . Den duala funktionen ϕ(u) är punktvis minimum av ett antal linjära funktioner, lk (u). u Den är generellt sett inte är differentierbar. Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 9 / 42 Lagrangedualitet: Numeriskt exempel Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 10 / 42 Lagrangedualitet: Numeriskt exempel −3x1 − 2x2 x1 + 2x2 ≤ 4, x ∈ X = {x : 0 ≤ x1 ≤ 1, 0 ≤ x2 ≤ 2} ϕ(ū) = min −3x1 − 2x2 + ū(x1 + 2x2 − 4) z = min då Lösning av L i olika u-punkter ger den minimala affina funktionen i varje punkt. För ū = 2, får vi x∈X De affina delarna som definierar ϕ(u1 ) är konstruerade som (k) (k) (k) (k) lk (u) = c T x (k) + u T (Ax (k) − b) = −3x1 − 2x2 + u(x1 + 2x2 − 4) För olika extrempunkter till X får vi x (1) = (0, 0) : l1 (u) = −4u ϕ(2) = min −3x1 − 2x2 + 2(x1 + 2x2 − 4) = min −x1 + 2x2 x∈X x∈X vilket ger den (unika) optimallösningen x̄ = x (4) = (1, 0) and ϕ(2) = −9. Vi ser att ϕ(2) = mink lk (2) = l4 (2). x (2) = (0, 2) : l2 (u) = −4 Även i en liten omgivning kring u = 2 är ϕ(u1 ) = −3 − 3u, vilket är en differentierbar funktion, med derivatan −3. x (3) = (1, 2) : l3 (u) = −7 + u x (4) = (1, 0) : l4 (u) = −3 − 3u ϕ(u) är definierad som punktvis minimum av dessa, så vi får ϕ(u) = min lk (u) = min(−4u, −4, −7 + u, −3 − 3u) k Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 11 / 42 Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 12 / 42 Lagrangedualitet: Unik subproblemlösning Lagrangedualitet: Numeriskt exempel I punkten ū = 1, ger L ϕ(1) = min −3x1 − 2x2 + 1(x1 + 2x2 − 4) = min −2x1 − 4 x∈X x∈X och där är både x̄ = x (3) = (1, 2) och x̄ = x (4) = (1, 0) optimala, samt alla konvexkombinationer av dem. I närheten av u = 1 definieras ϕ(u) som ϕ(u) = min(−7 + u, −3 − 3u) och båda affina delarna är aktiva i u = 1. Därför är inte ϕ(u) differentierbar i u = 1. u -u Kaj Holmberg (LiU) TAOP61 Optimering ϕ(u) är inte differentierbar i u där L har fler än en optimal lösning. 10 november 2015 13 / 42 Lagrangedualitet: Ej unik subproblemlösning Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 14 / 42 Lagrangedualitet: Subgradienter Definition Om ϕ(u) ≤ ϕ(ū) + ξ T (u − ū) för alla u ≥ 0 så är ξ en subgradient till ϕ(u) i punkten ū. En subgradient är lutningen hos ett stödjande hyperplan för den duala funktionen. Dvs. “lutningen” av funktionen. Låt X̄ vara mängden av alla optimallösningar till L (för ett visst u). ξi = gi (x̄) för alla i, eller ξ = Ax̄ − b, ger en subgradient för varje x̄ ∈ X̄ . u- I ord: En subgradient fås genom att stoppa en optimallösning till L i de relaxerade bivillkoren. u En konvexkombination av subgradienter är också en subgradient. Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 15 / 42 Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 16 / 42 Lagrangedualitet: Numeriskt exempel Lagrangedualitet: Numeriskt exempel Lösning av L i olika u-punkter ger (minst) en subgradient i varje punkt. För ū = 2, får vi I punkten ū = 1, ger L ϕ(1) = min −3x1 − 2x2 + 1(x1 + 2x2 − 4) = min −2x1 − 4 x∈X ϕ(2) = min −3x1 − 2x2 + 2(x1 + 2x2 − 4) = min −x1 + 2x2 x∈X x∈X och där är både x̄ = x (3) = (1, 2) och x̄ = x (4) = (1, 0) optimala. x∈X vilket ger den (unika) optimallösningen x̄ = (1, 0) and ϕ(2) = −9. Vi har subgradient ξ = x̄1 + 2x̄2 − 4, och får ξ = 1 för x̄ = (1, 2) Vi har subgradient ξ = x̄1 + 2x̄2 − 4, och får ξ = −3 för x̄ = (1, 0). och ξ = −3 för x̄ = (1, 0). Eftersom lösningen och subgradienten är unik, är ϕ(u) differentierbar i punkten ū = 2. ϕ(u) är inte differentierbar i u = 1. Både positiv och negativ lutning indikerar dualt maximum. Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 17 / 42 Lagrangedualitet: Duala optimum Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 18 / 42 10 november 2015 20 / 42 Lagrangedualitet: Mot duala optimum Var ligger optimum, u ∗ , till det duala problemet, PL: vL = max ϕ(u) då u ≥ 0 ? -u u* För varje subgradient, ξ, innehåller mängden D = {u : (u − ū)T ξ ≥ 0} alla optimala duala lösningar till PL. Varje subgradient, ξ, pekar in in det halvrum som innehåller alla optimala duala lösningar till PL. Om vi tar ett litet steg i en subgradients riktning kommer vi närmare optimum. Därför kan subgradienter användas som sökriktningar för att lösa PL, dvs. för att maximera den duala funktionen. Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 19 / 42 t< Kaj Holmberg (LiU) 2(ϕ(u ∗ ) − ϕ(ū)) kξk2 TAOP61 Optimering Lagrangedualitet på linjära heltalsproblem v ∗ = min c T x då aiT x ≤ bi x ∈X i = 1, . . . , m vLP = min c T x då aiT x ≤ bi x ≥0 T vL = max min c x + u≥0 x∈X Lagrangedualitet på linjära heltalsproblem (P) i = 1, . . . , m m X (LP) v* ui (aiT x − bi ) (PL) i=1 vC = min c T x då aiT x ≤ bi i = 1, . . . , m x ∈ conv(X ) vL vLP (PC) PC är ett implicit LP-problem. Kan visa att vL = vC , samt att vLP ≤ vC ≤ v ∗ , vilket ger vLP ≤ vL ≤ v ∗ . Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 21 / 42 Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 22 / 42 Lagrangedualitet på linjära heltalsproblem Lagrangedualitet med linjära funktioner: Styrbarhet Ibland är alla extrempunkter till X heltal. Då kan man strunta i heltalskraven i L, och ändå få heltalslösning. Möjliga optimallösningar till L är extrempunkterna i konvexa höljet av X , medan möjliga optimallösningar till P är extrempunkterna i konvexa höljet av S = X ∩ {x : Ax ≤ b}. Definition Vissa extrempunkter i conv(S) är inte extrempunkter i conv(X ), Om det optimala målfunktionsvärdet till L inte ändras om heltalskraven ignoreras, sägs L ha heltalsegenskapen. närmare bestämt de där bivillkor 1 är aktiva. x ∗ kanske aldrig kan erhållas som optimal lösning till L. Om L har heltalsegenskapen, så gäller vLP = vC = vL . Vi kallar detta brist på styrbarhet. En högre undre gräns är bättre. I konvexa fallet: x ∗ är en av optimallösningarna till L i u ∗ , men är ej extrem. Slutsats: Lagrangerelaxation kan vara bättre än LP-relaxation. Lagrangetermen vrider målfunktionen så att vissa punkter i X (icke-optimala och kanske inte ens tillåtna i P) kommer att ge målfunktionsvärde v ∗ , och x ∗ är en konvexkombination av dessa punkter. Möjligt att vLP < vL < v ∗ . Om subproblemet har heltalsegenskapen är de lika bra. vLP = vL . Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 23 / 42 Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 24 / 42 Lagrangedualitet med linjära funktioner: Styrbarhet Lagrangedualitet: Ökanderiktningar Riktning d är en ökanderiktning om varje subgradient har en vinkel på mindre än 90◦ till den. Dvs. om ξ T d > 0 för alla ξ. x- Alla ökanderiktningar ges av DA (ū) = {d : min ξ T d > 0} = {d : ξ T d > 0 ∀ξ} x* ξ x- Dvs. det måste finnas ett halvrum som innehåller alla subgradienter i sitt inre, med riktningen d̄ parallellt med den inåtriktade normalen till det begränsande hyperplanet. Om nollvektorn är en subgradient, så finns inga ökanderiktningar. Slutsats: Alla subgradienter är inte säkert ökanderiktningar. Lösning av L ger extremlösningar, dvs. extrema subgradienter, så vi kanske inte får en ökanderiktning, även om det finns subgradienter som är det. Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 25 / 42 Lagrangedualitet: Subgradienter och ökanderiktningar Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 26 / 42 Lagrangedualitet: Optimalitetsvillkor Tillräckligt optimalitetskriterium för PL: Nollvektorn är en subgradient. Om ξ = 0 och ū ≥ 0 så är ū optimal. Subgradienterna är det otillåtna slacket i de relaxerade bivillkoren, så om detta slack är noll, är villkoren uppfyllda. Fullständigt optimalitetskriterium: Projektionen av en subgradient är noll. Om ∃ξ : ξ T ū = 0, ξ ≤ 0 och ū ≥ 0 så är ū optimal. I det ickekonvexa fallet kanske det inte existerar någon lösning till subproblemet som ger denna subgradient. Den kanske bara finns som konvexkombination av subgradienter givna av lösningar till L. Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 27 / 42 Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 28 / 42 Praktisk lösningsmetodik baserad på Lagrangedualitet Praktisk lösningsmetodik baserad på Lagrangedualitet Lagrangeheuristik: När ui = 0 så ignoreras bivillkoret gi (x) ≤ 0 helt. 1 Skaffa ett startvärde på ū (t.ex. ū = 0). 2 Lös Lagrangerelaxationen, vilket ger x̄ och ϕ(ū) (samt ξ). 3 Om ϕ(ū) ger en förbättrad undre gräns, uppdatera den. En subgradient fås som ξi = gi (x̄). 4 Om x̄ inte är tillåten, försök ändra den lite så att den blir tillåten. ξi > 0: bivillkoret inte är uppfyllt, dvs. att straffet är för lågt. Öka ui . 5 Om x̄ är tillåten och f (x̄) ger en förbättrad övre gräns, uppdatera den. ξi < 0: bivillkoret är uppfyllt, dvs. att straffet är för högt. Minska ui . 6 Uppdatera ū med passande metod. Gå till 2. Subgradienter pekar Euklidiskt in i rätt halvrum. Om ui ökas, så kostar det att sätta gi (x) > 0. v̂ − ϕ(u (k) ) Poljaks steglängdsformel: t = λk kξ (k) k2 där 0 < ε1 ≤ λk ≤ 2 − ε2 , för givna, positiva ε1 and ε2 . Maximera ϕ(u) med en sökmetod (sökriktning och steglängd). (k) Obs: ϕ(u) inte är differentierbar. Använd subgradienter som sökriktningar, men gör ej linjesökning. v̂ är ett målvärde, helst lika med v ∗ , men kan vara en övre gräns. (Subgradienten är inte alltid en ökanderiktning.) Minska λk , t.ex. halvera den om ingen förbättring av undre gränsen erhållits på 5 iterationer. Använd istället en approximativ steglängdsformel, som kan ge en försämring av målfunktionsvärdet. Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 29 / 42 Subgradientoptimering 1 2 3 4 Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 30 / 42 Exempel: Lagrangedualitet på kappsäcksproblem max 3x1 +4x2 +3x3 då 3x1 +2x2 +x3 ≤ 4 xj ∈ {0, 1} ∀j Finn en dual startlösning, u (0) . Låt v = −∞ och k = 1. Lös Lagrangerelaxationen L med ū = u (k) , vilket ger ϕ(u (k) ) och x̄ (k) . Om ϕ(u (k) ) > v , sätt v = ϕ(u (k) ) och spara u (k) som den hittills bästa punkten. Sätt d (k) = ξ (k) = Ax̄ (k) − b. Beräkna t (k) med hjälp av en steglängdsformel. Sätt u (k+1) = (u (k) + t (k) d (k) )+ . Standardform: f (x) = −3x1 − 4x2 − 3x3 (minimering) samt g (x) = 3x1 + 2x2 + x3 − 4 och X = {x : xj ∈ {0, 1} ∀j}. Relaxera kappsäcksvillkoret: min −3x1 − 4x2 − 3x3 + u(3x1 + 2x2 + x3 − 4) då xj ∈ {0, 1} ∀j (L) eller min (3u − 3)x1 + (2u − 4)x2 + (u − 3)x3 − 4u då xj ∈ {0, 1} ∀j Optimalitetstest: Om kd (k) k ≤ ε, ku (k+1) − u (k) k ≤ ε eller k > N stanna. Annars sätt k = k + 1 och gå till 2. L är trivial att lösa. Notera tecknet (+ eller -) på koefficienten framför varje variabel. Om (3u − 3) > 0 (dvs. u > 1) sätter vi x1 = 0, om (3u − 3) < 0 (dvs. u < 1) sätter vi x1 = 1, och om (3u − 3) = 0 (dvs. u = 1) spelar det ingen roll. Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 31 / 42 Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 32 / 42 Exempel: Lagrangedualitet på kappsäcksproblem Exempel: Lagrangedualitet på kappsäcksproblem Nu är frågan hur u ska uppdateras. Börja med u = 0, vilket ger x1 = 1, x2 = 1 och x3 = 1. Ett sätt är små duala ökningssteg, där man går till nästa brytpunkt. (Vi struntar helt i bivillkoret.) Brytpunkterna fås i de punkter där det optimala värdet på x ändras, Detta ger ϕ(0) = −3 − 4 − 3 = −10, vilket är en undre gräns för v ∗ . dvs. där tecknet på koefficienten före något x ändras. En subgradient fås som ξ = ϕ(x̄) = 3 + 2 + 1 − 4 = 2 > 0, Målfunktionen i L är (3u − 3)x1 + (2u − 4)x2 + (u − 3)x3 , vilket ger följande brytpunkter: vilket indikerar att u bör ökas, samt att lösningen inte är tillåten i det relaxerade bivillkoret, för x1 : u = 1 så vi får ingen övre gräns. för x2 : u = 2 Man kan notera att värdet ϕ(0) och subgradienten ξ ger information om att funktionen l1 (u) = −10 + 2u ger en beskrivning av funktionen ϕ(u) kring u = 0. för x3 : u = 3 Om vi sätter u = 1, fås x2 = 1, x3 = 1, samt x1 till 0 eller 1. Vi får nu undre gränsen ϕ(1) = −2 − 2 − 4 = −8. Om vi sätter x1 = 1, så blir lösningen inte tillåten, med subgradient ξ = 2. Om vi sätter x1 = 0, så blir lösningen tillåten, med subgradient ξ = −1. Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 33 / 42 Exempel: Lagrangedualitet på kappsäcksproblem Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 34 / 42 Exempel: Lagrangedualitet på kappsäcksproblem Den tillåtna lösningen har målfunktionsvärde -7, en övre gräns för v ∗ . Vi har nu −8 ≤ v ∗ ≤ −7. Den duala funktionen -8 De två subgradienterna i denna punkt är ξ = −1 och ξ = 2, vilket har ξ = 0 som konvexkombination. -10 Detta visar att u = 1 ger dualt maximum av ϕ(u): vL = ϕ(1) = −8. -11 -9 (u) Om vi sätter x1 = 1 fås (som för u = 0) funktionen l1 (u) = −10 + 2u. -12 Om vi sätter x1 = 0 fås istället funktionen l2 (u) = −7 − u. Båda dessa funktioner ger en beskrivning av funktionen ϕ(u) kring u = 1. -13 -14 (Det finns faktiskt ingen bättre tillåten heltalslösning, så v∗ = −7, -15 och vi har ett dualgap på 1 mellan -7 och -8.) -16 0 L har heltalsegenskapen, så vL = vLP . 0.5 1 1.5 2 u 2.5 3 3.5 4 LP-relaxationen har optimum x1 = 1/3, x2 = 1, x3 = 1 och vLP = −8. Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 35 / 42 Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 36 / 42 Exempel: Lagrangedualitet på kappsäcksproblem Exempel: Lagrangedualitet på kappsäcksproblem Ett annat sätt att uppdatera u är att beräkna skärningspunkter mellan affina approximationer av ϕ(u). För u = 5/3, fås x1 = 0, x2 = 1, x3 = 1, med subgradienten ξ = −1, Börja med att öka u mycket, till u = 4. Lösningen är tillåten och ger övre gränsen -7. Nu fås x1 = 2, x2 = 0, x3 = 0. Vi får nu l4 (u) = −7 − u som en beskrivning av ϕ(u) kring u = 5/3. (Vi tar överdriven hänsyn till bivillkoret.) Ersätt l3 (u) med l4 (u) (ty vi behöver en med negativ subgradient och en med positiv). och den undre gränsen ϕ(5/3) = −4 − 3 + 5/3(−1) ≈ −8.667. Vi får nu undre gränsen ϕ(4) = −16, samt subgradienten ξ = −4. Lösningen är tillåten, och ger övre gräns 0. Skärningen mellan funktionerna ges av l4 (u) = l1 (u): −7 − u = −10 + 2u ger 3u = 3 dvs. u = 1. Värdet ϕ(4) och subgradienten ξ ger att funktionen l3 (u) = −4u ger en beskrivning av funktionen ϕ(u) kring u = 4. För u = 1 fås x2 = 1, x3 = 1, samt x1 till 0 eller 1, Vi vet redan att funktionen l1 (u) = −10 + 2u ger en beskrivning av ϕ(u) kring u = 0. den undre gränsen ϕ(1) = −8, samt subgradient ξ = 2 eller ξ = −1. Beräkna nu skärningen mellan dessa funktioner, l3 (u) = l1 (u). och (för x1 = 0) funktionen l2 (u) = −7 − u, −4u = −10 + 2u ger 6u = 10 dvs. u = 10/6 = 5/3 ≈ 1.667. Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 och l1 (u) = l2 (u) ger u = 1. Så u = 1 ger dualt maximum. 37 / 42 Exempel: Lagrangedualitet på LP-problem min z = −2x1 − x2 då x1 + x2 x1 8x1 + 20x2 x1 , x2 ≤ 1 ≤ 34 ≤ 10 ≥ 0 Vi får (för x1 = 1) funktionen l1 (u) = −10 + 2u Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 38 / 42 Exempel: Lagrangedualitet på LP-problem (1) (2) (3) (4) −1.5 −2 Relaxera villkor 3 (med multiplikator u), vilket ger Lagrangerelaxationen ϕ(u) = min −2x1 − x2 + u(8x1 + 20x2 − 10) då x1 + x2 ≤ 1, x1 ≤ 34 , x1 , x2 ≥ 0 −2.5 −3 Den tillåtna mängden har extrempunkterna (0,0), (0,1), (0.75,0.25) och (0.75,0). −3.5 Varje extrempunkt ger en affin funktion i u. Den duala funktionen blir ϕ(u) = min(−10u, 10u − 1, u − 74 , −4u − 32 ). −4 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 Max fås för u = 0.05, och där är de primala punkterna (0.75,0.25) och (0.75,0), samt alla däremellan, optimala. Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 39 / 42 Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 40 / 42 Exempel: Lagrangedualitet på LP-problem Exempel: Lagrangedualitet på LP-problem Samma exempel, relaxera både villkor 2 (med u1 ) och 3 (med u2 ). ϕ(u) = min −2x1 − x2 + u1 (8x1 + 20x2 − 10) + u2 (x1 − 34 ) då x1 + x2 ≤ 1 x1 , x2 ≥ 0 −1.5 −2 Den tillåtna mängden har extrempunkterna (0,0), (0,1) och (1,0). −2.5 Den duala funktionen blir ϕ(u) = min(−10u1 − 34 u2 , 10u1 − 34 u2 − 1, −2u1 + 14 u2 − 2). −3 −3.5 2 Max blir u2 = 0.05 och u3 = 1.6. 1.5 0.2 0.15 1 0.1 0.5 0.05 0 Kaj Holmberg (LiU) TAOP61 Optimering 10 november 2015 41 / 42 Kaj Holmberg (LiU) 0 TAOP61 Optimering 10 november 2015 42 / 42
© Copyright 2024