• Nie Znaleziono Wyników

Optymalizacja (minimalizacja) funkcji

N/A
N/A
Protected

Academic year: 2021

Share "Optymalizacja (minimalizacja) funkcji"

Copied!
26
0
0

Pełen tekst

(1)

Optymalizacja (minimalizacja) funkcji

Plan wykładu:

1. Sformułowanie problemu, funkcja celu 2. Metody bezgradientowe

a) metoda złotego podziału b) metoda sympleks

c) metoda interpolacji Powell'a 3. Metody gradientowe

a) metoda największego spadku b) metoda gradientów sprzężonych c) metoda Newtona

4. Minimalizacja z ograniczeniami: metoda funkcji kary zewnętrznej i wewnętrznej.

5. Metody stochastyczne (symulowane wyżarzanie, algorytmy genetyczne) -> metody Monte Carlo

(2)

Sformułowanie problemu, definicje pomocnicze

Zadaniem optymalizacji jest poszukiwanie minimum lub maksimum funkcji (wielu

zmiennych). W praktyce problem sprowadza się do poszukiwania minimum czyli takiego punktu dla którego zachodzi

z warunkami

Funkcje: f(x),g(x), h(x) są funkcjami skalarnymi.

f(x) – funkcja celu, celem jest znalezienie jej minimum (optymalizacja)

g(x) i h(x) są funkcjami określającymi warunki jakie musi spełniać rozwiązanie (więzy) – ograniczają przestrzeń dopuszczalnych rozwiązań

x x x = [x

1

; x

2

; : : : ; x

n

]

T

g

j

( x x x) · 0; j = 1; 2; : : : ; m h

j

(x x x) = 0; j = 1; 2; : : : ; r

Przykład

Problem jednowymiarowy

Problem dwuwymiarowy

(3)

3 minimum

Rys. Przykład poszukiwania minimum z nałożonymi warunkami na rozwiązanie Trzy przypadki:

1) Problem bez więzów oraz dla g(x)>0

minimum znajdujemy dla f(x)=0 2) Jeśli warunkiem jest

g(x)=0

to minimum znajduje się w punkcie takim że f(x)=12

3) Jeśli warunkiem jest g(x)<0

to rozwiązanie znajdziemy w pobliżu punktu w

Gradient funkcji – wektor gradientu Dla funkcji celu

definiujemy funkcję wektorową będącą gradientem funkcji

f (x x x) 2 C

2

ggg(x x x) = r r rf(x) = 2 6 6 6 6 6 6 6 6 6 6 4

@f (xxx)

@x1

@f (xxx)

@x2

.. .

@f (xxx)

@xn

3

7 7

7 7

7 7

7 7

7 7

5

(4)

Hesjan (macierz Hessego)

Dla funkcji celu

definiujemy macierz (hesjan) której elementami są jej drugie pochodne cząstkowe

Macierz H(x) jest symetryczna – implikacje numeryczne.

f (x x x) 2 C

2

H(x x x) =

½ @

2

f (x x x)

@x

i

@x

j

¾

= r r r

2

f (x x x)

= 2 6 6 6 6 6 6 4

@2f (xxx)

@x21

@2f (xxx)

@x1@x2

: : : : : :

@2f (xxx)

@x2@x1

: : : : : : : : :

@2f (xxx)

@xn@x1

: : : : : :

@2@xf (x2xx) n

3 7 7 7 7 7 7 5

Minimum lokalne, minimum globalne oraz punkt siodłowy funkcji celu

a) Punkt x* stanowi minimum globalne funkcji jeśli

b) Punkt x* stanowi minimum lokalne funkcji jeśli

c) Punkt

jest punktem siodłowym funkcji jeśli

9 " : " > 0; " 2 R ^

xx

x:kxxx¡x0x0x0k<"

yyy:kyyy¡yy0y00k<"

f (x; y x; y x; y

000

) · f(x x x

000

; y ; y ; y

000

) · f(x x x

000

; y ; y ; y) 9 " : " > 0; " 2 R ^

xxx:kxxx¡xxx¤¤¤k<"

f (x x x) > f (x x x

¤¤¤

)

x

¤

x x

¤¤

=

µ x x x

000

y y y

000

(5)

Rys. Minima lokalne i minimum globalne Rys. Punkt siodłowy funkcji Minima lokalne

(6)

Metoda złotego podziału (metoda jednowymiarowa)

Rys. Wyznaczanie kolejnych przybliżeń w metodzie złotego podziału

1) Wstępnie wyznaczamy przedział [a,b] w którym spodziewamy się minimum wartości funkcji

2)W przedziale [a,b] wyznaczamy dwa punkty 1 i 2 3) Jeśli

to zmieniamy granice przedziału na [a,2] 4) Jeśli

to zmieniamy granice przedziału na [1,B]

5)Proces podziału prowadzimy iteracyjnie aż do spełnienia warunku

Pozostaje tylko kwestia jak wyznaczyć punkty tak aby wybór był optymalny tzn. chcemy wykonać jak najmniejszą ilość podziałów.

F (¸

2

) > F (¸

1

)

F (¸

2

) < F (¸

1

)

ja

i

¡ b

i

j < "

¸

¤

= b

i

¡ a

i

2

(7)

7 Punktem wyjścia jest zależność

Drugie równanie

1

¡ a) + (b ¡ ¸

1

)

b ¡ ¸

1

= b ¡ ¸

1

¸

1

¡ a = ' b ¡ a = L ) b = L + a

L

L + a ¡ ¸

1

= L + a ¡ ¸

1

¸

1

¡ a

L(¸

1

¡ a) = (L ¡ (¸

1

¡ a))

2

1

¡ a) = L

µ

1 ¡ (¸

1

¡ a) L

2

1

¡ a) = L

µ

1 ¡ (¸

1

¡ a) L

2

= Lr

2

b ¡ ¸

1

= L µ

1 ¡ (¸

1

¡ a) ¶

= Lr

Lr

2

+ Lr

Lr = Lr

Lr

2

= 1

r ) r

2

+ r ¡ 1 = 0

Pierwiastki równania

Po wyborze r=r1 możemy określić wartości 1 i 2 zakładając ponadto, że oba punkty powinny być symetryczne względem krańców przedziału

r

1

=

p 5 ¡ 1

2 = 0:618034 > 0 r

2

= ¡ p

5 ¡ 1

2 < 0

¸

1

= a + r

2

L

¸

2

= a + rL b ¡ ¸

1

= L ¡ (¸

1

¡ a)

b = L + a

Czyli otrzymaliśmy

1

¡ a) = Lr

2

(b ¡ ¸

1

) = Lr

(8)

Metoda interpolacji kwadratowej Powell'a

Rys. Wyznaczanie przybliżonego rozwiązania w metodzie Powell'a.

Przez trzy punkty: 1,2,3 przechodzi wielomian 2 stopnia

Z warunkiem na minimum

p

2

(¸) = F (¸

0

) + F [¸

0

; ¸

1

](¸ ¡ ¸

0

) + F [¸

0

; ¸

1

; ¸

2

](¸ ¡ ¸

0

)(¸ ¡ ¸

1

) dp

2

d¸ = F [¸

0

; ¸

1

] + 2¸F [¸

0

; ¸

1

; ¸

2

]

¡ F [¸

0

; ¸

1

; ¸

2

](¸

0

+ ¸

1

)

gdzie: F[0,1] – iloraz różnicowy 1 rzędu, F[0,1,2] – iloraz różnicowy 2 rzędu

Punkt m jest kolejnym przybliżeniem

Aby znaleziony punkt był rzeczywistym minimum, druga pochodna (F[0,1,2]) musi spełniać warunek

Algorytm:

1) Wybierz 0 i oblicz F[+h]<F[], F[+2h]<F[+h]

(ewentualnie zmień znak: -h, jeśli nierówności nie są spełnione)

2) Wyznacz m i sprawdź czy jest minimum 3) Jeśli

odrzuć najdalej położony od m punkt i ponownie wykonaj obliczenia z pkt. 2.

n – najbliżej położony punkt względem m Punkt m akceptujemy jako minimum jeśli

¸

m

= F [¸

0

; ¸

1

; ¸

2

](¸

0

+ ¸

1

) ¡ F [¸

0

; ¸

1

]

2F [¸

0

; ¸

1

; ¸

2

] ¼ ¸

¤

F [¸

0

; ¸

1

; ¸

2

] > 0

m

¡ ¸

n

j > h

m

¡ ¸

n

j < "

(9)

Metoda sympleks (Neldera-Meada)

Rozwiązania poszukujemy iteracyjnie dążąc do znalezienia minimum fukcji poprzez obliczanie jej wartości w ściśle określonych punktach. Do wyznaczenia kierunków poszukiwań oraz

punktów, w których oblicza się wartości funkcji wykorzystuje się obiekt zwany sympleksem.

Sympleks jest to n-wymiarowy obiekt, stanowiący najmniejszy zbiór wypukły zawierający punkty

będące jego wierzchołkami. Wierzchołki sympleksu tworzą tylko takie punkty, dla których zbiór wektorów

jest liniowo niezależny (punkty nie są współliniowe).

Przykład. Sympleksy w 2 i w 3 wymiarach

p pp

0

; ppp

1

; : : : ; p pp

n

fppp

i

¡ ppp

0

g

Sposób postępowania w jednej iteracji

1. wybieramy zestaw N+1 punktów startowych (N – liczba wymiarów), np. w postaci

wektory di możemy przyjąć jako wersory układu kartezjańskiego

Położenie p0 wybieramy arbitralnie, wartości i zależą od rozpatrywanego problemu.

2. Dla wszystkich wierzchołków obliczamy ciąg

i szukamy dwóch punktów odpowiednio dla największej i najmniejszej wartości funkcji

3. Wyznaczamy środek ciężkości wierzchołków z wyłączeniem punktu pmax

p

pp

i

= pp p

0

+ ¸

i

d d d

i

; i = 1; 2; : : : ; n

d d d

i

= eee

i

; i = 1; 2; : : : ; n

f (ppp

0

); f (ppp

1

); : : : ; f (ppp

N

)

p pp

min

= p pp

j

() f(ppp

j

) · f(ppp

i

); i = 0; 1; : : : ; N p

pp

max

= ppp

j

() f(ppp

j

) ¸ f(ppp

i

); i = 0; 1; : : : ; N

p ~

pp = 1 n

X

i6=max

p

pp

i

(10)

4. Odbicie

Wyznaczamy punkt podb leżący na linii łączacej środek ciężkości i wierzchołek pmax

I jeśli zachodzi warunek

to odbicie akceptujemy. W nowym sympleksie wierzchołek pmax zostaje zastąpiony przez podb. 5. Ekspansja

Po odbiciu sprawdzamy też czy zachodzi warunek

Jeśli tak to wtedy zamiast podb wyznaczamy

p pp

odb

= ~ pp p + ®(~ ppp ¡ ppp

max

); ® 2 [0; 1)

f (ppp

min

) · f(ppp

odb

) < f (ppp

max

)

f (ppp

odb

) < f (ppp

min

)

eee = ~ ppp + °(ppp

odb

¡ ~ p); ° > 1

Jeśli

To wierzchołki nowego sympleksu tworzą poprzednie za wyjątkiem wierzchołka pmax który zastępujemy pe. W przeciwnym wypadku

wierzchołek pmax zastępujemy podb

6. Zawężenie Jeśli

to należy wykonać tzw. zawężenie sympleksu.

Wyznaczamy nowe przybliżenie

f (ppp

e

) < f (ppp

odb

)

f (ppp

e

) ¸ f(ppp

odb

)

f (ppp

odb

) ¸ f(ppp

max

)

p

pp

odb

= ~ pp p + ¯(ppp

max

¡ ~ppp); ¯ 2 (0; 1)

(11)

Jeśli zachodzi warunek

to wierzchołek pmax zastępujemy pz.

7. Redukcja Jeśli

dokonujemy redukcji sympleksu

f (ppp

z

) < f (ppp

max

)

f (ppp

z

) ¸ f(ppp

max

)

Przy sprawdzaniu warunków akceptacji

nowego wierzchołka sympleksu sprawdzamy też warunek stopu jako kryterium stopu przyjmując

Metoda sympleks jest mało efektywna,

nierzadko potrzeba dużej liczby iteracji w celu znalezienia minimum funcji.

i=0;1;:::;n

max = kppp

min

¡ ppp

i

k

2

< "

pp p

i

à ±(ppp

i

+ p pp

min

); i = 0; 1; : : : ; n;

i 6= min

± 2 (0; 1)

(12)

Kierunkowe metody poszukiwania minimum funkcji

Pochodna kierunkowa funkcji celu Różniczka zupełna funkcji celu

Jeśli wektor u wyznacza kierunek prostej łączącej punkty x i x' to są one ze sobą powiązane

Dla bardzo małych zmian wartości  możemy zapisać

Na prostej łączącej (ustalone punkty) x i x' wartość funkcji celu zależna będzie od nowej zmiennej

Liczmy różniczkę zupełną dla funkcji celu zależnej od 

df = @f

@x

1

dx

1

+ : : : + @f

@x

n

dx

n

= r r rf(xxx)dxxx

dx x x = u u ud¸

F (¸) = f (x x x

000

+ + + ¸u ¸u ¸u u u u u u u) = f (x x x)

Możemy teraz wyrazić pochodną kierunkową funkcji celu w punkcie x dla kierunku u następująco

Jeśli korzystamy z pochodnej kierunkowej, to musimy ją wyliczać w każdej iteracji.

Jak wykorzystać pochodną kierunkową do znalezienia minimum funkcji?

Startując z określonego punktu x0 poszukujemy

kolejnego przybliżenia tj. x1 w kierunku spadku wartości funkcji. W ten sposób wyznaczamy ciąg kolejnych

przybliżeń

poszukiwanego minimum. Procedurę iteracyjną przerywamy, gdy spełniony jest jeden z warunków:

a)

b)

c) w kolejnych iteracjach rośnie wartość

co oznacza brak zbieżności

x

0

x x

00

; x x x

111

; x x x

222

; : : :

r

r rf(xxx) = 0

kxxx

i+1

¡ xxx

i

k < "

kxxx

i+1

¡ xxx

i

k x x x(¸) = x x x

000

+ ¸u u u

dF = df = r r r

T

f (x x x)u u ud¸

dF (¸)

d¸ = df (x x x) d¸

¯ ¯

¯ ¯

uuu

= r r r

T

f (x x x)u u u

(13)

Metoda największego spadku

Rys. Gradient funkcji i kierunek poszukiwań w metodzie największego spadku.

Korzystamy z pochodnej kierunkowej funkcji w punkcie x'

Wektor kierunkowy u ma długość równą 1

df (x x x

000

) d¸

¯ ¯

¯ ¯

¯

uuu

= dF (0)

d¸ = r

T

f (x x x

000

)u u u

kuuuk = 1

Korzystamy z nierówności Schwartza

Jeśli wektor kierunkowy wybierzemy w postaci

to będzie on wskazywał kierunek największego spadku.

Pochodna kierunkowa osiąga wtedy najmniejszą wartość

u u u = ¡r r rf(x x x

000

) kr r rf (x x x

000

) k

dF (0)

d¸ = ¡r r r

T

f (x x x

000

) r r rf(x x x

000

)

kr r rf(x x x

000

) k = min r

r r

T

f (x x x

000

) u u u ¸ ¡kr r r

T

f (x x x

000

) k ¢ kuuuk = ¡kr r r

T

f (x x x

000

) k = min

(14)

Algorytm:

1) Wybierz x0

2) Iteracyjnie obliczaj

3) Warunki zakończenia obliczeń

u u u

i

= ¡r r rf (x x x

iii¡1¡1¡1

) kr r rf(x x x

iii¡1¡1¡1

) k x

x x

i

= x x x

i¡1

+ ¸u u u

i

F (¸

i

) = f (x x x

i¡1

+ ¸

i

u u u

i

) = min

¸

f (x x x

i¡1

+ ¸u u u

i

)

kxxx

i

¡ xxx

i

k < "

1

kr r rf(xxx

i

) k < "

2

jf(xxx

i

) ¡ f(xxx

i¡1

) j < "

3

Metoda największego spadku może być mało wydajna, jeśli kontur wartości funkcji celu jest wydłużony (elipsa). Pojawiają się wówczas częste zmiany kierunków poszukiwań – zigzag.

(15)

f (x; y) = 5

2 (x

2

¡ y)

2

+ (1 ¡ x)

2

rf =

µ 10(x

2

¡ y)x + 2x ¡ 2

¡5x

2

+ 5y

(16)

Metoda największego spadku z optymalizacją parametru 

Kierunki poszukiwań w dwóch kolejnych iteracjach są ortogonalne. Jest to duży problem w przypadku, gdy funkcja ma wydłużony kształt w jednym z kierunków (poziomice funkcji są równoległe w szerokim zakresie).

rf (xxx

i

+ ¸u u u

i

) = rf (xxx

i+1

) = ¡uuu

i+1

@f (x x x

i

+ ¸u u u

i

)

@¸ = @f (x x x

i

+ ¸u u u

i

)

@x x x u u u

i

= ( rf(xxx

i

+ ¸u u u

i

))

T

¢ uuu

i

= 0

u u u

Ti+1

¢ uuu

i

= 0 f (x; y) = 5

2 (x

2

¡ y)

2

+ (1 ¡ x)

2

(17)

Metoda sprzężonego gradientu (CG)

Metoda jest wydajna i dostarcza rozwiązania w skończonej liczbie kroków dla problemu w

postaci

Dwa wektory są wzajemnie sprzężone jeśli

gdzie: A jest macierzą dodatniookreśloną Jeśli ciąg wektorów

tworzą wektory wzajemnie sprzężone, to

stanowią one bazę w przestrzeni Rn i wówczas każdy wektor

można rozwinąć w tej bazie

u u u

T

Avvv = (u u u; Avvv) = 0

Algorytm CG Fletchera-Reevsa

1) Wybieramy punkt startowy x0 Obliczamy iteracyjnie

kierunek poszukiwań:

a) i=0

b) i=1,2,3..,n

Wartość i wyznaczamy identycznie jak w metodzie największego spadku. Wektory ui wyznaczają bazę A- ortogonalną.

Parametr i

silnie ogranicza zmiany kierunku poszukiwania rozwiązania w kolejnej iteracji.

x x x

i

= x x x

i¡1

+ ¸

i

u u u

i

u

u u

1

= ¡r r rf(xxx

0

)

u u u

i+1

= ¡r r rf(xxx

i

) + ¯

i

u u u

i

¯

i

= kr r rf(xxx

i

) k

2

kr r rf(xxx

i¡1

) k

2

f (x x x) = 1

2 x x x

T

Ax x x + x x x

T

bbb + c

u

u u

i

2 R

n

; i = 1; 2; : : : ; n

x x x

i

2 R

n

x x x = X

n k=1

®

k

u u u

k

= x x x

0

+ X

n

i=1

¸

i

u u u

i

®

i

= (u u u

i

; Ax x x)

(u u u

i

; Au u u

i

)

(18)

f (x; y) = 5

2 (x

2

¡ y)

2

+ (1 ¡ x)

2

(19)

Metoda Newtona poszukiwania minimum funkcji kwadratowej w Rn

Funkcję kwadratową definiujemy następująco

gdzie: A jest pewną macierzą kwadratową oraz

Jeśli macierz A jest symetryczna to wówczas zachodzi

oraz

Jeśli A jest dodatniookreślona to rozwiązanie można łatwo znaleźć, ponieważ

x

x x; bbb 2 R

n

c 2 R

r r rf(xxx) = Axxx + bbb

r r r

2

f (x x x) = A H(x x x) = A

W metodzie Newtona zakładamy

gdzie: xi – przybliżone rozwiązanie w i-tej iteracji Korzystając z rozwinięcia funkcji w szereg Taylora możemy zapisać

Jeśli pominiemy wyrazy rzędu ||||2 to

W i-tej iteracji poprawiamy rozwiązanie, tj.

i ostatecznie

Oczekujemy, że metoda Newtona będzie pracować również dla innych funkcji niż kwadratowe tj. gdy badaną funkcję celu można przybliżyć lokalnie funkcją kwadratową.

Wadą metody jest konieczność wyznaczania hesjanu w każdym punkcie. Gdy ta staje się

osobliwa wówczas metoda przestaje działać – co może być spowodowane np. występowaniem błędów numerycznych.

r r rf(xxx) = Axxx + bbb = 0 x

¤

x x

¤¤

= ¡A

¡1

bbb

x

¤

x x

¤¤

= x x x

i

+ ±±±

0 0 0 = r r rf(x x x

¤¤¤

) = r r rf(xxx

i

+ ±±±)

= r r rf(xxx

i

) + H(x x x

i

)±±± + O( k±±±k

2

)

r

r rf(xxx

i

) + H(x x x

i

) ±±± = 0

x x x

i+1

= x x x

i

+ ±±±

x x x

i+1

= x x x

i

¡ H

¡1

( x x x

i

) r r rf (xxx

i

) f (x x x) = 1

2 x x x

T

Ax x x + x x x

T

bbb + c

(20)

Zastosujmy schemat do funkcji kwadratowej

W pierwszej iteracji dostajemy

Czyli

Zbieżność do minimum uzyskujemy w jednym kroku.

Ale metoda ma wady:

1) Metoda nie zawsze jest zbieżna nawet w pobliżu minimum

2) Wymaga znalezienia A-1 w każdej iteracji

f (x x x) = 1

2 x x xA

T

x x x + bbb

T

x x x + c

x x x

1

= x x x

¤

x x x

1

= x x x

0

¡ A

¡1

(Ax x x

0

+ bbb)

= x x x

0

¡ xxx

0

¡ A

¡1

bbb = ¡A

¡1

bbb

Rys. Metoda Newtona w połączeniu z metodą złotego podziału użytą w każdej iteracji.

f (x; y) = 5

2 (x

2

¡ y)

2

+ (1 ¡ x)

2

H(x; y) =

µ 30x

2

¡ 10y + 2 ¡10x

¡10x 5

(21)

Metoda funkcji kary

Jeśli ograniczamy przestrzeń

dopuszczalnych rozwiązań czyli nakładamy warunki np.

lub

to mamy do czynienia z problemem z ograniczeniami. Ograniczenia te chcemy wbudować w nasz algorytm w taki sposób aby znów problem stał się problemem bez ograniczeń – bez konieczności sprawdzania warunków.

Metoda funkcji kary zewnętrznej Stosujemy zmodyfikowaną funkcję celu

gdzie: S(x) jest funkcją kary, a ci

współczynnikiem rosnącym w kolejnych iteracjach

g

j

(x x x) · 0; j = 1; 2; : : : ; m h

j

(x x x) = 0; j = 1; 2; : : : ; r

Prosty przykład funkcji kary zewnętrznej

Jeśli spełniony jest pierwszy warunek to pierwsza suma się zeruje. Podobnie jest dla drugiego

przypadku. Wtedy

czyli brak kary w przestrzeni rozwiązań

dopuszczalnych. W pozostałym obszarze (na

zewnątrz), wartość funkcji celu rośnie w kolejnych iteracjach – a więc nie znajdziemy tam minimum.

Zmodyfikowana funkcja celu może nie być różniczkowalna ze względu na funkcję max() w definicji funkcji kary co eliminuje metody

gradientowe przy poszukiwaniu minimum.

Sposób postępowania:

1) wybieramy punkt startowy x0

2) określamy ci oraz modyfikujemy funkcję celu 3) znajdujemy rozwiązanie x* przy użyciu wybranej metody

4) sprawdzamy przyjęty warunek stopu jak w metodzie bez ograniczeń

5) jeśli warunek stopu nie jest spełniony to wykonujemy kolejną iterację przyjmując

F

i

(x x x) = f (x x x) + c

i

S(x x x)

i

lim

!1

c

i

= 1 (c

i+1

= 2c

i

)

S(x x x) = X

m j=1

(max(0; g

j

( x x x)))

2

+ X

r j=1

(h

j

(x x x))

2

S(x x x) = 0

x

x x

i

= x x x

¤

; c

i+1

= a ¢ c

i

(22)

22 Metoda funkcji kary wewnętrznej

Zakładamy że warunki ograniczające mają postać

W każdej iteracji modyfikujemy funkcję celu wprowadzając funkcję kary S(x)

z warunkiem dla współczynnika ci

Własności funkcji kary wewnętrznej:

a)

b) jeśli dla ciągu przybliżeń

spełniony jest warunek

oraz dla określonego j

to

Funkcja kary przyjmuje wartości dodatnie

wewnątrz obszaru rozwiązań dopuszczalnych, a jej wartość gwałtownie rośnie przy zbliżaniu się do brzegu (bariera).

Przykłady funkcji barierowych:

Sposób postępowania:

1) wybieramy punkt startowy x0

2) określamy ci oraz modyfikujemy funkcję celu 3) znajdujemy rozwiązanie x* przy użyciu

wybranej metody

4) sprawdzamy przyjęty warunek stopu oraz dodatkowo sprawdzamy zgodność z warunkami ograniczającymi

5) jeśli warunki stopu nie są spełnione to wykonujemy kolejną iterację przyjmując

g

j

(x x x) · 0; j = 1; 2; : : : ; m

F

i

(x x x) = f (x x x) + c

i

S(x x x)

i

lim

!1

c

i

= 0 (c

i+1

= a ¢ c

i

; a 2 (0; 1))

g

j

( x x x) < 0; j = 1; : : : ; m ) S(xxx) > 0

x x x

1

; x x x

2

; : : : ; x x x

i

g

j

( x x x

iii

) < 0; j = 1; : : : ; m; i = 1; 2; : : :

i

lim

!1

g

j

( x x x

i

) = 0

i

lim

!1

S(x x x

i

) ! 1

S(x x x) = ¡ X

m j=1

1 g

j

( x x x) S(x x x) = ¡

X

m j=1

ln( ¡g

j

(x x x))

c

i

jS(xxx

i

) j < "

x

x x = x x x

¤

; c = a ¢ c

(23)

Metoda symulowanego wyżarzania (jedna z metod Monte Carlo, metoda stochastyczna)

Prawdopodobieństwo akceptacji

„gorszego” rozwiązania

zależy silnie od parametru T (w fizyce jest to temperatura).

T duże: wartość wykładnika bliska zeru (P → 1)

T małe: wykładnik jest dużą ujemną liczbą (P → 0)

(24)

Najprostszy algorytm symulowanego wyżarzania - iteracyjny

Start: wybieramy punkt startowy x0 i określamy wartość funkcji celu f(x0) dla naszego wędrowca oraz ustalamy temperaturę T i ilość kroków M jaką ma wykonać

1) losujemy przemieszczenie x generatorem liczb pseudolosowych i określamy f(xi+x) 2) akceptujemy nowe położenie z prawdopodobieństwem P=1 jeśli

w przeciwnym wypadku

określamy prawodopodobieństwo

i losujemy liczbę

nowe położenie akceptujemy (z prawdopodobieństwem P) jeśli spełniona jest relacja

3) co M iteracji obniżamy temperaturę np.

co efektywnie zmniejsza pradowpodobieństwo akceptacji położenia o wyższej funkcji kosztu Kroki 1-3 powtarzamy M razy dla każdego wędrowca.

Symulację możemy wykonać dla N wędrowców równolegle – są niezależni.

Po jej zakończeniu wyszukujemy wędrowca o najniższej funkcji celu.

(25)

Przykład. Szukamy minimum globalnego funkcji

Wynik dla pojedynczego wywołania algorytmu (jeden wędrowiec)

(26)

Wyniki dla M=200 wędrowców i temperatury obniżanej co 100 iteracji (Tnew=Told/2)

Cytaty

Powiązane dokumenty

Jeżeli zbiór implikantów istotnych nie jest pokryciem funkcji to dołącz do niego tylko te implikanty proste, dla których koszt funkcji będzie minimalny..

2. Dane są dwie funkcje:  y 1  =  (1,2,3,6)    i    y 2

Zbiorem wielościennym nazywamy podzbiór przestrzeni Rn będący przecięciem skończonej liczby półprzestrzeni domkniętych. Wielościan jest ograniczonym zbio- rem

W metodzie interpolacji Powella korzystamy z lokalnego przybliżenia funkcji wielomianem drugiego stopnia (wykład).. Wykorzystamy tę zależność do znalezienia minimum/maksimum

Proszę zapoznać się z materiałem z poniższego linka i na podstawie zamieszczonych tam przykładów zróbcie zadania:. na podstawie przykładu 1 proszę zrobić zad 8.68/213

a) D f = ( -, 4&gt; wykres nie jest ciągły, ale jak prześledzimy za koleją iksy od minus nieskończoności do coraz to bardziej w prawo, i w prawo …to dla każdego iksa jest

Prawidłowa

■ Na bramkach NOR (realizujące funkcje zanegowanej sumy) można zrealizować dowolną funkcję boolowską. ■ Na bramkach NAND (realizujące funkcje zanegowanego iloczynu)