Numeryczne metody optymalizacji Optymalizacja w...
Transcript of Numeryczne metody optymalizacji Optymalizacja w...
Numeryczne metody
optymalizacji
Optymalizacja w kierunku
informacje dodatkowe
Typowe zadania decyzyjne
Zadanie decyzyjne bez ograniczeล:S
x RD =
Zadanie decyzyjne z ograniczeniami
rรณwnoลciowymi:
SLxxxx L
S
x ==== ,0)(,,0)(,0)(: 21 RD
)1(x
)2(x
Zadanie decyzyjne z ograniczeniami
nierรณwnoลciowymi:
0)(,,0)(,0)(: 21 = xxxx M
S
x RD
)1(x
)2(x 0)(1 x
0)(2 x
0)(3 x
2
0)( =x
)1(x
)2(x
Zadanie optymalizacji bez ograniczeล
Zaลoลผenie: jest funkcjฤ ciฤ gลฤ i rรณลผniczkowalnฤ .
Zadanie optymalizacji: )(min)(S
xFxFxx RDx=
=โ
)(xF
Warunkiem koniecznym aby byลo minimum lokalnym jest:x
Sxx xF 0)(*=
Jeลผeli jest funkcjฤ pseudo - wypukลฤ , powyลผsze rรณwnanie jest warunkiem
koniecznym i wystarczajฤ cym aby byลo minimum globalnym
)(xFx
3
Jeลผeli jest dodatnio pรณล okreลlona to rozwiฤ zanie
powyลผszego rรณwnania jest minimum globalnym
( )xH Sx R
Jeลผeli jest dodatnio okreลlona powyลผsze rรณwnanie ma
jedno rozwiฤ zanie i jest ono minimum globalnym
( )xH Sx Rx
Zadanie optymalizacji z ograniczeniami rรณwnoลciowymi
Metoda mnoลผnikรณw Lagrangeโ a
)()()()(),(1
xxFxxFxL TL
l
ll +=+= =
=
L
2
1
Warunki konieczne optymalnoลci:
Sxx xL 0),(,=
Funkcja Lagrangeโa:
,
)(
)(
)(
)(2
1
=
x
x
x
x
L
LxxL 0),(
,=
4
- wektor
wspรณลczynnikรณw
Lgrangeโ a
,)()()( xFxGrankxGrank xโ=
gdzie:
)()()()( 21 xxxxG Lxxx =
)()(),( xxFxL T +=
=
M
2
1
=
+=M
m
mm xxFxL1
)()(),(
M
Mx
x
T
Sxx
xL
xL
xL
0
0),(
0),(
0),(
*
,
,
,
**
**
**
=
=
Zadanie optymalizacji z ograniczeniami
nierรณwnoลciowymi Metoda Kuhna โ Tuckerโa
Warunki konieczne optymalnoลci:
Funkcja Lagrangeโ a:
=
S
2
1
=
S
2
1
ssSs = ,,1
gdy rozwiฤ zanie jest regularne
gdzie: - wektor
wspรณลczynnikรณw
Lgrangeโ a
Numeryczne metody optymalizacji
๐ฅโ โ ๐น ๐ฅโ = min๐ฅโ๐ท๐ฅ
๐น(๐ฅ)
Problemy analityczne:
1. Nieliniowa zลoลผona funkcja celu ๐น i
ograniczeล ๐ oraz ๐.2. Nierรณลผniczkowalnoลฤ funkcji ๐น, ๐
oraz ๐.
3. Nie jest znana postaฤ analityczna
funkcji ๐น, ๐ oraz ๐, moลผna jedynie
โzmierzyฤโ wartoลฤ funkcji
4. Duลผy wymiar wektora zmiennych
decyzyjnych.
Metody numeryczne
Konstruujemy ciฤ g przybliลผeล na podstawie wartoลci funkcji w danym
punkcie
)(xFx
0x
)( 0xF
1x
)( 1xF
2x
)( 2xF
xxN
)()( xFxF N
x
)1(x
)2(x
0x 1x2x 3x
7
),(min)( xFxFxxx D
=โ
Numeryczne metody optymalizacji
๐ฅ0, ๐ฅ1, โฆ , ๐ฅ๐, โฆ , ๐ฅ๐ โ ๐ฅโ
๐น ๐ฅ0 > ๐น ๐ฅ1 > โฆ > ๐น ๐ฅ๐ > โฆ > ๐น ๐ฅ๐ โ ๐น(๐ฅโ)
Algorytm
๐ฅ๐+1 = ฮจ ๐ฅ๐ , ๐ฅ0
โข Wybรณr kierunku
poszukiwaล.
โข Optymalizacja w
kierunku.
โข Warunki zatrzymania
procedury.
Wybรณr kierunku poszukiwaล
โข Kierunki bazowe i ich
modyfikacje โ metody
bezgradientowe.
โข Kierunki oparte na
gradiencie funkcji โ
metody gradientowe.
Optymalizacja w kierunku
๐ฅ0 - punkt poczฤ tkowy
๐ฅ1 - punkt koลcowy
๐ - kierunek
๐ - dลugoลฤ kroku w
kierunku
๐โ โ ๐น ๐ฅ0 + ๐โ๐ = min๐
๐น(๐ฅ0 + ๐๐)
๐ฅ0, ๐ โ ustalone ๐น(๐ฅ0 + ๐๐) โ ๐(๐)๐(๐) โ funkcja jednej zmiennej (dลugoลci kroku ๐)๐โ โ ๐ ๐โ = min
๐๐(๐)
optymalizacja w kierunku โก optymalizacja funkcji jednej zmiennej
Warunki zatrzymania procedury
๐ฅ๐+1 โ ๐ฅ๐ < ํ; ๐น ๐ฅ๐+1 โ ๐น ๐ฅ๐ < ๐ฟ;๐น ๐ฅ๐+1 โ ๐น ๐ฅ๐
๐ฅ๐+1 โ ๐ฅ๐< ๐
Uwaga!
Dobra rada
๐ฅ๐ โ ๐ฅโฒ๐โฒ < ํ
๐ฅ0, ๐ฅโฒ0 - rรณลผne punkty poczฤ tkowe
๐ฅ๐, ๐ฅโฒ๐โฒ - odpowiednie punkty koลcowe
โข Metody optymalizacji w kierunku
โ Podziaล rรณwnomierny
โ Podziaล na poลowฤ
โ Zลoty podziaล
โ Aproksymacji kwadratowej
โ Metoda pierwszej pochodnej
โ Metoda znaku pochodnej
โ Metoda Newtona
โ Metoda Bolzano13
โข Bezgradientowe metody optymalizacji
โ Hooka-Jevesa z krokiem dyskretnym
โ Rozendrocka z krokiem dyskretnym
โ Hooka-Jevesa z krokiem optymalnym
โ Rozendrocka z krokiem optymalnym
โ Powella โ kierunkรณw sprzฤลผonych
โ Neldera-Meada (simplex)
14
โข Gradientowe metody optymalizacji
โ Gradientu prostego
โ Najszybszego spadku
โ Newtona
โ Fletchera-Reevesa (gradientu sprzฤลผonego)
โ Zmiennej metryki
โข Metody optymalizacji z ograniczeniami
โ Transformacji zmiennych
โ Funkcji kary
โข Kary zewnฤtrznej (kary)
โข Kary wewnฤtrzne (bariery)
โ Metody modyfikacji kierunku
โ Metoda compleks
16
Optymalizacja w kierunku
๐ฅ0 - punkt poczฤ tkowy
๐ฅ1 - punkt koลcowy
๐ - kierunek
๐ - dลugoลฤ kroku w
kierunku
๐โ โ ๐น ๐ฅ0 + ๐โ๐ = min๐
๐น(๐ฅ0 + ๐๐)
๐ฅ0, ๐ โ ustalone ๐น(๐ฅ0 + ๐๐) โ ๐(๐)๐(๐) โ funkcja jednej zmiennej (dลugoลci kroku ๐)๐โ โ ๐ ๐โ = min
๐๐(๐)
optymalizacja w kierunku โก optymalizacja funkcji jednej zmiennej
Przykลad
๐น ๐ฅ = ๐ฅ 1 โ 22+ ๐ฅ 2 โ 1
2, ๐ฅ0=
โ2โ2
, ๐ =11
๐ฅ1 = ๐ฅ0 + ๐๐ =โ2โ2
+ ๐11
=โ2 + 1 โ ๐โ2 + 1 โ ๐
๐น ๐ฅ0 + ๐๐ = โ2 + ๐ โ 2 2 + โ2 + ๐ โ 1 2 =๐ โ 4 2 + ๐ โ 3 2 = 2๐2 โ 14๐ + 25 โ ๐(๐)
๐โฒ ๐ = 4๐โ โ 14 = 0
๐โ = 3.5
๐ฅ1 = ๐ฅ0 + ๐โ๐ =โ2โ2
+ 3.5 โ11
=1.51.5
Metody zawฤลผania odcinka
Zaลoลผenie: ๐โ โ [๐, ๐]
Speลnienie zaลoลผenia ๐ โ [๐, ๐]
Podziaล rรณwnomierny
๐0 = ๐๐๐ = ๐0 + ๐ํ๐โ โ ว๐ โ ๐ ว๐ = min
1โค๐โค๐{๐(๐๐)}
๐ =๐โ๐
๐- liczba wyliczeล
wartoลci funkcji
Zawฤลผanie odcinka
๐ ๐ผ๐ ? ๐(๐ฝ๐)
๐ ๐ผ๐ โค ๐ ๐ฝ๐๐๐+1 โ ๐๐๐๐+1 โ ๐ฝ๐
๐ ๐ผ๐ > ๐(๐ฝ๐)๐๐+1 โ ๐ผ๐๐๐+1 โ ๐๐
Metoda podziaลu na poลowฤ
๐ผ๐ =1
2๐๐ + ๐๐ โ ๐ฟ
๐ฝ๐ =1
2๐๐ + ๐๐ + ๐ฟ
๐ =?
Dane: ๐0, ๐0, ํ, ๐ฟKrok 0: ๐ = 0
Krok 1: ๐ผ๐ =1
2๐๐ + ๐๐ โ ๐ฟ
๐ฝ๐ =1
2๐๐ + ๐๐ + ๐ฟ
Krok 2: Jeลli ๐ ๐ผ๐ โค ๐ ๐ฝ๐ to
๐๐+1 โ ๐๐, ๐๐+1 โ ๐ฝ๐,
w przeciwnym razie
๐๐+1 โ ๐ผ๐, ๐๐+1 โ ๐๐.
Krok 3: Jeลli ๐๐+1 โ ๐๐+1 โฅ ํ to
๐ โ ๐ + 1, idลบ do kroku 1,
w przeciwnym razie
ว๐ =1
2๐๐+1 + ๐๐+1 (STOP)
Metoda ๐ธ podziaลu
๐๐ โ ๐ผ๐๐๐ โ ๐๐
=๐ฝ๐ โ ๐๐๐๐ โ ๐๐
= ๐พ
๐ผ๐ = ๐๐ + ๐พ ๐๐ โ ๐๐๐ฝ๐ = ๐๐ + ๐พ ๐๐ โ ๐๐
๐ =?
Dane: ๐0, ๐0, ํ, ๐พKrok 0: ๐ = 0Krok 1: ๐ผ๐ = ๐๐ + ๐พ ๐๐ โ ๐๐
๐ฝ๐ = ๐๐ + ๐พ ๐๐ โ ๐๐Krok 2: Jeลli ๐ ๐ผ๐ โค ๐ ๐ฝ๐ to
๐๐+1 โ ๐๐, ๐๐+1 โ ๐ฝ๐,
w przeciwnym razie
๐๐+1 โ ๐ผ๐, ๐๐+1 โ ๐๐.
Krok 3: Jeลli ๐๐+1 โ ๐๐+1 โฅ ํ to
๐ โ ๐ + 1, idลบ do kroku 1,
w przeciwnym razie
ว๐ =1
2๐๐+1 โ ๐๐+1 (STOP)
Metoda zลotego podziaลu
๐พ2 + ๐พ โ 1 = 0
๐พ =5 โ 1
2โ 0.618
1.๐ฝ๐+1โ๐๐+1
๐๐+1โ๐๐+1= ๐พ, czyli
๐ผ๐ โ ๐๐๐ฝ๐ โ ๐๐
=๐๐ + ๐พ ๐๐ โ ๐๐ โ ๐๐๐๐ + ๐พ ๐๐ โ ๐๐ โ ๐๐
=๐๐ โ ๐๐ + ๐พ(๐๐ โ ๐๐)
๐พ(๐๐ โ ๐๐)=1
๐พโ 1 = ๐พ
2.๐๐+1โ๐ผ๐+1
๐๐+1โ๐๐+1= ๐พ, czyli
๐๐ โ ๐ฝ๐๐๐ โ ๐๐
=๐๐ โ ๐๐ + ๐พ ๐๐ โ ๐๐๐๐ โ ๐๐ โ ๐พ ๐๐ โ ๐๐
=๐๐ โ ๐๐ + ๐พ(๐๐ โ ๐๐)
๐พ(๐๐ โ ๐๐)=1
๐พโ 1 = ๐พ
Metoda zลotego podziaลu c.d.
๐พ2 + ๐พ โ 1 = 0
๐พ =5 โ 1
2โ 0.618
๐ =?
Dane: ๐0, ๐0, ํ, ๐พ =5โ1
2
Krok 0: ๐ = 0๐ผ0 = ๐0 + ๐พ ๐0 โ ๐0๐ฝ0 = ๐0 + ๐พ(๐0 โ ๐0)
Krok 1: Jeลli ๐๐ โ ๐๐ < ฮต, to
ว๐ =1
2๐๐ + ๐๐ (STOP)
w przeciwnym razie โ krok 2
Krok 2: Jeลli ๐ ๐ผ๐ โค ๐ ๐ฝ๐ to
๐๐+1 โ ๐๐, ๐๐+1 โ ๐ฝ๐,
๐ฝ๐+1 โ ๐ผ๐,๐ผ๐+1 โ ๐ฝ๐ + ๐พ(๐๐ โ ๐๐)๐ โ ๐ + 1, idลบ do kroku 1
w przeciwnym razie
๐๐+1 โ ๐ผ๐, ๐๐+1 โ ๐๐,
๐ผ๐+1 โ ๐ฝ๐,๐ฝ๐+1 โ ๐ผ๐ + ๐พ(๐๐ โ ๐ผ๐)๐ โ ๐ + 1, idลบ do kroku 1
Metoda aproksymacji kwadratowej
๐ < ๐ < ๐๐ ๐ โฅ ๐ ๐๐ ๐ โค ๐ ๐
๐(๐) โ aproksymacja kwadratowa
๐โ - minimum funkcji ๐(๐)
๐ ๐ =๐(๐)(๐ โ ๐)(๐ โ ๐)
(๐ โ ๐)(๐ โ ๐)+๐(๐)(๐ โ ๐)(๐ โ ๐)
(๐ โ ๐)(๐ โ ๐)+๐(๐)(๐ โ ๐)(๐ โ ๐)
(๐ โ ๐)(๐ โ ๐)
๐โ =1
2
๐ ๐ ๐2 โ ๐2 + ๐ ๐ ๐2 โ ๐2 + ๐(๐)(๐2 โ ๐2)
๐ ๐ ๐ โ ๐ + ๐ ๐ ๐ โ ๐ + ๐(๐)(๐ โ ๐)
Metoda aproksymacji kwadratowej
๐ ๐๐ โฅ ๐(๐๐โ)
๐๐+1 โ ๐๐๐๐+1 โ ๐๐
โ
๐๐+1 โ ๐๐
๐ ๐๐ < ๐(๐๐โ)
๐๐+1 โ ๐๐๐๐+1 โ ๐๐๐๐+1 โ ๐๐
โ
๐ ๐๐ โฅ ๐(๐๐โ)
๐๐+1 โ ๐๐๐๐+1 โ ๐๐
โ
๐๐+1 โ ๐๐
๐ ๐๐ โฅ ๐(๐๐โ)
๐๐+1 โ ๐๐โ
๐๐+1 โ ๐๐๐๐+1 โ ๐๐
๐๐+1 โ ๐๐+1 < ํ ว๐ = ๐๐+1โ
Metoda aproksymacji kwadratowej
Dane: ๐0, ๐0, ๐0, ํKrok 0: ๐ = 0
Krok 1: ๐๐ =1
2
๐ ๐๐ ๐๐2โ๐๐
2 +๐ ๐๐ ๐๐2โ๐๐
2 +๐(๐๐)(๐๐2โ๐๐
2)
๐ ๐๐ ๐๐โ๐๐ +๐ ๐๐ ๐๐โ๐๐ +๐(๐๐)(๐๐โ๐๐)
Krok 2: Jeลli ๐๐ < ๐๐ to idลบ do kroku 3
w przeciwnym razie
Jeลli ๐ ๐๐ โฅ ๐(๐๐) to ๐๐+1 โ ๐๐, ๐๐+1 โ ๐๐, ๐๐+1 โ ๐๐ idลบ do kroku 4
w przeciwnym razie ๐๐+1 โ ๐๐, ๐๐+1 โ ๐๐, ๐๐+1 โ ๐๐ idลบ do kroku 4
Krok 3: Jeลli ๐ ๐๐ โฅ ๐(๐๐) to ๐๐+1 โ ๐๐, ๐๐+1 โ ๐๐, ๐๐+1 โ ๐๐ idลบ do kroku 4
w przeciwnym razie ๐๐+1 โ ๐๐, ๐๐+1 โ ๐๐, ๐๐+1 โ ๐๐ idลบ do kroku 4
Krok 4: Jeลli ๐๐+1 โ ๐๐+1 โฅ ํ to ๐ โ ๐ + 1 idลบ do kroku 1
w przeciwnym razie ว๐ =1
2(๐๐+1 + ๐๐+1) (STOP)
Metoda pierwszej pochodnej
๐๐+1 = ๐๐ โ ๐พ๐๐โฒ ๐ก๐ ๐พ๐ > 0, ๐0
lim๐โโ
๐พ๐ = ๐พ
๐=0
โ
๐พ๐ = โ
np. ๐๐+1 โ ๐๐ < ํ (STOP)
๐0๐1 = ๐0 โ ๐พ0๐
โฒ ๐0๐2 = ๐1 โ ๐พ1๐
โฒ ๐1 = ๐0 โ ๐พ0๐โฒ ๐0 โ ๐พ1๐
โฒ ๐1๐๐+1 = ๐๐ โ ๐พ๐๐
โฒ ๐๐ = โฏ = ๐0 โ ๐พ0๐โฒ ๐0 โ ๐พ1๐
โฒ ๐1 โโฏโ ๐พ๐๐โฒ ๐๐
๐๐+1 โ ๐0 = |
๐=0
๐
๐พ๐๐โฒ ๐๐ | โค
๐=0
๐
๐พ๐ ๐โฒ ๐๐ โค max
0<๐<๐๐โฒ ๐๐
๐=0
๐
๐พ๐
๐โ โ ๐0 โค
๐=0
โ
๐พ๐ = โ
Metoda znaku pierwszej pochodnej
๐๐+1 = ๐๐ โ ๐๐๐ ๐๐๐ ๐โฒ ๐๐
๐พ๐๐โฒ ๐๐ = ๐พ๐ ๐โฒ ๐๐ โ ๐ ๐๐๐ ๐โฒ ๐๐ = ๐๐ ๐ ๐๐๐[๐โฒ(๐๐)], gdzie ๐๐ = ๐พ๐ ๐โฒ ๐๐
๐๐ > 0
lim๐โโ
๐๐ = 0, bo lim๐โโ
๐โฒ ๐๐ = 0, lim๐โโ
๐พ๐ = ๐พ
๐=0
โ
๐๐ = โ lim๐โโ
๐๐ = lim๐โโ
๐พ๐ ๐โฒ ๐๐ = 0
Metoda Bolzano
๐ ๐๐๐ ๐๐ โ ๐ ๐๐๐ ๐๐
๐ ๐๐๐ ๐๐ = ๐ ๐๐๐(๐โฒ(1
2๐๐ + ๐๐ ))
๐๐+1 โ1
2๐๐ + ๐๐
๐๐+1 โ ๐๐
๐โฒ1
2๐๐ + ๐๐ = 0
ว๐ โ1
2๐๐ + ๐๐
(rzadko)
๐ ๐๐๐ ๐๐ = ๐ ๐๐๐(๐โฒ(1
2๐๐ + ๐๐) )
๐๐+1 โ ๐๐
๐๐+1 โ1
2๐๐ + ๐๐
Metoda drugiej pochodnej
๐0
๐๐+1 = ๐๐ โ๐โฒ ๐๐๐โฒโฒ ๐๐
๐๐+1 โ ๐๐ < ํ (STOP)
๐ ๐ = ๐ ๐0 + ๐ โ ๐0 ๐โฒ ๐0 +1
2๐ โ ๐0
2๐โฒโฒ ๐0 + 03( ๐ โ ๐0 )
๐(๐)
๐โฒ ๐ = ๐โฒ ๐0 + ๐โ โ ๐0 ๐โฒโฒ ๐0 = 0
๐โ = ๐0 โ๐โฒ(๐0)
๐โฒโฒ(๐0)
Dziฤkujฤ za uwagฤ
34