Document

TNK049 Optimeringslära
Clas Rydergren, ITN
Föreläsning 9
Icke-linjär optimering · Konvexitet
Metoder för problem utan bivillkor
Optimalitetsvillkor för icke-linjära problem
Icke-linjär programmering
• Non-linear programming (NLP)
̶
Problem i kontinuerliga
variabler.
min f ( x )
då g i ( x )  b i , i = 1 K m
Minst en av
f (x), gi ( x), i
är ickelinjär
Förkortningen ILP står i engelsk litteratur oftast för ”Integer
Linear Programming”, dvs linjära heltalsproblem.
2
”Övertid” jämfört med ”stordrift”
Som en del i en linjär produktionsplaneringsmodell, där vi vill
minimera kostnaden, har vi en
variabel 𝑥 som är förenad med
kostnaden 𝑐. Jämför nu följande två
fall:
z
d
c
e
• Över en viss gräns 𝑥 = 𝑢
måste produktionen ske på
övertid, dvs 𝑐 ersätts med
𝑑 > 𝑐, för alla 𝑥 > 𝑢.
• Över en viss gräns 𝑥 = 𝑢
uppnår man stordrift i
produktionen, dvs c ersätts
med 𝑒 < 𝑐 för alla 𝑥 > 𝑢.
x
x=u
Vilket av fallen är knepigast att hantera? Varför?
3
Olika typer av icke-linjär programmering
• Ofta är samband inte linjära
• Skalfördelar
• Avstånd
• Mekanik/konstruktion
• Ingen universalalgoritm finns
• Anpassa algoritm till problem
• Ofta mycket svårlösta problem
• Exempel klassificeringar
• Med visavi utan bivillkor
• Linjära visavi ickelinjära bivillkor
• Konvext visavi icke-konvext problem
4
När man pratar om
icke-linjära (nonlinear) problem brukar
man normalt också
förutsätta att det är
problem i kontinuerliga
variabler.
Sökmetoder för icke-linjär programmering
• Sökmetoder bygger oftast på att lösa
förenklade/approximativa problem
• Oftast hittar sökmetoder lokala optimum
̶
och ibland bara lokala stationära punkter
• Konvexa problem enklare att hantera
̶
5
Varje lokalt optimum är också ett globalt optimum.
• Konvext problem
Konvexitet
– Minimera konvex funktion över konvext område
• Alternativt maximera en konkav funktion över ett konvext område.
• Konvexa funktioner
– Summan av konvexa funktioner konvex funktion
• Exempel: 𝑓 𝑥 = 𝑥 2 + 4𝑥 + 𝑒 𝑥 − 𝑥
– Om 𝑔(𝑥) är konvex, och ℎ(𝑦) är konvex och icke-avtagande, så
måste 𝑓 𝑥 = ℎ 𝑔 𝑥 vara en konvex funktion.
• Exempel: 𝑓 𝑥 = 𝑒 𝑥
2 +4𝑥−𝑥 −1
• Konvexa mängder
– Konvex funktion begränsad uppåt är en konvex mängd
• 𝑋 = 𝑥 𝑔𝑖 𝑥 ≤ 𝑏𝑖 , ∀𝑖
– Skärningen (snittet) av konvexa mängder är en konvex mängd
• 𝑋 = 𝑋1 ∩ 𝑋2 ∩ ⋯ ∩ 𝑋𝑝 där 𝑋1 , 𝑋2 , … , 𝑋𝑝 är konvexa mängder.
• Skärning av icke-konvexa mängder kan vara konvex mängd.
6
Undersöka konvexitet
• Betrakta 𝑓(𝑥).
• Inför Hessianen
– Matris av partiella andraderivatorer
• En funktion kan vara
 2 f

2
 x1
 2 f
H ( x) =  x x
 2 1
 
 2 f

 xn x1
– Konvex
•
Strikt konvex
– Konkav
•
Strikt konkav
– Varken konvex eller
konkav
– (Både konvex och
konkav)
•
7
2 f
x1x2
2 f
2
x2

K
K


K
2 f 

x1xn 

 

 
2
 f 
2 
xn 
– Man kan se Hessianen som en
 f 
Jacobian till gradient-funktionen.


 x1  – Hessianen tecknas ibland 𝛻 2 𝑓 𝑥 .
 f
Inför gradienten f ( x) =  x2

– Vektor av partiella
 
 f
derivatorer:
 x
 n







Konvexa funktioner
• Beräkna Hessianens egenvärden, 𝜆
– Om 𝜆𝑖 > 0 ≥ 0 , ∀𝑖 är 𝐻(𝑥) positivt (semi-)
definit, och då är 𝑓(𝑥) strikt konvex
(konvex)
• Studera ledande underdeterminanterna
– Beteckna
 2 f
h1 ( x) = 
2

x
 1




 2 f

2
 x1
h2 ( x) =  2
 f

 x2 x1
2 f
x1x2
2 f
2
x2






h3 ( x) = K
– Om det ℎ𝑖 > 0 ∀𝑖, är 𝐻(𝑥) positivt definit.
Exempel!
8
”Obegränsad optimering”
”Obegränsad” = utan bivillkor (kap 10)
–
–
–
Kallas ”unconstrained” på engelska.
Mängden tillåtna lösningar är obegränsad.
Max/Min till målfunktionen är normalt begränsade.
”Obegränsad” = oändlig
–
–
–
9
Kallas ”unbounded” på engelska.
Mängden tillåtna lösningar är begränsad eller obegränsad.
Max eller min till funktionen saknas:𝑓 𝑥 → −∞ (för min),
eller 𝑓 𝑥 → +∞ (för max) på mängden tillåtna lösningar.
Optimalitet i optimeringsproblem utan bivillkor
• Nödvändiga villkor
– Om 𝑥 ∗ skall vara optimum till min 𝑓(𝑥), måste ∇𝑓(𝑥 ∗ ) = 0.
• Tillräckliga villkor
– Om ∇𝑓(𝑥 ∗ ) = 0 och 𝑓(𝑥) konvex
är 𝑥 ∗ (globalt) optimum till min 𝑓(𝑥).
x*
• Begrepp
– Descentriktning
𝑑 (𝑘) : ∇𝑓
𝑥 (𝑘)
∙𝑑
𝑘
*

f
(
x
)
< 0.
• Riktning i vilken funktionsvärdet minskar.
– Ascentriktning 𝑑 (𝑘) : ∇𝑓 𝑥 (𝑘) ∙ 𝑑
𝑘
> 0.
• Riktning i vilken funktionsvärdet ökar.
10
Descentriktningar
Sökmetoder i jämförelse
Steg
0
Utgå från en
tillåten lösning, x
Valfri punkt
(allt tillåtet)
1
Bestäm tillåten och
förbättrande
sökriktning
Bestäm steglängd
Se på gradient
(Brantaste lutning)/
Hessian (Newton)
Linjesökning
Uppdatera x och
upprepa
Uppdatera x och
upprepa.
2
3
11
Allmänt
Utan bivillkor
(icke-linjärt)
Brantaste lutning-metoden
(Steepest descent method)
0) Börja i valfri punkt, 𝑥 (0)
3) Bestäm steglängd, 𝑡 (𝑘)
– Sätt 𝑘 = 0
– Gör linjesökning
• 𝑡 (𝑘) = arg min 𝑓 𝑥
1) Beräkna sökriktning
𝑡≥0
– Beräkna gradienten ∇𝑓 𝑥 (𝑘)
– Sökriktning ges av
• Maxproblem: 𝑑 (𝑘) = ∇𝑓 𝑥 (𝑘)
• Minproblem:
𝑑 (𝑘)
= −∇𝑓
𝑥 (𝑘)
2) Kontrollera avbrottskriterium
– Avbryt om ∇𝑓 𝑥 (𝑘)
< 𝜀0
• 𝑥 (𝑘) (tillräckligt nära) optimum.
– Alternativa kriterier finns!
12
𝑘
+ 𝑡 ∙ 𝑑 (𝑘)
– Analytiskt om möjligt
(Se även kap 10.4)
4) Beräkna ny punktsteglängd
– 𝑥 (𝑘+1) = 𝑥 (𝑘) + 𝑡 (𝑘) ∙ 𝑑 (𝑘)
5) Sätt 𝑘 = 𝑘 + 1 och gå till 1
Newtons metod
(Newton’s method)
0) Börja i valfri punkt, 𝑥 (0)
– Sätt 𝑘 = 0
1) Beräkna sökriktning
– Beräkna gradienten ∇𝑓 𝑥 (𝑘)
– Beräkna hessianen 𝐻 𝑥 (𝑘)
– Och dess invers 𝐻 −1 𝑥 (𝑘)
– Sökriktning ges av
• −𝐻−1 𝑥 (𝑘) ∇𝑓 𝑥 (𝑘)
2) Kontrollera avbrottskriterium
< 𝜀0
• 𝑥 (𝑘) (tillräckligt nära) optimum.
– Alternativa kriterier finns!
13
– 𝑡 (𝑘) ≡ 1 om Newtons metod
– Linjesökning (se kap 10.4) ger
Newtons modifierade metod.
4) Beräkna ny punktsteglängd
– 𝑥 (𝑘+1) = 𝑥 (𝑘) + 𝑡 (𝑘) ∙ 𝑑 (𝑘)
5) Sätt 𝑘 = 𝑘 + 1 och gå till 1
för både max- och minproblem.
– Avbryt om ∇𝑓 𝑥 (𝑘)
3) Bestäm steglängd, 𝑡 (𝑘)
Modifierade Newton-metoder
• Totala beräkningstiden viktigast
• I varje iteration behövs en riktning och en steglängd.
• Approximera för att hitta riktning
•
Om tidsbesparande
•
T ex approximera Hessianen
•
Ger Marquardts modifiering eller kvasi-Newton-metoder
• Approximera för att hitta steglängd
•
14
Om tidsbesparande kan man använda en inexakt (ickeanalytiskt) beräknad steglängd
Linjesökning
• Hur bestämmer man optimal steglängd?
• Analytiskt (fungerar enbart i små fall eller fall med
speciell struktur där den kan härledas fram).
• Approximativt
•
Gyllene snitt
•
Intervall-halvering
•
Newton–Raphson
•
Armijos metod
• Det är den totala beräkningstiden som är intressant!
• Ibland tar det lång tid bara att evaluera 𝑓(𝑥) för olika 𝑥!
15
Optimalitetsvillkor för icke-linjära problem
För optimeringsproblemet min 𝑓 𝑥 , då 𝑔𝑖 𝑥 ≥ 𝑏𝑖 , ∀𝑖
är 𝑥 lokalt optimum om Karush–Kuhn–Tucker-villkoren
(KKT-villkoren) nedan är uppfyllda.
• Dual tillåtenhet
̶
Målfunktionsgradienten ligger i den kon som bildas av
de (bindande) bivillkorens normaler:
̶
𝛻𝑓 𝑥 =
̶
𝑣𝑖 ≥ 0, ∀𝑖
𝑖 𝑣𝑖
∙ 𝛻𝑔𝑖 𝑥
• Primal tillåtenhet, 𝑔𝑖 𝑥 ≥ 𝑏𝑖 , ∀𝑖
• Komplementaritet, 𝑣𝑖 ∙ 𝑔𝑖 𝑥 − 𝑏𝑖 = 0, ∀𝑖
16
Grafisk tolkning av optimalitetsvillkoren
min f ( x), då gi ( x)  bi , i.
g 3 ( x)
g1 ( x)
Tillåtet område här!
x*
 g3 ( x )
*
17
g 2 ( x)
 g1 ( x )
*
 f ( x )
*
Inför Lektion 9
Uppgift 9.6:
• Kovexitet.
• Dela upp målfunktionen i tre delar, utnyttja Sats 9.4.
• Bivillkoren kan undersökas ett och ett, utnyttja Sats 9.2.
Uppgift 10.5:
• Ett konvext problem utan bivillkor.
• Brantaste lutnings-metoden.
• Newtons metod.
18
www.liu.se