GeneticAlgorithm


Inteligencja obliczeniowa
Ćwiczenie nr 6
Algorytmy Genetyczne
Schemat blokowy podstawowego algorytmu genetycznego; Reprezentacja osobników
Kodowanie rozwiązań; Funkcja celu; Podstawowe operacje: selekcja, krzyżowanie, mutacja
1. Wprowadzenie
Algorytmy genetyczne są algorytmami stochastycznymi, których sposób przeszukiwania
przestrzeni potencjalnych rozwiązań naśladuje pewne procesy naturalne takie jak:
dziedziczenie genetyczne i darwinowską walkę o przeżycie. Przenośnia leżąca u podstaw
algorytmów genetycznych jest związana z ewolucją w naturze. W trakcie procesu ewolucji
każdy gatunek styka się z problemem lepszego przystosowania się do skomplikowanego i
zmiennego środowiska. Doświadczenie, jakie uzyskuje każdy osobnik zostaje wbudowane w
jego układ chromosomów.
Do opisu algorytmów genetycznych używa się słownictwa zapożyczonego z genetyki
naturalnej. Mówimy w niej o osobnikach w populacji, często osobniki nazywane są łańcuchami
lub chromosomami. Chromosomy składają się z genów uszeregowanych liniowo, a każdy gen
decyduje o dziedziczności jednej lub kilku cech.
Biologiczny odpowiednik algorytmów genetycznych można znalezć w postaci różnych
populacji żywych istot żyjących na naszej planecie i podlegających nieugiętym prawom natury
oraz dążących do przetrwania w celu przeżycia danego gatunku. Populacja znajdująca się w
algorytmie genetycznym składa się z różnego rodzaju osobników, a przeważnie każdy osobnik
jest inny. Cechy danego osobnika (jego przystosowanie do funkcji celu) zwiększają lub
zmniejszają jego szanse na przetrwanie. Identyczne odwzorowanie znajdujemy w świecie
naturalnym, gdzie również każda populacja składa się z pewnej liczby osobników, z których
każdy jest inny. Również i tutaj cechy danego osobnika składają się na jego ogólne
przystosowanie do środowiska naturalnego i powodują to, że dany osobnik ma większe lub
mniejsze szanse przeżycia. Zgodnie z prawami natury przetrwają tylko osobniki najlepiej
przystosowane. W środowisku naturalnym osobniki, które przetrwały krzyżują się ze sobą w
celu wydania nowego pokolenia. Pokolenie to jest lepiej przystosowane do środowiska poprzez
dziedziczenie cech od swoich rodziców. Identyczna sytuacja zachodzi również w algorytmach
genetycznych, gdzie ciągi (chromosomy), które są lepiej przystosowane przeżywają i wydają w
wyniku krzyżowania nowe pokolenie, będące przeważnie lepiej przystosowane na skutek
dziedziczenia cech od swoich rodziców. W środowisku naturalnym można spotkać się również z
mutacją; jest to operator genetyczny, który powoduje losową zmianę genu, przez co osobnik
albo zyskuje na wartości (jego pewna cecha ulega polepszeniu) i staje się bardziej
przystosowany do środowiska, albo zmiana taka powoduje pewną degradację osobnika np.
skutkiem mutacji może być wystąpienie pewnej choroby genetycznej, która zmniejszy jego
szanse na przetrwanie. W algorytmach genetycznych również można znalezć operator mutacji,
który jest drugim po krzyżowaniu podstawowym operatorem genetycznym i tak jak w
środowisku naturalnym może on doprowadzić do zmiany przystosowania danego osobnika do
funkcji celu. Osobnik poddany operatorowi mutacji może zwiększyć lub zmniejszyć swoje
prawdopodobieństwo przetrwania. Z powyższych rozważań widać wyraznie jak bardzo
algorytmy genetyczne są skorelowane ze swoim biologicznym odpowiednikiem, od którego się
wywodzÄ….
Algorytmy genetyczne © dr inż. Adam SÅ‚owik 1
Inteligencja obliczeniowa
2. Podstawy działania AG
W podpunkcie tym zostanie przedstawione działanie algorytmu genetycznego dla prostego
zadania optymalizacji. Rozważaniu podlegać będzie zadanie maksymalizacji funkcji f, jednak
jeśli zadanie optymalizacji będzie polegać na minimalizacji funkcji f, to jest ono równoważne
maksymalizacji funkcji g, przy czym należy zaznaczyć, że g=-f, czyli
min { f(x) } = max { g(x) } = max { - f(x) } (1)
Dodatkowo można przyjąć, że funkcja przyjmuje wartości dodatnie w swojej dziedzinie, jeżeli
tak nie jest można zawsze dodać pewną dodatnią stałą C, ponieważ
max { g(x) } = max { g(x) + C } (2)
Załóżmy teraz, że chcemy maksymalizować funkcję k zmiennych f(x1, ..., xk) oraz, że każda
zmienna może przybierać wartości z przedziału Di = [ai ,bi ] ą" R i f (x1,..., xk ) >0 dla wszystkich
xi " Di . Wiemy również, że chcemy optymalizować funkcję f z pewną żądaną dokładnością. Dla
każdej i-tej zmiennej należy określić jej dokładność ZDi. Poniższa zależność pozwala obliczyć
ile genów musi przypadać na i-tą zmienną, aby otrzymać określoną wcześniej dokładność:
bi - ai
d" ZDi (3)
i
2m -1
czyli liczba genów dla i-tej zmiennej ma spełniać nierówność:
bi - ai
i
2m e" +1 (4)
ZDi
mi oznacza najmniejszą liczbę całkowitą spełniającą nierówność (4). Wówczas reprezentacja,
w której każda zmienna xi jest zakodowana jako łańcuch binarny o długości mi , w oczywisty
sposób będzie spełniała wymagania dokładności. Natomiast wartość każdej i-tej zmiennej
można otrzymać w sposób jawny stosując zależność:
i
xi = ai + dec(1010...110012 ) Å" (bi - ai ) / (2m -1) (5)
gdzie dec (łańcuch binarny) jest równy dziesiętnej wartości łańcucha binarnego.
W algorytmie genetycznym każdy osobnik  chromosom (jako potencjalne rozwiązanie) jest
reprezentowany przez łańcuch o długości:
k
m = (6)
"mi
i=1
Pierwsze m1 bitów odpowiada wartościom zmiennej x1 z przedziału [a1, b1] , druga grupa m2
bitów odpowiada wartościom zmiennej x2 z przedziału [a2 , b2 ] , i tak dalej, aż do ostatniej grupy
mk bitów, które odpowiadają wartościom zmiennej xk z przedziału [ak ,bk ]. W celu ustalenia
populacji początkowej złożonej z PopSize chromosomów generuje się losowo bit po bicie
każdego z nich, jednak jeśli dysponujemy pewną wiedzą o rozkładzie możliwych optimów,
można wówczas użyć tej informacji do odpowiedniego rozmieszczenia początkowych
(potencjalnych) rozwiązań. Reszta algorytmu jest oczywista. W każdym pokoleniu będą
oceniane wszystkie chromosomy (używając funkcji celu), będzie wybierana nowa populacja
zgodnie z rozkładem prawdopodobieństwa określonym na wartościach dopasowań
Algorytmy genetyczne © dr inż. Adam SÅ‚owik 2
Inteligencja obliczeniowa
poszczególnych chromosomów do funkcji celu oraz będą stosowane operatory genetyczne
takie jak krzyżowanie i mutacja. Po pewnej liczbie pokoleń, gdy nie będzie już poprawy
generowanych wyników (lub zostały spełnione warunki zakończenia algorytmu) najlepsze
chromosomy reprezentujÄ… najkorzystniejsze rozwiÄ…zanie danego problemu. Algorytm
genetyczny często jest zatrzymywany po ustalonej liczbie iteracji, w zależności od szybkości i
pamięci posiadanego komputera.
Załóżmy, że utworzono losowo pewną populację chromosomów (osobników) reprezentujących
potencjalne rozwiązania problemu. Następnie należy ocenić i utworzyć nową populację zgodnie
z funkcją celu. Dokonujemy tego w procesie selekcji (reprodukcji), a wybór nowej populacji
następuje zgodnie z rozkładem prawdopodobieństwa określonym na wartościach dopasowań.
Używa się tutaj najczęściej metodę ruletki o wielkości pól zgodnej z wartościami dopasowań.
Ruletkę taką konstruuje się w następujący sposób (poniżej zakładamy, że wartości
dopasowania są dodatnie, jeżeli tak nie jest należy odpowiednio przeskalować wartości):
" oblicz wartość dopasowania eval(vi ) dla każdego chromosomu
vi (i =1,....., PopSize)
PopSize
" oblicz całkowite dopasowanie populacji F =
"eval (vi ) ,
i=1
" oblicz prawdopodobieństwo wyboru pi każdego chromosomu
vi (i =1,....., wielkość_populacji) pi = eval (vi ) / F ,
" wyznacz przedziały ruletki [RMin, RMax) dla każdego i-tego osobnika zgodnie z
zależnością:
RMini = RMaxi-1; RMaxi=RMini+pi
Proces selekcji jest oparty na obrocie ruletką PopSize razy i wyborze za każdym razem jednego
chromosomu do nowej populacji w następujący sposób:
" wygeneruj liczbÄ™ przypadkowÄ… (zmiennopozycyjnÄ…) r z zakresu [0,1)
" jeśli (r >= RMini) oraz (rnumerze i-tym
Oczywiście pewne chromosomy będą wybrane więcej niż raz.
Po utworzeniu nowej populacji stosujemy na niej operatory genetyczne. Pierwszym jest
operator krzyżowania, który występuje w systemie genetycznym zgodnie z parametrem
określanym prawdopodobieństwem krzyżowania pk . Prawdopodobieństwo to umożliwia nam
obliczenie oczekiwanej liczby chromosomów pk Å"PopSize, które ulegnÄ… operacji krzyżowania.
Aby zastosować ten operator postępujemy w następujący sposób:
" dla każdego chromosomu generujemy liczbę losową (zmiennopozycyjną) r z zakresu
[0,1)
" jeśli dla i-tego chromosomu r< pk , to wybieramy i-ty chromosom do krzyżowania.
Mając określoną pulę chromosomów, które będą podlegać krzyżowaniu, dobieramy wybrane
chromosomy w pary (oczywiście również losowo). Gdy liczba wybranych chromosomów jest
parzysta wówczas możemy je łatwo połączyć, jednak gdy liczba chromosomów jest nieparzysta
Algorytmy genetyczne © dr inż. Adam SÅ‚owik 3
Inteligencja obliczeniowa
należy albo dodać, albo odjąć jeden chromosom, oczywiście także losowo. Po połączeniu
chromosomów w pary, dla każdej z nich generujemy losową liczbę poz z zakresu [1,m-1], gdzie
m jest całkowitą długością  liczbą bitów  chromosomu. Wylosowana liczba poz określa nam
punkt cięcia chromosomu do wymiany. Tak więc dwa chromosomy
(d1d2...d d ...dm ) i (e1e2...epozepoz+1...em )
poz poz+1
są zamieniane na parę potomków
(d1d2...d epoz+1...em ) i (e1e2...epoz d ...dm )
poz poz+1
Następną operacją jest mutacja, która wykonywana jest bezpośrednio na bitach. Na podstawie
parametru algorytmu genetycznego, prawdopodobieństwa mutacji pm , możemy obliczyć
oczekiwanÄ… liczbÄ™ zmutowanych bitów pm Å" m Å" PopSize. Każdy bit (we wszystkich
chromosomach i w całej populacji) ma równe szanse na mutację, to znaczy zmiany z 0 na 1 lub
odwrotnie. W przypadku mutacji postępujemy następująco:
" dla każdego chromosomu bieżącej populacji (po krzyżowaniu) i dla każdego bitu
w chromosomie wygeneruj liczbÄ™ losowÄ… (zmiennopozycyjnÄ…) r z zakresu [0,1)
" jeżeli liczba r< pm , to zmutuj dany gen (bit).
Po zakończeniu mutacji obliczane jest ponownie przystosowanie całej populacji, następnie
sprawdzany jest warunek czy można zakończyć pracę algorytmu genetycznego, jeśli tak to
wyprowadzamy wyniki na ekran i kończymy pracę algorytmu genetycznego, jeśli nie to
dokonujemy kolejno: selekcji, krzyżowania i mutacji i cały proces powtarza się.
Poniżej przedstawiono schemat działania algorytmu genetycznego:
1. Utwórz losowo populację początkową
2. Oceń przystosowanie osobników do funkcji celu
3. Dopóki nie osiągnięto kryterium stopu wykonaj
4. selekcję osobników
5. operację krzyżowania chromosomów
6. mutację osobników
7. ocenę przystosowania osobników do funkcji celu
8. Wyprowadz otrzymany wynik (wyniki)
3. Optymalizacja funkcji jednej zmiennej - przykład
Jako funkcję testową dla tego zadania użyto:
y = f (x) = 50 - 5 Å" sin(10 Å"Ä„ Å" x) -10 Å" (x - 1.5)2 x "[0,3]
Powyższa funkcja jest wielomodalna tzn. posiada wiele maksimów oraz minimów.
W prezentowanym przykładzie skupimy się nad znalezieniem maksimum globalnego funkcji w
podanym przedziale od 0 do 3. W celu lepszego zobrazowania wzoru funkcji została ona
zaprezentowana graficznie na wykresie przedstawionym na rys. 1.
Algorytmy genetyczne © dr inż. Adam SÅ‚owik 4
Inteligencja obliczeniowa
Rys. 1  Funkcja testowa f(x) w formie graficznej.
Jak widać funkcja w podanym przedziale x "[0,3] (Xmin=0; Xmax=3) przyjmuje wiele
maksimów oraz wiele minimów, jednak posiada w tym przedziale tylko jedno maksimum
globalne, które algorytm genetyczny będzie się starał wyznaczyć.
Rys. 2  Funkcja testowa f(x)  globalne ekstremum.
Z wykresu przedstawionego na rys. 2 wynika, że funkcja przyjmuje wartość maksymalną:
f(x) H" 54.9715 dla argumentu x H" 1.551. Również z wykresu (rys. 5.1.2) widać, że niewielkie
zmiany argumentu mogą prowadzić do  wskoczenia algorytmu w maksimum lokalne.
Załóżmy, że chcemy aby zmienna x zmieniała się z dokładnością 0.01, wówczas z nierówności
(4) wynika, że:
3 - 0
2m e" +1 => 2m e" 301
0.01
Najmniejsza liczba całkowita m dla której jest spełniona powyższa nierówność wynosi 9.
W związku z tym każdy osobnik będzie się składał z 9 genów (LG=9) w których zapisana będzie
zmienna x.
Algorytmy genetyczne © dr inż. Adam SÅ‚owik 5
Inteligencja obliczeniowa
Również postanowiono zarezerwować 6 dodatkowych komórek, na następujące wartości:
wartość dziesiętną dec, odkodowaną wartość x, wartość funkcji y, wartość przystosowania
względnego, wartość RMin, wartość RMax. Czyli do zapisania wszystkich wartości wystarczy
wektor złożony z 15 elementów. Przyjęto również, że populacja składa się z 20 osobników.
W związku z tym fragment kodu tworzący populację osobników może wyglądać następująco:
Population1=zeros(20,15); // Populacja podstawowa
Population2=zeros(20,15); // Populacja tymczasowa
Xmin=0; Xmax=3; LG=9;
for i=1:20
for j=1:9
if rand()<0.5
Population1(i,j)=1;
else
Population1(i,j)=0;
end
end
end
Rys. 3  Fragment kodu tworzącego populacje osobników (losowo)
Następnie poniższe kroki wykonywane są k razy aż do zakończenia algorytmu:
W pierwszym kroku oblicza, się wartość dec, wartość x, wartość y, oraz przystosowanie łączne
(PL), a następnie wartości te są wpisywane do odpowiednich komórek.
//---- PL  przystosowanie laczne
PL=0;
for i=1:20
dec=0;
for j=1:9
if Population1(i,j)==1
dec=dec+Population1(i,j)*(2^(9-j));
end;
end;
Population1(i,10)=dec;
X=((Xmax-Xmin)/(2^LG-1))*dec+Xmin;
Population1(i,11)=X;
Y=50-5*sin(10*3.14*X)-10*(X-1.5)^2;
Population1(i,12)=Y;
PL=PL+Y;
end;
Rys. 4  Fragment kodu wyznaczajÄ…cego: PL, dec, x i y
W drugim kroku oblicza się przystosowanie względne oraz wyznacza się przedziały koła ruletki
dla każdego osobnika.
Algorytmy genetyczne © dr inż. Adam SÅ‚owik 6
Inteligencja obliczeniowa
//------------------- oblicz przystosowanie wzgledne
for i=1:20
Population1(i,13)=Population1(i,12)/PL;
end;
//------------------- oblicz przedzialy ruletki
Population1(1,14)=0;
Population1(1,15)=Population1(1,14)+Population1(1,13);
for i=2:20
Population1(i,14)=Population1(i-1,15);
Population1(i,15)=Population1(i,14)+Population1(i,13);
end;
Rys. 5  Fragment kodu obliczającego przystosowanie względne oraz wyznaczającego
przedziały koła ruletki
W następnym kroku, dokonuje się selekcji osobników z populacji podstawowej  Population1 do
populacji tymczasowej  Population2 . Selekcja jest dokonywana metodÄ… ruletki.
(PL), a następnie wartości te są wpisywane do odpowiednich komórek.
//-------------------- dokonaj selekcji
for i=1:20
los=rand(); Nr=0;
for j=1:20
if (los>=Population1(j,14)) & (los Nr=j;
end;
end;
Population2(i,:)=Population1(Nr,:);
end;
Rys. 6  Przykładowy kod realizujący selekcję osobników metodą ruletki
W następnym kroku dokonuje się operacji krzyżowania oraz mutacji. Kod realizujący operację
mutacji oraz krzyżowania w wersji uproszczonej (bez dobierania osobników w pary)
przedstawiono na rys. 7.PCross  oznacza prawdopodobieństwo krzyżowania, PMut  oznacza
prawdopodobieństwo mutacji.
//-------------------- dokonaj krzyzowania
for i=1:20
los=rand();
if losNr=round(rand()*19)+1;
Cut=round(rand()*7)+1;
c1=Population2(i,(Cut+1):9);
c2=Population2(Nr,(Cut+1):9);
Population2(i,(Cut+1):9)=c2;
Population2(Nr,(Cut+1):9)=c1;
end;
end;
//-------------------- dokonaj mutacji
for i=1:20
for j=1:9
los=rand();
Algorytmy genetyczne © dr inż. Adam SÅ‚owik 7
Inteligencja obliczeniowa
if (los if (Population2(i,j)==1)
Population2(i,j)=0;
else
Population2(i,j)=1;
end;
end;
end;
end;
Rys. 7  Fragment kodu realizujący operację krzyżowania oraz mutacji
W następnym kroku należy przepisać zawartość populacji tymczasowej  Population2 do
populacji podstawowej  Population1 , co można zrealizować następująco:
for i=1:20 Population1(i,:)=Population2(i,:); end;
Obliczenia (do rys. 4 do rys. 7) powtarzamy aż spełniony zostanie warunek zakończenia
algorytmu (np. osiągnięcie określonej liczby pokoleń). Po zakończeniu pracy algorytmu
otrzymanym wynikiem jest rezultat zapisany w najlepszym osobniku (o największej wartości
przystosowania).
Poniżej na rys. 8 przedstawiono prosty algorytm genetyczny napisany w SCILAB ie. Algorytm
dąży do odnalezienia maksimum funkcji przedstawionej na rys. 1.
//--- przyjecie wartosci parametrow
x=zeros(2,301);
PMut=0.1;
PCross=0.5;
Generations=10;
//--- wykreslenie ksztaltu optymalizowanej funckji
for i=1:301 x(1,i)=(i-1)/100; end;
for i=1:301 x(2,i)=50-5*sin(10*3.14*x(1,i))-10*(x(1,i)-1.5)^2;
end;
plot(x(1,:),x(2,:));
//-------------- utworz populacje zlozona z 20 osobnikow
Population1=zeros(20,15); // Populacja podstawowa
Population2=zeros(20,15); // Populacja tymczasowa
Xmin=0; Xmax=3; LG=9;
for i=1:20
for j=1:9
if rand()<0.5
Population1(i,j)=1;
else
Population1(i,j)=0;
end
end
end
Algorytmy genetyczne © dr inż. Adam SÅ‚owik 8
Inteligencja obliczeniowa
for k=1:Generations
//---------- oblicz dec, x, y (przystosowanie)
//---------- oraz przystosowanie laczne PL
PL=0;
for i=1:20
dec=0;
for j=1:9
if Population1(i,j)==1
dec=dec+Population1(i,j)*(2^(9-j));
end;
end;
Population1(i,10)=dec;
X=((Xmax-Xmin)/(2^LG-1))*dec+Xmin;
Population1(i,11)=X;
Y=50-5*sin(10*3.14*X)-10*(X-1.5)^2;
Population1(i,12)=Y;
PL=PL+Y;
end;
//------------------- oblicz przystosowanie wzgledne
for i=1:20 Population1(i,13)=Population1(i,12)/PL;end;
//------------------- wypisz najlepsze rozwiazanie na ekran
Max=Population1(1,12);
NrMax=1;
for i=2:20
if (Population1(i,12)>Max)
Max=Population1(i,12);
NrMax=i;
end;
end;
disp(Population1(NrMax,12));
//------------------- oblicz przedzialy ruletki
Population1(1,14)=0;
Population1(1,15)=Population1(1,14)+Population1(1,13);
for i=2:20
Population1(i,14)=Population1(i-1,15);
Population1(i,15)=Population1(i,14)+Population1(i,13);
end;
//-------------------- dokonaj selekcji
for i=1:20
los=rand(); Nr=0;
for j=1:20
if (los>=Population1(j,14)) & (los Nr=j;
end;
end;
Population2(i,:)=Population1(Nr,:);
end;
Algorytmy genetyczne © dr inż. Adam SÅ‚owik 9
Inteligencja obliczeniowa
//-------------------- dokonaj krzyzowania
for i=1:20
los=rand();
if losNr=round(rand()*19)+1;
Cut=round(rand()*7)+1;
c1=Population2(i,(Cut+1):9);
c2=Population2(Nr,(Cut+1):9);
Population2(i,(Cut+1):9)=c2;
Population2(Nr,(Cut+1):9)=c1;
end;
end;
//-------------------- dokonaj mutacji
for i=1:20
for j=1:9
los=rand();
if (los if (Population2(i,j)==1)
Population2(i,j)=0;
else
Population2(i,j)=1;
end;
end;
end;
end;
//--------------------- przepisz populacje
for i=1:20 Population1(i,:)=Population2(i,:); end;
end;// end do glownej petli algorytmu
Rys. 8  Prosty algorytm genetyczny (SCILAB)
4. Zadania do wykonania
a) uruchomić algorytm genetyczny z Rys. 8
b) do programu z rys. 8 dopisać fragment kodu wykreślający wartość najlepszego osobnika
(rozwiązania) w funkcji kolejnych pokoleń dla parametru Generations=100; Oś  x ma
reprezentować kolejne pokolenia, oś  y najlepsze rozwiązanie w danym pokoleniu.
Rys. 9  Wartość najlepszego rozwiązania w funkcji kolejnych pokoleń (generacji)
Algorytmy genetyczne © dr inż. Adam SÅ‚owik 10
Inteligencja obliczeniowa
c) zmodyfikować program z rys. 8, dodając elitarystyczny model selekcji, który polega, na tym
że najlepsze znalezione do tej pory rozwiązanie jest zapamiętywane w oddzielnym osobniku o
nazwie np.TheBest. W każdej iteracji sprawdza się czy w danej populacji istnieje lepsze lub
identyczne rozwiązanie do rozwiązania zawartego w osobniku TheBest jeśli tak wówczas
wstawia się je do osobnika TheBest, jeśli nie wówczas osobnik TheBest jest wstawiany do
populacji w miejsce najgorszego osobnika. Osobnik najlepszy  osobnik o największej wartości
funkcji przystosowania (w tym przypadku o największej wartości  y ). Osobnik najgorszy 
osobnik o najmniejszej wartości funkcji przystosowania (w tym przypadku o najmniejszej
wartości  y ).
d) do programu z punktu c) dopisać fragment kodu wykreślający wartość najlepszego osobnika
(rozwiązania) w funkcji kolejnych pokoleń dla parametru Generations=100; Oś  x ma
reprezentować kolejne pokolenia, oś  y najlepsze rozwiązanie w danym pokoleniu. Otrzymany
wykres porównać z wykresem otrzymanym w punkcie b)
e) zaprogramować algorytm genetyczny z elitarystycznym modelem selekcji wyznaczający
maksymalną wartość funkcji dwóch zmiennych postaci:
2 2
y(x1, x2 ) = -[(x1 -10 Å" cos(2 Å"Ä„ Å" x1))+ (x2 -10 Å" cos(2 Å"Ä„ Å" x2 ))]+ 80
x1 "[- 5.12; 5.12], x2 "[- 5.12; 5.12]
W funkcji tej, globalne maximum o wartości 100 występuje dla x1=0 i x2=0. W algorytmie
genetycznym przyjąć rozdzielczość (dokładność) zmiennej x1 oraz x2 na poziomie 0.01.
Przeprowadzić obliczenia dla różnych wartości parametrów PopSize, PCross i PMut (na
początku przyjąć PopSize=20; PCross=0.3; PMut=0.01). Jako kryterium zakończenia przyjąć
osiągnięcie przez algorytm 100-tnej generacji.
Rys. 10  Graficzna prezentacja optymalizowanej funkcji
Algorytmy genetyczne © dr inż. Adam SÅ‚owik 11


Wyszukiwarka

Podobne podstrony:
Demonstration Genetic Jewelry
Genetic and environmental effects on polyphenols
2002 mol genetics of human cognition MolInterv
genetics maksimova konspekt 1 glava4
Andersson, rec Ulset, Det genetiske forholdet
GeneticCounselling
Przypadki Genetivus PajÄ…k
The Genetic Program Program A Commentary on Maynard Smith on Information in Biology
Centre of microbial and plant genetics
3 T Proton MRS Investigation of Glutamate and Glutamine in Adolescents at High Genetic Risk for Schi
cfdfb genetivus
Eduardo Mendieta Communicative Freedom and Genetic Engineering
Programming Survey Of Genetic Algorithms And Genetic Programming
Primer On Molecular Genetics
2011 McGuffin The truth about genetic variation 424 7
A Behavioral Genetic Study of the Overlap Between Personality and Parenting
An early flowering of genetics

więcej podobnych podstron