Documente Academic
Documente Profesional
Documente Cultură
1
INTRODUCERE ÎN CALCULUL
EVOLUTIV
g j x 2 b h x
k1 k2
F( x ) f ( x ) a j
j 1 j 1
unde
u 2 u0
u
0 u0
3
19
METODE DE SELECŢIE
3.1. Introducere
nr 4 nr 2 nr 6 nr 5 nr 1 nr 3
individ
Numar
1 2 3 4 5 6 7 8 9 10
Individ
Fitness 2.0 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2
Proba- 0.18 0.16 0.15 0.13 0.11 0.09 0.07 0.06 0.03 0.02
bilitate
selectie
21
Dorind să selectăm 6 indivizi, se generează 6 numere aleatoare
uniform distribuite în intervalul 0, 1 . Fie acestea 0.81 , 0.32 ,
0.96 , 0.01 , 0.65 , 0.42 . Aşezând cei 10 indivizi pe o dreaptă, în
ordinea
1, 2, ... ,10, individul 1 va ocupa segmentul cuprins între 0.0 şi 0.18,
individul 2 segmentul dintre 0.18 şi 0.34, individul 3 segmentul dintre
0.34 şi 0.49, etc. Deoarece individul 6 corespunde segmentului
delimitat de 0.73 şi 0.82 iar primul număr generat (= 0.81) cade în
acest segment, individul 6 va fi selectat pentru reproducere. În mod
similar se selecteaza indivizii 1, 2, 3, 5, 9; deci, populaţia selectată
este formată din indivizii 1, 2, 3, 5, 6, 9.
f
f i
n
• individul i este selectat pentru reproducere cu probabilitatea
fi fi
pi .
f i n f
• dacă trebuie selectaţi N indivizi, numărul N i al indivizilor ce vor
fi selectaţi cu probabilitatea pi va fi apoximativ egal cu N pi .
22
Metoda fitnessului proporţionat poate fi implementată cu ajutorul
algoritmului ruletei.
4
OPERATORI GENETICI
4.1. Încrucişarea
părinţi descendenţi
Figura 4.2
De exemplu, indivizii
p1: 01110011010
p2: 10101100101
cu 3 puncte de încrucişare date de poziţiile : 2, 6, 10
generează descendenţii
d1: 0 1| 1 0 1 1| 0 1 1 1| 1
d2: 1 0| 1 1 0 0| 0 0 1 0| 0
24
Ideea încrucişării multiple este aceea că părţi ale cromozomilor
care contribuie la îmbunătăţirea performanţei unui individ nu este
necesar să fie conţinute în subşiruri adiacente. Mai mult, încrucişarea
multiplă pare să încurajeze explorarea în spaţiul de căutare mai
degrabă decât să favorizeze convergenţa rapidă către indivizii de elită.
4.1.2. Încrucişarea
reală
4.1.2.2. Încrucişarea
intermediară
părinte 1 părinte 2
aria părinţilor
zona posibilă a descendeţilor
Figura 4.4
p1: 12 25 5
p2: 123 4 34
Încrucişarea specifica
4.1.5. Încrucişarea prin drumuri
26
Trei tipuri de încrucişare sunt utilizate în cazul reprezentării prin
drumuri: parţial aplicată (PMX), de ordine (OX) şi ciclică (CX).
p1: 1 2 3 | 4 5 6 7 | 8 9
şi
p2: 4 5 2 |1 8 7 6 | 9 3
1 4 , 8 5 , 7 6 şi 6 7 .
27
Apoi, se copiază în locurile libere din cei doi descendenţi elementele
corespunzătoare din părinţi, dacă acestea nu generează conflicte;
rezultă
d1: 2 3 |1 8 7 6 | 9
şi
d2: 2 | 4 5 6 7 | 9 3
d1: 4 2 3 |1 8 7 6 | 5 9
şi
d2: 1 8 2 | 4 5 6 7 | 9 3
4.1.5.2. Încrucişarea OX
p1: 1 2 3 | 4 5 6 7 | 8 9
şi
p2: 4 5 2 |1 8 7 6 | 9 3
28
vor produce descendenţi în felul următor. Mai întâi, porţiunile dintre
punctele de tăietură sunt copiate în cei doi descendenţi
d1: |4 5 6 7|
d2: |1 8 7 6|
Apoi, pornind de la al doilea punct de tăietură al unuia dintre părinţi se
copiază oraşele din celălalt părinte, păstrând ordinea şi omiţând
oraşele care sunt deja prezente; când se ajunge la sfârşitul traseului se
continuă cu primul oraş. Şirul oraşelor din al doilea părinte, începând
cu al doilea punct de tăietură, este
9 3 4 5 2 1 8 7 6;
d1: 2 1 8 | 4 5 6 7 | 9 3.
d2: 3 4 5 | 1 8 7 6 | 9 2.
4.2. Mutaţia
forme.
• mutaţia multiplicativă:
x'i xi N 0, i , i 1, , n
cu parametru real.
cu proprietăţile
1) h este descrescătoare
32
2) h(T ) 0
unde T este numărul maxim de iteraţii.
Un exemplu de astfel de funcţie este
b
t
h(t ) 1 r
1
T ,
• mutaţia prin inserare: se aleg aleator două gene şi apoi una dintre
ele se inserează lângă cealaltă; de exemplu, din
1 2 3 4 5 6 7 8 9
şi poziţiile 3 şi 7 se obţine
1 2 3 7 4 5 6 8 9 .
se poate obţine
1 2 5 3 6 4 7 8 9 .
5
34
FUNCŢIONAREA ALGORITMILOR
GENETICI
bi ai 10 p 2l
i
1 .
35
Atunci, o reprezentare a variabilei x i ca un şir binar de
lungime li va satisface precizia dorită. În plus, are loc formula
bi ai
xi ai zecimal string 2
2 li 1
unde zecimal string 2 reprezintă valoarea zecimală a şirului binar
string .
şi
c1c 2 c pos c pos 1 cl
şi
c1c 2 c pos b pos 1 bl .
38
Se aplică, apoi, operatorul de mutaţie. Probabilitatea de mutaţie p m
dă numărul p m l n al biţilor ce vor suferi mutaţie. Pentru fiecare bit
al fiecărui cromozom au loc operaţiile:
01000100101101000011 1110010100010 .
Primii 18 biţi
010001001011010000
reprezintă pe
12.1 3.0
x1 3.0 zecimal 010001001011010000 2
218 1
15.1
3.0 70352 3.0 4.052426 1.052426 .
262143
Următorii 15 biţi
1111100101 00010
reprezintă pe
5.8-4.1
x2 4.1 zecimal (1111100101 00010 2 )
215 -1
1.7
4.1 31906 4.1 1.655330 5.75533.
32767
Astfel cromozomul
01000100101101000011 1110010100010
40
corespunde valorilor
( x1 , x 2 ) (1.052426, 5.755330) .
v1 (10011010000000111111 1010011011111)
v 2 (11100010010011011100 1010100011010)
v3 (000010000011001000001010111011101)
v 4 (100011000101101001111000001110010)
v5 (00011101100101001101011111100 0101)
v 6 (00010100001001010100101011111 1011)
v7 (00100010000011010111101101111 1011)
v8 (100001100001110100010110101100111)
v9 (010000000101100010110000001111100)
v10 (000001111 0001100000 1101000011 1011)
v11 (011001111 1101101011 0000110111 1000)
v12 (110100010 1111011010 00101010000000)
v13 (111011111 010001000110000001000110)
v14 (010010011 00000101010011110010 1001)
v15 (111011101 1011100001 0001111101 1110)
v16 (110011110 0000111111 0000110100 1011)
41
v17 (011010111 1110011110 1000110111 1101)
v18 (011101000 0000011101 0011111010 1101)
v19 (0001010100111111111 1000011000 1100)
v 20 (101110010 1100111100 1100010111 1110)
eval v1 eval v 2
p1 0.067099 p2 0.019547
F F
eval v3 eval v 4
p3 0.050355 p4 0.044889
F F
eval v5 eval v 6
p5 0.065350 p6 0.046677
F F
eval v7 eval v8
p7 0.041315 p8 0.046315
F F
43
eval v9 eval v10
p9 0.041590 p10 0.054873
F F
v4 0110011111 10 | 0 | 10101100001101111000
v5 00010101001111111111 0000110001100
v6 100011000101101001111000001110010
v7 1110111011 01110000100011111011 110
48
v8 0001110110 01010011010111111000 101
v9 0110011111 10110101100001101111 000
v10 000010000011001000001010111011101
v11 1110111011 01101001 | 0 | 11000001110010
v1201 0 01010 10 0 0 1 1 0
v15 101110010110011110011000101111110
v16 10011010000000111111 1010011011111
v17 000001111000110000011010000111011
v18 1110111110 10001000111010111111 011
v19 11101110 | 0 | 101110000100011111011110
v 20 1100111100 0001111110 0001101001011
unde biţii cuprinşi între linii verticale sunt cei care au rezultat în urma
mutaţiei. S-a încheiat o iteraţie a algoritmului, putându-se trece la
următoarea.
7
TIPURI DE ALGORITMI GENETICI
49
algoritmul modGA
begin
t : 0
iniţializează P (t )
evaluează P (t )
while not (condiţie-terminare) do
begin
t : t 1
selectează părinţii din P (t 1)
selectează indivizii neperformanţi din P (t 1)
formează P (t ) prin reproducerea părinţilor
evaluează P (t )
end
end
50
Se procedează astfel:
1 n
Eval P eval pi .
n i 1
algoritmul C-GA
begin
t : 0
iniţializează P (t )
evaluează P (t )
while not (condiţie-terminare) do
begin { se construieşte contracţia}
t : t 1
selectează P (t ) din P (t 1)
recombină P (t )
evaluează P (t )
52
if Eval P t 1 Eval P t
then t : t 1
end
end
Alte abordări pot fi găsite în [45, 46].
algoritmul AG-DVP
begin
t : 0
iniţializează P (t )
evaluează P (t )
while not (condiţie-terminare) do
begin
t : t 1
VÂRSTA : VÂRSTA 1 pentru fiecare individ din
populaţie
recombină P (t )
elimină din P (t ) toţi indivizii pentru care
VÂRSTA VIAŢ A
evaluează P (t )
end
end
54
Parametrul VIAŢ A depinde de starea curentă a căutării genetice;
pentru aceasta se utilizeaza următorii parametri:
• AvgFit = media fitness-ului populaţiei curente
• MaxFit = valoarea maximă a fitnessului în generaţia curentă
• MinFit = valoarea minimă a fitnessului în generaţia curentă
• AbsFitMax şi AbsFitMin = valoarea maximă şi respectiv
minimă a fitnessului, obţinută până în momentul curent.
fitness i MinFit
MinLT AvgFit MinFit
dacă AvgFit fitness i
1 fitness i AvgFit
VIAŢ A i MinLT MaxLT
2 MaxFit AvgFit
dacă AvgFit fitness i
55
unde MaxLT şi MinLT reprezintă valoarea maximă şi respectiv
minimă a parametrului VIAŢ A iar
1
MaxLT MinLT .
2
şi
n
P x x i P i
i 1
Algoritmii A p [i ]
În cadrul acestor algoritmi soluţia este reprezentată printr-un şir
binar de lungime n . Funcţia de evaluare a unui şir x este
n
eval ( x ) x i P i Pen x
i 1
• metoda logaritmică A p 1 :
n
Pen x log 2 1 x i W i C
i 1
• metoda liniară A p 2 :
n
Pen x x i W i C
i 1
• metoda pătratică A p 3 :
2
n
Pen x x i W i C
2
i 1
În toate cazurile,
P i
max .
i 1, n W i
8
STRATEGII EVOLUTIVE
58
8.1 Generalităţi
şi
p
j 1, j 0.
j 1
yi x1i 1 xi2 , i 1, 2, , n
8.2.2. Mutaţia
sau, pe componente,
x 'i xi 'i N i 0, 1 , i 1, 2, , n
61
unde N i 0, 1 este o variabilă aleatoare de medie 0 şi dispersie 1.
8.3.1 Strategia (1 1)
s(k )
• p(k ) = frecvenţa mutaţiilor de succes din ultimele
k
k
62
generaţii
Algoritmul SE(1+1)
begin
t : 1 , P (t ) x (t ), (t )
evaluează f (x)
while not cond ( P (t )) do
begin
calculează p (k )
calculează
t 1
nc dacă p ( k )
5
1
t 1 mut t t dacă p(k )
5
n 1
t c dacă p k
5
calculează
x t 1 mut x t x t t 1 N 0, 1
evaluează f x t 1
if f x t 1 f x t {selecţia}
63
then P t 1 x t 1 , t 1
else P (t 1) : P (t )
t : t 1
end
end
Observaţii.
1) cond ( P (t )) reprezintă condiţia de oprire, dată de obicei
prin
numărul de generaţii
2) Schwefel a propus [68] o altă versiune a mutaţiei pentru
parametrul
t 1
c dacă p ( k )
5
1
t n t dacă p(k )
5
1
c t dacă p k 5
3) Strategia (1+1) lucrează cu populaţii formate dintr-un singur
individ şi nu foloseşte încrucişarea.
8.3.2 Strategia ( 1)
64
Strategia (1+1) poate fi generalizată prin mărirea numărului
părinţilor fiecărui descendent şi/sau a numărului descendenţilor unui
părinte. În strategia 1 , 1 părinţi vor genera un singur
descendent folosind încrucişarea şi mutaţia. Încrucişarea se aplică atât
vectorului de poziţie cât şi dispersiei şi se poate folosi oricare din
operatorii prezentaţi anterior. Mutaţia se aplică urmând principiul
strategiei 1 1 , dar nu există o metodă de control a dispersiei, regula
1
nemaifiind aplicabilă în acest caz. Acest dezavantaj face ca
5
strategia 1 să fie puţin folosită.
' e pN ( 0 ,1 )
x 'i xi ' N i 0,1
begin
t : 0
iniţializează populaţia P (t )
evaluează indivizii din P (t )
while not cond ( P (t )) do
begin
P ' (t ) : încrucişare ( P (t ))
9
PROGRAMARE EVOLUTIVĂ
ŞI PROGRAMARE GENETICĂ
Figura 9.2
evolutivă
x'i xi i N i (0, 1)
73
i i x i
x 'i xi ( x) N i (0, 1) .
x'i xi vi N i (0, 1)
v'i vi vi N i 0, 1
q 1
wi
dacă ai ai
j 10 altfel
unde indicii j 1, 2, , 2 sunt valori aleatoare uniforme,
calculate pentru fiecare comparare. După ce se efectuează această
operaţie pentru toţi cei 2 indivizi, ei se ordonează descrescător
după scorul wi , 1 i 2 , şi se aleg cei mai buni indivizi care
vor forma generaţia următoare P (t 1) . Rezultă următorul algoritm
begin
t : 0
iniţializează P (0) : a1 (0), , a 0 I ,
unde I R n Rn , ai ( xi , vi ) i 1, , n
evaluează P(0) : a1 (0), , a 0
unde a j 0 f x j 0 , k j
while ( T P t true ) do
begin
75
aplică mutaţia: a'i (t ) : mut ai t i 1, ,
evaluează P ' (t ) : a '1 (t ), , a ' t calculând
a'1 (t ), , a' t cu a' t f x' t , k
i i i
Figura 9.3
y x y dacă y 0
• x x .
79
Suficienţa este garantată numai pentru unele probleme, când
teoria sau alte metode ne spun că o soluţie poate fi obţinută
combinând elementele lui C . De exemplu, logica ne spune că
C AND, OR , NOT , x, y permite implementarea oricărei funcţii
booleene, deoarece conţine o multime completă de conectori. Dacă
C nu este suficientă, programarea genetică poate doar să dezvolte
programe care să realizeze o aproximare cât mai bună. De exemplu,
mulţimea C , , , /, x, 0, 1, 2 nu poate să dea decât o
aproximare pentru exp(x) , ştiind că aceasta este o funcţie
trascedentală (nu poate fi aproximată exact cu ajutorul unor expresii
algebrice finite). În acest caz programarea genetică nu poate decât să
realizeze aproximări algebrice finite de tipul
exp( x ) 1
exp( x ) 1 x
x
exp( x) 1 x
2
x2 1
exp( x) 1 x x3
2 1 1 2 2
Figura 9.4
Figura 9.5
Figura 9.6
82
Metoda „ramped half and half” combină cele două metode anterioare,
pentru a da o mai mare diversitate populaţiei iniţiale.
La apelul
Figura 9.7
84
La apelul
genereaza_expresie 1 , x y 0 1 2 3 , 3, grow
se genereaza expresia
3 x 2 / 1 y
care corespunde arborelui
Figura 9.8
părinţi descendenţi
Figura 9.9
Figura 9.10
86
• mutaţia de expandare: constă în înlocuirea unui nod terminal cu
un subarbore, construit după aceleaşi reguli dar care nu face parte
neapărat din populaţia curentă, aşa cum se întâmplă în cazul
încrucişării
Figura 9.11
Figura 9.12
87
În general se poate alege un nod al arborelui şi subarborele
dominat de acel nod este înlocuit cu altul generat aleator. Astfel,
mutaţia poate fi văzută ca încrucişarea cu un arbore generat aleator.
Figura 9.13