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
Algorytmy genetyczne i ewolucyjne (c.d.)

2 Przykład Kolejny przykład to ewoluowanie chromosomów tak, aby zwiększała się liczba jedynek. Oznacza to, że funkcja przystosowania dla chromosomu jest obliczana jako liczba wszystkich jedynek, które występują w tym chromosomie. Na przykład jeżeli ch=[ ], to f(ch)=4. Przykład ten ma pokazać, że jeżeli wylosujemy jakąś pulę chromosomów, a funkcja przystosowania jest określona jako liczba jedynek (genów o wartości 1) w chromosomie, to w kolejnych iteracjach statystycznie średnia liczba jedynek powinna rosnąć (ściślej: nie powinna maleć).

3 Przeprowadzimy symulację dla następujących parametrów krzyżowania i mutacji: pk=0,75; pm=0,02.
Załóżmy, że chromosomy składają się z 9 genów, a wielkość populacji wynosi 8 chromosomów. Na przykład, wylosowana początkowa pula (populacja) jest następująca: ch1=[ ], ch2=[ ], ch3=[ ], ch4=[ ], ch5=[ ], ch6=[ ], ch7=[ ], ch8=[ ]. Wartości funkcji przystosowania wynoszą f(ch1)=5, f(ch2)=3, f(ch3)=4, f(ch4)=6, f(ch5)=4, f(ch6)=4, f(ch7)=5, f(ch8)=4. Średnia wartość funkcji przystosowania dla tej populacji wynosi 4,375.

4 Obliczamy procentowe wagi dla każdego chromosomu w początkowej populacji (będzie to potrzebne do metody koła ruletki):

5 Poniżej pokazane są te same wartości co na poprzednim slajdzie, ale tym razem przedstawione w formie wykresu kołowego. Losowanie można sobie wyobrazić jako przypadkowy wybór dowolnego punktu w kole. Potem sprawdzamy do którego sektora wpadliśmy – to daje wybór (selekcję) chromosomu do ewentualnego krzyżowania w następnym etapie.

6 Selekcja (wybór) Dokonujemy teraz losowania 8 liczb z przedziału „procentowego” [0, 100]. Dzięki temu wybierzemy chromosomy do potencjalnego krzyżowania. Załóżmy, że wylosowano następujące liczby: Zatem selekcja jest następująca: ch6 ch1 ch7 ch4 ch6 ch4 ch7 ch1 Będziemy je krzyżowali parami: (ch6 ch1) (ch7 ch4) (ch6 ch4) (ch7 ch1)

7 Krzyżowanie Wybraliśmy już pary do potencjalnego krzyżowania. To czy faktycznie dojdzie do krzyżowania (czyli „rozmnażania” z przekazaniem części genów) zależy jeszcze od dodatkowego czynnika losowego – określonego przez prawdopodobieństwo krzyżowania pk. W przykładzie założyliśmy, że pk=0,75. Mamy cztery potencjalne pary do krzyżowania: (ch6 ch1) (ch7 ch4) (ch6 ch4) (ch7 ch1) Więc losujemy cztery liczby z przedziału [0, 1]. Używając funkcji LOS() w Excelu otrzymano: 0,44 0,33 0,29 0,68 Następnie porównujemy z pk. Jeżeli wartość jest mniejsza od pk, to dana para się krzyżuje. W tym przypadku wszystkie pary będą się krzyżowały: (ch6 ch1) (ch7 ch4) (ch6 ch4) (ch7 ch1)

8 Krzyżowanie (c.d.) Zastosujemy najprostszy sposób krzyżowania – krzyżowanie jednopunktowe. Dla każdej pary losujemy punkt krzyżowania. Ponieważ nasze chromosomy mają po 9 bitów (genów), więc potencjalnych punktów krzyżowania jest 8. Dlatego dla każdej pary losujemy jedną liczbę lk ze zbioru {1,2,3,4,5,6,7,8}. Powiedzmy, że wylosowaliśmy następujące punkty krzyżowania: lk : 4, 7, 3, 5. Krzyżowanie oznacza wymianę odpowiedniej porcji genów. Na przykład dla pierwszej pary mamy ch6=[ ] ch1=[ ] lk=4 Ch6=[ ] Ch1=[ ] krzyżowanie

9 Przeprowadzając analogiczną operację z pozostałymi parami (punkty krzyżowania 7, 3, 5) otrzymujemy następujący stan populacji: Ch1=[ ], Ch2=[ ], Ch3=[ ], Ch4=[ ], Ch5=[ ], Ch6=[ ], Ch7=[ ], Ch8=[ ]. Kolejnym krokiem jest przeprowadzenie ewentualnych mutacji, zależnych od prawdopodobieństwa mutacji pm.

10 Mutacja Po krzyżowaniu osobniki (chromosomy) mogą jeszcze podlegać mutacji. W najprostszym przypadku mutacja oznacza zmianę pojedynczego bitu: 10 lub 01. Ponieważ mutacje są rzadszym zjawiskiem niż krzyżowanie, zatem prawdopodobieństwo jest na ogół małe. Tutaj przyjęliśmy pm=0,02. Bierzemy kolejne chromosomy i dla każdego bitu (genu) losujemy liczbę z przedziału [0, 1]. Jeżeli jest ona mniejsza pm, to dany bit (gen) podlega mutacji. Oto przykładowa symulacja (tylko dwa geny zostały zmutowane w całej populacji): 0,45 0,52 0,89 0,02 0,67 0,01 0,28 0,51 Ch1=[ ], Ch2=[ ], Ch3=[ ], Ch4=[ ], Ch5=[ ], Ch6=[ ], Ch7=[ ], Ch8=[ ],

11 Obliczamy ponownie funkcje przystosowania dla poszczególnych osobników oraz średnią dla całej (nowej) populacji: Ch1=[ ], Ch2=[ ], Ch3=[ ], Ch4=[ ], Ch5=[ ], Ch6=[ ], Ch7=[ ], Ch8=[ ], f(Ch1)=5, f(Ch2)=4, f(Ch3)=4, f(Ch4)=8, f(Ch5)=5, f(Ch6)=6, f(Ch7)=4, f(Ch8)=6. Średnia wartość funkcji przystosowania wynosi teraz: 5,25. Poprzednia wartość wynosiła: 4,375.

12 Przykład (problem plecakowy)
W przykładzie tym zobaczymy jak można zastosować klasyczny algorytm genetyczny do tzw. problemu plecakowego. Jest to znany problem z teorii algorytmów, który należy do klasy NP-zupełnych. Tutaj zajmiemy się pewnym wariantem tego zadania, określanym czasem jako zero-jedynkowy problem plecakowy (ang. 0/1 knapsack problem). Mamy plecak, który ma określoną pojemność C (ang. capacity). Możemy do niego włożyć n przygotowanych przedmiotów, o wagach (lub objętościach) w1,…,wn oraz o „ważności” określonej przez liczby p1,…,pn. Chcemy tak załadować plecak, aby całkowita ważność była jak największa, ale jednocześnie nie możemy przekroczyć ustalonej, górnej granicy pojemności C. Hcemy

13 Formalnie problem plecakowy możemy zdefiniować tak:
dane są: szukamy liczb nieujemnych takich, że funkcja osiąga maksimum, przy następującym warunku

14 W przypadku zero-jedynkowego problemu plecakowego, zakładamy dodatkowo, że liczby xi są równe zero lub jeden: Interpretacja jest wtedy taka, że xi=1 oznacz, że przedmiot o numerze „i” jest wsadzony do plecaka, a xi=0 oznacza, że go tam nie umieściliśmy. W przypadku zero-jedynkowym możemy od razu zastosować klasyczny algorytm genetyczny, gdyż problem kodowania jest automatycznie zapewniony. Problem naturalnie kodujemy ciągiami binarnymi x=[x1…xn]. Szukamy więc takiego wektora binarnego x=[x1…xn], że oraz dla którego jest maksymalna.

15 Problem plecakowy tym się różni od dwóch poprzednich, że mamy tu dodatkowo warunek ograniczający dopuszczalne osobniki. Tylko takie ciągi binarne x=[x1…xn] nas interesują, które spełniają ograniczenie Przy implementacji genetycznego algorytmu optymalizacji z powyższym ograniczeniem, na ogół wprowadzamy je do metody rozwiązywania poprzez tzw. funkcję kary, Pen(x). Oznacza to, że funkcja dostosowania jest obliczana wg wzoru gdzie funkcja kary Pen(x) zawiera wbudowane ograniczenie.

16 Istnieje wiele strategii ustalania funkcji kary
Istnieje wiele strategii ustalania funkcji kary. Poniżej przedstawiane są trzy przypadki, w których wzrost kary wraz ze stopniem przekroczenia ograniczeń jest odpowiednio liniowy, logarytmiczny i kwadratowy: [Na podstawie Michalewicz, Arabas Genetic Algorithms for the 0/1 Knapsack Problem]

17 We wszystkich trzech przypadkach stała  jest zdefiniowana następująco:
Przykładowe testy: 1) n=10, pi=1, wi=i dla i=1,…,n, 0  C  n(n+1)/2. Parametry algorytmu genetycznego: pk=0,7; pm=0,01; liczba osobników w populacji: 10, liczba generacji: 100. 2) n=50, pi=1, wi=i dla i=1,…,50. Parametry algorytmu genetycznego: pk=0,7; pm=0,01; liczba osobników w populacji: 100, liczba generacji: 200. 3) wi= losowe ze zbioru [1, b] o rozkładzie jednostajnym; pi= losowe ze zbioru [1, b] o rozkładzie jednostajnym; C=2b. Dla n=100, 250, 500; v=10; pk=0,65; pm=0,05.

18 Więcej o kodowaniu W klasycznym algorytmie genetycznym stosujemy binarne kodowanie chromosomów. Wykorzystujemy w tym celu zapis pozycyjny o podstawie dwa, np. Niestety nie zawsze sformułowany problem ma argumenty, które są wprost kodami binarnymi. Na przykład przy optymalizacji dowolnej funkcji, której dziedzina jest podzbiorem Rn argumenty są liczbami zmiennopozycyjnymi. Załóżmymy, że x[a, b] i dokładność którą chcemy uzyskać przyjmujemy =10-6. Wybieramy liczbę naturalną N taką, że czyli Dla przedziału [a, b] = [-1, 2] daje to N  3·106.

19 Zatem minimalna liczba bitów do kodowania binarnego wynosi L=22.
Oznacza to, że w podanym przykładzie liczbom zmiennopozycyjnym z odcinka [a, b]=[-1, 2] będą odpowiadały chromosomy o długości 22 bity, np. [ ] lub [ ]. Musimy jednak umieć transformować kody na liczby z odcinka i na odwrót. Łatwo znaleźć taką liniową transformację, jeżeli zauważymy, że co daje gdzie s jest liczbą całkowitą odpowiadającą danemu chromosomowi, obliczoną zgodnie z normalnym zapisem dwójkowym, czyli np. s=[1010]=6.

20 Przykład Mamy do optymalizacji funkcję jednej zmiennej, ale w dziedzinie liczb rzeczywistych, R. Oznacza to, że dla klasycznego algorytmu genetycznego musimy najpierw dokonać odpowiedniego kodowania. Niech funkcja dana będzie wzorem:

21 Jeżeli chcemy obliczenia wykonywać na liczbach z dokładnością do 6 cyfr po przecinku, to obliczamy, że potrzebujemy L=22 bitowe chromosomy. Przeliczanie chromosomów na liczby z odcinaka [a, b] = [-1, 2] mamy wg wzoru Na przykład chromosomowi [ ] odpowiada s= , zatem

22 Funkcja przystosowania
Przykładowa symulacja dla parametrów: pk=0,4; pm=0,01; rozmiar populacji: 50; liczba pokoleń: 150. Pokolenie Funkcja przystosowania 1 1,45 10 2,25 40 2,34 50 2,73 100 2,84 135 2,85 150

23 Strategie ewolucyjne Algorytmy ewolucyjne mają podobny sposób działania do algorytmów genetycznych. Zaliczane są także do grupy metod niedeterministycznych. Za twórcę algorytmów ewolucyjnych uznawany jest Lawrence Fogel. Podobnie jak ma to miejsce w przypadku algorytmów genetycznych, opierają się one na ideach zaczerpniętych z biologii i podobnie w każdej iteracji tworzona jest pewna populacja poddawana później selekcji, krzyżowaniu i mutacji. Celem algorytmu ewolucyjnego jest wyznaczenie maksimum (lub minimum) danej funkcji celu przy czym liczba zmiennych optymalizacji (n) odpowiada długości chromosomów (liczbie genów w chromosomie).

24 Strategie ewolucyjne Inaczej  niż w klasycznych algorytmach genetycznych  reprezentujemy osobniki. Stosujemy wektory liczb zmiennoprzecinkowych (float, double) zamiast zwykłych wektorów binarnych. Oznacza to, że w algorytmach ewolucyjnych geny są liczbami rzeczywistymi. Inaczej przebiega proces selekcji. Jest deterministyczny i nie występują powtórzenia. Ponadto metoda tworzenia nowej populacji wymusza odrzucanie najsłabszych osobników. Jest kilka typów strategii ewolucyjnych. Najprostsze to strategia (1+1), (m+l) oraz (m, l).

25 Strategia ewolucyjna (1+1)
W metodzie tej przetwarzany jest jeden chromosom x. Czyli na każdym etapie obliczeń populacja składa się z jednego osobnika. Chromosom ten jest wektorem, którego składowe są liczbami zmiennopozycyjnymi. Mamy więc W nowej generacji powstaje nowy osobnik y, ale w wyniku tylko mutacji! (szczegóły mutowania są podane dalej). Nie ma zatem tutaj operacji krzyżowania. Sprawdzamy teraz wartość funkcji przystosowania. Osobnik przeżywa, jeżeli jest lepiej przystosowany: jeżeli (f(y) > f(x)), to x:=y jeżeli (f(y)  f(x)), to pozostawiamy x.

26 Ponieważ mutowanie w danym kroku jest — jak zaraz zobaczymy — zależne w pewnym stopniu od historii ewolucji osobnika, musimy na bieżąco pamiętać jaka jest liczba (a dokładniej częstotliwość) sukcesów, czyli przypadków f(y)>f(x). W tym celu używamy dwóch pomocniczych liczników: k=liczba pokoleń (zwiększamy o 1 w każdym kroku); ks=liczba sukcesów. Tak więc mamy następujący schemat strategii ewolucyjnej (1+1): k:=0; ks=0; //liczniki (inicjalizacja) Losuj x; :=początkowe //np. :=1 do { ewentualna modyfikacja parametru  y:=mutacja(x, ) jeżeli (f(y) > f(x)), to { y:=x; ks=ks+1} jeżeli (f(y)  f(x), to zachowujemy x oraz ks k:=k+1; }

27 Rozkład normalny N(0,1) Standardowy rozkład normalny określa następujący rozkład prawdopodobieństwa zmiennej losowej x: Rozkład normalny N(m, s) jest określony wzorem

28 Jak powstaje próbny chromosom y, czyli jak wygląda mutacja osobnika x
Jak powstaje próbny chromosom y, czyli jak wygląda mutacja osobnika x? Generalnie przez dodawanie do składowych chromosomu x liczb losowych, generowanych zgodnie z rozkładem normalnym N(0,1). Mamy więc W zależnościach tych:  — parametr określający zasięg mutacji, Ni(0,1) — liczba losowa generowana zgodnie z rozkładem normalnym (o średniej równej 0 oraz odchyleniu standardowym równym 1).

29 Zapis oznacza gdzie współrzędne wektora z=(z1,…,zn) wylosowano (niezależnie) zgodnie z rozkładem normalnym N(0,1).

30 Adaptację parametrów w tej strategii uzyskuje się poprzez zmianę zasięgu mutacji . Najczęściej stosuje się tutaj regułę 1/5 sukcesów. Mówi ona, że najlepsze rezultaty poszukiwań optimum uzyskujemy, gdy stosunek między liczbą udanych mutacji a wszystkimi mutacjami wynosi 1/5. Oznacza to, że będziemy zwiększali lub zmniejszali wartość  w zależności od aktualnej relacji pomiędzy sukcesami a wszystkimi próbami. Formalnie zapisujemy to tak: Na ogół wybieramy c1=0,82; c2=1/c1=1,2. (k)=współczynnik sukcesów operacji mutacji w poprzednich k generacjach ={liczba dotychczasowych sukcesów (sukces: gdy f(y)>f(x))}/k = ks/k

31 Przykład Działanie jednej generacji strategii ewolucyjnej (1+1) przy znajdowaniu maksimum funkcji z ograniczeniami Zaczynamy od zasięgu mutacji =1. Losujemy punkt (chromosom) początkowy x=(-1,45; -1,95). Zatem f(x)=-3,91. Losujemy dwie liczby wg rozkładu normalnego: N1(0,1)=-0,90, N2(0,1)=0,08. Stosujemy mutację: yi=xi+ 1·Ni(0,1), dla i=1,2 co daje osobnika y=(-2,35; -2,03).

32 Sprawdzamy przystosowanie: f(y)=-7,64
Sprawdzamy przystosowanie: f(y)=-7,64. Ponieważ f(y) < f(x), więc dalej x jest osobnikiem populacji, nie został wymieniony. Liczba sukcesów dalej jest zero: ks=0. Reguła 1/5 wymaga powiększania zasięgu mutacji  (mnożenie przez c2=1,2) lub pomniejszania (mnożenie przez c1=0,82). Zmianę parametru  dokonujemy co k=5 generacji. Dlatego należy w osobnej zmiennej pamiętać liczbę sukcesów (czyli przypadków kiedy f(y) > f(x)).

33 Zadanie Przetestować strategię ewolucyjną (1+1) dla testowej funkcji Rastrigina Do poszukiwania minimum początkowy zakres mutacji przyjąć s=1 oraz chromosom startowy x=(2.5, 2.1).

34 Strategia ewolucyjna (+)
Strategia ta jest rozszerzeniem strategii (1+1). Stałe     1 oznaczają dwie liczby naturalne. Główne różnice pomiędzy tymi strategiami są następujące: Każda populacja ma teraz  osobników (a nie jednego). Mutacja dokonywana jest na  osobnikach otrzymanych za pomocą losowania (poprzednio był to jeden osobnik). Współczynnik zakresu mutacji jest przypisany oddzielnie każdemu pojedynczemu osobnikowi populacji. Zachodzi operacja krzyżowania.

35 Przykład Przedstawimy działanie strategii (+), dla funkcji celu n argumentowej, tzn. Podstawowy problem to znajdowanie optimum (dalej rozważamy maksimum) dla tej funkcji. Jak zwykle w opisie algorytmu genetycznego czy ewolucyjnego funkcja ta opisuje przystosowanie osobnika (im większa wartość, tym lepsze dostosowanie, a zatem większa szansa na przeżycie i reprodukcję). W strategii (+) przyjmujemy, że każdy chromosom (osobnik) będzie miał postać

36 Generujemy losowo populację początkową składającą się z  osobników:
P={ch1,ch2,…,ch} Tworzenie nowej populacji P’ na podstawie bieżącej P odbywa się w dwóch etapach: 1) Najpierw tworzymy tymczasową populację T o  osobnikach: for i=1 to  do wybierz losowo parę rodzicielską (chA ; chB) z P reprodukcja (metodą krzyżowania): (chA ; chB)chC mutacja potomka chC i dodanie go do populacji T 2) Teraz tworzymy nową populację P’ wybierając  najlepszych (w sensie przystosowania, czyli wartości funkcji f) osobników z sumy zbiorów PT. Musimy jeszcze omówić szczegóły operacji krzyżowania i mutacji, które są specyficzne dla metody (+).

37 Krzyżowanie w strategii (+)
Najczęściej stosowaną metodą krzyżowania w tej strategii jest krzyżowanie uśredniające. Może to być proste uśrednianie (średnia arytmetyczna) lub uśrednianie z wagą. Krzyżowanie uśredniające. W nowym osobniku ch’ wszystkie geny są średnimi arytmetycznymi genów rodziców chA=(xA, A) i chB=(xB, B): Na przykład dla chA=(1; 3; 1,2; 2,3) i chB=(-2; 1,5; 0,7; 0,4) otrzymujemy

38 Krzyżowanie uśredniające z wagą
Krzyżowanie uśredniające z wagą. W tym przypadku średnia niekoniecznie polega na braniu po 50% wartości z każdej składowej chromosomów. Proporcja ta może być inna. Robimy to tak: wybieramy losowo liczbę a z przedziału [0, 1]. Krzyżowanie polega na zastosowaniu następujących wzorów: Zauważmy, że gdy wylosowana liczba a=1/2, to mamy zwykłe uśrednianie. Liczba a jest losowana z rozkładem jednostajnym na odcinku [0, 1], co oznacza, że każda wartość jest jednakowo prawdopodobna.

39 Mutacja w strategii (+)
Jak zawsze mutacja dokonywana jest na pojedynczym osobniku. W strategii (+) przebiega ona dwuetapowo: najpierw dokonujemy mutacji części , a następnie części x. Mutacja wektora . Nowy wektor ’=(1’,…,n’) uzyskujemy wg wzoru gdzie: jak zwykle symbol N(0,1) oznacza liczbę rzeczywistą wylosowaną zgodnie ze standardowym rozkładem normalnym (wartość oczekiwana 0; odchylenie standardowe 1). Inaczej mówiąc, wzór powyższy należy rozumieć tak: losujemy liczby a, b1,…bnR zgodnie z rozkładem normalnym N(0,1), a następnie obliczamy

40 Teraz możemy już dokonać mutacji wektora x
Teraz możemy już dokonać mutacji wektora x. Dokonujemy tego wg analogicznych wzorów jak w przypadku strategii (1+1). Mianowicie gdzie, jak poprzednio, Ni(0,1) jest liczbą losową z rozkładu normalnego standardowego. Zatem losujemy liczby a1,…,an wg rozkładu normalnego N(0,1), a następnie podstawiamy

41 Zadanie Dokonać optymalizacji (maksimum) funkcji przy ograniczeniach Zadanie Znaleźć minimum dla następującej funkcji testowej na zbiorze


Pobierz ppt "Systemy Wspomagania Decyzji"

Podobne prezentacje


Reklamy Google