Lagrangedualitet

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