Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Systemy wspomagania decyzji Zagadnienia optymalizacji.

Podobne prezentacje


Prezentacja na temat: "Systemy wspomagania decyzji Zagadnienia optymalizacji."— Zapis prezentacji:

1 Systemy wspomagania decyzji Zagadnienia optymalizacji

2 Podstawowy problem optymalizacji bez ograniczeń (ang. unconstrained optimization) można sformułować następująco. Dana jest funkcja zmiennych x 1,…, x n (zwana funkcją celu): Szukamy teraz punktu x* takiego, że Często jednak w zastosowaniach zmienne funkcji celu spełniają pewne dodatkowe warunki (ograniczenia). Wtedy mówimy o optymalizacji z ograniczeniami (ang. constrained optimization). Ograniczenia te można najogólniej wyrazić poprzez pewien zbiór dopuszczalnych zmiennych R n, tak więc mamy teraz zagadnienie poszukiwania x* takiego, że

3 Przykład 1 W tym przypadku funkcja ma globalne minimum. Wartość przybliżoną można uzyskać stosując odpowiednie procedury numeryczne. Posłużono się metodą podziału na trzy i uzyskano następujący wynik:

4 Przykład 2. Niech będzie dana wzorem Wykres funkcji jest podany poniżej. Widać z niego, że globalne minimum funkcja osiąga nie we wnętrzu zbioru =[-1, 4,5], ale na jego brzegu, x min =-4,5.

5 Jednym ze sposobów znajdowania minimum funkcji f:[a,b] R jest rozwiązywanie równania które jest warunkiem koniecznym na istnienie ekstremum we wnętrzu przedziału. Oczywiście metodę tę można stosować, gdy funkcja jest różniczkowalna i najlepiej w sytuacji, gdy możemy ją obliczyć wzorem. Ponadto należy pamiętać, że daje ona w zasadzie tylko punkty podejrzane o ekstremum, czego klasycznym przykładem jest funkcja f(x)=x 3, dla której równanie f(x)=3x 2 =0 daje x=0. Nie jest to jednak punkt, w którym funkcja ta osiąga ekstremum. W praktyce najbardziej skuteczne algorytmy znajdowania minimum dla funkcji jednej zmiennej to metody podziału. Optymalizacja funkcji jednej zmiennej

6 Przykładowe algorytmy opisane w tej sekcji dają ciąg zbieżny do minimum pod warunkiem, że funkcja y=f(x) jest unimodalna. W innych przypadkach ciąg nie musi być zbieżny. Definicja. Funkcja f:[a,b] R jest unimodalna, gdy (i) jest ciągła; (ii) istnieje punkt (a,b) taki, że f jest malejąca dla x. Na przykład, metoda podziału z wyborem dwóch punktów t 1, t 2 (a, b) polega na porównaniu wartości f(t 1 ) i f(t 2 ), a następnie wybraniu odpowiedniego przedziału, [a, d] lub [c, b] zawierającego element optymalny x* (a, b). Mamy mianowicie: jeżeli f(t 1 ) f(t 2 ), to wybieramy [a, t 2 ] jeżeli f(t 1 ) > f(t 2 ), to wybieramy [t 1, b] W ten sposób otaczamy szukany element coraz mniejszymi przedziałami, czyli lokalizujemy go z coraz większą dokładnością. Oczywiście wyboru punktów t 1 i t 2 możemy dokonywać na wiele sposobów, i w ten sposób powstają różne szczegółowe warianty metody podziału.

7 Metoda podziału na równe trzy części Jako punkty podziału (dwa) wybieramy t 1,t 2 (a, b) tak, aby odległości pomiędzy punktami a, t 1, t 2 i b były równe. Zatem

8 W każdej iteracji następuje zmniejszenie długości przedziału 3/2 razy. Po n iteracjach długość przedziału, w którym znajduje się minimum wynosi (2/3) n ( b - a ). Implementacja tego prostego algorytmu jest przedstawiona poniżej.

9 Przykład. Znajdziemy numerycznie minimum funkcji określonej wzorem W tym prostym przypadku można wyznaczyć ekstrema lokalne metodami analitycznymi (skończone operacje na wzorach) z warunku f( x )=0. Mamy bowiem co daje x 1 =-2, x 2 =1. Ponieważ f(x)=6x+3, zatem Oznacza to, że dla x=-2 mamy maksimum, a dla x=1 minimum.

10 Po uruchomieniu naszego programu z przedziałem początkowym [a,b]=[0,4] otrzymujemy Tak więc minimum x min =1 zostało poprawnie zlokalizowane.

11 W przypadku algorytmów optymalizacji (podobnie jest dla równań nieliniowych), najbardziej kosztowną operacją jest właśnie wartościowanie funkcji f(x). Może da się wybierać punkty podziału t 1 i t 2 tak, że w każdym kroku iteracji (z wyjątkiem pierwszego) wystarczy tylko jedno nowe wartościowanie, aby rozstrzygnąć wybór kolejnego podprzedziału? Okazuje się, że przez odpowiedni wybór podziału, jeden z punktów z aktualnej iteracji pokryje się z odpowiednim punktem z iteracji kolejnej, a zatem nie trzeba będzie wykonywać drugiego wartościowania, bo będzie już znane z poprzedniego kroku! W ten sposób uzyskamy metodę złotego podziału. Nazwa złoty podział bierze się stąd, że proporcja, która to gwarantuje,(t 2 -a)/(b-a) jest słynnym złotym podziałem.

12 Metoda złotego podziału Załóżmy, że punkty podziału t 1,t 2 (a, b) określone są wzorami gdzie 0< <1 jest jeszcze nieznanym współczynnikiem. Chcemy tak go dobrać, aby w kolejnym kroku iteracji, niezależnie od tego czy wybierzemy przedział czy jeden z punktów nowego przedziału pokrył się z którymś z poprzedniego. Bliższa analiza pokazuje, że wymóg ten prowadzi do następującego równania na Dodatni pierwiastek tego równania wynosi Wartość ta wyraża właśnie złoty podział znany już w starożytnej Grecji.

13 Implementacja metody złotego podziału do znajdowania minimum funkcji jednej zmiennej f:[a,b] R.

14 Znajdziemy numerycznie minimum funkcji określonej wzorem Przykład. Interesuje nas optymalizacja z ograniczeniami =[0, 3].

15 Po uruchomieniu programu uzyskamy następujący rezultat Zatem przybliżona wartość x min =0, W punkcie tym funkcja osiąga minimum f min =0,

16 Optymalizacja funkcji wielu zmiennych Jest to zagadnienie dużo trudniejsze niż stosunkowo prosty przypadek funkcji jednej zmiennej. Dlatego podamy tu tylko krótkie wprowadzenie. Metody gradientowe wykorzystują pojęcie gradientu funkcji wielu zmiennych. Przypomnijmy, że dla funkcji która jest różniczkowalna, definiujemy gradient f( x ), jako wektor z R n, określony następująco Sens wektora f(x) jest taki, że wskazuje on w punkcie x kierunek, w którym funkcja ma największy wzrost.

17 Przykład. Funkcja dwóch zmiennych dana jest wzorem Zatem Oznacza to, że np. w punkcie ( x 1, x 2 )=(1, -2) największy wzrost funkcja ma w kierunku wektora a w punkcie ( x 1, x 2 )=(2, 2) największy wzrost funkcja ma w kierunku wektora

18 jest dodatnim parametrem (czasami zwanym długością kroku, ang. step size). Podstawowy pomysł w powyższym schemacie polega na tym, aby w każdym kroku iteracji poruszać się w kierunku, w którym funkcja f maleje. Koncepcyjnie najprostsze są metody najszybszego spadku. Można je sformułować następująco: dla danego punktu startowego obliczmy kolejne punkty wg schematu wg schematu gdzie jest odpowiednio dobieranym kierunkiem (wektorem) oraz Ponieważ kierunek największego wzrostu funkcji jest wyznaczony przez gradient, więc naturalne jest, aby szukać kierunku przeciwnego do tego gradientu (czyli kierunku największego spadku) lub ogólniej kierunku, który jest pod kątem rozwartym względem f(x). Tak więc żądanie na d (k) jest następujące

19 Różne warianty metody spadku powstają teraz przez konkretny sposób wyboru d (k) spełniającego warunek d (k) · f(d (k) ) < 0. W szczególności można spotkać następujące metody: Metoda gradientu (inaczej zwana metodą największego spadku, (ang. steepest descent method): Otrzymujemy więc schemat Metody gradientu sprzężonego (ang. conjugate gradient methods): gdzie współczynniki k dobiera się w taki sposób, aby kierunki d (k) d (k-1) były wzajemnie prostopadłe w odpowiednio wybranym iloczynie skalarny. Ponieważ może być tutaj wiele strategii, więc w gruncie rzeczy jest to dość szeroka klasa metod.

20 Metoda Newtona: gdzie H( x ) jest tzw. hesjanem funkcji w punkcie x. W tym przypadku zakładamy, że funkcja f jest klasy C 2 (istnieje druga pochodna i jest ciągła). Hesjan jest macierzą kwadratową, której elementami są pochodne cząstkowe drugiego rzędu

21 Jeżeli już wybierzemy jakąś metodą właściwe d (k), to aby można było wykonać następny krok (przejście k k+1) musimy jeszcze wyznaczyć współczynnik k > 0. Generalnie można posłużyć się następującym kryterium gdzie co sprowadza wyznaczanie współczynnika do zagadnienia minimalizacji funkcji jednej zmiennej.

22 Narzędzia optymalizacji dostępne w Excelu Używając dodatku Solver w programie Excel znajdź minima i maksima podanych niżej funkcji jednej zmiennej.

23 Narzędzia optymalizacji dostępne w Excelu (c.d) Używając dodatku Solver w programie Excel znajdź minima i maksima podanych niżej funkcji dwóch zmiennych.

24 W fabryce mamy trzy maszyny M1, M2, M3 do wytwarzania dwóch produktów P1, P2. Aby wytworzyć P1 maszyny te muszą pracować kolejno 5, 3 i 4 minuty. Dla produktu P2 czasy te wynoszą 1, 4 i 3 minuty. Zysk ze sprzedaży P1 to 30, a ze sprzedaży P2 to 20 zł. Jak powinniśmy zorganizować produkcję, aby zysk był największy? Funkcja celu: Wsk. Obliczyć ile można wyprodukować P1 i P2 w ciągu jednej godziny tak, aby uzyskać maksymalny zysk. Narzędzia optymalizacji dostępne w Excelu (c.d)

25 Algorytmy genetyczne i ewolucyjne Inspiracją do rozwinięcia algorytmów ewolucyjnych było naśladowanie natury, a przede wszystkim sposobu zmian w organizmach żywych na drodze dziedziczenia i mutowania. Za twórcę idei tych algorytmów, opartych na zasadach podobnych do znanych z genetyki, uważany jest amerykański uczony John Holland, który opublikował pracę z tego zakresu w 1975 r. (Adaptation in Natural and Artificial Systems). Algorytmy genetyczne znajdują wiele zastosowań, m.in. w optymalizacji, i są zaliczane do grupy metod niedeterministycznych. Podstawą algorytmów genetycznych jest znana hipoteza, że największe prawdopodobieństwo przeżycia mają jednostki o najwyższym stopniu przystosowania i to ich potomstwo kształtuje w głównej mierze następne generacje osobników.

26 Przykład Pokażemy na prostym przykładzie schemat działania klasycznego algorytmu genetycznego. Będziemy poszukiwali maksimum funkcji dla Oczywiście, rozwiązaniem jest x =31, ale chcemy na tym przykładzie zilustrować podstawowe kroki algorytmu genetycznego. Można na ten przykład spojrzeć tak: funkcja przystosowania dla osobników (chromosomów) dana jest wzorem jak wyżej. Jak będzie przebiegała ewolucja losowej populacji chromosomów?

27 Przyjmujemy liczność populacji (np. 8). Losujemy pulę początkową. Przykładowa pula osobników jest poniżej. ch1=[00110] ch2=[00101] ch3=[01101] ch4=[10101] ch5=[11010] ch6=[10010] ch7=[01000] ch8=[00101] W klasycznym algorytmie genetycznym kodujemy zadanie w postaci ciągów zero-jedynkowych. Bazuje to na dwójkowym (binarnym) zapisie liczb całkowitych. W tym przypadku wystarczą ciągi o długości 5.

28 Dekodujemy informacje z chromosomów. Chromosomy traktujemy jak zapis binarny liczby naturalnej). ch1*=6, ch2*=5, ch3*=13, ch4*=21, ch5*=26, ch6*=18, ch7*=8, ch8*=5. Obliczamy przystosowania (wzór: f(ch)=2·ch+1 ) osobników z puli. f(ch 1 )=13,f(ch 2 )=11, f(ch 3 )=27,f(ch 4 )=43, f(ch 5 )=53,f(ch 6 )=37, f(ch 7 )=17,f(ch 8 )=11. Średnia wartość przystosowanie dla tej generacji wynosi 26,5.

29 Kolejny krok to selekcja chromosomów. Posłużymy się metodą koła ruletki. Wycinki mają wartości procentowe: Sektory na kole mają więc następujące procentowe udziały v(ch1)=6,13%,v(ch2)=5,19%, v(ch3)=12,74%,v(ch4)=20,28%, v(ch5)=25,0%,v(ch6)=17,45%, v(ch7)=8,02%,v(ch8)=5,19%. Selekcja (metoda koła ruletki) =B2/$B$10

30 Można to zilustrować w następujący sposób na wykresie kołowym.

31 Selekcja (c.d.) Teraz chcemy wybrać spośród osobników naszej populacji tych, którzy się będą ewentualnie rozmnażać. Losujemy więc 8 liczb z przedziału procentowego [0, 100], np Oznacza to wybór (selekcję) następujących chromosomów: ch6 ch4 ch2 ch6 ch5 ch6 ch5 ch3 Jest to tzw. pula rodzicielska, w której może dojść do krzyżowania. f(ch)%Skumulowane ch1136,13% ch2115,19%11,32% ch32712,74%24,06% ch44320,28%44,34% ch55325,00%69,34% ch63717,45%86,79% ch7178,02%94,81% ch8115,19%100,00% Suma212

32 Krzyżowanie odbywa się z prawdopodobieństwem krzyżowania. W tym przykładzie użyjemy p k =0,75. Kojarzymy osobniki w pary i losujemy dla każdej pary liczbę z przedziału [0, 1], aby określić, czy dana para będzie się krzyżowała czy nie. Do krzyżowania dochodzi wtedy, gdy wylosowana liczba dla danej pary jest p k. Np. wylosowaliśmy cztery liczby: 0,12 0,73 0,65 0,33 Widać, że krzyżowanie będzie zachodziło dla każdej pary. Dalej zastosujemy najprostsze krzyżowanie – tzw. krzyżowanie jednopunktowe. Dla każdej pary znajdujemy punkt krzyżowania poprzez wylosowanie liczby ze zbioru {1,2,3,4}, gdyż mamy ciągi 5-cio elementowe, więc pozycji do krzyżowania jest 5-1=4. Krzyżowanie

33 Krzyżowanie (c.d.) ch6=[ 100|10 ] ch4=[ 101|01 ] l k =3 krzyżowanie Ch1=[ ] Ch2=[ ] Podobnie dla pozostałych par, gdzie zakładamy, że wylosowano następujące miejsca krzyżowania: l k =4, 3, 2.

34 Po wykonaniu krzyżowania we wskazanych punktach otrzymamujem następującą populację potomków: Ch1=[10001],Ch2=[10110], Ch3=[00100],Ch4=[10011], Ch5=[11010],Ch6=[10010], Ch7=[11101],Ch8=[01010]. W klasycznym algorytmie genetycznym wykonujemy teraz jeszcze operację mutacji, ale w tym przykładzie przyjęliśmy, że prawdopodobieństwo mutacji jest zero, p m =0. Oznacza to, że nie wykonujemy mutacji. Obliczając teraz wartości funkcji przystosowania mamy: f(Ch 1 )=35,f(Ch 2 )=45, f(Ch 3 )=9,f(Ch 4 )=39, f(Ch 5 )=53,f(Ch 6 )=37, f(Ch 7 )=59,f(Ch 8 )=21. Populacja potomków ma średnią wartością przystosowania 37,25. Populacja rodziców miała 26,5.


Pobierz ppt "Systemy wspomagania decyzji Zagadnienia optymalizacji."

Podobne prezentacje


Reklamy Google