• Nie Znaleziono Wyników

Techniki ewolucyjne - algorytm genetyczny i nie tylko

N/A
N/A
Protected

Academic year: 2021

Share "Techniki ewolucyjne - algorytm genetyczny i nie tylko"

Copied!
56
0
0

Pełen tekst

(1)

Reprezentacja binarna

W reprezentacji binarnej wybór populacji początkowej tworzymy poprzez tablice genotypów (rys.1.), dla osobników o zadanej przez użytkownika wielkości i danej długości genotypów wypełniamy ją losowo liczbami binarnymi, z tak przygotowanej tablicy losujemy z rozkładem

równomiernym - jest to losowanie za pomocą ruletki, czyli każda liczba z danego przedziału ma równą szansę na wylosowanie, pozycje z tablicy i przyporządkowujemy wylosowane genotypy do poszczególnych osobników.

Liczbę osobników tworzących populacje podaje użytkownik. Algorytm tworzenia genotypu ustawia się na pozycji w chromosomie odpowiadającej 1 genowi, po czym generator liczb pseudolosowych (zaimplementowany w języku programowania) losuje liczbę całkowitą z zakresu 0 .. 1 i wstawia ją na to miejsce. Po wstawieniu algorytm przestawia się na następną allelę (pozycję w genie) i powtarza losowanie oraz wstawianie wartości.

Cykl ten jest kontynuowany aż do osiągnięcia końca bieżącego genotypu.

W tym momencie stworzony jest osobnik. Zakładając, że długość genotypu L (genotyp) będzie wynosiła 8, genotyp może mieć np. postać:

(2)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Reprezentacja binarna

Rys.1 Genotyp

Natomiast, jeśli dziedzina zmienności funkcji przystosowania wynosi z=2 np [-1,1] to, aby uzyskać odpowiednią dokładność, długość dziedziny na z

* 1000000 równych podprzedziałów. Oznacza to, że chromosom musi mieć długość 21 bitów, gdyż:

1048576=220< 2000000 ¬ 2097152=221

(3)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Reprezentacja binarna

Często w reprezentacjach binarnych stosuje się schematy lub inaczej wzorce podobieństwa genotypów w celu korzystniejszego kierunku procesu przeszukiwań przestrzeni. Mając lepiej przystosowany ciąg mamy większe prawdopodobieństwo reprodukcji. Jednak reprodukcja sama przez się nie wprowadza żadnych nowych elementów, więc operacje genetyczne wprowadzają nowe osobniki, lecz nie mogą zniszczyć struktury schematu.

reprezentacji binarnej w przestrzeni przeszukiwań w wielu przypadkach stosuje się kodowanie Graya (TAB.). W reprezentacji binarnej punkty leżące blisko siebie są zazwyczaj definiowane jako liczba pozycji o różnych bitach, co prowadzi do fikcyjnych punktów leżących blisko siebie w przestrzeni reprezentacji do przestrzeni zadań i vice - versa.

(4)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Reprezentacja binarna

Często w reprezentacjach binarnych stosuje się schematy lub inaczej wzorce podobieństwa genotypów w celu korzystniejszego kierunku procesu przeszukiwań przestrzeni. Mając lepiej przystosowany ciąg mamy większe prawdopodobieństwo reprodukcji. Jednak reprodukcja sama przez się nie wprowadza żadnych nowych elementów, więc operacje genetyczne wprowadzają nowe osobniki, lecz nie mogą zniszczyć struktury schematu.

Kodowanie Graya

Aby efektywnie zwiększyć dokładność kodowanie chromosomów w reprezentacji binarnej w przestrzeni przeszukiwań w wielu przypadkach stosuje się kodowanie Graya (TAB.). W reprezentacji binarnej punkty leżące blisko siebie są zazwyczaj definiowane jako liczba pozycji o różnych bitach, co prowadzi do fikcyjnych punktów leżących blisko siebie w przestrzeni reprezentacji do przestrzeni zadań i vice - versa.

(5)

Kodowanie Graya

Rys. 2. Kodowanie Graya

Pseudokod kodowania Graya:

gray[0]:=bin[0];

for i:=1 to n-1 do

gray[i] = bin[i-1] ⊕ bin[i];

(6)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Kodowanie Graya

Na podstawie powyższej tabeli reprezentacja w czterobitowym kodzie Graya ma tę własność, że dowolne dwa punkty leżące obok siebie śąsiednie”w przestrzeni zadania różnią się tylko jednym bitem, czyli ich odległość Hamminga wynosi 1. Ta własność sąsiadowania jest ogólną cechą kodów Graya.

Kodowanie Graya eliminuje klify Hamminga w kodowaniu binarnym zmieniając wartość bitu w wektorze binarnym, które zdarzają się wtedy, gdy dwie kolejne liczby wzajemnie się uzupełniają w reprezentacji binarnej. Przykładem takim może być liczba 7 i 8 w zapisie dwójkowym, gdzie obie te liczby sąsiednie uzupełniają się 0111 i 1000 na skutek mutacji.

(7)

Kodowanie Graya

Na podstawie powyższej tabeli reprezentacja w czterobitowym kodzie Graya ma tę własność, że dowolne dwa punkty leżące obok siebie śąsiednie”w przestrzeni zadania różnią się tylko jednym bitem, czyli ich odległość Hamminga wynosi 1. Ta własność sąsiadowania jest ogólną cechą kodów Graya.

Kodowanie Graya eliminuje klify Hamminga w kodowaniu binarnym zmieniając wartość bitu w wektorze binarnym, które zdarzają się wtedy, gdy dwie kolejne liczby wzajemnie się uzupełniają w reprezentacji binarnej. Przykładem takim może być liczba 7 i 8 w zapisie dwójkowym, gdzie obie te liczby sąsiednie uzupełniają się 0111 i 1000 na skutek mutacji.

(8)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Reprezentacja zmiennopozycyjna

W wersji zmiennopozycyjnej genotyp ma postać (x)=x’=(x1 ,...,xn), xi R. Przy takiej reprezentacji każdy wektor chromosomu zakodowano jako wektor liczb zmiennopozycyjnych o tej samej długości jak wektor rozwiązania. Dokładność takiego kodowania zależy od używanego komputera, ale zazwyczaj jest znacznie wyższa niż przy reprezentacji binarnej.

Łańcuch binarny ¡z20, z19, z18. . . z0¿ przekształcamy w liczbę rzeczywistą x z zakresu [-1,1] według wzoru:

(< z20, z19, z18. . . z0>)2=

20 P

i =0

zi2i



10

= x0 Zatem:

x = -1,0 + 2 x’/(221 - 1), gdzie -1,0 jest lewą granicą dziedziny, a 2 (do odp. pot.) jest długością przedziału.

(9)

Reprezentacja zmiennopozycyjna

W wersji zmiennopozycyjnej genotyp ma postać (x)=x’=(x1 ,...,xn), xi R. Przy takiej reprezentacji każdy wektor chromosomu zakodowano jako wektor liczb zmiennopozycyjnych o tej samej długości jak wektor rozwiązania. Dokładność takiego kodowania zależy od używanego komputera, ale zazwyczaj jest znacznie wyższa niż przy reprezentacji binarnej.

Łańcuch binarny ¡z20, z19, z18. . . z0¿ przekształcamy w liczbę rzeczywistą x z zakresu [-1,1] według wzoru:

(< z20, z19, z18. . . z0>)2=

20 P

i =0

zi2i



10

= x0 Zatem:

x = -1,0 + 2 x’/(221 - 1), gdzie -1,0 jest lewą granicą dziedziny, a 2 (do odp. pot.) jest długością przedziału.

(10)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Reprezentacja zmiennopozycyjna Przykładowo chromosom :

z = 100010111011010100011 przekształcamy następująco:

x’ = (100010111011010100011)2= 1144483

zatem:

x = -1,0 + 1144483 •20971522 = 0,091464

Dodatkowo reprezentacja zmiennopozycyjna może objąć całkiem duże dziedziny. Natomiast przy reprezentacji binarnej jesteśmy zmuszeni zrezygnować z dokładności ze wzrostem wymiaru dziedziny, przy ustalonej liczbie bitów. Oczywiście zawsze można zwiększyć dokładność reprezentacji binarnej, wprowadzając większą liczbę bitów, ale zwalnia to znacznie działanie algorytmu.

(11)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Reprezentacja zmiennopozycyjna Przykładowo chromosom :

z = 100010111011010100011 przekształcamy następująco:

x’ = (100010111011010100011)2= 1144483 zatem:

x = -1,0 + 1144483 •20971522 = 0,091464

zrezygnować z dokładności ze wzrostem wymiaru dziedziny, przy ustalonej liczbie bitów. Oczywiście zawsze można zwiększyć dokładność reprezentacji binarnej, wprowadzając większą liczbę bitów, ale zwalnia to znacznie działanie algorytmu.

(12)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Reprezentacja zmiennopozycyjna Przykładowo chromosom :

z = 100010111011010100011 przekształcamy następująco:

x’ = (100010111011010100011)2= 1144483 zatem:

x = -1,0 + 1144483 •20971522 = 0,091464

Dodatkowo reprezentacja zmiennopozycyjna może objąć całkiem duże dziedziny. Natomiast przy reprezentacji binarnej jesteśmy zmuszeni zrezygnować z dokładności ze wzrostem wymiaru dziedziny, przy ustalonej liczbie bitów. Oczywiście zawsze można zwiększyć dokładność reprezentacji binarnej, wprowadzając większą liczbę bitów, ale zwalnia to znacznie działanie algorytmu.

(13)

Reprezentacja zmiennopozycyjna

Dla reprezentacji zmiennopozycyjnej jest także znacznie łatwiej zaprojektować specjalistyczne narzędzie ułatwiające postępowanie w przypadku nietrywialnych ograniczeń. David E. Goldberg wykazał, że reprezentacja zmiennopozycyjna jest szybsza, daje bardziej zbliżone wyniki w różnych cyklach algorytmu i prowadzi do lepszej dokładności w szczególności przy większych dziedzinach, gdzie kodowanie binarne wymaga zbyt długich reprezentacji. Jednocześnie jej działanie można poprawić wprowadzając specjalne operatory, aby uzyskać dużą dokładność - lepszą niż dla reprezentacji binarnych.

(14)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Operatory genetyczne i ocena populacji

Krzyżowanie polega na wymianie materiału genetycznego pomiędzy losowo dobranymi parami osobników wybranych podczas selekcji. W wyniku krzyżowania powstają nowe chromosomy, które wejdą w skład kolejnej populacji (pokolenia). Intuicyjnie można interpretować

krzyżowanie jako wymianę informacji genetycznej między potencjalnymi rozwiązaniami.

Operację krzyżowania wprowadził Holland w 1975 roku używając zamiennie terminów crossover i crossing over. W znaczeniu biologicznym crossing over jest procesem prowadzącym do rekombinacji genów, polegającym na wymianie odpowiadających sobie odcinków między chromatydami chromosomów homologicznych podczas mejozy. Natomiast crossover oznacza kojarzenie płciowe dwóch genetycznie różnych organizmów. Operacja krzyżowania (o. crossover) stosowana w algorytmach genetycznych jest na tyle odległa od biologicznego

pierwowzoru, że wydaje się usprawiedliwione użycie terminu krzyżowanie w rozumieniu czysto technicznym.

(15)

Operatory genetyczne i ocena populacji

Krzyżowanie polega na wymianie materiału genetycznego pomiędzy losowo dobranymi parami osobników wybranych podczas selekcji. W wyniku krzyżowania powstają nowe chromosomy, które wejdą w skład kolejnej populacji (pokolenia). Intuicyjnie można interpretować

krzyżowanie jako wymianę informacji genetycznej między potencjalnymi rozwiązaniami.

Operację krzyżowania wprowadził Holland w 1975 roku używając zamiennie terminów crossover i crossing over. W znaczeniu biologicznym crossing over jest procesem prowadzącym do rekombinacji genów, polegającym na wymianie odpowiadających sobie odcinków między chromatydami chromosomów homologicznych podczas mejozy.

Natomiast crossover oznacza kojarzenie płciowe dwóch genetycznie różnych organizmów. Operacja krzyżowania (o. crossover) stosowana w algorytmach genetycznych jest na tyle odległa od biologicznego

pierwowzoru, że wydaje się usprawiedliwione użycie terminu krzyżowanie w rozumieniu czysto technicznym.

(16)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Operatory genetyczne i ocena populacji

W pierwszej fazie kojarzymy w sposób losowy osobniki z puli rodzicielskiej (ang. mating pool) w pary. Potem każda para przechodzi proces

krzyżowania, który zachodzi z określonym z góry prawdopodobieństwem (zazwyczaj od 0.6 do 1.0), przy czym jeśli krzyżowanie nie zajdzie potomstwo jest tworzone poprzez duplikację rodziców.

Mutacja podobnie jak krzyżowanie zapewnia dodawanie do populacji nowych osobników. Jednak w odróżnieniu od krzyżowania w przypadku mutacji modyfikowany jest jeden a nie dwa osobniki. Podobnie jak w przypadku krzyżowania istnieje tzw. współczynnik mutacji, który określa ile osobników będzie w jednej iteracji ulegało mutacji

(prawdopodobieństwo mutacji).

(17)

Operatory genetyczne i ocena populacji

W pierwszej fazie kojarzymy w sposób losowy osobniki z puli rodzicielskiej (ang. mating pool) w pary. Potem każda para przechodzi proces

krzyżowania, który zachodzi z określonym z góry prawdopodobieństwem (zazwyczaj od 0.6 do 1.0), przy czym jeśli krzyżowanie nie zajdzie potomstwo jest tworzone poprzez duplikację rodziców.

Mutacja podobnie jak krzyżowanie zapewnia dodawanie do populacji nowych osobników. Jednak w odróżnieniu od krzyżowania w przypadku mutacji modyfikowany jest jeden a nie dwa osobniki. Podobnie jak w przypadku krzyżowania istnieje tzw. współczynnik mutacji, który określa ile osobników będzie w jednej iteracji ulegało mutacji

(prawdopodobieństwo mutacji).

(18)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Operatory genetyczne i ocena populacji

W elementarnym algorytmie genetycznym mutacja polega na niewielkiej przypadkowej zmianie wartości elementu ciągu kodowego. Jest stosowana jako dodatek do reprodukcji i krzyżowania na wypadek utraty ważnych składników potencjalnego rozwiązania. W prostym algorytmie

genetycznym (SGA) odgrywa drugorzędną rolę, gdyż częstość mutacji potrzebna do uzyskania dobrych wyników jest rzędu jeden do tysiąca. W praktyce częstość mutacji jest mniejsza, co pozwala sądzić, że słusznie jest drugorzędnym mechanizmem.

Do dzisiaj jest wiele kontrowersyjnych twierdzeń na temat przewagi jednego operatora nad drugim. Znane są opinie, że krzyżowanie jest operatorem pierwszoplanowym, a mutacja ma zapewnić wprowadzenie różnorodności do populacji i jest operatorem o mniejszym znaczeniu. Z kolei znane są też opinie, że krzyżowanie jest operatorem zbędnym i mutacja jest jedynym mechanizmem przeszukiwania w przestrzeni rozwiązań. Wydaje się więc, że zależy to od rozpatrywanego problemu i doboru odpowiednich parametrów operatorów jak i sposobu kodowania.

(19)

Operatory genetyczne i ocena populacji

W elementarnym algorytmie genetycznym mutacja polega na niewielkiej przypadkowej zmianie wartości elementu ciągu kodowego. Jest stosowana jako dodatek do reprodukcji i krzyżowania na wypadek utraty ważnych składników potencjalnego rozwiązania. W prostym algorytmie

genetycznym (SGA) odgrywa drugorzędną rolę, gdyż częstość mutacji potrzebna do uzyskania dobrych wyników jest rzędu jeden do tysiąca. W praktyce częstość mutacji jest mniejsza, co pozwala sądzić, że słusznie jest drugorzędnym mechanizmem.

Do dzisiaj jest wiele kontrowersyjnych twierdzeń na temat przewagi jednego operatora nad drugim. Znane są opinie, że krzyżowanie jest operatorem pierwszoplanowym, a mutacja ma zapewnić wprowadzenie różnorodności do populacji i jest operatorem o mniejszym znaczeniu. Z kolei znane są też opinie, że krzyżowanie jest operatorem zbędnym i mutacja jest jedynym mechanizmem przeszukiwania w przestrzeni rozwiązań. Wydaje się więc, że zależy to od rozpatrywanego problemu i doboru odpowiednich parametrów operatorów jak i sposobu kodowania.

(20)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Kojarzenie w pary i krzyżowanie osobników

Do najprostszych krzyżowań należy krzyżowanie jednopunktowe, w którym losuje się punktu przecięcia chromosomu i dzieli się go na dwie części, aby później wymienić się genami między sobą. Na początku wybieramy z prawdopodobieństwem pk parę osobników do skrzyżowania X1 i X2a następnie z rozkładem jednostajnym losujemy liczbę g ze zbioru 1, . . . , n -1 , gdzie n jest długością kodu genetycznego, która będzie stanowiła punk przecięcia chromosomów. Tak podzielone chromosomy na dwie części w punkcie g dzielą się swoją informacją genetyczną łącząc się na krzyż - pierwsza część X1łączy się z drugą częścią X2i pierwsza część X2 łączy się z drugą X1.

Z =X11, ..., Xg1, Xg +12 , ..., Xn2

(21)

Schemat procedury krzyżowania jednopunktowego

Rys. Krzyżowanie jednopunktowe

Legenda:

X1, X2-osobniki rodzice X01, X20 -osobniki dzieci

Xa, Xb -kod który ulega krzyżowaniu g -losowo wybrany punkt podziału Dane:

Początkowe - Ciągi wybrane za pomocą operacji reprodukcji

Końcowe - Potomkowie

(22)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Schemat procedury krzyżowania jednopunktowego

Innym bardzo podobnym operatorem jest krzyżowanie dwupunktowe, w którym to chromosomy dzielimy na trzy części a nie na dwie części jak w przypadku krzyżowania jednopunktowego. Podobnie jak w krzyżowaniu jednopunktowym losujemy dwóch osobników X1 i X2z populacji do krzyżowania z prawdopodobieństwem pk i losujemy im punkty przecięcia g1i g2 chromosomu - wektora binarnego. Podzielone na trzy części chromosomy wymieniają się tylko środkowym fragmentem kodu genetycznego.

Z=X11, Xg11, Xg21+1, ..., Xg22, Xg12+1, ..., Xn1

(23)

Schemat procedury krzyżowania dwupunktowego

Rys. 3. Krzyżowanie dwupunktowe

Legenda:

X1, X2-osobniki rodzice X01, X20 -osobniki dzieci Xa, Xb -kod który ulega krzyżowaniu

g i g’-losowo wybrane punkty podziału

(24)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Schemat procedury krzyżowania dwupunktowego

Istnieje jeszcze kilka różnych metod krzyżowania wielopunktowego, w którym chromosom dzielimy na 3, 4 lub inne części, a wymiana

fragmentu genu jest dowolna w zależności od naszych upodobań. Oprócz tego jest jeszcze szereg innych krzyżowań i wciąż powstają nowe pomysły na zoptymalizowanie operatora krzyżowania.

W przypadku reprezentacji zmiennopozycyjnej w krzyżowaniu

arytmetycznym zamiast wymieniać geny, jak w przypadku krzyżowania binarnego uśrednia się wartości z dwóch elementów w wybranych punktach. Operator zmiennopozycyjny krzyżowania arytmetycznego ma taką własność, że każdy element nowego chromosomu pozostaje nadal w dziedzinie. Krzyżowanie arytmetyczne można stosować albo do wybranych elementów dwóch wektorów, albo do całych wektorów. Przy zbiorach nie wypukłych potomek powstaje na ”krawędzi” zbioru albo należy szukać gdzieś indziej pary do skrzyżowania lub zastosować algorytm naprawy.

(25)

Schemat procedury krzyżowania dwupunktowego

Krzyżowanie arytmetyczne działające na dwóch argumentach definiuje się jako liniową kombinację dwóch wektorów. Jeżeli w takim krzyżowaniu mają być brane pod uwagę para rodziców x1ix2to potomkowie ich mają postać:

x10 = ax1+ (1 − a)x2 , x20 = ax2+ (1 − a)x2 W operatorze tym używa się losowej wartości a∈[0,1], co zawsze gwarantuje, że są to punkty dopuszczalne, czyli należące do dziedziny przeszukiwanej przestrzeni zadania. Jeśli a=12, to takie krzyżowanie nosi nazwę gwarantowanego średniego krzyżowania, o którym szerzej w pracy Davisa L. ”Adapting Operator Probabilities in Genetic Algoritms”.

Trzecią metodą krzyżowania dla liczb zmiennopozycyjnych, którą warto przedstawić jest krzyżowanie heurystyczne, o której szerzej z kolei w pracy Wrighta A. H. ” Genetic Algorithms for Real Parameter

Optimization”.

(26)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Schemat procedury krzyżowania dwupunktowego

Do określenia kierunku poszukiwań operator ten używa wartości funkcji celu, tworzy tylko jednego potomka i może on w ogóle nie utworzyć potomka. Operator ten tworzy jednego potomka z3 z dwojga rodziców z1

i z2według wzoru:

z3= r (z2 - z1) + z2

gdzie r jest liczbą losową leżącą między 0 a 1, zaś rodzic z2nie jest gorszy od z1, to znaczy f (z2) ­ f (z1) dla maksymalizacji i f (z2) ¬ f (z1) dla zadania minimalizacji. Jeśli operator utworzy potomka, który jest niedopuszczalny, to w takim przypadku generuje inną wartość losową r i tworzy innego potomka. Jednak, gdy po q próbach operator nie jest w stanie utworzyć osobnika dopuszczalnego, to nie dochodzi do utworzenia nowego potomka. Operator ten jest bardzo silnym narzędziem, gdyż znakomicie obsadza osobników w optimum lokalnym i przeszukuje przestrzeń rozwiązań w obiecujących kierunkach. Oczywiście istnieje jeszcze szereg innych rodzajów i podejść do operatorów krzyżowania dla kodowania rzeczywistego - zmiennopozycyjnego.

(27)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Operatory mutacji

W przypadku mutacji w reprezentacji binarnej sprawa jest bardzo prosta wystarczy np. zanegować jeden bit w rozwiązaniu, aby otrzymać zupełnie nowego osobnika. Oczywiście mutacja może być bardziej urozmaicona (negacja losowej liczby bitów, odwracanie kolejności losowej liczby bitów, przesunięcie losowej liczby bitów i inne.). Należy jednak pamiętać, że operować ona może tylko na jednym rozwiązaniu. Mutowanie polega na negacji jednego z genów danego osobnika. Proces mutowania bieżącej populacji polega na:

mutowania.

Wybór osobnika odbywa się w następujący sposób: Pobieramy 1 osobnika bieżącej populacji, po czym losujemy progowo bez zwracania sprawdzając, czy osobnik może być zmutowany. Jeżeli tak, to losujemy z rozkładem

równomiernym q, wartość losową z przedziału: < left(gen), right(gen) >; - długość genu, określający gen poddania negacji. Po zmutowaniu pobieramy następnego osobnika i sprawdzamy, czy może on być zmutowany i powtarzamy ten cykl aż do wyczerpania osobników do mutowania.

(28)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Operatory mutacji

W przypadku mutacji w reprezentacji binarnej sprawa jest bardzo prosta wystarczy np. zanegować jeden bit w rozwiązaniu, aby otrzymać zupełnie nowego osobnika. Oczywiście mutacja może być bardziej urozmaicona (negacja losowej liczby bitów, odwracanie kolejności losowej liczby bitów, przesunięcie losowej liczby bitów i inne.). Należy jednak pamiętać, że operować ona może tylko na jednym rozwiązaniu. Mutowanie polega na negacji jednego z genów danego osobnika. Proces mutowania bieżącej populacji polega na:

wyborze osobników, których należy zmutować,

przeprowadzaniu po kolei na każdym wybranym osobniku operacji mutowania.

Wybór osobnika odbywa się w następujący sposób: Pobieramy 1 osobnika bieżącej populacji, po czym losujemy progowo bez zwracania sprawdzając, czy osobnik może być zmutowany. Jeżeli tak, to losujemy z rozkładem

równomiernym q, wartość losową z przedziału: < left(gen), right(gen) >; - długość genu, określający gen poddania negacji. Po zmutowaniu pobieramy następnego osobnika i sprawdzamy, czy może on być zmutowany i powtarzamy ten cykl aż do wyczerpania osobników do mutowania.

(29)

Operatory mutacji

W przypadku mutacji w reprezentacji binarnej sprawa jest bardzo prosta wystarczy np. zanegować jeden bit w rozwiązaniu, aby otrzymać zupełnie nowego osobnika. Oczywiście mutacja może być bardziej urozmaicona (negacja losowej liczby bitów, odwracanie kolejności losowej liczby bitów, przesunięcie losowej liczby bitów i inne.). Należy jednak pamiętać, że operować ona może tylko na jednym rozwiązaniu. Mutowanie polega na negacji jednego z genów danego osobnika. Proces mutowania bieżącej populacji polega na:

wyborze osobników, których należy zmutować,

przeprowadzaniu po kolei na każdym wybranym osobniku operacji mutowania.

Wybór osobnika odbywa się w następujący sposób: Pobieramy 1 osobnika bieżącej populacji, po czym losujemy progowo bez zwracania sprawdzając, czy osobnik może być zmutowany. Jeżeli tak, to losujemy z rozkładem

równomiernym q, wartość losową z przedziału: < left(gen), right(gen) >; - długość genu, określający gen poddania negacji. Po zmutowaniu pobieramy następnego osobnika i sprawdzamy, czy może on być zmutowany i powtarzamy ten cykl aż do wyczerpania osobników do mutowania.

(30)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Schemat procedury krzyżowania dwupunktowego

Rys. 4. Mutacja jednopunktowa

W mutacji wielopunktowej stworzenie nowego chromosomu odbywa się za pomocą wygenerowania maski, która określa, które pozycje bitu zamienić. Działanie maski mutacji powoduje inwersję bitów kodu x na pozycjach, na których występują jedynki w kodzie maski i. Maska mutacji i = (a0, a1, . . . , al −1) losowana jest niezależnie dla każdej operacji, bez względu na wartość x, przy czym prawdopodobieństwo wylosowania jedynki jest stałe, równe prawdopodobieństwu mutacji pm.

(31)

Schemat procedury krzyżowania dwupunktowego

Rys. 4. Mutacja jednopunktowa

W mutacji wielopunktowej stworzenie nowego chromosomu odbywa się za pomocą wygenerowania maski, która określa, które pozycje bitu zamienić.

Działanie maski mutacji powoduje inwersję bitów kodu x na pozycjach, na których występują jedynki w kodzie maski i. Maska mutacji i = (a0, a1, . . . , al −1) losowana jest niezależnie dla każdej operacji, bez względu na wartość x, przy czym prawdopodobieństwo wylosowania jedynki jest stałe, równe prawdopodobieństwu mutacji pm.

(32)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Schemat mutacji wielopunktowej

Rys. 5. Mutacja wielopunktowa

Istnieje jeszcze wiele innych metod mutacji binarnych takich jak np.: mutacja brzegowa podobna do równomiernej lub mutacja

nierównomierna. W przypadku zmiennopozycyjnej (rzeczywistej) reprezentacji mutacja może polegać np. na wpisaniu do losowego pola struktury losowej wartości, która jest zgodna z cechami osobnika.

(33)

Schemat mutacji wielopunktowej

Rys. 5. Mutacja wielopunktowa

Istnieje jeszcze wiele innych metod mutacji binarnych takich jak np.:

mutacja brzegowa podobna do równomiernej lub mutacja nierównomierna. W przypadku zmiennopozycyjnej (rzeczywistej) reprezentacji mutacja może polegać np. na wpisaniu do losowego pola struktury losowej wartości, która jest zgodna z cechami osobnika.

(34)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Schemat mutacji wielopunktowej

Dla każdego chromosomu generujemy liczbę losową q z zakresu [0,1].

Jeżeli q < prawdopodobieństwo mutacji to wybieramy chromosom do mutowania. Mutację dokonuje się poprzez dodanie wektora x’= x + m, gdzie:

m ∈ Rn m = (m1,...,mn).

Liczba mi jest losowana niezależnie dla i=1,...,n z rozkładem N(0,?), o N-wymiarowym rozkładzie normalnym i wartości oczekiwanej 0.

Rys. Wektor mutacji

(35)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Schemat mutacji wielopunktowej

Musimy pamiętać o tym, aby nie wypaść poza zbiór dopuszczalny.

Jeśli taka sytuacja się zdarzy to możemy zastosować mutację brzegową tzn. przyjąć punkt przecięcia wektora z końcowym obszarem zbioru dopuszczalnego jako rozwiązanie. Mutacja brzegowa prowadzi do zbieżności populacji, co w niektórych rozpatrywanych problemach jest korzystne.

Rolą mutacji jest nie tyle zmiana jakościowa chromosomów, co wprowadzenie nowego materiału genetycznego do danej populacji.

zależności od rodzaju problemu różne są funkcje sprawdzające przystosowanie osobników. W przypadku problemu

f(xi)=eval(code(xi))

(36)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Schemat mutacji wielopunktowej

Musimy pamiętać o tym, aby nie wypaść poza zbiór dopuszczalny.

Jeśli taka sytuacja się zdarzy to możemy zastosować mutację brzegową tzn. przyjąć punkt przecięcia wektora z końcowym obszarem zbioru dopuszczalnego jako rozwiązanie. Mutacja brzegowa prowadzi do zbieżności populacji, co w niektórych rozpatrywanych problemach jest korzystne.

Rolą mutacji jest nie tyle zmiana jakościowa chromosomów, co wprowadzenie nowego materiału genetycznego do danej populacji.

Ocena osobnika i funkcja przystosowania

Ocena osobnika to badanie dobroci poszczególnych osobników. W zależności od rodzaju problemu różne są funkcje sprawdzające przystosowanie osobników. W przypadku problemu

f(xi)=eval(code(xi))

(37)

Ocena osobnika i funkcja przystosowania

znajdowania ekstremum funkcji dobrocią jest po prostu wartość funkcji w zadanym x. W przypadku rozwiązywania problemu komiwojażera jest to długość trasy, jaka jest reprezentowana przez danego osobnika. W czasie obliczania funkcji przystosowania ze zbioru osobników wydzielane są genotypy, które później są dekodowane a wartości, czyli fenotypy są przypisywane dla każdego osobnika. Dla każdego fenotypu wyliczana jest wartość funkcji przystosowania (ang. fitness) i przypisywana dla każdego osobnika. Otrzymany wynik powinien być proporcjonalny do użyteczności lub zdolności osobnika reprezentowanego przez ten chromosom. W metodach obliczeń ewolucyjnych funkcja oceny jest jedynym połączeniem zadania z algorytmem. Funkcja oceny szereguje osobników w populacji.

Lepsze osobniki mają większe szanse przeżycia i reprodukcji. Dlatego podstawową rzeczą jest określenie funkcji oceny, która charakteryzuje zadanie w doskonały sposób.

(38)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Ocena osobnika i funkcja przystosowania

Wraz ze wzrostem wymiarowości zadania zwiększa się stopień komplikacji rozwiązywanego problemu. Podwajają się automatycznie liczby różnych wartości w algorytmie genetycznym a nawet w niektórych przypadkach dochodzi do zaniku minimów lokalnych wraz z rosnącą liczbą wymiarów.

Intuicyjnie funkcja przystosowania, nazywana funkcją celu lub przez biologów - przystosowania do środowiska, stanowi pewien miernik zysku użyteczności lub innej wielkości, którą chcielibyśmy z maksymalizować. W przyrodzie przystosowanie, czyli potomstwo, które dorasta do poziomu reprodukcyjnego, jest ostatecznym i jedynym kryterium życia.

(39)

Metody selekcji

Krok ten jest esencją całej genetyki. W tym miejscu tworzona jest nowa populacja na podstawie już istniejącej. W zależności od wartości funkcji oceny (obliczanej w poprzednim kroku) dany osobnik ma większe, (gdy jest ’dobry’) lub mniejsze, (gdy jest ’słaby’) szanse na znalezienie się w kolejnym pokoleniu. Zadaniem reprodukcji jest wybranie rodziców dla operacji genetycznych prowadzących do utworzenia populacji potomnej Ot.

Operację selekcji można zrealizować na wiele sposobów. Jednym z najprostszych jest symulacja odpowiednio wykalibrowanej tarczy obrotowej rys. 7, każdemu ciągowi kodowemu (chromosomowi)

odpowiada sektor o rozmiarze proporcjonalnym do przystosowania. tzw.

ruletki.

(40)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Metody selekcji

Koło ruletki polega na n krotnym losowaniu (n - liczba osobników w populacji) ze starej populacji osobników, które zostaną przepisane do nowej populacji. Oczywiście wszystkie osobniki mają różne

prawdopodobieństwa wylosowania. Prawdopodobieństwo to jest liczone z następującego wzoru:

Wartosc przystosowania danego osobnika suma wartosci przystosowania wszystkich osobnikow

Powyższy wzór jest poprawny tylko wtedy, gdy maksymalizujemy funkcję oceny. Gdybyśmy ją minimalizowali można zastosować następujący wzór:

Wartosc najgorszego osobnika−Wartosc danego osobnika+1 suma wartosci wszystkich osobnikow +1

Wzór ten odwraca minimalizację na maksymalizację. Mamy trzy osobniki o następujących wartościach przystosowania dla maksymalizacji: 5 , 1 , 2

(41)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Odpowiadające im wartości prawdopodobieństwa są zatem równe:

Pierwszy Drugi Trzeci

osobnik:

osobnik:

osobnik:

5/8 1/8 2/8

czyli czyli czyli

62,5%

12,5%

25%

1.Dla każdego ciągu kodowego obliczyć wartość przystosowania eval(vi) , vi (i = 1, ..., rozmiar populacji),

2. Obliczyć całkowite przystosowanie populacji F (suma po wszystkich wartościach funkcji przystosowania) ,

F=

rozm pop

P

i =1

eval (vi)

pi =eval (vF i)

(42)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Odpowiadające im wartości prawdopodobieństwa są zatem równe:

Pierwszy Drugi Trzeci

osobnik:

osobnik:

osobnik:

5/8 1/8 2/8

czyli czyli czyli

62,5%

12,5%

25%

Metody selekcji

Przykładowy algorytm selekcji:

1.Dla każdego ciągu kodowego obliczyć wartość przystosowania eval(vi) , vi (i = 1, ..., rozmiar populacji),

2. Obliczyć całkowite przystosowanie populacji F (suma po wszystkich wartościach funkcji przystosowania) ,

F=

rozm pop

P

i =1

eval (vi)

pi =eval (vF i)

(43)

Metody selekcji

3. Obliczyć prawdopodobieństwo selekcji pi każdego chromosomu vi

4. Obliczyć dystrybuantę qi dla każdego chromosomu vi . qi =

i

P

j =1

pi

Ciągi kodowe losujemy w następujący sposób (Obrót ruletką):

1. Wygeneruj r z przedziału [0..1]

2. Jeśli r < q1, to wybieramy chromosom v1, gdy qi −1< r ¬ qi wybieramy v1 (2 ¬ i ¬ rozmiar populacji).

Weźmy dowolne 4 ciągi 5-bitowe (rys. poniżej). Niech każdy z nich reprezentuje liczbę całkowitą zapisaną w systemie dwójkowym, natomiast funkcja celu niech będzie kwadratem liczby reprezentowanej przez chromosom.

(44)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Metody selekcji

Rys. 6. Zasada ruletki

Rys. 7. Podział ze względu na przystosowanie osobnika

(45)

Metody selekcji

Reprodukcji dokonujemy czterokrotnie uruchamiając ruletkę. W naszym przykładzie chromosom nr 1 ma wskaźnik przystosowania 169, co odpowiada 14,4% sumarycznej wartości. Na ciąg ten przypada zatem 14,4% obwodu koła, tak więc w każdej próbie prawdopodobieństwo otrzymania ciągu nr 1 wynosi 0,144. Za każdym razem, gdy jest potrzebny nowy potomek, uruchamiamy ruletkę wybierając jednego z kandydatów do reprodukcji. Dokonujemy tego w następujący sposób:

losujemy liczbę z przedziału [0 ; 1], zaś chromosomom przypisujemy określone rozłączne podprzedziały tego przedziału (np. ciąg nr 1 - (0 ; 0,144), ciąg nr 2 - (0,144 ; 0,636), gdzie 0,636 = 0,144 + 49,2 itd.).

Dzięki temu lepiej przystosowane ciągi kodowe wprowadzają większą liczbę potomków do następnego pokolenia. Proces ten jest kontynuowany dopóki, dopóty wszystkie miejsca w nowej populacji nie zostaną

zapełnione. Oczywiście pewne chromosomy będą wybrane więcej niż raz.

Jest to zgodne z twierdzeniem o schematach, które mówi, że z

najlepszych chromosomów powstaje więcej kopii, ze średnich tyle samo , a najgorsze wymierają.

(46)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Metody selekcji

Istnieje kilka sposobów obliczania ’szansy’ poszczególnych osobników.

Selekcja metodą rankingu linowego jest bardzo podobna do selekcji metodą koła ruletki.

F=

rozm pop

P

i =1

eval (vi)

Modyfikacja polega jedynie na zmianie funkcji określającej

prawdopodobieństwo wyboru danego osobnika. Przed przystąpieniem do tej selekcji należy nadać każdemu z osobników pewną wartość

(przystosowanie) zależną od jego położenia na liście posortowanej względem wartości funkcji oceny. Jeśli chcemy maksymalizować to wartości powinny być posortowane rosnąco, w przypadku minimalizacji wartości powinny być posortowane malejąco.

(47)

Metody selekcji

Istnieje kilka sposobów obliczania ’szansy’ poszczególnych osobników.

Selekcja metodą rankingu linowego jest bardzo podobna do selekcji metodą koła ruletki.

F=

rozm pop

P

i =1

eval (vi)

Modyfikacja polega jedynie na zmianie funkcji określającej

prawdopodobieństwo wyboru danego osobnika. Przed przystąpieniem do tej selekcji należy nadać każdemu z osobników pewną wartość

(przystosowanie) zależną od jego położenia na liście posortowanej względem wartości funkcji oceny. Jeśli chcemy maksymalizować to wartości powinny być posortowane rosnąco, w przypadku minimalizacji wartości powinny być posortowane malejąco.

(48)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Metody selekcji

Aby obliczyć prawdopodobieństwo wybrania każdego osobnika można skorzystać ze wzoru:

Prawdopodobienstwo = przystosowanie

suma przystosowania wszystkich osobnikow

pi = eval (vF i)

Mając takie osobniki: 5, 1, 2 wartości prawdopodobieństw wyglądałyby następująco:

Pierwszy Drugi Trzeci

osobnik: osobnik: osobnik:

3/6 1/6 2/6

czyli czyli czyli

50% 16,7% 33,3%

(49)

Metody selekcji

Aby obliczyć prawdopodobieństwo wybrania każdego osobnika można skorzystać ze wzoru:

Prawdopodobienstwo = przystosowanie

suma przystosowania wszystkich osobnikow

pi = eval (vF i)

Mając takie osobniki: 5, 1, 2 wartości prawdopodobieństw wyglądałyby następująco:

Pierwszy Drugi Trzeci

osobnik:

osobnik:

osobnik:

3/6 1/6 2/6

czyli czyli czyli

50%

16,7%

33,3%

(50)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Metody selekcji

Ten sposób wyliczania prawdopodobieństw zmniejsza przewagę, jaką mają najlepsze rozwiązania, gdy ich przewaga jest bardzo duża i zwiększa przewagę, gdy jest ona bardzo mała.

Metoda turniejowa jest zupełnie różna od powyższych i polega na losowym wyborze z całej populacji kilku osobników (jest to tzw. grupa turniejowa), a później z tej grupy wybierany jest osobnik najlepiej przystosowany i on przepisywany jest do nowo tworzonej populacji.

Losowanie grup turniejowych oraz wybieranie z nich najlepszego osobnika należy powtórzyć aż do utworzenia całej nowej populacji. Selekcja metodą turniejową jest pozbawiona niedogodności metody koła ruletki, gdzie wymagana jest maksymalizacja funkcji oceny, w turnieju ważna jest jedynie informacja o łepszym”jednego rozwiązania nad innym.

Φ(Xq) ­ Φ(Y ), dla każdego Y ∈ Q

(51)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Metody selekcji gdzie:

Q - populacja wybrana z populacji potomnej do przeprowadzenia turnieju.

Xq - zwycięzca turnieju.

Proces wyboru osobników do populacji Q może być realizowany dwoma sposobami:

Losowanie osobnika do turnieju ze zwracaniem jest mniej restrykcyjne, ponieważ pozwala na reprodukcję dowolnego osobnika z niezerowym prawdopodobieństwem. Natomiast losowanie bez zwracania najgorszych osobników nie będzie w ogóle reprodukować.

(52)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Metody selekcji gdzie:

Q - populacja wybrana z populacji potomnej do przeprowadzenia turnieju.

Xq - zwycięzca turnieju.

Proces wyboru osobników do populacji Q może być realizowany dwoma sposobami:

w losowaniu bez zwracania

w losowaniu ze zwracaniem.

Losowanie osobnika do turnieju ze zwracaniem jest mniej restrykcyjne, ponieważ pozwala na reprodukcję dowolnego osobnika z niezerowym prawdopodobieństwem. Natomiast losowanie bez zwracania najgorszych osobników nie będzie w ogóle reprodukować.

(53)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Metody selekcji gdzie:

Q - populacja wybrana z populacji potomnej do przeprowadzenia turnieju.

Xq - zwycięzca turnieju.

Proces wyboru osobników do populacji Q może być realizowany dwoma sposobami:

w losowaniu bez zwracania w losowaniu ze zwracaniem.

prawdopodobieństwem. Natomiast losowanie bez zwracania najgorszych osobników nie będzie w ogóle reprodukować.

(54)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Metody selekcji gdzie:

Q - populacja wybrana z populacji potomnej do przeprowadzenia turnieju.

Xq - zwycięzca turnieju.

Proces wyboru osobników do populacji Q może być realizowany dwoma sposobami:

w losowaniu bez zwracania w losowaniu ze zwracaniem.

Losowanie osobnika do turnieju ze zwracaniem jest mniej restrykcyjne, ponieważ pozwala na reprodukcję dowolnego osobnika z niezerowym prawdopodobieństwem. Natomiast losowanie bez zwracania najgorszych osobników nie będzie w ogóle reprodukować.

(55)

Projekt

Celem projektu jest przebadanie stopnia przydatności algorytmów ewolucyjnych do znajdowania optimów lokalnych i globalnych funkcji dwóch zmiennych.

Rys.9. Badana funkcja nr 1

(56)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Projekt

Rys.9. Badana funkcja nr 2

Cytaty

Powiązane dokumenty

Głosowanie jest jawne, a każdy mieszkaniec biorący udział w głosowaniu oświadcza, że dane, które zostały zawarte na formularzu do głosowania, są zgodne ze stanem

Po pierwsze, gdy powołujemy monografię, podajemy pierwszą literę imienia i nazwisko Autora, następnie kursywą zapisujemy tytuł, kolejno podajemy wydawnictwo, dalej

Bo przecież trudno zrozumieć czło­ wieka, którego największym pragnieniem je st ukształtowanie swo­ jej osoby w „istotę ludzką w ogóle”, żyjącą wśród

Zgodnie ze schematem blokowym algorytmu genetycznego na- stępuje teraz powrót do kroku 2, czyli ocenia się przystosowanie chromosomów z nowej populacji, która staje się

algorytm genetyczny z elementami symulowanego wyŜarzania. Dalszy układ pracy jest następujący. W rozdziale drugim podaję sformułowanie matematyczne rozwaŜanego problemu

Omdat de huishoudens uit Delft door het afgesloten convenant eigen- lijk beschouwd kunnen worden als lokale woningzoekenden, kunnen we stellen dat maar zes

Każdy osobnik opisany jest przez liczbę bitów (chromosomów) równą LBnP * liczba parametrów (tutaj 2).. Wartość każdego bitu dobierana

W teorii złożoności obliczeniowej problem NP-trudny (NPH) to taki problem obliczeniowy, którego rozwiązanie jest co najmniej tak trudne jak rozwiązanie każdego problemu z