• Nie Znaleziono Wyników

WYKŁAD nr 8

N/A
N/A
Protected

Academic year: 2021

Share "WYKŁAD nr 8"

Copied!
21
0
0

Pełen tekst

(1)

WYKŁAD nr 8

METODY CYFROWE POSZUKIWANIA MINIMUM FUNKCJI

Zadania minimalizacji funkcji bez ograniczeń można wyrazić następująco )

( min ˆ)

( x

x f

f x = Rn (1)

gdzie f:RnR, przy czym zakłada się, że funkcja jest ograniczona z dołu. f Istnieje wiele procedur cyfrowych zwanych algorytmami, które rozwiązują tego typu zadanie. Przez algorytm rozumie się rekurencyjny proces obliczeniowy, który na podstawie znajomości bieżącego punktu xk generuje punkt następny xk+1. Startując zatem z punktu x1 zostaje utworzony ciąg punktów

{ }

k=1

xk .

Mówimy, że algorytm jest zbieżny, jeżeli dąży on do punktu minimalnego , będącego granicą ciągu

{ }

, tzn.

=1 k

xk

(2) x

x ˆ lim =

Κ

k k

gdzie: : oznacza nieskończony uporządkowany zbiór dodatnich liczb całkowitych.

Κ

Najbardziej rozpowszechnione metody numeryczne poszukiwania minimum funkcji bez ograniczeń należą do grupy metod zdeterminowanych.

Metody zdeterminowane, które przeszukują przestrzeń Rn wzdłuż prostych zwanych kierunkami poszukiwań można podzielić na kilka typów, przyjmując dwa kryteria podziału:

a) sposób tworzenia kierunków poszukiwań;

b) sposób znajdowania kolejnego punktu wzdłuż danego kierunku poszukiwań.

Ad a) Ze względu na kryterium (a) można wyróżnić dwa typy algorytmów:

a1) metody o modyfikowanej bazie, zwane bezgradientowymi, a2) metody o modyfikowanym kierunku, zwane gradientowymi.

ad a1) metodami pierwszej grupy dokonujemy poszukiwań w n niezależnych kierunkach, po czym następuje modyfikacja bazy, która realizowana jest jedynie na podstawie informacji o zmianach wartości funkcji , f

ad a2) w metodach drugiej grupy korzystamy z dodatkowej informacji o wartości i zmianach gradientu w punktach będących rezultatem poszukiwania wzdłuż jednego tylko kierunku, co pozwala na bieżąco ustalać kierunki poszukiwań.

Ad b) Podział ze względu na kryterium (b) daje również dwa typy metod.

(2)

b1) metody dyskretne (metody poszukiwań prostych), w których bada się zachowanie funkcji tylko w jednym lub dwóch punktach leżących na kierunku poszukiwań, przy czym sposób wyboru tych punktów, przy danym punkcie początkowym, jest ustalony na początku każdej iteracji.

Do metod tych należą algorytmy Rosenbrocka, Hooka-Jeevsa,

b2) metody z minimalizacją, zwane metodami kierunków poprawy, w których określa się minimum funkcji wzdłuż kierunku poszukiwań. Do grupy tej zalicza się metody Gaussa-Seidela, Powella, najszybszego spadku, gradientu sprzężonego itp.

W dalszej kolejności przedstawionych zostanie kilka metod poszukiwania minimum funkcji, charakterystycznych dla danych grup.

1. Metoda Hooka i Jeevesa (HJ) dyskretna

W metodzie tej w kolejnej iteracji występują dwa sposoby poruszania się w przestrzeni wyznaczonej przez wektor zmiennych decyzyjnych: próbny i roboczy.

A Sposób próbny: służy do zbadania zachowania się badanej funkcji w niewielkim wybranym obszarze z wykorzystaniem kroków próbnych wzdłuż wszystkich kierunków ortogonalnej bazy.

B Sposób roboczy: polega na przejściu w ściśle zdeterminowany sposób do następnego obszaru, w którym rozważany jest kolejny etap próbny, lecz tylko w tym przypadku gdy przynajmniej jeden z wykonywanych kroków był pomyślny.

Krokiem pomyślnym nazywamy krok, w wyniku którego następuje zmniejszenie się wartości badanej funkcji

gdy (3)

) ( ) (x f x0

f < x=x0 +τ⋅dk gdzie: τ długość kroku,

baza ortogonalna, dk

dowolnie wybrany punkt startowy.

x0

Jeżeli żaden z wykonywanych kroków nie był pomyślny powracamy do poprzednio wybranego obszaru w którym fakt taki miał miejsce i cykl poszukiwań zaczynamy od nowa przy zmniejszonej długości kroku.

Informacje wejściowe:

[

d1,d2,...,dn

]

baza wyjściowa utworzona z wzajemnie ortogonalnych wektorów,

1 współczynnik korekcyjny zmniejszający

0<β< τ ,

wymagana dokładność obliczeń minimum, ξ

liczba zmiennych niezależnych.

n

(3)

x1

x2

1

2 3

4

5 6

7

8

9 11 10

12

13 15 14

16

17

18 19 20

21

22 23

1 startowy punkt bazowy (krok 1) 1-2 pomyślny krok

próbny zmiana kierunku ortogonalnej bazy

) ( ) (x2 f x1 f <

2-3 niepomyślny krok próbny

2-4 pomyślny krok próbny f(x4)< f(x2) 4 nowy punkt bazowy ( krok 2)

4 - 5 KROK ROBOCZY 2x4x1 5-6 pomyślny krok próbny

zmiana kierunku ortogonalnej bazy

) ( ) (x6 f x5 f <

6-7 niepomyślny krok próbny

6-8 pomyślny krok próbny f(x8)< f(x6) 8 nowy punkt bazowy ( krok 3)

8 - 9 KROK ROBOCZY 2x8x5

9-10 niepomyślny krok próbny 9-11 niepomyślny krok próbny 9-12 niepomyślny krok próbny 9-13 niepomyślny krok próbny

Warunek (7) nie został spełniony , zatem powrót do punktu 8 oraz zmiejszenie kroku o współczynnik korygujący τ=βτ

8-14 niepomyślny krok próbny 8-15 pomyślny krok próbny 15-17 pomyślny krok próbny 15-16 niepomyślny krok próbny

) ( ) (x15 f x8 f <

) ( ) (x17 f x15 f <

17 nowy punkt bazowy ( krok 4) 17 - 18 KROK ROBOCZY

8

2x17x

18-19 niepomyślny krok próbny

18-20 niepomyślny krok próbny zmiana kierunku ortogonalnej bazy 18-21 niepomyślny krok próbny

18-22 pomyślny krok próbnyf(x22)<f(x18) 22 - 23 KROK ROBOCZY 2x22x23

Rys. 1. Ilustracja zasady działania metody Hooka-Jeevesa

(4)

Algorytm obliczeń Etap próbny

1. Podstaw k =1 oraz oblicz w punkcie x0 wartość funkcji q0f(x0). 2. Wzdłuż kierunku dk wykonaj krok próbny

k k

k x d

x = −1+τ⋅

oraz oblicz wartość funkcji w tym punkcie qf(xk).

3. Zbadaj czy krok był pomyślny, tzn. czy q<q0. Jeżeli tak, to podstaw w miejsce , następnie przejdź do wykonania punktu 6, jeżeli nie to przejdź do 4.

q q0

4. Wykonaj krok próbny w przeciwnym kierunku

k k

k x d

x = −2⋅τ⋅

oraz oblicz wartość funkcji w tym nowym punkcie qf(xk).

5. Zbadaj czy ten krok był pomyślny. Jeżeli tak, to podstaw w miejsce oraz przejdź do wykonania punktu 6, natomiast w przeciwnym razie pozostaw bieżący punkt bez zmian, tzn. podstaw w miejsce .

q q0

1

xk xk

6. Zbadaj czy wykonano kroki we wszystkich kierunkach ortogonalnej bazy, tzn.

czy k=n. Jeżeli nie, to podstaw k = k+1 oraz powtórz czynności od punktu 2, natomiast jeśli tak, to przejdź do 7.

7. Zbadaj czy w wykonaniu cyklu poszukiwań wystąpiły kroki pomyślne, tzn. czy , przy czym w pierwszej iteracji

) ( ) ( B0 f k

f x > x xB0=x0. Jeżeli tak, to podstaw w miejsce , który nazywany jest punktem bazowym oraz przejdź do wykonania etapu roboczego, w przeciwnym razie postępuj wg 8.

xk xB

8. O ile nie zostało spełnione kryterium na minimum, zbadaj czy zrealizowana iteracja jest pierwszą iteracją. Jeżeli tak, to zmień punkt startowy i powtórz czynności od punktu 1, jeśli natomiast nie, to powróć do poprzednio przeszukiwanego obszaru w myśl zasady

x0

0

0 xB

x = zmniejsz długość kroku o β , tzn. τ=β⋅τ oraz rozpocznij wykonywanie procedury od początku 1.

Etap roboczy

(1) Wykonaj krok roboczy według reguły

(

0

)

0

0 B xB xB 2 xB xB

x = x + − = ⋅ −

(2) Podstaw xB w miejsce xB0 oraz wróć do realizacji etapu próbnego.

Działanie omówionego algorytmu przedstawiono na przykładzie funkcji dwu zmiennych. Na rysunku 3.48 poszczególne punkty oznaczono liczbami w kolejności, w jakiej zostały wyliczane. Tak więc, startując z punktu

xk

x1

(5)

rozpoczynamy realizację etapu próbnego, po zakończeniu którego otrzymujemy punkt . Punkt ten przyjmujemy jako punkt bazowy, bowiem w czasie przebiegu tego etapu miały miejsce dwa pomyślne kroki oraz tylko jeden niepomyślny , przy tym .

x4

4 2, x x x3 f(x4)< f(x1)

Z kolei wykonujemy etap roboczy, w rezultacie otrzymujemy punkt . Z punktu tego rozpoczynamy następny cykl próbny kończący się znalezieniem nowego punktu bazowego , przy czym . Postępując dalej w analogiczny sposób dochodzimy w trzeciej iteracji do sytuacji gdy warunek (7) nie jest spełniony, bowiem . Wobec tego powracamy do punktu bazowego

, zmniejszając długość kroku

x5

x8 f(x8)< f(x4) )

( ) (x13 f x8 f >

x8 τ i cykl poszukiwań rozpoczynamy od nowa.

Kryterium zbieżności

Jako kryterium zakończenia działania procedury przyjęto warunek, że aktualna długość kroku τ będzie mniejsza od z góry założonej liczby ξ .

Przykład 1

Wykorzystując metodę Hooka-Jeevesa poszukiwać będziemy minimum funkcji trzech zmiennych w postaci

) 2 ( ) 11 6 ( ) 5 4

(x12 x1 x22 x2 x32 x3

F= − + + − + + −

Przyrównując pochodne cząstkowe do zera łatwo stwierdzić, że minimum funkcji znajduje się w punkcie

ˆ 1 0 2 2

ˆ 3 0 6 2

ˆ 2 0 4 2

3 3

3

2 2

2

1 1

1

=

=

=

=

=

=

=

=

=

x x

x F

x x

x F

x x

x F

a jego wartość wynosi F=2.

Przyjmiemy następujące dane wejściowe

1) ortogonalna baza

[ ]

⎥⎥

⎢⎢

⎥⎥

⎢⎢

⎥⎥

⎢⎢

⎥⎥

⎢⎢

=

=

1 0 0

0 1 0

0 0 1

3 2

1 d d

d d

2) punkt startowy

⎥⎥

⎢⎢

=

=

=

2 4 1

0 1

0 x x

xB 3) krok obliczeniowy τ=0,2 4) współczynnik korygujący 5β=0,

(6)

5) kryterium zbieżności 05τ<ξ, ξ=0, Etap próbny krok 1

(oznaczenia punktów zgodne z rysunkiem) 1 wartość funkcji w punkcie x0

5 ) 2 2 2 ( ) 11 4 6 4 ( ) 5 1 4 1 ( )

(x0 = 2 − ⋅ + + 2 − ⋅ + + 2 − ⋅ = F

oraz

5 )

( )

( 0 0 1

1=qF q =

q x x

2 wybieramy pierwszy kierunek z ortogonalnej bazy oraz dokonujemy d1 przesunięcia o krok wzdłuż tego kierunku τ

⎥⎥

⎢⎢

=

⎥⎥

⎢⎢

⋅ +

⎥⎥

⎢⎢

=

⋅ τ +

=

2 4 2 . 1

0 0 1 2 , 0 2 4 1

1 1

2 x d

x

64 , 4 ) 0 ( ) 11 24 16 ( ) 5 2 , 1 4 2 , 1 ( )

( 2 2

2 = xq = − ⋅ + + − + + =

q

3 czy krok był pomyślny? q2< ? q1 TAK Æ do punktu 6

NIE Æ do punktu 4 (poszukiwanie w przeciwną stronę wzdłuż tego samego kierunku)

1

2 q

q < , 4,64 < 5 zatem punkt 6

6 badamy funkcję wzdłuż kolejnego kierunku ortogonalnej bazy a) jeżeli istnieje (w tym przypadku kierunek d2) idź do 2

b) jeżeli nie istnieje następny kierunek idź do 7 przesunięcie o krok τ wzdłuż kierunku d2

⎥⎥

⎢⎢

=

⎥⎥

⎢⎢

⋅ +

⎥⎥

⎢⎢

=

⋅ τ +

=

2 2 , 4

2 , 1 0 1 0 2 , 0 2 4 2 , 1

2 2

3 x d

x

96 , 4 ) 0 ( ) 11 2 , 4 6 2 , 4 ( ) 5 2 , 1 4 2 , 1

( 2 2

3= − ⋅ + + − ⋅ + + =

q

3 czy krok był pomyślny? q3< ? q2 TAK Æ do punktu 6

NIE Æ do punktu 4 (poszukiwanie w przeciwną stronę wzdłuż tego samego kierunku)

2

3 q

q < ?, 4,96 > 4,64 zatem punkt 4

4 krok w przeciwna stronę wzdłuż tego samego kierunku

(7)

⎥⎥

⎢⎢

=

⎥⎥

⎢⎢

⎥⎥

⎢⎢

=

⋅ τ

=

2 8 , 3

2 , 1 0 1 0 2 , 0 2 2 4 2 , 1

2 2

3

4 x d

x

28 , 4 ) 0 ( ) 11 8 , 3 6 8 , 3 ( ) 5 2 , 1 4 2 , 1

( 2 2

4 = − ⋅ + + − ⋅ + + =

q

5 czy krok był pomyślny? q4< ? q3 TAK Æ do punktu 6

NIE Æ pozostaw początkowy punkt na danym kierunku bez zmian

3

4 q

q < ? 4,28 < 4,64 zatem punkt 6

6 badamy funkcję wzdłuż kolejnego kierunku ortogonalnej bazy a) jeżeli istnieje (w tym przypadku kierunek d3) idź do a b) jeżeli nie istnieje następny kierunek idź do 7

a przesuniecie o krok wzdłuż kierunku τ d3

⎥⎥

⎢⎢

=

⎥⎥

⎢⎢

⋅ +

⎥⎥

⎢⎢

=

⋅ τ +

=

2 , 2

8 , 3

2 , 1

1 0 0 2 , 0 2

8 , 3

2 , 1

3 4

5 x d

x

72 . 4 ) 2 . 2

* 2 2 . 2 ( 28 .

4 2

5 = + − =

q

b czy krok był pomyślny? q5< ? q4 TAK Æ do punktu 6

NIE Æ do punktu c (poszukiwanie w przeciwną stronę wzdłuż tego samego kierunku)

4

5 q

q < ?, 4,72 > 4,28 zatem punkt c

c krok w przeciwna stronę wzdłuż tego samego kierunku

⎥⎥

⎢⎢

=

⎥⎥

⎢⎢

⎥⎥

⎢⎢

=

⋅ τ

=

8 . 1

8 . 3

2 . 1 1 0 0 2 , 0 2 2 . 2

8 . 3

2 . 1

2 2

5

6 x d

x

92 , 3 36 , 0 28 ,

6=4 − =

q d czy krok był pomyślny? q6< ? q5

TAK Æ do punktu 6

NIE Æ pozostaw początkowy punkt na danym kierunku bez zmian

5

6 q

q < ? 3,92 < 4,28 zatem punkt 6

badamy funkcję wzdłuż kolejnego kierunku ortogonalnej bazy A) jeżeli istnieje (w tym przypadku kierunek d3) idź do a B) jeżeli nie istnieje następny kierunek idź do 7

Ponieważ wyczerpaliśmy wszystkie kierunki ortogonalnej bazy przechodzimy do pkt. 7, który brzmi:

(8)

Zbadaj czy w wykonaniu cyklu poszukiwań wystąpiły kroki pomyślne, tzn. czy przy czym w pierwszej iteracji

), ( ) ( B0 f k

f x > x xB0=x0.

Jeżeli tak, to podstaw w miejsce , który nazywany jest punktem bazowym oraz przejdź do wykonania etapu roboczego.

xk xB

W wykonanym cyklu obliczeń wystąpiły trzy kroki pomyślne

1

2 q

q < , 4,64 < 5

3

4 q

q < , 4,28 < 4,64

5

6 q

q < , 3,92 < 4,28 możemy przejść do etapu roboczego przyjmując za

⎥⎥

⎢⎢

=

=

8 , 1

8 , 3

2 , 1 x6

xB pamiętając, że

⎥⎥

⎢⎢

=

=

=

2 4 1

0 1

0 x x

xB

Etap roboczy

(1) Wykonaj krok roboczy według reguły

(

0

)

0

0 xB xB xB 2 xB xB

x = + − = ⋅ −

⎥⎥

⎢⎢

=

⎥⎥

⎢⎢

⎥⎥

⎢⎢

=

6 , 1

6 , 3

4 , 1

2 4 1

8 , 1 8 , 3

2 , 1

0 2 x

(2) Podstaw xB w miejsce xB0 oraz wróć do realizacji etapu próbnego

Etap próbny krok 2 wykonujemy analogicznie jak krok 1 powtarzając obliczenia iteracyjnie aż do osiągnięcia kryterium zbieżności jakim jest warunek

. 05 , 0 , ξ= ξ

<

τ

(9)

x1

x2

x3

=

=

=

=

1 3 2 2

3 2 1

x x x dla F min

= 2 4 1 x0

startowy punkt

1

1 1

2

2

2 3

ETAP PRÓBNY 4

ETAP ROBOCZY

4 1.

6 3.

6 1.

Rys. 2. Ilustracja graficzna przykładu

2. Metoda Rosenbrocka (R) dyskretna Opis metody

Metoda ta jest bardzo podobna do metody Hooka i Jeevesa w tym sensie, że minimum poszukujemy również w wzajemnie ortogonalnych kierunkach.

Istotna różnica tkwi w tym, że kierunki te nie są stałe, lecz w pewnych przypadkach w wyniku obrotu ulegają zmianom. Baza wyjściowa

tworzona jest zazwyczaj z wersorów współrzędnych karteziańskich. Na wstępie w każdym z tych kierunków wykonujemy kolejno po jednym kroku o długości . Jeżeli eksperyment taki kończy się powodzeniem, to w następnym kroku w danym kierunku wartość zwiększamy

n

n 0 2 0 1

0, d ,..., d d

τ τ α,(α>1) razy, natomiast w przeciwnym razie pomnożymy przez , przy czym

τ β

− 0<β<1. Tego rodzaju tryb postępowania powtarzamy aż do momentu, gdy wykonanie kroku we wszystkich kierunkach daje niepomyślny wynik, tzn. f(xk1)< f(xk).

W takiej sytuacji, jeśli jest spełnione kryterium na ekstremum, to procedura kończy swoje działanie, jeśli zaś nie, to wykonany zostaje algorytm obroty współrzędnych i działanie procedury rozpoczyna się od początku.

(10)

Informacje wejściowe

[

0n

]

2 0 1 0

0 d d d

D = • • baza wejściowa utworzona z wzajemnie

ortogonalnych wektorów,

x 0 dowolnie wybrany punkt startowy,

τ n wymiarowy wektor początkowy długości kroku, α współczynnik korekcyjny zwiększający , τ, α>1 β współczynnik korekcyjny zmniejszający , τ,0<β<1

L założona liczba iteracji,

n liczba zmiennych niezależnych,

S suma pomyślnych kroków we wszystkich kierunkach ortogonalnej bazy.

Algorytm obliczeniowy 1 Podstaw S⇐0

2 Dla k=1,2,...,n oblicz xk =xk1kd0k oraz podstaw qf(xk). Jeżeli q<q0 to

a) zwiększ sumę pomyślnych kroków w k-tym kierunku Sk =Skk, b) podstaw q0q,

c) podstaw τk =α⋅τk, w przeciwnym razie a) xk =xk1−τkd0k b) τk =−β⋅τk

3 Jeżeli przynajmniej w jednym kierunku d0k wystąpił pomyślny krok tzn.

) ( )

( k < f k1

f x x to podstawiamy x0xk oraz powtarzamy 2, w przeciwnym przypadku 4.

4 Jeżeli , to zmień punkt startowy S =0 x0, podstaw qf(x0) i powtórz 2. Jeżeli i nie zostało spełnione kryterium zbieżności przechodzimy do S≠0 5. 5 Wykonaj algorytm obrotu ortogonalnego układu współrzędnych D0 wg

procedury Grama-Schmidta oraz powróć do wykonywania czynności od 1, przy czym podstaw x0xk.

Procedura Grama-Schmita przebiega następująco:

a) tworzymy układ wektorów

(11)

n n n

n n

n n

s s s

s s

s

0 0 2

0 2 2

0 2

0 2 1 0 1 1

. ...

...

..

...

...

d w

d w

d d

d w

⋅ +

=

⋅ + +

=

⋅ + +

⋅ +

=

d

w którym , to sumy pozytywnych kroków w danym kierunku ortogonalnej bazy,

sn

s s1, 2,...,

b) ortonormalizacja układu wektorów przebiega wg procedury

=

=

>

<

=

=

>

<

=

=

=

1

1

2 2 2 1

1 2 2 2

1 1 1 1

1

, ,

n

k n

n n k

k n n

n

V d V d

d w w

V

V d V d

d w V

V d V w

V w

w której < ,> iloczyn skalarny wektorów,

• norma wektorowa np. Euklidesowa w postaci:

= n

i

xi 1

2 . Przykład obrotu bazy

Jeżeli suma pozytywnych kroków w kierunku wyniosła oraz

suma pozytywnych kroków w kierunku wyniosła

⎥⎦

⎢ ⎤

=⎡ 0

1 1

d0 S1=0,3

⎥⎦

⎢ ⎤

=⎡ 1

2 0

d0 S2=0,1, wówczas układ wektorów w przedstawia się następująco

⎥⎦

⎢ ⎤

=⎡

⎥⎦

⎢ ⎤

⋅⎡

=

⎥⎦

⎢ ⎤

=⎡

⎥⎦

⎢ ⎤

⋅⎡

⎥+

⎢ ⎤

⋅⎡

=

1 , 0

0 1 1 0 , 0

1 , 0

3 , 0 1 1 0 , 0 0 3 1 , 0

2 1

w w

a ortonormalizacja przebiega następująco

(12)

[ ]

⎢ ⎤

=⎡−

⎥⎦

⎢ ⎤

⋅⎡

⎥⎦

⎢ ⎤

⋅⎡

⎥−

⎢ ⎤

=⎡

>

<

=

⎥⎦

⎢ ⎤

=⎡ +

⎥⎦

⎢ ⎤

=

=

⎥ ⇒

⎢ ⎤

=⎡

=

09002 , 0

02995 , 0 316 , 0

948 , 0 316 , 0

948 , 1 0 , 0 1 0

, 0 , 0

316 , 0

948 , 0 1 , 0 3 , 0

1 , 0

3 , 0 1

, 0

3 , 0

1 1 1 1 2 2 2

2 1 2

1 1 1 1

1

d d w w V

w V

V V

d

⎥⎦

⎢ ⎤

=⎡−

+

⎥⎦

⎢ ⎤

⎡−

=

= 0,948

316 , 0 09002

, 0 02995 , 0

09002 , 0

02995 , 0

2 2 2

2 2

1 V

d V

Zatem z bazy w wyniku pozytywnych kroków

oraz

[ ]

⎢ ⎤

⎡ ⎥

⎢ ⎤

⎥ ⎡

⎢ ⎤

= ⎡

= 1

0 0

2 1

0 1 0

0 d d

D 3

,

1=0

S S2=0,1 otrzymamy nową bazę

[ ]

⎢ ⎤

⎡ ⎥

⎢ ⎤

⎥ ⎡−

⎢ ⎤

= ⎡

= 0,948

316 , 0 316 , 0

948 ,

2 0

1 1 1

1 d d

D

⎥⎦

⎢ ⎤

⎡ 0 1

316 , 0

948 , 0

⎥⎦

⎢ ⎤

⎡ 1 0

⎡−

948 , 0

316 , 0

Rys. 3. Procedura Grama-Schmita

6 Powtarzamy opisany cykl obliczeń aż do momentu, w którym spełnione zostanie przyjęte kryterium zbieżności. Wg Rosenbrocka za minimum uznać można bieżący punkt jeżeli w pięciu kolejnych obiegach nie miał miejsca pomyślny krok tzn. nie została spełniona zależność

x

q0

q< .

(13)

x1

x2

1

2 3 4

5 6 7 8

9

10 11

12

13 14

16 15

17

18 19

20

21

22 1 startowy punkt bazowy (krok 1)

1-2 niepomyślny krok próbny

) ( ) (x3 f x1 f <

3-4 niepomyślny krok próbny (współczynnik zwiekszający ) 1-3 pomyślny krok próbny

) ( ) (x17 f x16 f <

19-20 pomyślny krok próbny f(x20)<f(x17) 21-22 niepomyślny krok próbny

) ( ) (x21 f x20 f <

13-14 niepomyślny krok próbny współczynnik zmiejszający 12-13 niepomyślny krok próbny

współczynnik zwiększajacy 9-10 niepomyślny krok próbny

współczynnik zwiekszajacy

τ β τ= * 4-5 niepomyślny krok próbny ( współczynnik zmiejszajacy )

7-9 pomyślny krok próbny

11-12 pomyślny krok próbny zmiana kierunku ortogonalnej bazy

7-8 niepomyślny krok próbny

) ( ) (x23 f x22 f <

) ( ) (x9 f x7 f <

11 nowy punkt bazowy ( krok 2) Obrót BAZY procedura Gramma-Schmidta

17-18 niepomyślny krok próbny 18-19 niepomyślny krok próbny 10-11 pomyślny krok próbny

współczynnik zmiejszajacy f(x11)<f(x9)

23

5-6 niepomyślny krok próbny ( współczynnik zmiejszajacy ) 6-7 pomyślny krok próbny f(x7)<f(x3)

) ( ) (x12 f x11 f <

14-15 niepomyślny krok próbny współczynnik zmiejszający 15-16 pomyślny krok próbny

współczynnik zmiejszający zmiana kierunku

ortogonalnej bazy f(x16)<f(x12)

τ α τ= *

16-17 pomyślny krok próbny

20 nowy punkt bazowy ( krok 3) Obrót BAZY procedura Gramma-Schmidta 20-21 pomyślny krok próbny

22-23 pomyślny krok próbny zmiana kierunku ortogonalnej bazy

24

23-24 pomyślny krok próbny f(x24)<f(x23) 24 Punkt w którym spełnione jest

kryterium zbieżności a zatem punkt 24 odpowiada MINIMUM badanej funkcji

Rys. 4. Ilustracja zasady działania metody Rosenbrocka

Przez obieg rozumie się przy tym zespół czynności polegających na wykonaniu po jednym kroku we wszystkich ortogonalnych kierunkach aktualnie obowiązującej bazy D.

Kryterium takie znacznie przedłuża czas działania procedury. W konkretnych realizacjach metody Rosenbrocka stosuje się proste kryterium, a mianowicie narzuca się z góry ilość iteracji L, po której następuje automatyczne zatrzymanie procedury. Jeżeli po przeanalizowaniu otrzymanych wyników okaże się, że

(14)

uzyskany wynik jest zadowalający, to na tym się poprzestaje, w przeciwnym wypadku przyjmuje się nową wartość na L i startuje z ostatnio wyliczonego punktu

x.

Przykład 2

Wykorzystując metodę Rosenbrocka znaleźć minimum funkcji dwóch zmiennych w postaci

) 11 6 ( ) 5 4

( 121+ + 222+

= x x x x

F

Przyrównując pochodne cząstkowe F względem zmiennych do zera łatwo stwierdzić, że minimum funkcji znajduje się w punkcie

ˆ 3 0 6 2

ˆ 2 0 4 2

2 2

2

1 1

1

=

=

=

=

=

=

x x

x F

x x

x F a jego wartość wynosi F =3.

Przyjmiemy następujące dane wejściowe:

1) ortogonalna baza wejściowa

[ ]

⎢ ⎤

⎡ ⎥

⎢ ⎤

⎥ ⎡

⎢ ⎤

= ⎡

= 1

0 0

2 1

0 1 0

0 d d

D

2) punkt startowy ⎥

⎢ ⎤

=⎡ 4 1 x0

3) krok obliczeniowy τ=0,2 4) współczynnik zwiększający 3α= 5) współczynnik zmniejszający 5β=0, 6) kryterium zbieżności 100L=np.

7) suma pomyślnych kroków we wszystkich kierunkach ortogonalnej bazy = 0. S 1. Krok nr 1 kierunek poszukiwań zgodny z wersorem d01

2. Wartość funkcji F=(x12−4x1+5)+(x22−6x2+11)+ dla punktu startowego 5

) ( 0

min= xq =

q

3. Aktualne współrzędne punktu

⎥⎦

⎢ ⎤

=⎡

⎥⎦

⎢ ⎤

⋅⎡

⎥+

⎢ ⎤

=⎡ τ +

= 4

2 , 1 0 2 1 , 4 0

1 1

0 1 0

1 x d

x

64 , 4 ) 11 24 16 ( ) 5 2 , 1 4 2 , 1 ( )

(x1 = 2 − ⋅ + + − − =

q

64 , 4 ,

2 , 0 5

64 , 4

? )

( 1 <qmin < ⇒ S1 = qmin =

q x TAK

Zwiększenie długości kroku w ustalonym kierunku 6

, 0 2 , 0 3

, 1

1

1=α⋅τ τ = ⋅ =

τ

Aktualne współrzędne punktu

(15)

⎥⎦

⎢ ⎤

=⎡

⎥⎦

⎢ ⎤

⋅⎡

⎥+

⎢ ⎤

=⎡

⋅ τ +

= 4

8 , 1 0 6 1 , 4 0

2 ,

1 1

0 1 1

2 x d

x

04 , 4 ) 3 ( ) 5 8 , 1 4 8 , 1 ( )

(x2 = 2 − ⋅ + + = q

04 , 4 ,

8 , 0 6 , 0 2 , 0 64

, 4 04 , 4

? )

( 2 <qmin < ⇒ S1 = + = qmin=

q x TAK

Zwiększenie długości kroku w ustalonym kierunku 8

, 1 6 , 0 3

, 1

1

1=α⋅τ τ = ⋅ =

τ

Aktualne współrzędne punktu

⎥⎦

⎢ ⎤

=⎡

⎥⎦

⎢ ⎤

⋅⎡

⎥+

⎢ ⎤

=⎡ τ +

= 4

6 , 3 0 8 1 , 4 1

8 ,

1 1

0 1 2

3 x d

x

56 , 6 ) 3 ( ) 5 6 , 3 4 6 , 3 ( )

(x3 = 2 − ⋅ + + = q

04 , 4 ,

6 , 2 8 , 1 6 , 0 2 , 0 04

, 4 56 , 6

? )

(x3 <qmin < ⇒ S1= + + = qmin =

q NIE

Zmniejszenie długości kroku w ustalonym kierunku 9

, 0 8 , 1 5 , 0

, 1

1

1=−β⋅τ τ =− ⋅ =−

τ

Aktualne współrzędne punktu

⎥⎦

⎢ ⎤

=⎡

⎥⎦

⎢ ⎤

⋅⎡

⎥−

⎢ ⎤

=⎡

⋅ τ +

= 4

7 , 2 0 9 1 , 4 0

6 ,

1 3

0 1 3

4 x d

x

49 , 4 ) 3 ( ) 5 7 , 2 4 7 , 2 ( )

(x4 = 2 − ⋅ + + = q

04 , 4 ,

7 , 1 9 , 0 8 , 1 6 , 0 2 , 0 04

, 4 49 , 4

? )

( 4 <qmin < ⇒ S1= + + − = qmin =

q x NIE

Zmniejszenie długości kroku w ustalonym kierunku 45

, 0 9 , 0 5 , 0

, 1

1

1=−β⋅τ τ =− ⋅ =−

τ

Aktualne współrzędne punktu

⎥⎦

⎢ ⎤

=⎡

⎥⎦

⎢ ⎤

⋅⎡

⎥−

⎢ ⎤

=⎡

⋅ τ +

= 4

25 , 2 0 45 1 , 4 0

7 ,

1 2

0 1 4

5 x d

x

0625 , 4 ) 3 ( ) 5 45 , 2 4 45 , 2 ( )

(x5 = 2− ⋅ + + =

q

04 , 4

, 25 , 1 45 , 0 9 , 0 8 , 1 6 , 0 2 , 0 04

, 4 0625 , 4

? ) (

min

1 min

5

=

=

− + +

=

<

<

q

S q

q x NIE

Zmniejszenie długości kroku w ustalonym kierunku 225

, 0 45 , 0 5 , 0

, 1

1

1=−β⋅τ τ =− ⋅ =−

τ

Aktualne współrzędne punktu

⎥⎦

⎢ ⎤

=⎡

⎥⎦

⎢ ⎤

⋅⎡

⎥−

⎢ ⎤

=⎡

⋅ τ +

= 4

025 , 2 0 225 1 , 4 0

25 ,

1 2

0 1 5

6 x d

x

(16)

000625 , 4 ) 3 ( ) 5 025 , 2 4 025 , 2 ( )

(x6 = 2 − ⋅ + + =

q

000625 , 4 ,

025 , 1 225 , 0 45 , 0 9 , 0 8 , 1 6 , 0 2 , 0

04 , 4 000625 , 4

? ) (

min 1

min 6

=

=

− + +

=

<

<

q S

q

q x TAK

Zmniejszenie długości kroku w ustalonym kierunku 1125

, 0 225 , 0 5 , 0

, 1

1

1=−β⋅τ τ =− ⋅ =−

τ

Aktualne współrzędne punktu

⎥⎦

⎢ ⎤

=⎡

⎥⎦

⎢ ⎤

⋅⎡

⎥−

⎢ ⎤

=⎡

⋅ τ +

= 4

9125 , 1 0 1125 1 , 4 0 025 ,

1 2

0 1 6

7 x d

x

007656 , 4 ) 3 ( ) 5 9125 , 1 4 9125 , 1 ( )

(x7 = 2 − ⋅ + + =

q

NIE 000625 , 4 007656 , 4

? )

( 7 < qmin <

q x

4. Poszukiwania współrzędnej punktu optymalnego względem kierunku poszukiwań zgodny z wersorem d01 można uznać za zakończone

⎥⎦

⎢ ⎤

=⎡ 4 025 ,

6 2

x

025 , 1 225 , 0 45 , 0 9 , 0 8 , 1 6 , 0 2 , 0

000625 , 4 ) (

1

6 min

=

− + +

=

=

= S

q

q x

⎥⎦

⎢ ⎤

⎡ 4 1 4

1 2 3 4

=5 q

64 ,

=4 q

04 ,

=4 q

x1 x2 x6 x5 x4 x3 56 ,

=6 q 49 ,

=4 q 0625 ,

=4 000625 q ,

=4 q

2 , 0 0,6

8 , 1

9 , 0 45 , 0 225 , 0

x1

x2

Rys. 5. Poszukiwania w kierunku zgodnym z wersorem d01

5. Krok nr 2kierunek poszukiwań zgodny z wersorem d02 Aktualne współrzędne punktu

(17)

⎥⎦

⎢ ⎤

=⎡

⎥⎦

⎢ ⎤

⋅⎡

⎥+

⎢ ⎤

=⎡ τ +

= 4,2

025 , 2 1 2 0 , 4 0 025 ,

2 2

0 1 6

7 x d

x

440625 , 4 ) 11 2 , 4 6 2 , 4 ( ) 000625 , 1 ( )

(x7 = + 2 − ⋅ + =

q

000625 , 4 ,

0 000625

, 4 440625 , 4

? )

( 7 <qmin < ⇒ S2 = qmin =

q x NIE

Zmiana zwrotu poszukiwań w ustalonym kierunku Aktualne współrzędne punktu

⎥⎦

⎢ ⎤

=⎡

⎥⎦

⎢ ⎤

⋅⎡

⎥−

⎢ ⎤

=⎡ τ

= 3,8

025 , 2 1 2 0 , 4 0 025 ,

2 2

0 1 6

8 x d

x

640625 , 3 ) 11 8 , 3 6 8 , 3 ( ) 000625 , 1 ( )

(x8 = + 2− ⋅ + =

q

640625 , 3 ,

2 , 0 000625

, 4 640625 , 3

? )

( 8 <qmin < ⇒ S2=− qmin=

q x TAK

Zwiększenie długości kroku w ustalonym kierunku 6

, 0 ) 2 , 0 ( 3

, 1

1

1=α⋅τ τ = ⋅ − =−

τ

Aktualne współrzędne punktu

⎥⎦

⎢ ⎤

=⎡

⎥⎦

⎢ ⎤

⋅⎡

⎥−

⎢ ⎤

=⎡ τ

= 3,2

025 , 2 1 6 0 , 8 0 , 3

025 ,

2 2

0 1 8

9 x d

x

040625 , 3 ) 11 2 , 3 6 2 , 3 ( ) 000625 , 1 ( )

(x9 = + 2− ⋅ + =

q

040625 , 3

, 8 , 0 6 , 0 2 , 0 650625

, 3 040625 , 3

? ) (

min

2 min

9

=

=

=

<

<

q

S q

q x TAK

Zwiększenie długości kroku w ustalonym kierunku 6 , 2 8

, 1 ) 6 , 0 ( 3

, 1 2

1

1=α⋅τ τ = ⋅ − =− =−

τ S

Aktualne współrzędne punktu

⎥⎦

⎢ ⎤

=⎡

⎥⎦

⎢ ⎤

⋅⎡

⎥−

⎢ ⎤

=⎡ τ

= 1,4

025 , 2 1 8 0 , 2 1 , 3

025 ,

2 2

0 1 9

10 x d

x

600625 , 3 ) 11 4 , 1 6 4 , 1 ( ) 000625 , 1 ( )

(x10 = + 2− ⋅ + =

q

NIE 040625 , 3 600625 , 3

? )

( 10 < qmin <

q x

Zmniejszenie długości kroku w ustalonym kierunku

7 , 1 9 , 0 6 , 2 9

, 0 ) 8 , 1 ( 5 , 0

, 1 2

1

1=−β⋅τ τ =− ⋅ − = =− + =−

τ S

Aktualne współrzędne punktu

⎥⎦

⎢ ⎤

=⎡

⎥⎦

⎢ ⎤

⋅⎡

⎥+

⎢ ⎤

=⎡ τ +

= 2,3

025 , 2 1 9 0 , 4 0 , 1

025 ,

2 2

0 1 10

11 x d

x

490625 , 3 ) 11 3 , 2 6 3 , 2 ( ) 000625 , 1 ( )

(x11 = + 2 − ⋅ + =

q

NIE 040625 , 3 490625 , 3

? )

( 11 < qmin <

q x

(18)

Zmniejszenie długości kroku w ustalonym kierunku

25 , 1 45 , 0 7 , 1 45

, 0 ) 9 , 0 ( 5 , 0

, 1 2

1

1=−β⋅τ τ =− ⋅ − = =− + =−

τ S

Aktualne współrzędne punktu

⎥⎦

⎢ ⎤

=⎡

⎥⎦

⎢ ⎤

⋅⎡

⎥+

⎢ ⎤

=⎡ τ +

= 2,75

025 , 2 1 45 0 , 3 0 , 2

025 ,

2 2

0 1 11

12 x d

x

063125 , 3 ) 11 75 , 2 6 75 , 2 ( ) 000625 , 1 ( )

(x12 = + 2− ⋅ + =

q

NIE 040625 , 3 063125 , 3

? )

( 12 < qmin <

q x

Zmniejszenie długości kroku w ustalonym kierunku

025 , 1 225 , 0 45 , 0 7 , 1 225

, 0 ) 45 , 0 ( 5 , 0

, 1 2

1

1=−β⋅τ τ =− ⋅ − = =− + + =−

τ S

Aktualne współrzędne punktu

⎥⎦

⎢ ⎤

=⎡

⎥⎦

⎢ ⎤

⋅⎡

⎥+

⎢ ⎤

=⎡ τ +

= 2,975

025 , 2 1 225 0 , 75 0 , 2

025 ,

2 2

0 1 12

13 x d

x

00125 , 3 ) 11 975 , 2 6 975 , 2 ( ) 000625 , 1 ( )

(x13 = + 2 − ⋅ + =

q

025 , 1 00125

, 3 040625

, 3 00125 , 3

? )

( 13 <qmin < ⇒ qmin= S2 =−

q x TAK

Zmniejszenie długości kroku w ustalonym kierunku

9125 , 0 225 , 0 45 , 0 7 , 1 1125

, 0 ) 225 , 0 ( 5 , 0

, 1 2

1

1=−β⋅τ τ =− ⋅ − = =− + + =−

τ S

Aktualne współrzędne punktu

⎥⎦

⎢ ⎤

=⎡

⎥⎦

⎢ ⎤

⋅⎡

⎥+

⎢ ⎤

=⎡ τ +

= 3,0875

025 , 2 1 1125 0 , 975 0 , 2

025 ,

2 2

0 1 13

14 d

x x

00828 , 3 ) 11 0875 , 3 6 0875 , 3 ( ) 000625 , 1 ( )

(x14 = + 2− ⋅ + =

q

NIE 00125 , 3 00828 , 3

? )

( 14 < qmin <

q x

6. Poszukiwania współrzędnej punktu optymalnego względem kierunku poszukiwań zgodnym z wersorem d02 można uznać za zakończone

⎥⎦

⎢ ⎤

=⎡ 975 , 2

025 ,

13 2

x qmin =q(x13)= 3,00125 S2 =−1,025

7. Algorytm obrotu współrzędnych, który wyznacza nowy układ wzajemnie ortogonalnych wektorów jednostkowych , tworzących nową bazę w przestrzeni poszukiwań

dk

⎥⎦

⎢ ⎤

= −

⎥⎦

⎢ ⎤

⋅⎡

=

=

⎥⎦

⎢ ⎤

= −

⎥⎦

⎢ ⎤

⋅⎡

⎥−

⎢ ⎤

⋅⎡

=

⋅ +

=

025 , 1

0 1

025 0 , 1

025 , 1

025 , 1 1 025 0 , 0 1 025 1 , 1

2 0 2 2

2 0 2 1 0 1 1

d d d

w

S w

S S

Cytaty

Powiązane dokumenty

 w systemie FAT32 katalog główny może znajdować się w dowolnym miejscu na dysku i może zawierać maksymalnie 65 532 pliki i katalogi miejscu na dysku i może zawierać

Informatyka 1 (EZ1E2008), studia niestacjonarne I stopnia dr inż..

Jeśli wystąpił błąd lub został przeczytany znacznik końca pliku, to funkcja zwraca wartość EOF.. Znakowe

Pobiera jeden znak ze strumienia wskazywanego przez fp Jeśli wykonanie zakończyło się poprawnie, to funkcja zwraca.

Zapis bardzo dużych lub małych liczb wymaga dużej liczby cyfr Znacznie prostsze jest przedstawienie liczb w postaci.

w systemie ext2 podstawowym elementem podziału dysku jest blok wielkość bloku jest stała w ramach całego systemu plików, określana na etapie jego tworzenia i może wynosić 1024,

w każdej grupie bloków znajduje się kopia tego samego bloku identyfikacyjnego oraz kopia bloków z deskryptorami wszystkich grup identyfikacyjnego oraz kopia bloków z

Zwraca liczbę odczytanych elementów - w przypadku gdy liczba ta jest różna od n, to wystąpił błąd końca strumienia (w pliku było mniej elementów niż podana wartość