background image

Algorytmy Ewolucyjne

Radosław Winiczenko

Wydział Inżynierii Produkcji, SGGW

radosław_winiczenko@sggw.pl

background image

2

Literatura

1.

J. Arabas, Wykłady z algorytmów ewolucyjnych, WNT, 

Warszawa, 2001.

2.

D. E. Goldberg, Algorytmy genetyczne i ich zastosowania, 
WNT, Warszawa, 1998.

3.

Melanie Mitchell, ,,An introduction to genetic algorithms”, 

MIT press, 1999

4.

Z. Michalewicz, Algorytmy genetyczne + struktury danych = 

programy ewolucyjne, WNT, Warszawa, 1996

5.

M. D. Vose, The simple genetic algorithm. Foundations and 

theory, MIT Press, Cambridge, Massachusetts, 1999.

6.

D. Rutkowska, M.Piliński, L. Rutkowski, Sieci neuronowe, 

algorytmy genetyczne i systemy rozmyte”, PWN, Warszawa 

1997.

background image

3

Definicja algorytmów ewolucyjnych

Algorytmy  ewolucyjne  (ang.  Evolutionary 
Algorithms  EA)  są  algorytmami  przetwarzania, 
które  rozwiązują  zadania  optymalizacyjne  i 
zadania poszukiwania wykorzystując darwinowską 
strategię 

przetrwania 

osobników 

najlepiej 

przystosowanych.

Modele  algorytmów  ewolucyjnych  opierają  się  na 
zasadzie  działania  rzeczywistego  mechanizmu 
ewolucyjnego. 

background image

4

Podział algorytmów ewolucyjnych

    W  grupie  algorytmów  ewolucyjnych  należy 
wyróżnić            trzy  podstawowe  metody 
optymalizacyjne:

  

algorytmy genetyczne

,

  

programowanie ewolucyjne

 strategie ewolucyjne.

 Każda z tych metod kładzie nacisk na inną cechę 
naturalnej 

ewolucji. 

Algorytmy 

genetyczne

 

uwypuklają 

rolę 

operatorów 

genetycznych. 

Programowanie  ewolucyjne

  kładzie  nacisk  na 

zmiany  behawioralne  na  poziomie  gatunków.  

strategiach 

ewolucyjnych

 

najistotniejsze 

są 

zmiany behawioralne na poziomie osobników. 

background image

5

Pomimo tych różnic każda z tych powyższych 

metod realizuje, na abstrakcyjnym 
poziomie algorytmu, zasady wynikające z 
praw jakimi otacza nas natura, mianowicie: 

poszukiwanie rozwiązań poprzez procesy 
ewolucji,

dziedziczenie informacji poprzez 
pojedyncze rozwiązania w kolejnych 
pokoleniach

wymianie informacji w pojedynczym 
rozwiązaniu poprzez ich krzyżowanie bądź 
ich mutację

selekcjonowanie pojedynczych rozwiązań

background image

6

Historia algorytmów genetycznych

Sieci neuronowe a algorytmy genetyczne – 

    cele i różnice

Idea powstania algorytmów genetycznych

Lata 60/70 –John Holland - ewolucja 

zachodzi na chromosomach, a nie na żywych 

istotach”

1985- Goldberg - doktorant Hollanda 

zastosowanie-Optymalizacja pracy gazociągu

background image

7

Zastosowanie algorytmów 

ewolucyjnych

programowanie komputerów

sztuczna inteligencja

optymalizacja kosztów, konstrukcji, procesów 
produkcyjnych, minimalizacja błędów,

planowaniu i harmonogramowaniu zadań 

w sterowaniu procesów

sztuczne sieci neuronowe-współpraca

projektowanie obwodów elektrycznych

prognozowanie na giełdzie

prognozowanie właściwości mechanicznych stali

background image

8

Algorytmy a tradycyjne metody optymalizacji    

Algorytm genetyczny stanowi wzorowana na naturalnej
ewolucji metodę rozwiązywania problemów, głównie
zagadnień optymalizacyjnych.
 
Od tradycyjnych metod optymalizacji różnią się kilkoma
zasadniczymi elementami. Otóż algorytmy genetyczne:

1) nie przetwarzają bezpośrednio parametrów zadania, 

lecz ich zakodowana postać,

2) prowadza przeszukiwanie, wychodząc nie z 

pojedynczego punktu, lecz z pewnej ich populacji, 

3) korzystają tylko z funkcji celu, nie zaś z jej 

pochodnych lub innych pomocniczych informacji,

4) stosują probabilistyczne, a nie deterministyczne 

reguły wyboru. 

background image

9

Podstawowe pojęcia algorytmów ewolucyjnych:

Populacja  

zbiór osobników o określonej liczebności

Osobniki 

-zakodowane w postaci chromosomów punkty 

przestrzeni poszukiwań czyli rozwiązania

Chromosomy 

-łańcuchy lub ciągi kodowe-uporządkowane 

ciągi genów

Gen 

cecha, znak, detektor-pojedynczy element genotypu, 

chromosomu

Genotyp 

zespół chromosomów danego osobnika

Fenotyp 

zestaw wartości odpowiadającej danemu 

genotypowi, zdekodowana strukturą, rozwiązaniem, 
punktem przestrzeni poszukiwań

Allel 

wartość danego genu

Locus 

- pozycjawskazująca miejsce położenia danego 

genu w łańcuchu, czyli chromosomie

background image

10

Funkcja przystosowania

 (ang. fitness function) 

jest to funkcja dopasowania lub funkcja oceny.

Ma duży wpływa na działanie algorytmów 
genetycznych. Musi być odpowiednio zdefiniowana. 
Może to być funkcja maksymalizowana lub 
minimalizowana

 w teorii sterowania - funkcja przystosowania może 

być 

funkcja błędu

w teorii gier - funkcja przystosowania to 

funkcja 

kosztu

Kolejną iterację a algorytmie genetycznym nazywa 
się 

generacją

 a nowa utworzona populacja 

osobników to nowe pokolenie lub 

pokolenie 

potomków

background image

11

Rys. Etapy działania klasycznego algorytmu genetycznego

Inicjacja

 N

k

Obliczenie 

funkcji 

przystosowania

Sprawdzenie 

warunku 

zatrzymania

krzyżowania i 

mutacja

Wyprowadzenie 

najlepszego 
rozwiązania

Utworzenie 

nowego 

pokolenia N

(k+1)

Selekcja 

chromosomów

TAK

NIE

background image

12

 Etapy działania klasycznego algorytmu genetycznego

Etap 1. Inicjacja jest związana z uruchomieniem algorytmu 
genetycznego  poprzez  utworzenie  populacji  początkowej. 
Polega  ona    na  losowym  wyborze  żądanej  liczby 
chromosomów o określonej długości. Długość poszczególnych 
chromosomów 

będzie 

zależała 

od 

skali 

trudności 

rozwiązywanego problemu.

Etap  2.  Ocena  przystosowania.  Polega  na  obliczeniu 
wartości  funkcji  przystosowania  (ang.  fitness  function)  dla 
każdego  chromosomu.  Im  większa  jest  wartość  tej  funkcji, 
tym  lepsza  „jakość”  chromosomu.  Zakłada  się,  że 
rozwiązywany  problem  optymalizacji  jest  problemem 
poszukiwania maksimum tej funkcji a funkcja przystosowania 
przyjmuje zawsze wartości nieujemne.

background image

13

 Etapy działania klasycznego algorytmu genetycznego

Etap 3. Sprawdzenie warunku zatrzymania. 

Jeśli  w  optymalizowanym  zagadnieniu  znana  jest 

wartość  funkcji  przystosowania  to  zatrzymanie  algorytmu 
genetycznego może nastąpić w następujący sposób:

po uzyskaniu żądanej wartości optymalnej (lub z określoną 

dokładnością)

jeśli  dalsze  działanie  nie  poprawia  uzyskanej  najlepszej 

wartości

po upływie określonego czasu

po określonej liczbie iteracji

Jeśli  warunek  zatrzymania  jest  spełniony  to  następuje 
podanie  „najlepszego”  rozwiązania.  Jeśli  nie,  to  następnym 
etapem jest selekcja chromosomów. 

background image

14

 Etapy działania klasycznego algorytmu genetycznego

Etap 4. Selekcja chromosomów

Selekcja  chromosomów  polega  na  wybraniu,  na 

podstawie  obliczonych  wartości  funkcji  przystosowania 
chromosomów,  które  będą  brały  udział  w  tworzeniu  nowych 
potomków. 

Wybór  ten  odbywa  się  zgodnie  z  z  zasadą  naturalnej 

selekcji,  czyli  największe  szanse  w  tworzeniu  nowych 
potomków  będą  miały  chromosomy  o  największej  wartości 
funkcji przystosowania. 

Istnieje  wiele  metod  wyboru  chromosomów.  Najbardziej 
znane to metoda ruletki, rankingowa oraz metoda turniejowa

W wyniku procesu selekcji zostaje utworzona populacja 

rodzicielska,  nazywana  także  pulą  rodzicielską  (ang.  mating 
pool
) o liczebności równej N, tzn. takiej samej jak liczebność 
bieżącej populacji.

background image

15

 Etapy działania klasycznego algorytmu genetycznego

Etap 5. Zastosowanie operatorów genetycznych

Operator  krzyżowania  (ang.  crossover)  pozwala  nam 

utworzyć dwa zupełnie inne chromosomy potomków poprzez 
kombinację  materiału  genetycznego  pary  rodziców.  W 
klasycznym  algorytmie  genetycznym  wystepuję  prawie 
zawsze  a  jego  prawdopodobieństwo  przyjmuje  się  zwykle 
duże w zakresie  0,5≤ pc≤1.

Para rodziców (przed krzyżowaniem)        Para potomków (po 
krzyżowaniu

  1 0 0 1 0 0 1

1 0 0 1 1 0 0

  0 1 1 0 1 0 0

0 1 1 0 0 0 1

Rys.  Przykład  zastosowania  operatora  krzyżowania  w 
chromosomach  składających  się    z  siedmiu  genów. 
(Krzyżowanie jednopunktowe z miejscem krzyżowania lk=4).

background image

16

 Etapy działania klasycznego algorytmu genetycznego

Operator mutacji (ang. mutation). 

Operator  ten  jest  elementem  reprodukcji,  która  może 

powodować  zmianę    w  pojedynczych  chromosomach.  W 
klasycznym algorytmie genetycznym mutacja występuję dość 
rzadko.  Dlatego  prawdopodobieństwo  zaistnienia    jej 
przyjmuje się na ogół                 0≤p

m

≤0,1. Wynika to przede 

wszystkim z faktu, że mutacje w świecie organizmów żywych 
zachodzą niezwykle rzadko. 

Mutacja  która  dokonuje  się  z  prawdopodobieństwem 

pm  polega  na  zamianie  wartości  genu  w  chromosomie  na 
przeciwną (tzn. z 0 na 1 lub z 1 na 0). 

  

chromosom przed mutacją  chromosom po mutacji

          1 0 0 1 

1

 0 0

       1 0 0 1 

0

 0 0

Rys. Przykład mutacji chromosomu o ośmiu genach. Mutacji 
dokonano na genie na piątej pozycji.

background image

17

 Etapy działania klasycznego algorytmu genetycznego

Etap 6. Wyprowadzenie najlepszego chromosomu.

Jeśli  warunek  zatrzymania  jest  już  spełniony 

należy  podać  rozwiązanie  problemu.  Najlepszym 
rozwiązaniem będzie chromosom o „najlepszej” wartości 
funkcji przystosowania.

background image

18

Przykład 1.

Dana jest funkcja f(x)=2*x

+1 z przedziału x € 

(O;15). 

Zadanie polega na przeszukaniu przestrzeni złożonej 

z 16 pkt i znalezieniu spośród wartości 0,1,,,15 dla 
której funkcja przyjmuje wartość maksymalną (lub 
minimalną)

Wartość parametru x można zakodować następująco. 

(Jest to kodowanie binarne czyli zapis liczb 
dziesiętnych w systemie dwójkowym)

0000 0001 0010 0011 0100 0101 0110 0111

1000 1001 1010 1011 1100 1101 1110 1111

background image

19

Przykład 1.

Przykład populacji o liczebności 6. 

Jest to zbiór 

Chromosomów:    0010     0101

0111 1001 1100

1110 

Fenotypy:

2

  5

7

9

12

14

Kodowanie binarne w systemie dwójkowym

Ciąg binarny [ 

1 0 0 1 1

] jest kodem liczby 19 

ponieważ  

1

*2

4

+

0

*2

3

+

0

*2

2

+

1

*2

1

+

1

*2

0

=19

background image

20

Przykład 2.

Należy znaleźć chromosom o możliwie największej 

liczbie jedynek. 

[11111111111111]

Założenia: chromosomy składają się z 12 genów a 

populacja liczy 8 chromosomów.

Rozwiązanie-najlepszy chromosom będzie składał się 

z 12 jedynek.

background image

21

Etap1. Inicjacja 

Polega na losowym doborze chromosomów do 

populccji np. rzut 96 razy monetą)

ch

1

=[111001100101]

ch

5

=[010001100100]

ch

2

=[001100111010]

ch

6

=[010011000101]

ch

3

=[011101110011]

ch

7

=[101011011011]

ch

4

=[001000101000]

ch

8

=[000010111100]

background image

22

Etap 2. 

Ocena przystosowania chromosomów w 

populacji (ilość jedynek)

F(ch

1

)=7     

F(ch

5

)=4    

F(ch

2

)=6

F(ch

6

)=5    

F(ch

3

)=8

F(ch

7

)=8    

F(ch

4

)=3

F(ch

8

)=5 

background image

23

Etap 3. Selekcja chromosomów metodą ruletki

V(ch

i

)=p

s

(ch

i

)*100%

ps(ch

i

)=F(ch

i

)/suma F(ch

i

)

v(ch

1

)=15,22    

v(Ch

5

)=8,70    

v(ch

2

)=13,04

v(Ch

6

)=10,87    

v(ch

3

)=17,39

v(Ch

7

)=17,39   

v(ch

4

)=6,52

v(Ch

8

)=10,89

Losowanie sprowadza się do losowego wyboru liczby z 

przedziału [0;100]

Założenie. Wylosowano 8 następujących liczb:

79  44   9

74

44

86

48

23

Oznacza to wybór następujących chromosomów:

ch

7

   ch

3

ch

1

ch

7

ch

3

ch

7

ch

4

ch

2

Powyższe chromosomy wchodzą do puli rodzicielskiej

background image

24

Etap 4. Zastosowanie operatorów 

genetycznych

Założenia

Prawdopodobieństwo krzyżowania

 p

c

=1

Prawdopodobieństwo mutacji 

p

m

=0

losowy dobór rodziców:  

ch

2

 i ch

7

ch

1

 i ch

7

      ch

3

 i ch

4

 ch

3

 i ch

7

 ;

losowy dobór punktów krzyżowania (locus):

l

k

=4,      l

k

=3,

    l

k

=11 oraz    l

k

=5,

background image

25

Etap 4. Zastosowanie operatorów 

genetycznych cd..

I para rodziców

I para potomków

ch

1

=[111001100101]

ch

5

=[010001100100]

ch

2

=[001100111010]

ch

6

=[010011000101]

l

k

=4

II para rodziców

II para potomków

ch

3

=[011101110011]

ch

7

=[101011011011]

ch

4

=[001000101000]

ch

8

=[000010111100]

l

k

=3

następnie dla ch

3

 i ch

4

  l

k

=11 oraz  ch

3

 i ch

7

  l

k

=5

background image

26

Etap 5. Utworzenie nowej populacji

ch

1

=[001111011011]

ch

5

=[011101110010]

ch

2

=[101000111010]

ch

6

=[001000101001]

ch

3

=[111011011011]

ch

7

=[011101011011]

ch

4

=[101001100101]

ch

8

=[101011110011] 

i powrót do etapu 2, czyli ocena funkcji 

przystosowania

       

potomkowie

rodzice

F(ch

1

)=8     F(ch

5

)=7

F(ch

1

)=7     F(ch

5

)=4

    

F(ch

2

)=6

F(ch

6

)=4    

F(ch

2

)=6

F(ch

6

)=5

    

F(ch

3

)=9

F(ch

7

)=8    

F(ch

3

)=8

F(ch

7

)=8

    

F(ch

4

)=6

F(ch

8

)=8

    

F(ch

4

)=3

F(ch

8

)=5 

background image

27

Szczególne procedury reprodukcji

Strategia  elitarna  –  (ang.  elitist  strategy)  polega 
na ochronie najlepszych chromosomów w kolejnych 
iteracjach.

W  klasycznym  algorytmie  genetycznym  najlepiej 
przystosowane  osobniki  nie  zawsze  przechodzą  do 
następnej  generacji.  Nie  zawsze  nowa  populacja 
(Pk+1)  zawiera  chromosom  o  największej  wartości 
funkcji przystosowania z populacji P(k).

Strategia  ta  stosowana  jest  w  celu  zabezpieczenia 
przed  utratą  takiego  osobnika.  Jest  on  zawsze 
włączony do następnej populacji. 

Przedstawicielem takiej strategii jest mikroalgorytm 
genetyczny.

background image

28

z ustalonym stanem – (ang. steady state)

Jest  to  algorytm  genetyczny  z  częściową  wymianą 
populacji (z ustalonym stanem). Charakteryzuje się 
tym,  że  część  populacji  przechodzi  do  następnej 
generacji  bez  jakichkolwiek  zmian.  Oznacza  to,  że 
część  populacji  nie  podlega  krzyżowaniu  i  mutacji. 
Często  w  konkretnej  implementacji  tego  typu 
algorytmu  tylko  jeden  lub  dwa  osobniki  są 
wymieniane  w  danej  chwili  zamiast  zastosowania 
operatorów:  krzyżowania  i  mutacji  w  obrębie  całej 
populacji. 

W niektórych programach do optymalizacji możemy 
sami określić jaki procent całej populacji, który jest 
wybierany  na  podstawie  funkcji  przystosowania 
wchodzi  bez  jakichkolwiek  zmian  do  następnej 
populacji.

background image

29

Mikroalgorytm genetyczny – 

Jest 

modyfikacją 

klasycznego 

algorytmu 

genetycznego, 

który 

służy 

do 

rozwiązania 

problemów  nie  wymagających  dużych  populacji  i 
długich chromosomów.

Zastosowanie  -  w  przypadku  ograniczenia  czasu 
obliczeniowego a rozwiązanie potrzebujemy szybko i 
niekoniecznie musi to być optimum globalne.

Cechy 

charakterystyczne 

mikroalgorytmu 

genetycznego:

 rozmiar populacji jest bardzo mały i ustalony

 stosuje się strategie elitarną (co zapobiega utracie 

dobrego chromosomu)

background image

30

 

populacja  jest  mała,  czyli  selekcja  odbywa  się  w  sposób 

deterministyczny

 krzyżowanie jest z prawdopodobieństwem 1

  nie  ma  mutacji,  ponieważ  wystarczająca 

różnorodność  wprowadza  się  przez  wybór  nowej 
populacji  po  każdym  restarcie  algorytmu  w  celu 
uniknięcia przedwczesnej zbieżności

Głównym celem mikroalgorytmu genetycznego  jest 
znalezienie    rozwiązania  optymalnego    lub  prawie 
optymalnego tak szybko jak to możliwe.

background image

31

Metody selekcji

Selekcja koła ruletki –(ang. roulette wheel 

selection)

Metoda  ta  swoją  nazwę  zawdzięcza 

analogii  do  losowania  za  pomocą  koła 
ruletki.  Metoda  polega  ta  na  przydzieleniu 
dla  każdego  chromosomu  wycinka  koła 
ruletki  o  wielkości  proporcjonalnej  do 
wartości 

funkcji 

przystosowania 

poszczególnego chromosomu. 

Im  większa  jest  wartość  funkcji 

przystosowania  tym  większy  wycinek 
(obszar) zajmuje na kole ruletki. 

Całe  koło  ruletki  jest  sumą  wartości 

funkcji 

przystosowania 

wszystkich 

chromosomów  w  populacji.  Oznacza  to,  że 
każdemu  chromosomowi  chi  dla  i  =1,2,
…,M,  gdzie  N  jest  liczebnością  populacji, 
odpowiada  wycinek  koła  v(chi)  stanowiący 
część  całego  koła  i  wyrażony  jest  w 
procentach zgodnie z poniższym wzorem

background image

32

Metody selekcji

  Selekcja  koła  ruletki  –(ang.  roulette 

wheel selection)

v(ch

i

)=p

s

(ch

i

)*100% ;

           p

s

(ch

i

)= 

gdzie    F(ch

i

)  oznacza  wartość  funkcji 

przystosowania  chromosomu  chi,  p

s

(ch

i

) 

jest 

prawdopodobieństwem 

selekcji 

chromosomu ch

i

. Selekcja metodą ruletki 

polega  na  obrocie  koła  ruletki,  w  wyniku 
czego  zostaje  wybrany  chromosom 
należący do wylosowanego w ten sposób 
pola koła  ruletki.

N

i

chi

F

chi

F

1

)

(

)

(

background image

33

Metoda 

ruletki 

– 

prawdopodobieństwo 

wyboru 

osobnika 

proporcjonalne 

do 

wartości 

FP

FP

 = funkcja przystosowania

Metody selekcji…

background image

34

Selekcja 

rankingowa 

– 

(ang. 

ranking 

selection) 

Osobniki  populacji  są  ustawione  kolejno  w 

zależności od wartości ich funkcji przystosowania. 
          Jest  to  lista  rankingowa  osobników 
uszeregowanych    od  najlepiej  do  najgorzej 
przystosowanych  (lub  odwrotnie),  gdzie  każdemu 
osobnikowi przypisana jest liczba określająca jego 
kolejność  na  liście  i  nazwana  jest  rangą  (ang. 
rank).

Liczba  kopii  każdego  osobnika,  wprowadzanych 
do puli rodzicielskiej M(k), jest ustalana zgodnie z 
wcześniej zdefiniowaną funkcją.

background image

35

Metoda rankingowa 

ranga

ilość 
kopii

Rys. Funkcja określająca zależność liczby kopii 
osobnika w puli rodzicielskiej od jego rangi w 
selekcji rankingowej

background image

36

Metody selekcji

Metoda turniejowa – (ang. tournament 
selection) 

Zastosowanie - metoda turniejowa nadaje się 
do problemów maksymalizacji jak i 
minimalizacji. Szczególnie wykorzystuje się ją 
do optymalizacji kilku funkcji jednocześnie. 
Badania wykazały, iż metoda turniejowa 
działa lepiej niż metoda ruletki.

W selekcji turniejowej dzieli się osobniki 
populacji na podgrupy, następnie z nich 
wybiera się osobnika o najlepszym 
przystosowaniu. Wybór ten może być:

 

wyborem 

deterministycznym, 

który 

dokonuje 

się 

prawdopodobieństwem 

równym 1

  wyborem  stochastycznym  (losowym),  który 

jest 

wyborem 

prawdopodobieństwem 

mniejszym od 1.

background image

37

Metoda turniejowa cd..

Podgrupy  mogą  być  dowolnego  rozmiaru 
ale  najczęściej  dzieli  się  populacje  na 
podgrupy  składające  się  z  2  lub  3 
osobników.

N osobników 

populacji P(k)

2 osobniki

2 osobniki

”najlepszy

” osobnik

”najlepszy

” osobnik

Pula 

rodzicielska 

M(k);

 N osobników

Rys. Przykład metody turniejowej z dwoma podgrupami

background image

38

1. Problem optymalizacji globalnej

– analityczne

– numeryczne (np. gradientowe)

– enumeracyjne

Metody klasyczne

Jak znaleźć

globalne maksimum

(globalne minimum)

– błądzenie przypadkowe

– symulowane wyżarzanie

– sieci neuronowe

– logika rozmyta

– algorytmy genetyczne

Nowe metody

f(x)

x

maksimum globalne

maksimum
lokalne

?

background image

39

FP

maksimum globalne

1. pokolenie

2. pokolenie

itd.

Ewolucja – dążenie do optymalnego 

background image

40

Algorytmy a tradycyjne metody optymalizacji    

Algorytm genetyczny stanowi wzorowana na naturalnej
ewolucji metodę rozwiązywania problemów, głównie
zagadnień optymalizacyjnych.
 
Od tradycyjnych metod optymalizacji różnią się kilkoma
zasadniczymi elementami. Otóż algorytmy genetyczne:

1) nie przetwarzają bezpośrednio parametrów zadania, 

lecz ich zakodowana postać,

2) prowadza przeszukiwanie, wychodząc nie z 

pojedynczego punktu, lecz z pewnej ich populacji, 

3) korzystają tylko z funkcji celu, nie zaś z jej 

pochodnych lub innych pomocniczych informacji,

4) stosują probabilistyczne, a nie deterministyczne 

reguły wyboru. 

background image

41

DZIĘKUJE ZA 

UWAGĘ


Document Outline