opc_4.

Transkrypt

opc_4.
Optymalizacja
procesów
cieplnych
Część I
1
Wykład 4
5. Metody iteracyjne optymalizacji.
Metody iteracyjne polegają na takim zorganizowaniu procedur numerycznych
szukania ekstremum funkcji kryterialnej
S(y1, y2, ..., ys)
(5.1)
w których, startując z dowolnego punktu
Y0 ≡ (y10, y20, ..., ys0)
W kolejnych cyklach obliczeniowych, uzyskuje się coraz lepsze przybliżenie
Y1 ≡ (y11, y21, ..., ys1)
Y2 ≡ (y12, y22, ..., ys2)
------------------------punktu optymalnego Yopt. W punkcie tym funkcja kryterialna
S(Yopt) = minimum (lub maksimum)
Procedury iteracyjne muszą zapewnić wzrost lub spadek wartości funkcji S w kolejnych
cyklach w zależności od tego czy szukane jest maksimum, czy minimum funkcji S.
Wyróżnia się dwa rodzaje iteracyjnych metod szukania ekstremum:
a) metody bezpośrednie ( bezgradientowe), które wymagają jedynie obliczania
wartości samej funkcji S,
Optymalizacja
procesów
cieplnych
Część I
2
Wykład 4
b) metody gradientowe, które wymagają obliczania zarówno wartości funkcji S jak i
jej pierwszych pochodnych
∂S
, będących składowymi wektora gradientu
∂y i
G funkcji S
G=
∂S
∂S
∂S
ŷ1 +
ŷ 2 + K +
ŷs
∂y1
∂y 2
∂ys
(5.2)
gdzie ŷ1 , ŷ 2 ,K, ŷ s - wektory jednostkowe osi yi.
Przy poszukiwaniu minimum funkcji S (zadanie na maksimum można zawsze sprowadzić
do zadania na minimum poprzez zmianę znaku funkcji kryterialnej S) korzysta się z
algorytmów szukania w zadanym kierunku
K = [ k1, k2, ..., ks]
(5.3)
Dokonuje się przejść od jednego przybliżenia do drugiego lepszego przybliżenia funkcji S
wzdłuż określonej prostej, która wyznacza aktualny kierunek poszukiwań. Równania
parametryczne takiej prostej, przechodzącej przez punkt
Y0 = ( y10, y20, ..., ys0)
można zapisać w postaci:
y1 = y10 + k1l
y2 = y20 + k2l
---------------ys = ys0 + ksl
(5.4)
Optymalizacja
procesów
cieplnych
gdzie:
Część I
3
Wykład 4
l – parametr oznaczający długość kroku,
k1, k2, ..., ks – współrzędne wektora kierunkowego K równoległego do prostej,
wzdłuż której dokonywane jest przejście od Y0 do Y1.
Równanie prostej (5.4) można zapisać w postaci wektorowej:
Y = Y0 + K⋅l
(5.5)
Poszukiwanie minimum funkcji S w kierunku K sprowadza się do znalezienia takiej
wartości kroku l, która minimalizuje funkcję:
Sk = S(Y0 + K⋅l) = S( y10 + k1l, y20 + k2l +....+ ys0 + ksl)
(5.6)
Zadanie sprowadza się zatem do minimalizacji funkcji jednej zmiennej l w kolejnych
cyklach iteracyjnych.
5.1 Metody bezpośrednie szukania ekstremum.
5.1.1 Metoda Gaussa – Seidela.
Polega ona na poruszaniu się przestrzeni (y1, y2, ..., ys) kolejno w kierunkach
równoległych do każdej z osi yi
Optymalizacja
procesów
cieplnych
Część I
4
Wykład 4
y2
c
S=
S(Yopt)=minimum
st
on
K3
3
Y
Y2
K2
0
Y
K1
1
Y
y1
Zasada metody Gaussa – Seidela dla s = 2
Podczas każdego ruchu poszukiwane jest minimum kierunkowe funkcji
S(Yi-1 + Ki ⋅ li)
(5.7)
Wypada ono w punkcie, w którym prosta oznaczająca kierunek ruchu staje się styczna do
konturu S = const (w praktyce kontury te nie są wyznaczane). W metodzie Gaussa –
Seidela stosuje się sztywny schemat postępowania – kierunki równoległe do osi yi.
Wektory kierunkowe Ki w kolejnych cyklach iteracyjnych, dla zagadnienia
dwuwymiarowego s = 2 (jak na rysunku) określa zestawienie:
1 , 0
Ki = 
0 , 1
dla i = 1, i = 3, ....
dla i = 2, i = 4, ....
(5.8)
Obliczenia można przyspieszyć przez lepszy dobór kierunków dalszego postępowania.
5.1.2 Metoda Powella.
Optymalizacja
procesów
cieplnych
Część I
5
Wykład 4
Metodę można zaprezentować dla funkcji S(y1, y2) dwóch zmiennych niezależnych y1, y2:
y2
S(Yopt)=minimum
3
Y K3’ 5
Y
K1’ K2’
4
Y
Y2
3
K
2
K
Y0
K1
S
st
on
c
=
Y1
y1
1) Startuje się z punktu Y0 = (y10, y20) i przeprowadza minimalizację funkcji S
wzdłuż kierunku K1 = (1, 0):
S(Y0 + K1⋅l) = S(y10 + 1⋅l, y20)
(5.9)
2) Wyznacza to punkt Y1 = (y11, y21)
3) Następnie wykonuje się ruch w kierunku K2 = (0, 1) do minimum kierunkowego w
punkcie Y2 = (y12, y22)
4) Dotąd szukano ekstremum tak jak w metodzie Gaussa – Seidela
5) Następnie wyznacza się składowe tzw. Kierunku sprzężonego K3
6) Teraz minimalizacja przesunięcia (kroku l) przebiega wzdłuż kierunku K3 i
prowadzi do punktu Y3 = (y13, y23)
7) Dokonywana jest modyfikacja kierunków K2 ⇒ K1’ oraz K3 ⇒K2’
8) Cykl powtarza się od punktu Y3 przyjętego teraz za startowy Y0’.
Optymalizacja
procesów
cieplnych
Część I
6
Wykład 4
Przykład zastosowania metody Powella
Zbadać minimum funkcji kryterialnej
S = 10⋅(y1 + y2 – 5)2 + (y1 – y2)2
(5.10)
Wstępnie należy zminimalizować S wzdłuż kierunków ortogonalnej bazy początkowej
K1w , K2w
(5.11)
zgodnie z metodą Gausa – Seidela
1
K 1w =  
 0
 0
K2w =  
1 
(5.12)
y2
3
S=0 Y3=Y0 ’
Y’
K3
1
K’
S=6.818
K2’
Y2
1
Y’
2
K
2
2
1
S=250
0w
Y
0
1
Y1
K1
1w
K
2
3
4
K2w
S=22.73
1w
Y 5 y1
Startując z punktu Y0w = (0, 0)
 0
Y0w =  
 0
(5.13)
Optymalizacja
procesów
cieplnych
Część I
7
Wykład 4
dokonujemy jednokierunkowego szukania wzdłuż osi y1. Długość kroku l1w musi
minimalizować funkcję
S(Y0w + K1w⋅l1w) = S(0 + 1⋅l1w, 0 + 0⋅l1w) = S(l1w, 0)
(5.14)
Na podstawie wzoru (5.10) minimalizuje się wyrażenie
Dla
S = 10⋅(l1w – 5)2 + (l1w)2
(5.15)
l̂1w = 4.545
(5.16)
4.545
Y1w = 

 0 
(5.17)
∂S
= 0 otrzymuje się
∂l1w
Wyznacza to punkt Y1w
Wartość funkcji S zmniejszyła się z
S(0, 0) = 250
do
S(4.545, 0) = 22.727.
W drugim kroku wstępnym dla kierunku K2w = (0, 1) minimalizujemy funkcję
S(Y1w + K2w⋅l2w) = S(4.545 + 0⋅l2w, 0 + 1⋅l2w) = S(4.545, l2w) (5.18)
Po wprowadzeniu do wzoru (5.10) minimalizujemy wyrażenie:
S = 10⋅(4.545 + l2w – 5)2 + (4.545 + l2w)2
(5.19)
Optymalizacja
procesów
cieplnych
Dla
Część I
8
Wykład 4
∂S
2w
l̂
= 0.826 .
=
0
otrzymuje
się
∂l 2 w
Wyznacza to punkt Y2w
4.545
Y 2w = 

0.826
(5.20)
oraz wartość S(Y2w) = 15.214
Dotychczas postępowano zgodnie z metodą Gaussa – Seidela.
Teraz można rozpocząć właściwą procedurę metody Powella.
Punkt Y2w staje się punktem startowym
4.545
Y 0 = Y 2w = 

0.826
(5.21)
Pierwszy krok l1 wykonuje się w kierunku K1
1
K1 =  
 0
(5.22)
S( Y0 + K1⋅l1) = S(4.545 + 1⋅l1, 0.826 + 0⋅l1)
(5.23)
i minimalizuje funkcję:
Po wprowadzeniu do wzoru (5.10) minimalizujemy wyrażenie:
S = 10⋅(4.545 + l1 + 0.826 – 5)2 + 4.545 + l1 – 0.826)2 (5.24)
Optymalizacja
procesów
cieplnych
Dla
Część I
9
Wykład 4
∂S
1
l̂
= −0.676 co wyznacza punkt Y1
=
0
otrzymuje
się
1
∂l
3.869
Y1 = 

0.826
(5.25)
oraz S(Y1) = 10.185.
Drugi krok l2 wykonuje się w kierunku K2
 0
K2 =  
1
(5.26)
i minimalizuje funkcję
S(Y1 + K2⋅l2) = S(3.869 + 0⋅l2, 0.826 + 1⋅l2)
(5.27)
Po wprowadzeniu do wzoru (5.10) minimalizować należy wyrażenie:
S = 10⋅(3.869 + 0.826 + l2 – 5)2 + (3.869 – 0.826 – l2)2
Dla
(5.28)
∂S
= 0 otrzymuje się l̂ 2 = 0.554 co wyznacza punkt Y2
2
∂l
3.869
Y2 = 

1.380 
(5.29)
w którym
S(Y2) = 6.818.
(5.30)
Optymalizacja
procesów
cieplnych
Część I
10
Wykład 4
Dopiero teraz wprowadzony być może charakterystyczny dla metody Powella
kierunek sprzężony K3, tj. kierunek prostej przechodzącej przez punkty Y0 i Y2:
4.545 3.869 4.545 − 3.869  0.676 
K3 = Y0 − Y2 = 
 − 1.380  =  0.826 − 1.380  =  − 0.554
0
.
826
 

 
 

(5.31)
Teraz należy zbadać optimum kierunkowe funkcji S wzdłuż kierunku K3:
S( Y2 + K3⋅l3) = S( y13, y23) = S(3.869 + 0.676⋅l3, 1.380 - 0.554⋅l3) (5.32)
Po wprowadzeniu wartości y13 i y23 do wzoru (5.10) otrzymuje się wyrażenie
S = 10⋅(3.869 + 0.676⋅l3 + 1.380 – 0.554⋅l3 – 5)2 +
(5.33)
+ (3.869 + 0.676⋅l3 + 1.380 + 0.554⋅l3)2
Dla
∂S
= 0 uzyskuje się długość kroku
∂l 3
l̂ 3 = −2.025
(5.34)
3.869 + 0.676 ⋅ (− 2.025) 2.500
Y3 = 
 = 2.500
(
)
−
⋅
−
1
.
380
0
.
554
2
.
025

 

(5.35)
która wyznacza punkt Y3
Optymalizacja
procesów
cieplnych
Część I
11
Wykład 4
Z powyższego badania otrzymuje się punkt startowy Y0’ dla drugiego cyklu w metodzie
Powella:
2.500
Y 01 = Y 3 = 

2.500
(5.36)
przy wartości funkcji S w punkcie Y01 zgodnie ze wzorem (5.10):
S(Y01) = S( 2.5, 2.5) = 10⋅( 2.5 + 2.5 –5)2 + (2.5 – 2.5)2 = 0
W tym miejscu kończy się pierwszy cykl iteracyjny.
W drugim cyklu iteracyjnym w metodzie Powella następuje modyfikacja kierunków
poszukiwań włączająca kierunek sprzężony według reguły:
K1’ = K2 oraz K2’ = K3
(5.37)
czyli:
 0
K1 ' =  
1 
 0.676 
K2 ' = 

− 0.554
(5.38)
Start w kierunku K1’ daje funkcję
S( Y01 + K1’⋅l1’) = S(2.5 + 0⋅l1’, 2.5 + 1⋅l1’)
(5.39)
Stąd na podstawie wzoru (5.10) otrzymuje się wyrażenie:
S = 10⋅( 2.5 + 2.5 + l1’ – 5)2 + ( 2.5 - 2.5 - l1’)2 = 10⋅(l1’)2 – (l1’)2
Optymalizacja
procesów
cieplnych
Część I
12
Wykład 4
które ma minimum dla
∂S
= 20 ⋅ l1 '−2 ⋅ l1 ' = 18 ⋅ l1 ' = 0 ⇒
1
∂l '
l̂ 1 ' = 0
(5.40)
Wynik l̂ 1 ' = 0 oznacza, że nie można opuścić punktu Y01 w kierunku K1’
Start z punktu Y1’ = Y01 w kierunku K2’ daje funkcję:
S( Y1’ + K2’⋅l2’) = S(2.5 + 0.676⋅l2’, 2.5 – 0.554⋅l2’)
(5.41)
Stąd na podstawie wzoru (5.10) otrzymuje się wyrażenie:
S = 10⋅( 2.5 + 0.676⋅l2’ + 2.5 – 0.554⋅l2’ – 5)2 +
+ ( 2.5 + 0.676⋅l2’ + 2.5 – 0.554⋅l2’)2 =
(5.42)
= 0.149⋅( l2’)2 + 1.513⋅( l2’)2 = 1.662⋅( l2’)2
które osiąga minimum dla:
∂S
= 3.26 ⋅ l 2 ' = 0 ⇒
2
∂l '
l̂ 2 ' = 0
(5.43)
Wynik ten oznacza, że nie można opuścić punktu Y1’ = Y01 w kierunku K2’
Konkluzja:
Nie jest możliwe opuszczenie punktu Y01 w jakimkolwiek kierunku.
Optymalizacja
procesów
cieplnych
Część I
Wykład 4
Rozwiązanie zadania:
Funkcja kryterialna:
S = 10⋅(y1 + y2 – 5)2 + (y1 – y2)2
Posiada minimum w punkcie:
Yopt = ( y1opt, y2opt ) = (2.5, 2.5)
którego wartość wynosi:
S( Yopt) = S(2.5, 2.5) = 0
13