background image

1

(c) 

DS, JW

Wyklad 11, str. 1

• 

Z. Michalewicz. Algorytmy genetyczne + struktury danych =

programy ewolucyjne.

• D.E. Goldberg. Algorytmy genetyczne i ich zastosowania.

WNT, Warszawa 1995.

• J.R. Koza. Genetic Programming: On the Programming of

Computers by Means of the Natural Selection

The MIT Press,

1992.

Algorytmy ewolucyjne

1958 (Friedberg) - pierwsze prace zwiazane z programowaniem ewolucyjnym.
1964 (Fogel) -  pierwsze prace  zwiazane z programowaniem ewolucyjnym  automatów
skonczonych zakonczone wzglednym sukcesem.
1965 (Bienert, Rechenberg, Schwefel) - pierwsza wersja strategii ewolucyjnych, pierwsze
zastosowania praktyczne.
1973 (Rechenberg) - podstawy teoretyczne strategii ewolucyjnych.
1975 (Holland) - algorytmy genetyczne i ich teoria.
Lata 80-te - liczne zastosowania algorytmów genetycznych.
Koniec lat 80-tych (Fogel) - poczatek  rozwoju wspólczesnej wersji programowania
ewolucyjnego.

(c) 

DS, JW

Wyklad 11, str. 2

Podstawowe pojecia

Osobnik -  podstawowa jednostka podlegajaca ewolucji.  Zakladamy zwykle,
ze ów osobnik przebywa w pewnym srodowisku, do którego moze byc lepiej
lub gorzej  przystosowany. “Celem” ewolucji jest  stworzenie  osobnika
mozliwie dobrze przystosowanego do danego srodowiska.
Fenotyp - ujawniajace sie “na zewnatrz” cechy danego osobnika.
Genotyp - “plan  konstrukcyjny”, kompletny i jednoznaczny opis osobnika
zawarty w jego genach.
Populacja -  zespól  osobników zamieszkujacych  wspólne srodowisko  i
konkurujacych o jego zasoby.

...-ATC-GCA-GGG-
AGC-ACT-GTT-...

...-ATC-GAA-GGG-
AGC-ACA-GTT-...

Fenotyp

Genotyp

background image

2

(c) 

DS, JW

Wyklad 11, str. 3

• 

Genotyp danego osobnika w czasie jego zycia nie  ulega zmianie, natomiast

ulega on modyfikacjom podczas rozmnazania sie. Zmiany te moga wynikac albo
z  niewielkich, losowych  mutacji,  albo ze zmieszania  (skrzyzowania) cech
osobników rodzicielskich.

•  Zmiany  w genotypie powoduja  zmiany fenotypu  osobników potomnych, co

wplywa na stopien ich przystosowania do srodowiska. Zmiany fenotypu (nabyte
przez osobnika) nie podlegaja dziedziczeniu w sensie genetycznym.

•  Zmiany  w genotypie maja  charakter  przypadkowy.  Zmiany korzystne dla

osobnika zdarzaja sie równie czesto, jak niekorzystne lub obojetne.

•  Osobniki sa  oceniane poprzez porównanie ich przystosowania  do  danego

srodowiska. Te, które sa lepiej przystosowane, maja wieksza szanse rozmnozyc
sie. Osobniki gorzej przystosowane przegrywaja  konkurencje o  ograniczone
zasoby srodowiska i gina.

Zmianom  (mutacja, krzyzowanie)  podlega genotyp osobnika,
podczas gdy selekcji poddawane sa fenotypy. Istota ewolucji jest
polaczenie  zjawiska  losowych,  nieukierunkowanych zmian
genotypu ze scisle ukierunkowana presja srodowiska na fenotyp.

(c) 

DS, JW

Wyklad 11, str. 4

Strategie ewolucyjne

Glówny obszar zastosowan: optymalizacja funkcji rzeczywistych
wielowymiarowych.

Zadanie: znalezc maksimum funkcji f : R

n

 

?  R na danym przedziale

[a

, b

1

]

? ...?  [a

n

 , b

n

].

Rozwiazanie: przez x=(x

1

, ... x

n

) oznaczmy przykladowe rozwiazanie

(punkt z przestrzeni stanów, x

i

 

?  [a

, b

i

]). Kazdemu wektorowi x

przyporzadkujmy pomocniczy wektor wartosci rzeczywistych dodatnich:

?

=(

?

1

, ... 

?

n

). Para (x,

?

) bedzie stanowila kod genetyczny osobnika.

x

f(x)

(x,

?

)

Fenotyp osobnika

Genotyp osobnika

background image

3

(c) 

DS, JW

Wyklad 11, str. 5

Strategie ewolucyjne - schemat dzialania

1. Tworzymy losowa populacje zlozona z N osobników postaci (x,

?

).

2. Dopisujemy do niej M osobników potomnych, tworzonych na

podstawie losowo wybranych osobników z poprzedniego pokolenia
za pomoca mutacji i procesu krzyzowania.

3. Dla kazdego osobnika w populacji posredniej (N+M osobników)

liczymy odpowiadajaca mu wartosc optymalizowanej funkcji.

4. Sposród N+M osobników wybieramy te, które przezyja i utworza

nastepne pokolenie. W tym celu sortujemy osobniki wzgledem
odpowiadajacych im wartosci funkcji f i wybieramy N najlepszych.

5. Powtarzamy od punktu 2. z aktualna populacja N-osobnikowa.

N

N

M

N

f(x)

...
...

f(x)

Poprzednie

pokolenie

Nastepne
pokolenie

bez zmian

mutacje,
krzyzowanie

wybór N najlepszych

(c) 

DS, JW

Wyklad 11, str. 6

Strategie ewolucyjne - operatory

Mutacji  podlegaja  zwykle wszystkie  osobniki dodawane do populacji
posredniej. Mutacja  polega  na  zmianie parametrów  (x,

?

)  zgodnie ze

wzorami:

? ?

? ?

?

?

?

i

i

N

i

i

i

e

x

x

N

?

?

?

?

0

0

,

,

?

gdzie N(0,

?

) oznacza liczbe losowa wygenerowana

zgodnie  z rozkladem  normalnym  o wart.
oczekiwanej 0 i odchyleniu standardowym 

?

.

Krzyzowaniu  podlega  czesc (np. 25%) osobników  dodawanych  do
populacji posredniej. Osobnik potomny skladany jest z genów dwóch
losowo wybranych osobników rodzicielskich.

(x

1

, x

2

, x

3

, x

4

, x

5

?

?

???

2

?

?

???

?

???

?

?

(y

1

, y

2

, y

3

, y

4

, y

5

?

?

???

2

?

?

???

?

???

?

?

(x

1

, y

2

, y

3

, x

4

, y

5

?

?

???

2

?

?

???

?

???

?

?

Uwaga: wartosci x

i

 sa dziedziczone zawsze razem z

odpowiadajacymi im wartosciami pomocniczymi 

?

?

?

background image

4

(c) 

DS, JW

Wyklad 11, str. 7

Algorytmy genetyczne

N

1. Tworzymy N osobników losowych.

krzyzowanie

mutacje

2. Stosujemy operacje mutacji i krzyzowania

f(x)

...
...

f(x)

3. Liczymy wartosci funkcji celu.

N

4. Dokonujemy selekcji.

5. Powtarzamy od punktu 2.

Cel: znalezc maksimum funkcji f(x).

Zalozenie: funkcja ta jest dodatnia.

Osobnik:
ciag zerojedynkowy

(c) 

DS, JW

Wyklad 11, str. 8

Algorytmy genetyczne - szczególy

Etap wstepny: kodowanie problemu

Osobnik w klasycznej  wersji  algorytmów genetycznych jest  ciagiem binarnym
stalej dlugosci. Aby rozwiazac konkretne zadanie, musimy zakodowac przestrzen
stanów (czyli wszystkie potencjalne rozwiazania) w jezyku binarnym.
Jezeli zadanie polega  na  znalezieniu  maksimum  jakiejs funkcji,  mozemy  owej
funkcji uzyc bezposrednio w algorytmie. Jezeli zadanie brzmi inaczej (np. znalezc
obiekt spelniajacy  pewne  kryteria),  czesto  musimy sami taka funkcje
skonstruowac.

Drugi krok algorytmu: mutacje i krzyzowania

Mutacja: losujemy osobnika, nastepnie jeden z jego bitów. Zamieniamy wartosc
tego bitu na przeciwna. Mutacja dotyka srednio 0.1% bitów w populacji.

100100110010

100101110010

background image

5

(c) 

DS, JW

Wyklad 11, str. 9

Algorytmy genetyczne - szczególy

Krzyzowanie (crossing-over): laczymy osobniki w pary. Dla kazdej pary ustalamy
(w  drodze  losowania,  prawdopodobienstwo rzedu  20-50%), czy  dojdzie  do  ich
skrzyzowania. Jesli  tak, losujemy  miejsce  (bit) w chromosomie  jednego  z
rodziców,  po  czym  zamieniamy miejscami fragmenty chromosomów  poczynajac
od wylosowanego miejsca.

10001101 00100

01101011 10011

10001101

00100

01101011

10011

losowy punkt przeciecia

(ten sam w obu osobnikach)

Rodzic 1

Rodzic 2

Potomek 1

Potomek 2

Inaczej niz w przypadku strategii ewolucyjnych, krzyzowanie w

algorytmie genetycznym odgrywa role duzo wazniejsza, niz mutacje.

(c) 

DS, JW

Wyklad 11, str 10

Algorytmy genetyczne - szczególy

Czwarty krok algorytmu: selekcja

Liczymy wartosci  funkcji celu dla wszystkich  osobników.  Nastepnie, sposród N
osobników  populacji posredniej  wybieramy N osobników  populacji koncowej
(niektóre  osobniki beda  wystepowaly  w  kilku kopiach,  inne  znikna),  za  pomoca
algorytmu “kola ruletki”:
1. Liczymy sume wartosci funkcji celu: f

sum

= f(x

1

)+...+f(x

N

).

2. Liczymy procentowy wklad kazdego osobnika w ogólna sume: p(x

i

) = f(x

i

)/f

sum

3. Traktujemy wartosci p(x

i

) jako rozklad  prawdopodobienstwa (“kolo ruletki”) i

dokonujemy N-krotnego losowania osobników zgodnie z tym rozkladem

f(x)

...
...

f(x)

N

20%

18%

12%

35%

background image

6

(c) 

DS, JW

Wyklad 11, str 11

Twierdzenie o schematach

Schemat  - fragment chromosomu (niekoniecznie  spójny) o  ustalonych
wartosciach.  Np: ***10*01** oznacza schemat  z  czterema  ustalonymi
pozycjami (gwiazdka oznacza dowolna wartosc).
Zalózmy, ze pewne schematy maja srednio wieksze wartosci funkcji celu,
niz inne (usredniamy po wszystkich mozliwych wartosciach na pozycjach
nieustalonych).  Oznaczmy przez  H -  schemat,  przez  o(H) -  liczbe jego
miejsc ustalonych,  przez  d(H) - odleglosc  miedzy  skrajnymi  miejscami
ustalonymi,  przez  l - dlugosc chromosomu,  przez p

m

 -  prawd.  mutacji

pojedynczego bitu, przez p

c

 - prawd. krzyzowania pary. Wtedy:

? ?

? ?

? ?

p H

p

d H

l

o H p

c

m

? ?

?

?

1

1

- stanowi prawdopodobienstwo, ze

dany schemat pozostanie
nienaruszony w wyniku mutacji i
krzyzowania.

(c) 

DS, JW

Wyklad 11, str 12

Twierdzenie o schematach - c.d.

Jezeli przez  m(H,t) oznaczymy  liczbe  (procent) osobników w  populacji,
które w chwili t pasuja do schematu H, to srednia liczba takich osobników
w nastepnym kroku moze byc oszacowana jako:

?

?

?

?

? ?

? ? ? ?

E m H t

m H t

f H

f

p H

,

,

?

?

1

gdzie f(H) oznacza srednia wartosc funkcji celu osobników pasujacych do
danego schematu,     oznacza srednia wartosc funkcji celu w populacji.

f

Wniosek: jesli schematy sa  krótkie  i  zwarte  (czyli  maja  duze  p(H)),
oraz jesli maja srednia wartosc  funkcji celu  wyzsza, niz przecietna, to
ich reprezentacja w populacji bedzie rosla wykladniczo.

background image

7

(c) 

DS, JW

Wyklad 11, str 13

Hipoteza cegielek

Algorytmy genetyczne dzialaja  najskuteczniej wtedy,  gdy sposób
zakodowania problemu  i  ksztalt funkcji celu  pozwalaja na istnienie
“cegielek”: niewielkich i zwartych schematów o ponadprzecietnej wartosci
funkcji. Jesli z takich schematów da sie zbudowac rozwiazanie optymalne,
algorytm genetyczny latwo je znajdzie.

********10

***1*00***

010*******

0101100010

Wniosek praktyczny: jesli kilka bitów koduje pojedyncza ceche,

powinny one lezec blisko siebie.

Skutecznosc algorytmów genetycznych opiera  sie na  ukrytym
równoleglym przetwarzaniu wielkiej liczby schematów.