77
formalnie: Algorytmy genetyczne i wstęp do algorytmów ewolucyjnych Dorota Cendrowska nieformalnie: Techniczna wersja teorii Darwina lub parafraza książki Dawkingsona: Samolubny gen...

formalnie: Algorytmy genetyczne i wstęp do algorytmów ewolucyjnych

  • Upload
    makala

  • View
    34

  • Download
    1

Embed Size (px)

DESCRIPTION

nieformalnie: Techniczna wersja teorii Darwina lub parafraza książki Dawkingsona: Samolubny gen. formalnie: Algorytmy genetyczne i wstęp do algorytmów ewolucyjnych. Dorota Cendrowska. Plan wykładu. przykład gdy „duże” staje się „zbyt duże” metody poradzenia sobie ze „zbyt dużym”: - PowerPoint PPT Presentation

Citation preview

Page 1: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

formalnie:

Algorytmy genetyczne i wstęp do algorytmów ewolucyjnychDorota Cendrowska

nieformalnie:

Techniczna wersja teorii Darwina lub parafraza książki Dawkingsona: Samolubny gen...

Page 2: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Plan wykładu

przykład gdy „duże” staje się „zbyt duże”

metody poradzenia sobie ze „zbyt dużym”: poprzez dołączanie/eliminację algorytm wzrostu algorytm symulowanego wyżarzania algorytm genetyczny

algorytm genetyczny: podstawowe elementy składowe operatory kłopoty

Page 3: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Wybór atrybutów i... skalowalność

1

2

3 4

3

4

4

4

2

3

4

4

3

4

4

black box

Page 4: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Wybór atrybutów a skalowalność

1

2

3 4

3

4

4

4

2

3

4

4

3

4

4

black box

Page 5: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Wybór atrybutów poprzez dołączanie

black box

w każdym wywołaniu dołączany jestjeden z dostępnych atrybutów

dla najlepszego „dołączenia”funkcja jest wywoływana rekurencyjnie

parametry: T: zbiór uczący A: lista dostępnych atrybutów,

na starcie wszystkie: A1, ..., An

W: lista wybranych atrybutów,na starcie lista pusta.

Page 6: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Lista wybierzDołączanie(T,A,W){

double najlepszaOcenaNaTymPoziomie=0;

Lista wybor;

for(Atrybut a: A){

ocena=uruchomBlackBox_i_OceńPrzydatnosc(T,W+a);

if (ocena>najlepszaOcenaNaTymPoziomie){

wybor=W+a

pozostałeA=A-a;

najlepszaOcenaNaTymPoziomie=ocena;

}

}

if (pozostałeA!=null){

Lista tmp=wybierzDołączanie(T,pozostałeA,wybor);

ocena=uruchomBlackBox_i_OceńPrzydatność(T,tmp);

if (ocena>najlepszaOcenaNaTymPoziomie)

wybor=tmp;

}

return wybor;

}

Wybór atrybutów poprzez dołączanie

black box

Page 7: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Wybór atrybutów poprzez dołączanie

black box

...

...

1

2

3 4

3

4

4 3

2

4 2

4

2

3

3

2

2

1

3

4

3 4

4 3

1

4 1

4

1

3

3

1

3

4

Lista wybierzDołączanie(T,A,W){

.

.

.

}

A={1, 2, 3, 4}, W=null

Page 8: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Wybór atrybutów poprzez dołączanie

black box

Lista wybierzDołączanie(T,A,W){

.

.

.

}

A={1, 2, 3, 4}, W=null

A={1, 3, 4}, W={2}

...

...

1

2

3 4

3

4

4 3

2

4 2

4

2

3

3

2

2

1

3

4

3 4

4 3

1

4 1

4

1

3

3

1

3

4

Page 9: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Wybór atrybutów poprzez dołączanie

black box

Lista wybierzDołączanie(T,A,W){

.

.

.

}

A={1, 2, 3, 4}, W=null

A={1, 3, 4}, W={2}

A={3, 4}, W={2, 1}

...

...

1

2

3 4

3

4

4 3

2

4 2

4

2

3

3

2

2

1

3

4

3 4

4 3

1

4 1

4

1

3

3

1

3

4

Page 10: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Wybór atrybutów poprzez dołączanie

black box

Lista wybierzDołączanie(T,A,W){

.

.

.

}

A={1, 2, 3, 4}, W=null

A={1, 3, 4}, W={2}

A={3, 4}, W={2, 1}

A={4}, W={2, 1, 3}...

...

1

2

3 4

3

4

4 3

2

4 2

4

2

3

3

2

2

1

3

4

3 4

4 3

1

4 1

4

1

3

3

1

3

4

Page 11: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Wybór atrybutów poprzez eliminację

black box

w każdym wywołaniu usuwany jestjeden z branych pod uwagę atrybutów

dla najlepszej „eliminacji”funkcja jest wywoływana rekurencyjnie

parametry: T: zbiór uczący W: lista atrybutów branych pod uwagę,

na starcie wszystkie: A1, ..., An

Page 12: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Lista wybierzElimincja(T, W){

double najlepszaOcenaNaTymPoziomie, ocenaWszystkich;

Lista wybor;

ocenaWszystkich=uruchomBlackBox_i_OceńPrzydatnosc(T,W);

if (rozmiar listy W!=1){

for(Atrybut a: W){

ocena=uruchomBlackBox_i_OceńPrzydatnosc(T,W–a);

if (ocena>najlepszaOcenaNaTymPoziomie){

wybor=W–a

najlepszaOcenaNaTymPoziomie=ocena;

}

}

Lista tmp=wybierzEliminacja(T,wybor);

ocena=uruchomBlackBox_i_OceńPrzydatność(T,tmp);

if (ocena>najlepszaOcenaNaTymPoziomie)

{ wybor=tmp; najlepszaOcenaNaTymPoziomie=ocena; }

if (ocenaWszystkich>najlepszaOcenaNaTymPoziomie) wybor=W;

}

else wybor=ocenaWszystkich;

return wybor;

}

Wybór atrybutów poprzez eliminację

black box

Page 13: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Lista wybierzElimincja(T, W){

.

.

.

}

Wybór atrybutów poprzez eliminację

black box

bez 1

bez 2

bez 3

bez 4

bez 2

bez 3

bez 2

bez 3

bez 4

Page 14: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Algorytm największego wzrostu

Lista wybierzMetodaMaxWzrostu(T, ilePrób, k){

if (ilePrób<=0) return null

Lista start=wylosujAktualnyWybór(); double ocenaStartowego=uruchomBlackBox_i_OceńPrzydatnosc(T,start);

do{

wyborSasiedzi[]=wylosuj k wyborów różniących się na jednej pozycji od start;

oceń każdy z wyborów z tablicy wyborSasiedzi i wybierz z nich najlepsze rozwiązanie (najlepszySasiad, ocena) if (ocena>ocenaStartowego){

start=najlepszySasiad; ocenaStartowego=ocenaMax;

}

}while(start==najlepszySasiad);

if (ilePrób>1){

Lista innyDobry=wybierzMetodaMaxWzrostu(T, ilePrób-1,k);

return (lepsze z rozwiązań: start i innyDobry);

}

} black box

Page 15: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Algorytm największego wzrostu

1 2

34

Lista wybierzMetodaMaxWzrostu(T, ilePrób, k){

if (ilePrób<=0) return null

Lista start=wylosujAktualnyWybór(); double ocenaStartowego=uruchomBlackBox_i_OceńPrzydatnosc(T,start);

do{

wyborSasiedzi[]=wylosuj k wyborów różniących się na jednej pozycji od start;

oceń każdy z wyborów z tablicy wyborSasiedzi i wybierz z nich najlepsze rozwiązanie (najlepszySasiad, ocena) if (ocena>ocenaStartowego){

start=najlepszySasiad; ocenaStartowego=ocenaMax;

}

}while(start==najlepszySasiad);

if (ilePrób>1){

Lista innyDobry=wybierzMetodaMaxWzrostu(T, ilePrób-1,k);

return (lepsze z rozwiązań: start i innyDobry);

}

} black box

Page 16: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Algorytm największego wzrostu (przykład)

Lista wybierzMetodaMaxWzrostu(T, ilePrób, k){

if (ilePrób<=0) return null

Lista start=wylosujAktualnyWybór(); double ocenaStartowego=uruchomBlackBox_i_OceńPrzydatnosc(T,start);

do{

sasiedzi[]=wylosuj k wyborów różniących się na jednej pozycji od start;

oceń każdy z wyborów z tablicy sasiedzi i wybierz z nich najlepsze rozwiązanie (najlepszySasiad, ocena) if (ocena>ocenaStartowego){

start=najlepszySasiad; ocenaStartowego=ocenaMax;

}

}while(start==najlepszySasiad);

if (ilePrób>1){

Lista innyDobry=wybierzMetodaMaxWzrostu(T, ilePrób-1,k);

return (lepsze z rozwiązań: start i innyDobry);

}

} black box

1 2

34

start={2, 3}

sasiedzi={{1, 2, 3}, {3}, {2, 3,

4}}

Page 17: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Algorytm największego wzrostu (przykład)

Lista wybierzMetodaMaxWzrostu(T, ilePrób, k){

if (ilePrób<=0) return null

Lista start=wylosujAktualnyWybór(); double ocenaStartowego=uruchomBlackBox_i_OceńPrzydatnosc(T,start);

do{

sasiedzi[]=wylosuj k wyborów różniących się na jednej pozycji od start;

oceń każdy z wyborów z tablicy sasiedzi i wybierz z nich najlepsze rozwiązanie (najlepszySasiad, ocena) if (ocena>ocenaStartowego){

start=najlepszySasiad; ocenaStartowego=ocenaMax;

}

}while(start==najlepszySasiad);

if (ilePrób>1){

Lista innyDobry=wybierzMetodaMaxWzrostu(T, ilePrób-1,k);

return (lepsze z rozwiązań: start i innyDobry);

}

} black boxstart={1, 2, 3}

sasiedzi={{1, 2}, {1, 3}, {1, 2, 3,

4}}

1 2

34

Page 18: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Algorytm symulowanego wyżarzania

Lista wybierzMetodaSymWyżarzania(T){

Lista start=wylosujAktualnyWybór(); double ocenaStartowego=uruchomBlackBox_i_OceńPrzydatnosc(T,start);

do{

Lista sasiad=wylosuj „coś” co różni się na jednej pozycji od start;

double ocena=uruchomBlackBoz_i_OceńPrzydatność(T,sasiad);

if (ocena>ocenaStartowego){

start=sasiad; ocenaStartowego=ocena;

}

else

if (Math.random()<exp((ocena-ocenaStartowego)/T)){

start=sasiad; ocenaStartowego=ocena;

zmniejsz(T);

}

}while(nie_nastąpi_ochłodzenie);

}

black box

Page 19: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Wyżarzanie vs. metoda maksylnego wzrostu

metoda maksymalnego wzrostu:

wyżarzanie: „musi/[może] być gorzej aby było lepiej”

Page 20: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

schemat algorytmu genetycznego

t++

>>selekcja<<oceń i wybierz rodziców

P(t)

R(t)

>>reprodukcja<<

D(t)

>>wymiana pokoleń<<oceń i wybierz nową populację

Page 21: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

schemat algorytmu genetycznego

t++

>>selekcja<<oceń i wybierz rodziców

P(t)

R(t)

>>reprodukcja<<

D(t)

>>wymiana pokoleń<<oceń i wybierz nową populację

Page 22: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Fenotyp, genotyp, populacja (alg. genetyczny)

Fenotyp: konkretne rozwiązanie, w problemie wyboru atrybutów: atrybuty 3, 5 i 9

Genotyp: zakodowane binarnie konkretne rozwiązanie, w problemie wyboru atrybutów:

Populacja: ustalony (co do rozmiaru) zbiór genotypów

0 0 1 0 1 0 0 0 1 0

1 0 1 0 1 0 1 0 1 0

1 1 1 0 0 0 0 0 0 0

0 0 0 0 0 0 1 1 1 1

0 0 1 0 1 0 0 0 1 0

0 1 1 1 0 0 1 1 1 1

Page 23: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

schemat algorytmu genetycznego

t++

>>selekcja<<oceń i wybierz rodziców

P(t)

R(t)

>>reprodukcja<<

D(t)

>>wymiana pokoleń<<oceń i wybierz nową populację

Page 24: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Ocena członków populacji

funkcja przystosowania (celu): funkcja, która ocenia przydatność rozwiązania reprezentowanego przez genotyp:

1 0 1 0 1 0 1 0 1 0

1 1 1 0 0 0 0 0 0 0

0 0 0 0 0 0 1 1 1 1

0 0 1 0 1 0 0 0 1 0

0 1 1 1 0 0 1 1 1 1

fc(g1)=0,35g1=

g2=

g3=

g4=

g5=

fc(g2)=0,70

fc(g3)=0,49

fc(g4)=0,20

fc(g5)=0,40

black box

Page 25: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Własności funkcji przystosowania

monotoniczna rosnąca (przykład: wybór atrybutów)fc(g4) fc(g5)

fc(g3)

fc(g2)

fc(g4) < fc(g1) < fc(g5) < fc(g3) < fc(g2)

fc(g1)

1 0 1 0 1 0 1 0 1 0

1 1 1 0 0 0 0 0 0 0

0 0 0 0 0 0 1 1 1 1

0 0 1 0 1 0 0 0 1 0

0 1 1 1 0 0 1 1 1 1

fc(g1)=0,35g1=

g2=

g3=

g4=

g5=

fc(g2)=0,70

fc(g3)=0,49

fc(g4)=0,20

fc(g5)=0,40

black box

Page 26: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Własności funkcji przystosowania

monotoniczna rosnąca (przykład: wybór atrybutów)

dodatnia (?)

fc(g4) fc(g5)

fc(g3)

fc(g2)

fc(g4) < fc(g1) < fc(g5) < fc(g3) < fc(g2)

fc(g1)

1 0 1 0 1 0 1 0 1 0

1 1 1 0 0 0 0 0 0 0

0 0 0 0 0 0 1 1 1 1

0 0 1 0 1 0 0 0 1 0

0 1 1 1 0 0 1 1 1 1

fc(g1)=0,35g1=

g2=

g3=

g4=

g5=

fc(g2)=0,70

fc(g3)=0,49

fc(g4)=0,20

fc(g5)=0,40

black box

Page 27: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

metody selekcji: P(t)R(t)

metoda rankingowa: wybór k najlepszych z populacji P(t)

Page 28: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

metody selekcji: P(t)R(t)

metoda rankingowa: wybór k najlepszych z populacji P(t)

metoda ruletki:

g1

g2

g3

g4

g5

16% (0,35)

49% (0,35+0,70)

100% (0,35+0,7+0,49+0,2+0,4)

1 0 1 0 1 0 1 0 1 0

1 1 1 0 0 0 0 0 0 0

0 0 0 0 0 0 1 1 1 1

0 0 1 0 1 0 0 0 1 0

0 1 1 1 0 0 1 1 1 1

fc(g1)=0,35g1=

g2=

g3=

g4=

g5=

fc(g2)=0,70

fc(g3)=0,49

fc(g4)=0,20

fc(g5)=0,40

black box

Page 29: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

metody selekcji: P(t)R(t)

metoda rankingowa: wybór k najlepszych z populacji P(t)

metoda ruletki

metoda turniejowa: losowy wybór s osobników z P(t); rodzicem staje

się zwycięzca z wybranych osobników (mający maksymalną wartość funkcji przystosowania)

Page 30: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

schemat algorytmu genetycznego

t++

>>selekcja<<oceń i wybierz rodziców

P(t)

R(t)

>>reprodukcja<<

D(t)

>>wymiana pokoleń<<oceń i wybierz nową populację

Page 31: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

reprodukcja: R(t)D(t)

reprodukcja oznacza: krzyżowanie — wymiana fragmentu

chromosomu — z pewnym prawdopodobieństwem(zwykle dużo większym niż mutowanie, np. 0.2–0.4)

mutowanie — zamiana pojedynczego genu — z pewnym prawdopodobieństwem (np. 0.05)

Page 32: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

reprodukcja: R(t)D(t)

reprodukcja oznacza: krzyżowanie — wymiana fragmentu

chromosomu — z pewnym prawdopodobieństwem(zwykle dużo większym niż mutowanie, np. 0.2–0.4)

mutowanie — zamiana pojedynczego genu — z pewnym prawdopodobieństwem (np. 0.05)

klasyczne operatory: operator krzyżowania operator mutacji

Page 33: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

reprodukcja: R(t)D(t)

operator krzyżowania: jednopunktowy

1 1 1 0 1 1 1 1 1 0R1(t)=g1=

0 1 0 1 0 0 0 1 1 0R2(t)=g6=

1 1 1 0 1 1 1 1 1 0

0 1 0 1 0 0 0 1 1 0

R1(t)=g1=

R2(t)=g6=

1 1 1 0

1 1 1 1 1 00 1 0 1

0 0 0 1 1 0D1(t)=

D2(t)

Page 34: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

reprodukcja: R(t)D(t)

operator krzyżowania: jednopunktowy

wielopunktowy (np. dwupunktowy)

1 1 1 0 1 1 1 1 1 0R1(t)=g1=

0 1 0 1 0 0 0 1 1 0R2(t)=g6=

1 1 1 0 1 1 1 1 1 0

0 1 0 1 0 0 0 1 1 0

R1(t)=g1=

R2(t)=g6=

1 1 1 0

1 1 1 1 1 00 1 0 1

0 0 0 1 1 0D1(t)=

D2(t)

1 1 1 0 1 1 1 1 1 0

0 1 0 1 0 0 0 1 1 0

R1(t)=g1=

R2(t)=g6=

1 1 1

0 1

1 1 1 1 0

0 1 0

1 0

0 0 1 1 0

D1(t)=

D2(t)=

Page 35: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

reprodukcja: R(t)D(t)

operator krzyżowania: „wygodna implementacja”

1 1 1 0 1 1 1 1 1 0R1(t)=g1=

0 1 0 1 0 0 0 1 1 0R2(t)=g6=

1 1 1 0 1 1 1 1 1 0R1(t)=g1=

R2(t)=g6=

czy krzyżować? T T N N T T N T N T

0 1 0 1 0 0 0 1 1 0

0 1

0 1

0 0

0

1

1

0

1 1 1 1 1 0

1 0 1 1D1(t)=

D2(t)=

Page 36: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

reprodukcja: R(t)D(t)

klasyczne operatory: operator krzyżowania operator mutacji — czy mutować?

Jeśli tak, to który gen (dla każdego osobnika osobno)

1 1 1 0

1 1 1 1 1 00 1 0 1

0 0 0 1 0D1(t)=

D2(t)=

1 1 1 0

1 1 1 1 1 11 1 0 1

0 0 0 0 1 0D1(t)=

D2(t)=

po krzyżowaniu, przed mutacją

po krzyżowaniu i po mutacji

1

Page 37: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

schemat algorytmu genetycznego

t++

>>selekcja<<oceń i wybierz rodziców

P(t)

R(t)

>>reprodukcja<<

D(t)

>>wymiana pokoleń<<oceń i wybierz nową populację

Page 38: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

metody selekcji: D(t)P(t+1)

metoda rankingowa: wybór n najlepszych z populacji D(t) wybór (n–m) najlepszych z populacji D(t)

i zachowanie m najlepszych ze starej populacji P(t)

Page 39: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Kłopoty: funkcja przystosowania

monotoniczna rosnąca, ale (!), przykład: wybór atrybutów, ale nie więcej niż 5.

fc(g1)

fc(g3)

fc(g7)

fc(g5)

fc(g8)

fc(g2)

fc(g6)

fc(g4)

fc(g1) < fc(g3) < fc(g7) < fc(g5) < fc(g8) < fc(g2) < fc(g6) < fc(g4)

złe dobre

1 0 1 0 1 1 1 0 1 1

0 1 0 1 0 0 1 1 1 0

0 0 0 0 0 0 0 0 1 1

1 1 1 0 1 1 1 1 1 0

0 1 1 1 0 0 1 0 0 0

g1=

g2=

g3=

g4=

g5=

1 1 1 0 1 0 1 0 1 0

1 1 1 0 0 0 0 0 0 0

0 1 0 1 0 0 0 1 1 0g6=

g7=

g8=

Page 40: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Kłopoty: funkcja przystosowania

monotoniczna rosnąca, ale (!), przykład: wybór atrybutów, ale nie więcej niż 5.

problem plecakowy: ograniczenie łącznej wagiz jednoczesną maksymalizacją wartości przedmiotów wśród „złych” są „mniej złe” :)

fc(g1)

fc(g3)

fc(g7)

fc(g5)

fc(g8)

fc(g2)

fc(g6)

fc(g4)

fc(g1) < fc(g3) < fc(g7) < fc(g5) < fc(g8) < fc(g2) < fc(g6) < fc(g4)

złe dobre

Page 41: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Kłopoty: funkcja przystosowania

znajdowanie optimum: maksimum: f(x) fc=f(x)

minimum: h(x) fc=1/h(x)

Page 42: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Kłopoty: funkcja przystosowania

znajdowanie optimum: maksimum: f(x) fc=f(x) (?)

minimum: h(x) fc=1/h(x) (?)

Page 43: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Kłopoty: funkcja przystosowania

znajdowanie optimum: maksimum: f(x) fc=f(x) (?)

minimum: h(x) fc=1/h(x) (?)

przykłady: f(x)=h(x)=x2 dla x z przedziału <0,100> f(x)=h(x)=x2 dla x z przedziału <-50, 50>

Page 44: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Kłopoty: reprezentacja binarna

przykład: f(x)=x2 dla x całkowitego z przedziału <0, 100> fc=f(x)+1

kodowanie — fenotyp genotyp 0 0000000 1 0000001 ................... 99 1100011

100 1100100

Page 45: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Kłopoty: reprezentacja binarna

przykład: f(x)=x2 dla x całkowitego z przedziału <-50, 50> fc=f(x)+1

kodowanie — fenotyp genotyp -50 0000000 -49 0000001 ................... 49 1100100

50 1100101

Page 46: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Kłopoty: reprezentacja binarna

argument rzeczywisty z określoną precyzją: <0, 3.5> z precyzją dwóch miejsc po przecinku

fenotyp genotyp 0.00 000000000 0.01 000000001 ........................ 3.49101011110

3.50 101011111

Page 47: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Kłopoty: reprezentacja binarna

argument rzeczywisty z określoną precyzją: <0, 3.5> z precyzją dwóch miejsc po przecinku

a jeśli (co gorsza) jest kilka argumentów rzeczywistych, np. f(x, y, z, t)?

fenotyp genotyp 0.00 000000000 0.01 000000001 ........................ 3.49101011110

3.50 101011111

Page 48: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Kłopoty: reprezentacja binarna

komiwojażer (n miast):

Page 49: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Kłopoty: reprezentacja binarna

komiwojażer (n miast):

komiwojażer (6 miast):

0001 0010 0011 0100 0101 0110

A B C D E F

Page 50: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Kłopoty: reprezentacja binarna

komiwojażer (n miast):

komiwojażer (6 miast):

zdecydowana większość chromosomównie odpowiada żadnemu sensownemu fenotypowi:

0001 0010 0011 0100 0101 0110

A B C D E F

0001 1010 0001 1100 1101 1111

A ? A ? ? ?

Page 51: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Genetyczny czy ewolucyjny algorytm?

algorytmy ewolucyjnealgorytmy

genetyczne

Page 52: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

po kłopotach: reprezentacja całkowita

komiwojażer (n miast):

komiwojażer (12 miast):

problemy: klasyczny operator krzyżowania klasyczny operator mutacji (jak?)

5 101 9 12 23 6 4 811 7

5 101 9 12 23 6 4 811 7

3 41 2 8 1012 11 7 95 6

1

12

3

6 811 731

8

12

11 765 109

2 442

10 95

Page 53: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

po kłopotach: reprezentacja całkowita

krzyżowanie PMX (Goldberg i Lingle):5 101 9 12 23 6 4 811 7

3 41 2 8 1012 11 7 95 6

Page 54: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

po kłopotach: reprezentacja całkowita

krzyżowanie PMX (Goldberg i Lingle):

1. wymień „podtrasy”:

5 101 9 12 23 6 4 811 7

3 41 2 8 1012 11 7 95 6

5 101 9

12 23 6

4 8

11

7

3 41 2

8 1012 11

7 9

5

6

Page 55: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

po kłopotach: reprezentacja całkowita

krzyżowanie PMX (Goldberg i Lingle):

1. wymień „podtrasy”:

2. uzupełnij liczby, które nie powodują konfliktów:

5 101 9 12 23 6 4 811 7

3 41 2 8 1012 11 7 95 6

5 101 9

12 23 6

4 8

11

7

3 41 2

8 1012 11

7 9

5

6

5 101 9

12 23 6

4 8

11

7

3 41 2

8 1012 11

7 9

5

6

Page 56: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

po kłopotach: reprezentacja całkowita

krzyżowanie PMX (Goldberg i Lingle):

1. wymień „podtrasy”:

2. uzupełnij liczby, które nie powodują konfliktów:

3. uzupełnij wykorzystując reguły utworzone przez „podtrasy”

5 101 9 12 23 6 4 811 7

3 41 2 8 1012 11 7 95 6

5 101 9

12 23 6

4 8

11

7

3 41 2

8 1012 11

7 9

5

6

5 101 9

12 23 6

4 8

11

7

3 41 2

8 1012 11

7 9

5

6

12 3 11 6 8 12

10 25 11

Page 57: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

5 101 9

12 23 6

4 8

11

7

3 41 2

8 1012 11

7 9

5

6

po kłopotach: reprezentacja całkowita

krzyżowanie PMX (Goldberg i Lingle):

1. wymień „podtrasy”:

2. uzupełnij liczby, które nie powodują konfliktów:

3. uzupełnij wykorzystując reguły utworzone przez „podtrasy”

5 101 9 12 23 6 4 811 7

3 41 2 8 1012 11 7 95 6

5 101 9

12 23 6

4 8

11

7

3 41 2

8 1012 11

7 9

5

6

12 3 11 6 8 12

10 25 11

Page 58: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

5 21 9

12 23 6

4 8

11

7

3 41 10

8 1012 11

7 9

5

6

krzyżowanie PMX (Goldberg i Lingle):

1. wymień „podtrasy”:

2. uzupełnij liczby, które nie powodują konfliktów:

3. uzupełnij wykorzystując reguły utworzone przez „podtrasy”

po kłopotach: reprezentacja całkowita

5 101 9 12 23 6 4 811 7

3 41 2 8 1012 11 7 95 6

5 101 9

12 23 6

4 8

11

7

3 41 2

8 1012 11

7 9

5

6

12 3 11 6 8 12

10 25 11

Page 59: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

5 21 9

12 23 6

4 8

11

7

3 41 10

8 1012 11

7 9

5

6

krzyżowanie PMX (Goldberg i Lingle):

1. wymień „podtrasy”:

2. uzupełnij liczby, które nie powodują konfliktów:

3. uzupełnij wykorzystując reguły utworzone przez „podtrasy”

po kłopotach: reprezentacja całkowita

5 101 9 12 23 6 4 811 7

3 41 2 8 1012 11 7 95 6

5 101 9

12 23 6

4 8

11

7

3 41 2

8 1012 11

7 9

5

6

12 3 11 6 8 12

10 25 11

Page 60: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

6 21 9

12 23 6

4 8

11

7

3 41 10

8 1012 11

7 9

5

6

krzyżowanie PMX (Goldberg i Lingle):

1. wymień „podtrasy”:

2. uzupełnij liczby, które nie powodują konfliktów:

3. uzupełnij wykorzystując reguły utworzone przez „podtrasy”

po kłopotach: reprezentacja całkowita

5 101 9 12 23 6 4 811 7

3 41 2 8 1012 11 7 95 6

5 101 9

12 23 6

4 8

11

7

3 41 2

8 1012 11

7 9

5

6

12 3 11 6 8 12

10 25 11

Page 61: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

6 21 9

12 23 6

4 8

11

7

3 41 10

8 1012 11

7 9

5

6

krzyżowanie PMX (Goldberg i Lingle):

1. wymień „podtrasy”:

2. uzupełnij liczby, które nie powodują konfliktów:

3. uzupełnij wykorzystując reguły utworzone przez „podtrasy”

po kłopotach: reprezentacja całkowita

5 101 9 12 23 6 4 811 7

3 41 2 8 1012 11 7 95 6

5 101 9

12 23 6

4 8

11

7

3 41 2

8 1012 11

7 9

5

6

12 3 11 6 8 12

10 25 11

Page 62: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

6 21 9

12 23 6

4 3

11

7

8 41 10

8 1012 11

7 9

5

5

krzyżowanie PMX (Goldberg i Lingle):

1. wymień „podtrasy”:

2. uzupełnij liczby, które nie powodują konfliktów:

3. uzupełnij wykorzystując reguły utworzone przez „podtrasy”

po kłopotach: reprezentacja całkowita

5 101 9 12 23 6 4 811 7

3 41 2 8 1012 11 7 95 6

5 101 9

12 23 6

4 8

11

7

3 41 2

8 1012 11

7 9

5

6

12 3 11 6 8 12

10 25 11

Page 63: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Krzyżowanie OX (Davis)

1. zapisz ciągi liczb zaczynając od elementu za „podtrasą” 5 101 9 12 23 6 4 811 7

3 41 2 8 1012 11 7 95 6

Page 64: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

1. zapisz ciągi liczb zaczynając od elementu za „podtrasą”

5 101 9 12 23 6 4 811 7

3 41 2 8 1012 11 7 95 6 7 96 3 41 2 8 1012 11 5

4 87 5 101 9 23 6 1112

Krzyżowanie OX (Davis)

Page 65: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

5 101 9 12 23 6 4 811 7

3 41 2 8 1012 11 7 95 6

7 96 3 41 2 8 1012 11 5

4 87 5 101 9 23 6 1112

1. zapisz ciągi liczb zaczynając od elementu za „podtrasą”

2. skreśl te elementy, które występują w podtrasie drugiego rodzica

5 101 9 12 23 6 4 811 7

3 41 2 8 1012 11 7 95 6 7 96 3 41 2 8 1012 11 5

4 87 5 101 9 23 6 1112

Krzyżowanie OX (Davis)

Page 66: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

1. zapisz ciągi liczb zaczynając od elementu za „podtrasą”

2. skreśl te elementy, które występują w „podtrasie” drugiego rodzica

3. przepisz, zaczynając od elementu za „podtrasą”:

Krzyżowanie OX (Davis)

5 101 9 12 23 6 4 811 7

3 41 2 8 1012 11 7 95 6

7 96 3 41 2 8 1012 11 5

4 87 5 101 9 23 6 1112

12 23 6 11 7 9 14 8 10 5

1012 11 5847 1 9 3 6 2

Page 67: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Krzyżowanie cykliczne CX (Oliver)

1. Określ cykl rozpoczynając od pierwszego elementu pierwszego rodzica:

5 109 12 23 6 4 811 7

3 42 8 1012 11 7 95 6

1

1

Page 68: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Krzyżowanie cykliczne CX (Oliver)

1. Określ cykl rozpoczynając od pierwszego elementu pierwszego rodzica:

5 109 12 23 6 4 811 7

3 42 8 1012 11 7 95 6

1

1

9 2 10 4 9

Page 69: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Krzyżowanie cykliczne CX (Oliver)

1. Określ cykl rozpoczynając od pierwszego elementu pierwszego rodzica:

5 109 12 23 6 4 811 7

3 42 8 1012 11 7 95 6

1

1

9 2 10 4 9

5 109 12 23 6 4 811 7

3 42 8 1012 11 7 95 6

1

1

Page 70: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Krzyżowanie cykliczne CX (Oliver)

1. Określ cykl rozpoczynając od pierwszego elementu pierwszego rodzica:

2. Dokonaj wymiany pozostałych bloków:

5 109 12 23 6 4 811 7

3 42 8 1012 11 7 95 6

1

1

9 2 10 4 9

5 109 12 23 6 4 811 7

3 42 8 1012 11 7 95 6

1

1

5

109

12

2

3 6

4

811 7

3

42

8

10

12 11 7

9

5 6

1

1

Page 71: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

mutacja dla problemu komiwojażera

wymiana losowo wybranych elementów genotypu:

109 2 43 812 11 75 6 1

109 2 43 812 11 75 6 1

59 2 43 812 11 710 6 1

Page 72: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Krzyżowanie i mutacja dla liczb rzeczywistych

Liczby w genotypie zapisywane są z określoną precyzją (przed i po przecinku)

Krzyżowanie jest „identyczne” z klasycznym krzyżowaniem, np.:

0. 01 5 5

5. 30 0 10 0 02.

2 0 90.

Page 73: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Krzyżowanie i mutacja dla liczb rzeczywistych

Liczby w genotypie zapisywane są z określoną precyzją (przed i po przecinku)

Krzyżowanie jest „identyczne” z klasycznym krzyżowaniem, np.:

0. 01 5 5

5. 30 0 10 0 02.

2 0 90.

0. 01 5 5

5. 30 0 10 0 02.

2 0 90.

Page 74: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Krzyżowanie i mutacja dla liczb rzeczywistych

Liczby w genotypie zapisywane są z określoną precyzją (przed i po przecinku)

Krzyżowanie jest „identyczne” z klasycznym krzyżowaniem, np.:

0. 01 5 5

5. 30 0 10 0 02.

2 0 90.

0. 01 5 5

5. 30 0 10 0 02.

2 0 90.

0 00. 01

5 55. 30 2 0 02.

0 1 90.

Page 75: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Krzyżowanie i mutacja dla liczb rzeczywistych

Liczby w genotypie zapisywane są z określoną precyzją (przed i po przecinku)

Krzyżowanie jest „identyczne” z klasycznym krzyżowaniem, np.:

Mutacja oznacza zamianę cyfry na dowolną innąz określonego dla danej pozycji możliwych cyfr

0 00. 01

5 55. 30 2 0 02.

0 1 90.

Page 76: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

Podsumowanie

algorytm genetyczny/ewolucyjny: reprezentacja operatory prawdopodobieństwa użycia operatorów rozmiar populacji, populacji rodzicielskiej,

populacji potomków

Page 77: formalnie:   Algorytmy genetyczne   i wstęp do algorytmów ewolucyjnych

jak zwykle, zamiast zakończenia...

filozoficznie:

fragment okładki i książki pt. „Paddington daje sobie radę”

(autor: Michael Bond)

— Wie pani — powiedział do pani Bird, gdy przyszła do jadalni, by sprawdzić, czy już zjadł grzankę z marmoladą — nigdy dotąd nie zrobiłem wszystkiego, bo gdybym zrobił, to nie czekałyby mnie już żadne niespodzianki.