Techniki ewolucyjne - algorytm genetyczny i nie tylko

Podobne dokumenty
Algorytm genetyczny (genetic algorithm)-

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA OPERATOR KRZYŻOWANIA ETAPY KRZYŻOWANIA

Algorytmy genetyczne

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

Algorytm Genetyczny. zastosowanie do procesów rozmieszczenia stacji raportujących w sieciach komórkowych

Algorytmy ewolucyjne - algorytmy genetyczne. I. Karcz-Dulęba

Algorytmy genetyczne. Paweł Cieśla. 8 stycznia 2009

Algorytmy ewolucyjne. Łukasz Przybyłek Studenckie Koło Naukowe BRAINS

Algorytmy ewolucyjne NAZEWNICTWO

Algorytmy genetyczne. Dariusz Banasiak. Katedra Informatyki Technicznej Wydział Elektroniki

Algorytmy genetyczne w optymalizacji

Algorytmy genetyczne. Materiały do laboratorium PSI. Studia niestacjonarne

Zadanie 5 - Algorytmy genetyczne (optymalizacja)

ALGORYTMY GENETYCZNE ćwiczenia

6. Klasyczny algorytm genetyczny. 1

Algorytmy genetyczne

LABORATORIUM 4: Algorytmy ewolucyjne cz. 2 wpływ operatorów krzyżowania i mutacji na skuteczność poszukiwań AE

Obliczenia ewolucyjne - plan wykładu

Algorytmy genetyczne. Materiały do laboratorium PSI. Studia stacjonarne i niestacjonarne

Strategie ewolucyjne (ang. evolu4on strategies)

Algorytmy genetyczne

Algorytmy stochastyczne, wykład 01 Podstawowy algorytm genetyczny

Metody Rozmyte i Algorytmy Ewolucyjne

METODY HEURYSTYCZNE wykład 3

Techniki optymalizacji

Inspiracje soft computing. Soft computing. Terminy genetyczne i ich odpowiedniki w algorytmach genetycznych. Elementarny algorytm genetyczny

Katedra Informatyki Stosowanej. Algorytmy ewolucyjne. Inteligencja obliczeniowa

Algorytmy genetyczne (AG)

Algorytmy stochastyczne, wykład 02 Algorytmy genetyczne

Standardowy algorytm genetyczny

ALGORYTMY GENETYCZNE

Algorytmy genetyczne

Strategie ewolucyjne. Gnypowicz Damian Staniszczak Łukasz Woźniak Marek

METODY HEURYSTYCZNE wykład 3

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA HISTORIA NA CZYM BAZUJĄ AG

Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego

Algorytmy ewolucyjne. wprowadzenie

Metody przeszukiwania

Algorytmy memetyczne (hybrydowe algorytmy ewolucyjne)

Modyfikacje i ulepszenia standardowego algorytmu genetycznego

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA ZADANIE KOMIWOJAŻERA METODY ROZWIĄZYWANIA. Specyfika zadania komiwojażera Reprezentacje Operatory

Algorytmy ewolucyjne 1

Algorytmy genetyczne w interpolacji wielomianowej

Dobór parametrów algorytmu ewolucyjnego

Aproksymacja funkcji a regresja symboliczna

Automatyczny dobór parametrów algorytmu genetycznego

ALHE Z11 Jarosław Arabas wykład 11

Algorytmy ewolucyjne Część II

Strefa pokrycia radiowego wokół stacji bazowych. Zasięg stacji bazowych Zazębianie się komórek

Algorytmy zrandomizowane

Programowanie genetyczne, gra SNAKE

Wstęp do Sztucznej Inteligencji

LABORATORIUM 3: Wpływ operatorów krzyżowania na skuteczność poszukiwań AE

Równoważność algorytmów optymalizacji

Algorytmy ewolucyjne (3)

Algorytmy ewolucyjne `

MIO - LABORATORIUM. Imię i nazwisko Rok ak. Gr. Sem. Komputer Data / EC3 VIII LAB...

Algorytmy ewolucyjne (2)

Algorytmy genetyczne Michał Bereta Paweł Jarosz (część teoretyczna)

Algorytmy i struktury danych. Wykład 4

Generowanie i optymalizacja harmonogramu za pomoca

Algorytmy genetyczne służą głównie do tego, żeby rozwiązywać zadania optymalizacji

Zadanie transportowe i problem komiwojażera. Tadeusz Trzaskalik

WAE Jarosław Arabas Pełny schemat algorytmu ewolucyjnego

Teoria algorytmów ewolucyjnych

0 + 0 = 0, = 1, = 1, = 0.

SZTUCZNA INTELIGENCJA

Systemy Inteligentnego Przetwarzania wykład 4: algorytmy genetyczne, logika rozmyta

ALGORYTMY EWOLUCYJNE. INTELIGENTNE TECHNIKI KOMPUTEROWE wykład 011. Napór selekcyjny (selektywny nacisk. Superosobniki: SELEKCJA

SZTUCZNA INTELIGENCJA

Problemy optymalizacyjne Dana jest przestrzeń X. Znaleźć x X taki, że x spełnia określone warunki. Dana jest przestrzeń X i funkcja celu f: X R.

Testy De Jonga. Problemy. 1 Optymalizacja dyskretna i ciągła

ALGORYTMY GENETYCZNE (wykład + ćwiczenia)

BIOCYBERNETYKA ALGORYTMY GENETYCZNE I METODY EWOLUCYJNE. Adrian Horzyk. Akademia Górniczo-Hutnicza

Strategie ewolucyjne (ang. evolution strategies)

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

Algorytmy sztucznej inteligencji

Zadania laboratoryjne i projektowe - wersja β

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Problemy z ograniczeniami

FOLIA POMERANAE UNIVERSITATIS TECHNOLOGIAE STETINENSIS Folia Pomer. Univ. Technol. Stetin. 2011, Oeconomica 285 (62), 45 50

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Optymalizacja ciągła

Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład Kody liniowe - kodowanie w oparciu o macierz parzystości

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.

Obliczenia Naturalne - Algorytmy genetyczne

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Kodowanie informacji. Kody liczbowe

ALGORYTMY EWOLUCYJNE W OPTYMALIZACJI JEDNOKRYTERIALNEJ

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

Podejście memetyczne do problemu DCVRP - wstępne wyniki. Adam Żychowski

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

5. Algorytm genetyczny przykład zastosowania

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Zaawansowane programowanie

Algorytmy genetyczne jako metoda wyszukiwania wzorców. Seminarium Metod Inteligencji Obliczeniowej Warszawa 26 X 2005 mgr inż.

Algorytmy genetyczne i wielomiany w zagadnieniu interpolacji

Program "FLiNN-GA" wersja 2.10.β

Zapis liczb binarnych ze znakiem

Transkrypt:

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ć:

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=2 20 < 2000000 2097152=2 21

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.

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 Pseudokod kodowania Graya: gray[0]:=bin[0]; for i:=1 to n-1 do gray[i] = bin[i-1] bin[i]; Rys. 2. Kodowanie Graya

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

Reprezentacja zmiennopozycyjna W wersji zmiennopozycyjnej genotyp ma postać (x)=x =(x1,...,x n ), x i 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.

Reprezentacja zmiennopozycyjna W wersji zmiennopozycyjnej genotyp ma postać (x)=x =(x1,...,x n ), x i 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 z 20, z 19, z 18... z 0 przekształcamy w liczbę rzeczywistą x z zakresu [-1,1] według wzoru: (< z 20, z 19, z 18... z 0 >) 2 = ( 20 ) z i 2 i = x i=0 10 Zatem: x = -1,0 + 2 x /(2 21-1), gdzie -1,0 jest lewą granicą dziedziny, a 2 (do odp. pot.) jest długością przedziału.

Reprezentacja zmiennopozycyjna Przykładowo chromosom : z = 100010111011010100011 przekształcamy następująco: x = (100010111011010100011) 2 = 1144483

Reprezentacja zmiennopozycyjna Przykładowo chromosom : z = 100010111011010100011 przekształcamy następująco: x = (100010111011010100011) 2 = 1144483 zatem: x = -1,0 + 1144483 2 2097152 = 0,091464

Reprezentacja zmiennopozycyjna Przykładowo chromosom : z = 100010111011010100011 przekształcamy następująco: x = (100010111011010100011) 2 = 1144483 zatem: x = -1,0 + 1144483 2 2097152 = 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.

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.

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

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

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.

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 p k parę osobników do skrzyżowania X 1 i X 2 a 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ęść X 1 łączy się z drugą częścią X 2 i pierwsza część X 2 łączy się z drugą X 1. Z = [ X1 1,..., X g 1, Xg+1 2,..., X ] n 2

Schemat procedury krzyżowania jednopunktowego Rys. Krzyżowanie jednopunktowe Legenda: X 1, X 2 -osobniki rodzice X 1, X 2 -osobniki dzieci X a, X b -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

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 X 1 i X 2 z populacji do krzyżowania z prawdopodobieństwem p k i losujemy im punkty przecięcia g 1 i g 2 chromosomu - wektora binarnego. Podzielone na trzy części chromosomy wymieniają się tylko środkowym fragmentem kodu genetycznego. Z= [ X1 1, X ] g 1 1, Xg 2 1+1,..., Xg 2 2, Xg 1 2+1,..., Xn 1

Schemat procedury krzyżowania dwupunktowego Legenda: X 1, X 2 -osobniki rodzice X 1, X 2 -osobniki dzieci X a, X b -kod który ulega krzyżowaniu g i g -losowo wybrane punkty podziału Rys. 3. Krzyżowanie dwupunktowe

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 x 1 ix 2 to potomkowie ich mają postać: x 1 = ax 1 + (1 a)x 2, x 2 = ax 2 + (1 a)x 2 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= 1 2, 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.

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 z 3 z dwojga rodziców z 1 i z 2 według wzoru: z 3 = r (z 2 - z 1 ) + z 2 gdzie r jest liczbą losową leżącą między 0 a 1, zaś rodzic z 2 nie jest gorszy od z 1, to znaczy f (z 2 ) f (z 1 ) dla maksymalizacji i f (z 2 ) f (z 1 ) 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.

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:

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ć,

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.

Schemat procedury krzyżowania dwupunktowego Rys. 4. Mutacja jednopunktowa

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 = (a 0, a 1,..., a l 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 p m.

Schemat mutacji wielopunktowej Rys. 5. Mutacja wielopunktowa

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 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 R n m = (m 1,...,m n ). 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

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.

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(x i )=eval(code(x i ))

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.

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 O t. 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.

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

Pierwszy Drugi Trzeci Odpowiadające im wartości prawdopodobieństwa są zatem równe: osobnik: osobnik: osobnik: 5/8 1/8 2/8 czyli czyli czyli 62,5% 12,5% 25%

Pierwszy Drugi Trzeci Odpowiadające im wartości prawdopodobieństwa są zatem równe: Metody selekcji osobnik: osobnik: osobnik: Przykładowy algorytm selekcji: 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), v i (i = 1,..., rozmiar populacji), 2. Obliczyć całkowite przystosowanie populacji F (suma po wszystkich wartościach funkcji przystosowania), rozm pop F= i=1 p i = eval(vi ) F eval(v i )

Metody selekcji 3. Obliczyć prawdopodobieństwo selekcji p i każdego chromosomu v i 4. Obliczyć dystrybuantę q i dla każdego chromosomu v i. q i = i p i j=1 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 < q 1, to wybieramy chromosom v 1, gdy q i 1 < r q i wybieramy v 1 (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.

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

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. rozm pop F= i=1 eval(v i )

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. rozm pop F= i=1 eval(v i ) 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 Aby obliczyć prawdopodobieństwo wybrania każdego osobnika można skorzystać ze wzoru: Prawdopodobienstwo = p i = eval(vi ) F przystosowanie suma przystosowania wszystkich osobnikow

Metody selekcji Aby obliczyć prawdopodobieństwo wybrania każdego osobnika można skorzystać ze wzoru: Prawdopodobienstwo = p i = eval(vi ) F przystosowanie suma przystosowania wszystkich osobnikow 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 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. Φ(X q ) Φ(Y ), dla każdego Y Q

Metody selekcji gdzie: Q - populacja wybrana z populacji potomnej do przeprowadzenia turnieju. X q - zwycięzca turnieju. Proces wyboru osobników do populacji Q może być realizowany dwoma sposobami:

Metody selekcji gdzie: Q - populacja wybrana z populacji potomnej do przeprowadzenia turnieju. X q - zwycięzca turnieju. Proces wyboru osobników do populacji Q może być realizowany dwoma sposobami: w losowaniu bez zwracania

Metody selekcji gdzie: Q - populacja wybrana z populacji potomnej do przeprowadzenia turnieju. X q - zwycięzca turnieju. Proces wyboru osobników do populacji Q może być realizowany dwoma sposobami: w losowaniu bez zwracania w losowaniu ze zwracaniem.

Metody selekcji gdzie: Q - populacja wybrana z populacji potomnej do przeprowadzenia turnieju. X q - 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

Projekt Rys.9. Badana funkcja nr 2