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
formalnie:
Algorytmy genetyczne i wstęp do algorytmów ewolucyjnychDorota Cendrowska
nieformalnie:
Techniczna wersja teorii Darwina lub parafraza książki Dawkingsona: Samolubny gen...
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
Wybór atrybutów i... skalowalność
1
2
3 4
3
4
4
4
2
3
4
4
3
4
4
black box
Wybór atrybutów a skalowalność
1
2
3 4
3
4
4
4
2
3
4
4
3
4
4
black box
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.
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
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
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
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
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
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
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
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
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
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
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}}
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
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
Wyżarzanie vs. metoda maksylnego wzrostu
metoda maksymalnego wzrostu:
wyżarzanie: „musi/[może] być gorzej aby było lepiej”
schemat algorytmu genetycznego
t++
>>selekcja<<oceń i wybierz rodziców
P(t)
R(t)
>>reprodukcja<<
D(t)
>>wymiana pokoleń<<oceń i wybierz nową populację
schemat algorytmu genetycznego
t++
>>selekcja<<oceń i wybierz rodziców
P(t)
R(t)
>>reprodukcja<<
D(t)
>>wymiana pokoleń<<oceń i wybierz nową populację
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
schemat algorytmu genetycznego
t++
>>selekcja<<oceń i wybierz rodziców
P(t)
R(t)
>>reprodukcja<<
D(t)
>>wymiana pokoleń<<oceń i wybierz nową populację
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
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
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
metody selekcji: P(t)R(t)
metoda rankingowa: wybór k najlepszych z populacji P(t)
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
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)
schemat algorytmu genetycznego
t++
>>selekcja<<oceń i wybierz rodziców
P(t)
R(t)
>>reprodukcja<<
D(t)
>>wymiana pokoleń<<oceń i wybierz nową populację
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)
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
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)
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)=
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)=
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
schemat algorytmu genetycznego
t++
>>selekcja<<oceń i wybierz rodziców
P(t)
R(t)
>>reprodukcja<<
D(t)
>>wymiana pokoleń<<oceń i wybierz nową populację
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)
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=
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
Kłopoty: funkcja przystosowania
znajdowanie optimum: maksimum: f(x) fc=f(x)
minimum: h(x) fc=1/h(x)
Kłopoty: funkcja przystosowania
znajdowanie optimum: maksimum: f(x) fc=f(x) (?)
minimum: h(x) fc=1/h(x) (?)
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>
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
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
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
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
Kłopoty: reprezentacja binarna
komiwojażer (n miast):
Kłopoty: reprezentacja binarna
komiwojażer (n miast):
komiwojażer (6 miast):
0001 0010 0011 0100 0101 0110
A B C D E F
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 ? ? ?
Genetyczny czy ewolucyjny algorytm?
algorytmy ewolucyjnealgorytmy
genetyczne
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
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
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
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
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
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
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
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
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
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
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
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
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)
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)
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
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
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
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
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
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
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.
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.
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.
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.
Podsumowanie
algorytm genetyczny/ewolucyjny: reprezentacja operatory prawdopodobieństwa użycia operatorów rozmiar populacji, populacji rodzicielskiej,
populacji potomków
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.