Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Systemy wspomagania decyzji

Podobne prezentacje


Prezentacja na temat: "Systemy wspomagania decyzji"— Zapis prezentacji:

1 Systemy wspomagania decyzji
Zagadnienia optymalizacji

2 Podstawowy problem optymalizacji bez ograniczeń (ang
Podstawowy problem optymalizacji bez ograniczeń (ang. unconstrained optimization) można sformułować następująco. Dana jest funkcja zmiennych x1,…,xn (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 Ω  Rn, 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, xmin=-4,5.

5 Optymalizacja funkcji jednej zmiennej
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)=x3, dla której równanie f’(x)=3x2=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.

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< oraz rosnąca dla x>. Na przykład, metoda podziału z wyborem dwóch punktów t1, t2  (a, b) polega na porównaniu wartości f(t1) i f(t2), a następnie wybraniu odpowiedniego przedziału, [a, d] lub [c, b] zawierającego element optymalny x*(a, b). Mamy mianowicie: jeżeli f(t1)  f(t2), to wybieramy [a, t2] jeżeli f(t1) > f(t2), to wybieramy [t1, 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 t1 i t2 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 t1,t2(a, b) tak, aby odległości pomiędzy punktami a, t1, t2 i b były równe. Zatem

8 W każdej iteracji następuje zmniejszenie długości przedziału 3/2 razy
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 x1=-2, x2=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 xmin=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 t1 i t2 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,(t2-a)/(b-a) jest słynnym złotym podziałem.

12 Metoda złotego podziału
Załóżmy, że punkty podziału t1,t2(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 Przykład. Znajdziemy numerycznie minimum funkcji określonej wzorem
Interesuje nas optymalizacja z ograniczeniami Ω=[0, 3].

15 Po uruchomieniu programu uzyskamy następujący rezultat
Zatem przybliżona wartość xmin=0, W punkcie tym funkcja osiąga minimum fmin=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 Rn, 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 (x1,x2)=(1, -2) największy wzrost funkcja ma w kierunku wektora a w punkcie (x1,x2)=(2, 2) największy wzrost funkcja ma w kierunku wektora

18 Koncepcyjnie najprostsze są metody najszybszego spadku
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 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. 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 C2 (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 Narzędzia optymalizacji dostępne w Excelu (c.d)
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.

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 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. 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]

28 Dekodujemy informacje z chromosomów
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(ch1)=13, f(ch2)=11, f(ch3)=27, f(ch4)=43, f(ch5)=53, f(ch6)=37, f(ch7)=17, f(ch8)=11. Średnia wartość przystosowanie dla tej generacji wynosi 26,5.

29 Selekcja (metoda koła ruletki)
Kolejny krok to selekcja chromosomów. Posłużymy się metodą koła ruletki. Wycinki mają wartości procentowe: =B2/$B$10 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%.

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

31 Selekcja (c.d.) 79 44 9 74 45 86 48 23 ch6 ch4 ch2 ch6 ch5 ch6 ch5 ch3
f(ch) % Skumulowane ch1 13 6,13% ch2 11 5,19% 11,32% ch3 27 12,74% 24,06% ch4 43 20,28% 44,34% ch5 53 25,00% 69,34% ch6 37 17,45% 86,79% ch7 17 8,02% 94,81% ch8 100,00% Suma 212 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.

32 Krzyżowanie Krzyżowanie odbywa się z prawdopodobieństwem krzyżowania. W tym przykładzie użyjemy pk=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  pk. 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.

33 Krzyżowanie (c.d.) ch6=[100|10] ch4=[101|01] lk=3 Ch1=[10001]
Podobnie dla pozostałych par, gdzie zakładamy, że wylosowano następujące miejsca krzyżowania: lk=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, pm=0. Oznacza to, że nie wykonujemy mutacji. Obliczając teraz wartości funkcji przystosowania mamy: f(Ch1)=35, f(Ch2)=45, f(Ch3)=9, f(Ch4)=39, f(Ch5)=53, f(Ch6)=37, f(Ch7)=59, f(Ch8)=21. Populacja potomków ma średnią wartością przystosowania 37,25. Populacja rodziców miała 26,5.


Pobierz ppt "Systemy wspomagania decyzji"

Podobne prezentacje


Reklamy Google