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ć:
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
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.
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.
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];
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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).
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.
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.
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
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
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
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
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.
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”.
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.
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.
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.
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.
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.
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.
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.
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.
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
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))
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))
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.
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.
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.
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
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)
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)
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.
Techniki ewolucyjne - algorytm genetyczny i nie tylko
Metody selekcji
Rys. 6. Zasada ruletki
Rys. 7. Podział ze względu na przystosowanie osobnika
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ą.
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.
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.
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%
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%
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
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ć.
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ć.
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ć.
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ć.
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
Techniki ewolucyjne - algorytm genetyczny i nie tylko
Projekt
Rys.9. Badana funkcja nr 2