Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
Evaluare
S-a atins
Da Selecţie
Cei mai
populaţ ie Generare
funcţ ie
criteriul de populaţie
buni
nouă
Recombinare
Mutaţie
ini ţ ială
P3 Evaluaează P ( t ) ;
Nu
P4 Repetă atâta timp cât (not COND_OPRIRE) P4.1. Stabileşte t t 1;
Rezultate
P4.2. Selecţia : selectează populaţia intermediară P1 ( t )din populaţia
anterioarăP ( t 1) Pentru a rezolva o problemă folosind o procedură de calcul evolutiv sunt
P4.3. Recombinarea: aplică procesul de recombinarea asupra lui P1 ( t )şi necesare următoarele elemente:
rezultă o nouă populaţie
O modalitate de reprezentare genetică a spaţiului de căutare (spaţiul stărilor
intermediară P2 ( t ) ;
problemei sau spaţiul soluţiilor posibile). În cazul problemelor de
optimizarea a unor funcţii de una sau mai multe variabile reale, pentru
P4.4. Mutaţia: aplică procesul de mutaţie asupra lui P2 ( t ) şi creează noua reprezentarea indivizilor / cromozomilor se utilizează fie codificarea binară
populaţieP ( t ) ; fie codificarea reală.
P4.5. Evaluare: evalueazăP ( t ) ; Sfârşit ciclu iterativ. O procedură de creare a populaţiei iniţiale de indivizi (soluţiile candidat).
De regulă populaţia iniţială este creată în mod aleator. Există şi abordări în
care soluţiile iniţiale sunt obţinute cu o euristică ţi apoi supuse evoluţiei cu
o procedură de calcul evolutiv.
La nivel general, algoritmii genetici simulează evoluţia unei specii vii, Etapa 2 – Selecţia.
plasată într-un mediu ambiant ostil, în virtutea principiului darwinist al Algoritmul
luptei pentru existenţă prin selecţie naturală şi moştenire ereditară. În aceşti genetic selecţionează din
algoritmi, o populaţie de indivizi (soluţii posibile) suferă o serie de
transformări. Luptând pentru supravieţuire, indivizii se selectează după o generaţia actuală, pe baza performanţelor,
schemă probabilistă care oferă şanse tuturor. Desigur indivizii cei mai
performanţi au şanse mai mari de a supravieţui în noua generaţie. Dinamica indivizii care vor devenii părinţii noii
procesului de căutare generat de un algoritm genetic se realizează prin
combinarea şi modificarea indivizilor / cromozomilor. Scopul urmărit este generaţii. Aceştia alcătuiesc o populaţie
găsirea combinaţiei ce corespunde adecvării maxime, adică a combinaţiei
optime. La fiecare iteraţie algoritmul creează o nouă populuaţie, numită intermediară
generaţie, constituită din acelaşi număr de indivizi ca şi generaţiile P1 ( t ).
anterioare. În general, noua generaţie conţine indivizi mai performanţi, Etapa 3 – Combinarea şi modificarea. În această ultimă etapă AG
adică mai bine adaptaţi la mediul reprezentat de funcţia de adecvare / combină şi modifică
adaptare. În aceste condiţii, pe măsură ce generaţiile se succed indivizii selecţionaţi
(indivizii populaţiei
P1 ( t )) folosind
operatori genetici de tipul încrucişare, mutaţie, inversiune etc. Din punct de
vedere algoritmic, aceşti operatori reprezintă metode de a combina soluţiile
(încrucişarea) şi de schimbare locală a acestor soluţii (mutaţia şi
inversiunea) reprezentate de părinţi. Fiecare operator genetic se aplică cu o
anumită probabilitate. Aceste probabilităţi constituie o pate dintre
parametrii algoritmului genetic.
P4 Repetă atâta timp cât (not COND_OPRIRE) Se admite că rezultatul algoritmului este codificat de cel mai performant
individ al ultimei generaţii. În realitate, nu avem nici o garanţie că un individ
P4.1. Selecţia Selectează din populaţia curentăP ( t ) indivizii mai performant nu a fost obţinut într-o
noua generaţie.
Observaţii:
generaţie anterioară. Din acest motiv, pentru a ne asigura că cea mai bună
soluţie nu s-a pierdut pe parcurs, la fiecare pas se va reţine şi cel mai bun Codificarea binară
individ care a fost generat până atunci.
În codificarea binară, fiecare cromozom / individ al populaţiei este
Sunt posibile şi alte variante de supravieţuire. De exemplu, putem reprezentat printr-un şir de cifre binare, adică printr-un şir constituit din 0 sau
considera că cei mai performanţi np indivizi din generaţia curentă P ( t ) 1. Trebuie menţionat faptul că în acest caz metoda de codificare trebuie
vor fi incluşi în mod automat în generaţia următoare putând participa şi însoţită în mod necesar de o metodă complementară de decodificare. Pentru o
la procesele de combinare şi modificare. mai bună înţelegere a acestei componente a unui AG se consideră următoarea
problemă de rezolvat: cunoscând cifrele 0...9 şi operatorii aritmetici +, -, * şi
/ să se găsească şirul de operaţii necesare pentru obţinerea unui număr dat.
Reprezentarea cromozomială
Exemplu: Dacă numărul dat este 23, atunci, fără a se ţine seama de prioritatea operaţiilor,
secvenţa 6 + 5 * 4 / 2 + 1 este o soluţie posibilă. Dacă numărul obiectiv este 76,5, atunci
După cum s-a specificat anterior, cromozomii sunt şiruri de gene, care secvenţa 5 / 2 + 9 * 7 - 5 este o soluţie posibilă.
codifică informaţia necesară rezolvării problemei. Primii algoritmi
genetici, denumiţi şi algoritmi genetici standard, au utilizat codificarea Pentru început, trebuie să se stabilească o metodă de codificare a unei soluţii
cromozomilor sub formă binară. Ulterior au fost dezvoltaţi şi AG cu posibile printr-un şir de biţi. Pentru aceasta trebuie să se
codificare în numere reale, cunoscuţi sub denumirea de AG hibrizi.
4
găsească o cale de reprezentare a tuturor caracterelor ce pot apărea în 1000
soluţie, adică cele 0...9 cifre şi operatorii. Acestea vor reprezenta genele, iar 2
fiecare cromozom (deci individ) va fi constituit dintr-o serie de gene. 0010
Fiind vorba despre 14 caractere (cifrele zecimale şi cei patru operatori), 9
este necesară reprezentarea pe 4 biţi, reprezentarea pe 3 biţi fiind 1001
insuficientă, deoarece nu am putea codifica decât 8 caractere. Se observă că 3
prin reprezentarea pe 4 biţi pentru 14 caractere, 2 coduri rămân neutilizate; 0011
fie acestea 1110 şi 1111. Atunci când algoritmul va întâlni una dintre +
acestea, o va ignora (după cum se va vedea din procesul de decodificare). 1010
4
Caracterele pot fi codificate astfel: 0100
-
0 1011
0000 5
7 0101
0111 *
1 1100
0001 6
8 0110
/ Făcând decodificarea, aceşti biţi ar reprezenta
1101
0011 0010 1011 1111 1010 0100 0110
Se observă ca soluţia menţionată anterior pentru numărul 23, ”6+5*4/2+1”,
se va reprezenta prin nouă gene având corespondenţa: 3 2 - n/a + 4 6
0110 1010 0101 1100 0100 1101 0010 1010 0001 Ceea ce nu reprezintă un şir coerent pentru problema în cauză. Deci, atunci
când se face decodarea, algoritmul va ignora toate genele ce nu se
6 + 5 * 4 / 2 + 1 conformează cu modelul căutat al soluţiei problemei, sdică:
<număr><operator><număr><operator><număr> etc. Cu această
Prin lipirea acestor gene rezultă cromozomul (aferent individului): menţiune, şirul de mai sus, aparent necoerent este citit şi testat în cadrul
algoritmului ca 3 - 4.
011010100101110001001101001010100001 Pentru a depăşi inconvenientele menţionate, s-au căutat alte tipuri de
reprezentări cromozomiale. Codificarea Gray foloseşte tot cifrele 0 şi 1, dar
Decodificarea se face în acest caz intuitiv, împărţind cromozomul în gene două numere reale apropiate din spaţiul problemei apar apropiate şi în
de lungime 4 şi decodificând apoi aceste gene separat, conform tabelului de reprezentarea Gray, în sensul că diferă doar prin conţinutul unui bit (de
mai sus. O observaţie importantă în ceea ce priveşte decodificarea este exemplu, în cod binar cifrele 13 şi 14 se reprezintă prin 1101 şi 1110, iar în
următoarea: deoarece algoritmul lucrează cu aranjamente aleatorii de biţi, cod Gray prin 1011 şi 1001, în primul caz conţinutul diferă la două poziţii
cromozomii vor arăta foarte adesea în felul următor: de biţi, iar în ultimul, la o singură poziţie).
x1 x min 1 x
x q
zz
min
..... (3.3)
x n x max x min n x x x
max min
din care rezultă că numărul minim de valori discrete reprezentate exact cu
precizia q este: z z
max min
n
x x
max min
x x
max min
(3.2)
precizii date q.
Dacă m este numărul de biţi utilizaţi pentru codificarea binară, atunci
x x valoarea maximă întreagă care poate fi reprezentată este cea
max min corespunzătoare cazului în care toţi biţii sunt egali cu 1, adică:
respectiv 0
m 1
m
2 1
x x
max min
m
(3.6)
x x min 1
2
z
(3.5) 1
2
...1
2
21
2
z
max 1
reprezentarea numărului real x cu precizia q este întregul care satisface
(suma progresiei geometrice având primul termen 1 şi raţia egală cu 2). dubla inegalitate:
Prin urmare, trebuie determinat cel mai mic numărul întreg m care să m 1
2 1
permită reprezentarea lui zmax în baza 2. Ţinând cont că zmax trebuie să fie x x
cel puţin egal cu numărul minim de valori discrete reprezentate exact (n din max min
q
4
În condiţiile date q 10 , iar numărul minim de valori discrete
este nx
12.1 3.0
151000, respectiv nx
Codificarea reală Selecţia este cel mai important operator al algoritmilor genetici şi are rol
hotărâtor în dirijarea procesului de căutare din spaţiul soluţiilor. Scopul
Deşi reprezentarea binară poate fi utilizată pentru a reprezenta aproape operatorului de selecţie este de a asigura mai multe şanse de reproducere
orice situaţie, iar operatorii nu includ cunoştinţe despre domeniul celor mai performanţi indivizi din cadrul unei populaţii date. Prin urmare,
problemei, în anumite situaţii este mai adecvată utilizarea unei codificări pentru a implementa acest operator este necesară definirea unei măsuri a
“naturale” a problemei, numită şi codificare speifică. Astfel, în cazul performanţei indivizilor, adică definirea unei funcţii de evaluarea a
optimizării numerice, când variabilele iau valori într-un domeniu continuu performanţei sau adecvării fiecărui individ, numită în
din R, cea mai naturală reprezentare este codificarea în numere reale. Ea nu
mai reclamă transformări dintr-o bază în alta, este conceptual adecvată
spaţiului soluţiilor problemei şi permite implementarea eficientă a
operatorilor genetici.
În codificarea reală fiecare genă este reprezentată printr-un număr
real x R , iar fiecare cromozom printr-un vector
X [ x , ... x , ..., x
n
n
] R .
i
1
i
(ii) f trebuie să reflecte calitatea cromozomilor în sensul optimizării funcţiei Se defineşte probabilitatea de selecţie a individului Xi ca fiind performanţa
obiectiv. normalizată a acestuia, adică:
p
Prin urmare, performanţa unui individ Xi al populaţiei curente P
i
f(Xi) i 1
Pi
(3.13) n
i1
i
i
n
f(Xi)
1
pentru a construi ruleta se calculează sumele parţiale P3.1. Generează un număr aleator rs [0,1]
Numărul
Individul
Performanţa
mediu de
normalizată
normalizată
copii
2
12
0,077
0,096
0,77
3
17
0,109
0,205
1,09
1
4
3 7
0,045
0,019 0,250
0,45
0,019
0,19
5
9
0,058
0,308 0,148
0,58 0,879
1,48
6
11 10
0,070
0,378 18
0,70
0,116
1,00
7
13 1,16
0,083
0,461
0,83
Pe baza datelor prezentate în tabelul 3.1. se construieşte ruleta din figura 3.2. Se
8 observă că cea mai mare şansă de a fi selectat prin mecanismul ruletei o are
42 individul 8 urmat de indivizii 9 şi 10, în timp ce cea mai mică şansă o are individul
0,270 1. Dacă, de exemplu, în urma generării unui număr aleator (o învârtire a
0,731 ruletei) rezultă
2,70 valoarea rs 0,125,
atunci va fi selectat individul 3 deoarece
q2 0,096 rs
9 0,125 q3 0,205.
23
8
de informaţie între cei doi părinţi şi, prin urmare, descendenţii obţinuţi vor moşteni
caracteristici ale ambilor părinţi.
Se precizează faptul că nu toţi indivizii din populaţia intermediară P1(t) , rezultată în urma
10 1 2 selecţiei, vor participa la procesul de încrucişare.
3
9 4 încrucişare se aplică asupra
indivizilor din P
izi m naturală. De regulă n rmed n p r dim _ indivizilor reţinuţi în
O se utilizează o pop p r dim _ pop pasul P1. Dacă nr este
5 3.2.3. Operatori procedură de (3.15) un
de recombinare. încrucişare de tipul
6 (2-2), adică din doi În contextul celor număr impar atunci fie
8 În cadrul unui AG părinţi se vor obţine prezentate, rezultă că se adaugă un nou
7 operatorul de doi descendenţi. prima etapă din cadrul individ, fie se şterge un
selecţie este Încrucişarea procesului de individ deja selectat.
utilizat pentru a realizează un schimbrecombinare o Pentru adăugare sau
concentra căutarea constituie selecţia ştergere se optează în
1 în cele mai probabilitatea de indivizilor din mod aleator, generând
2 3 promiţătoare încrucişare, care
4 populaţia un număr aleator
5 6 regiuni ale constituie unul suplimentar. Cu
7 spaţiului stărilor. dintre parametrii intermediară P1(t) şi indivizii
8 9 El singur nu poate importanţi ai unui formarea perechilor
10
să introducă în AG. Dacă pentru încrucişare. astfel selectaţi se
populaţie noi n=dim_pop este Acest proces se formează, în mod
indivizi. Prin dimensiunea realizează conform aleator, nr* 2 perechi,
Fig. urmare, sunt populaţiei asupra
3.2. următorului algoritm: în care nr* este numărul
necesari alţi căreia acţionează P1. Pentru fiecare
Exe indivizilor reţinuţi
operatori care, AG, deci şi
mplu individ din P1(t) se după aplicare
generând noi dimensiunea
de execută: P1.1. procesului de ajustare
indivizi, asigură populaţiei
prezentat anterior.
rulet explorarea zonelor intermediare, atunci Generează un număr
ă învecinate zonei ce rezultă că numărul aleator rr [0,1]
pentr Observaţie:
conţine populaţia mediu al P1.2. Dacă rr pr ,
uo Probabilitatea de
curentă. Dintre cromozomilor atunci individul este
popu încrucişare are valori
aceşti operatori, reţinuţi pentru reţinut pentru
laţie cei mai utilizaţi recombinare/încruci încrucişare de ordinul 101 situate,
de 10 sunt operatorii şare va fi: în mod uzual, în
indiv derecombinare şi intervalul [0.2,0.95].
P2. Fie nr numărul
9
Perechile generate conform algoritmului prezentat sunt supuse procesului
de încrucişare. Combinarea materialului genetic a doi cromozomi se poate
efectua în diverse moduri pentru fiecare dintre metodele de codificare
binară sau reală. Părinte 1
p gene
N-p gene
p gene
N-p gene
2
(g 2
,g2
, ...,g 2
,g2
) , atunci algoritmul de încrucişare cu un
1
2
N 1
N
.
respectiv I Pasul 3:Generează cei doi urmaşi U 1 g11 , g 12 , ...,g 1p , g 2p 1,...,gN2 şi
Încrucişarea cumai multe puncte de tăietură
respectiv U 2 g12 , g 22 , ...,g 2p , g 1p 1,...,g1N .
Încrucişarea cu mai multe puncte de tăietură reprezintă o generalizare a
încrucişării cu un singur punct de tăietură. În acest caz vor fi generate k
puncte de tăietură p1 p2 pk în intervalul [1, m-1]. Apoi
Pentru a exemplifica această metodă de recombinare, se consideră doi indivizi
segmentele dintre două puncte succesive de tăietură sunt interschimbate
caracterizaţi de un cromozom de lungime 11:
între cei doi părinţi pentru a obţine cei doi urmaşi. Acest mecanism de
Individul 1 încrucişare este prezentat schematic în figura 3.4.
0
1
1
Părinte 1
1
0
0
1
1
0
1
0
Individul 2
1
0
1
0
1
1
0
0
1
0
1 Urmaş 1
Urmaşul 1 0 1 1 1 0 1 0 0 1 0 1 Urmaşul 2 1 0 1 0 1 0 1 1 0 1 0
Urmaş 2
Părinte 2
Fig. 6.9. Încrucişare în mai multe puncte.
Pentru
cazul
a 2 indivizi, I
(g 1
,g1
, ...,g 1
,g1
) şi respectiv
1
1
2
N 1
N
I
2
(g 2
, g 2 , ...,g 2
,g2
) , algoritmul de încrucişare în mai multe puncte este:
1
2
N 1
10
I12 g 1p1 1,...,g1p2 , I13 g 1p2 1,...,g1p3 ,…, I1m g 1pm 11,...,g1pm , U 2 I 21 , I12 , I 23 , I14 ,....
Dacă
m 3
şi
cele
trei
puncte
de
încrucişare sunt
Părinte Părinte
1 1 0110 1010 0101 1100 0100 1101 0010 0010 0001 2
1 0010 0111 0010 0010 1010 1110 1011 0111 0010
0
0 Pentru fiecare se generează o mască (de lungime egală cu numărul de gene
din cromozom) după care se va ghida procesul de copiere a genelor în
0 cromozomul urmaşilor. Această mască este formată tot din valori binare,
0 însă având următoarea semnificaţie: dacă valoarea de pe poziţia k din
1 masca primului părinte este 1, atunci gena de rang k este copiată în
0 cromozomul urmaşului 1, pe poziţia k, iar gena de rang k din urmaşul 2 va
lua valoarea genei corespunzătoare din părintele 2. Altfel, pentru valoarea
0 0, se procedează dual. Reiese natural că măştile sunt complementare (una
este negaţia celeilalte).
Pentru părinţii reprezentaţi mai sus, dacă se alege o rată de încrucişare de
0,5, cele două măşti pot fi, de exemplu:
Încrucişarea uniformă
gena1 gena2 gena3 gena4 gena5 gena6 gena7 gena8 gena9
Este un operator pentru codificarea binară care specifică provenienţa pentru
fiecare genă a urmaşului (de la ce părinte s- a moştenit fiecare genă). Acest Părinte
principiu face posibilă încrucişarea la nivel de genă şi nu la nivel de 0
segment, ca în cazurile precedente. Gradul de ”amestecare” a genelor este 0
dat de un parametru subunitar (uzual egal cu 0,5) numit rată de încrucişare. 1
0
1
1
1
0
0
1
Părinte
1
1 Aceasta înseamnă că gena de rang 4 pentru urmaşul 1 va fi 0010 (adică gena de
0 acelaşi rang a părintelui 2) iar pentru urmaşul 2, gena de rang 4 va fi 1100
1 (corespunzătoare părintelui 1).
0
0 Metode de recombinare în cazul codificării reale
0
1 În cazul codificării reale operatorul de încrucişare cu unul sau mai multe
1 puncte de tăietură nu mai este adecvat el ne putând realiza căutarea în
2 raport cu fiecare variabilă. Această căutare ar rămâne exclusiv în sarcina
operatorului de mutaţie. Din acest motiv s-au definit operatori de
încrucişare/recombinare specifici codificării reale care pot fi de tipul (2 – 2)
11
în care doi părinţi dau naştere la doi urmaşi/descendenţi sau de tipul (2 – 1) părinte, iar al doilea urmaş primeşte gena i de la al doilea părinte.
în care doi părinţi dau naştere unui singur urmaş/descendent.
P3. Dacă rg pg atunci primul urmaş primeşte gena i de la al
Încrucişarea discretă
doilea părinte, iar al doilea urmaş primeşte gena i de la primul părinte.
Este un operator de încrucişare pentru codificarea reală prin care doi părinţi
generează doi urmaşi sau descendenţi. El este asemănător cu operatorul de De exemplu, părinţii
încrucişare uniformă în sensul că specifică, cu o probabilitate
P1
dată pg egală, de regulă, cu 0.5, de la ce părinte moştenesc urmaşii fiecare
genă.
P
1,2 Încrucişarea continuă medie
P
1,3
Este un operator de încrucişare probabilist de tipul (2-2). În acest sens, se
P aleg cu o probabilitate specificată pg anumite gene care, în cei doi
2,1
P
2,2
P
2,3
U1
şi U 2
P
1,1
P
2,2
P
1,3
P
2,1
P
1,2
P
2,3
2,1
urmaşi, vor deveni egale cu media aritmetică a genelor corespunzătoare ale
părinţilor. Selectarea genelor se realizează generând un număr aleator 2
1,2
2,2
2,3
rg [0,1]. Dacă rg pg atunci gena respectivă va fi selectată. Astfel, dacă
O altă variantă a acestui operator este cea cunoscută sub numele de
în cazul părinţilor din în exemplul precedent se consideră că pentru gena i încrucişarea continuă medie completă în care se generează un singur urmaş
2 este îndeplinită condiţia rg pg , atunci descendenţii vor fi: ale cărui gene sunt egale cu media aritmetică a genelor corespunzătore ale
U 1
părinţilor, adică U i 2( P1,i P2,i ).
P Încrucişarea aritmetică
1
(PP) Este o generalizare a operatorului încrucişarea continuă medie completă în
P care cei doi părinţi nu au aceiaşi pondere în obţinerea descendentului. De
şi U această dată valoarea fiecărei gene a urmaşului se va calcula cu relaţia:
1,1
U 1,i aP1,i (1 a ) P2,i şi U 2,i (1 a ) P1,i aP2,i (3.17)
2
1,2 Factorul de pondere a este un parametru al algoritmului genetic care poate
2,2
1,3 fi acelaşi pentru toate generaţiile, variabil cu vârsta generaţiei sau poate fi
selectat aleator din domeniul [0;1) pentru fiecare generaţie. O formă
2
specială a acestui operator se obţine atunci când valoarea lui a este
modificată pentru fiecare genă în parte.
12
Indiferent de tipul codificării, orice algoritm genetic trebuie să precizeze în încrucişare şi indivizii populaţiei intermediare P1 ( t) care nu au fost
ce măsură indivizii generaţiei curente P ( t ) se regăsesc în
generaţia următoareP ( t 1), adică supravieţuiesc. În mod standard se selectaţi pentru procesul de recombinare. Cu alte cuvinte, urmaşii rezultaţi
consideră că următoare generaţie va fi formată din indivizii nou creaţi prin prin încrucişare îşi înlocuiesc părinţii în populaţia intermediară P1 ( t)
forma tare de implementare a operatorului de mutaţie în care valoarea
rezultând astfel o nouă populaţie intermediară P2 ( t) asupra căreia se aplică poziţiei/genei selectate se schimbă automat
operatorul de mutaţie sau constituie noua generaţie P ( t 1).
forma slabă de implementare a operatorului de mutaţie în care valoarea
3.2.3. Operatorul de mutaţie. poziţiei/genei selectate nu se schimbă automat ci aleator.
Al doilea în ordinea importanţei şi utilizării sale în cadrul algoritmilor În aceste condiţii, algoritmul de mutaţie, în forma tare, constă în
genetici, operatorul de mutaţie este utilizat pentru păstrarea diversităţii parcurgerea următorilor paşi pentru fiecare cromozom al populaţiei şi
populaţiei de la o generaţie la alta. Prin modificarea uneia sau mai multor pentru fiecare genă/poziţie din cromozom:
gene ale unui individ din baza genetică înainte de a fi transferat în noua
generaţie, mutaţia împiedică indivizii populaţiei să devină prea asemănători P1. Pentru fiecare genă i se generează un număr aleator rm [0,1] P2. Dacă
unii cu alţii şi în acest fel se evită convergenţa către optime locale, respectiv rm pm atunci se execută mutaţia genei respective
încetinirea sau chiar stagnarea evoluţiei. Utilizarea mutaţie permite schimbând 0 în 1, respectiv 1 în 0.
introducerea în populaţie a unor indivizi care nu ar putea fi generaţi prin
alte mecanisme. În varianta slabă a operatorului, pasul P2 se înlocuieşte cu:
Ca şi operatorul de încrucişare, operatorul de mutaţia este un operator P2. Dacă rm pm atunci se alege aleator una dintre valorile 0 sau 1 şi
probabilist care se aplică cu o probabilitate pm numită
se atribuie genei i selectate în pasul 1.
probabilitatea de mutaţie . Fiind inspirată din natură, unde procesele de Operatorul de mutaţie poate fi utilizat într-o manieră uniformă sau
mutaţie au loc foarte rar, probabilitatea de mutaţie are la rândul ei valori neuniformă. În cazul mutaţiei uniforme valoarea pm a probabilităţii de
foarte scăzute, de ordinul 103 , comparativ cu probabilitatea de încrucişare. mutaţie este constantă pentru toate generaţiile În schimb, în varianta
În cazul codificării binare procedeul de mutaţie constă în negarea unui bit neuniformă a operatorului valoarea probabilităţii de mutaţie se modifică de
selectat arbitrar din secvenţa genetică pe baza probabilităţii de la o generaţie la alta conform relaţiei:
mutaţie pm . Există diverse variante ale operatorului de mutaţie care pot p ( t) p
m,0
avea două forme:
e(1 t )
(3.18)
m
t
i
1
r
T
i
i t
2
1
gm g
(g
1
dacă r 1
(3.20)
1
i
i
gmin )1 r
T
în care gimin şi gimax sunt limitele intervalului de variaţie a valorilor genei,
i
Strategiile evolutive – SE reprezintă, după algoritmele genetice, cea de-a
doua paradigmă a calculului evolutiv. Bazele lor au fost puse în Germania
2
în perioada anilor 1960 de către Rechenberg şi au fost dezvoltate în scopul
construirii unor sisteme capabile să rezolve probleme dificile de optimizare
cu parametrii reali variabili. Primele aplicaţii ale
strategiilor evolutive sunt legate de rezolvarea unor probleme de
aerodinamică şi mecanica fluidelor.
1k
Z
k
[ XTk , σ Tk ]T
(3.21)
în care: X
k
[ x Valoarea ik2 reprezintă dispersia perturbaţiei pe care o suferă componenta
, ..., x xik a vectorului Xk .
14
strategiei (1+1)
3.3.2. Strategia evolutivă (1+1) vectorul abaterilor standard
σ [ ,...,
În , ....
abordarea iniţială Rechenberg n
a considerat o ]T
populaţie rămâne neschimbat
constituită şi constituie un parametru al
dintr-un singur individ reprezentat 1
printr-un vector i
de forma
(3.21), adică Z [ XT , σ T ]T .
În
algoritmul
strategiei (1+1) care afirmă că: optimul global este găsit cu probabilitatea
1 dacă timpul de căutare este suficient de mare. 15
Deşi teorema de convergenţă garantează găsirea optimului global, ea nu
oferă nici un indiciu asupra ratei/vitezei de convergenţă exprimată prin
raportul dintre distanţa parcură spre punctul de optim şi numărul de
iteraţii/generaţii necesar parcurgerii acestei distanţe. σ(t) dac
()
Pe baza concluziilor rezultate în urma analizelor efectuate în cazul a două
funcţii simple (aşa numitele model al coridorului şi model al sferei), pentru
a optimiza viteza de convergenţă, Rechenberg a propus “regula de succes
1/5” formulată astfel:
Raportul dintre mutaţiile de succes şi toate mutaţiile trebuie să fie 1/5. în care ( k ) este rata de succes a operatorului de mutaţie pe durata
Dacă este mai mare decât 1/5, atunci dispersia trebuie mărită, iar în caz ultimelor k generaţii.
contrar dispersia trebuie micşorată.
Creşterea eficienţei căutării prin regula de succes 1/5 are la bază un
Regula se aplică după fiecare k generaţii astfel: raţionament intuitiv simplu, şi anume: în caz de succes, procesul de căutare
trebuie continuat cu paşi mari, iar în caz contrar pasul căutării trebuie
ciσ(t) c
i
d
i
cd
n c
se stabilesc valorile coeficienţilor:
cn
1
generaţii şi utilizarea valorilor cd c 0.817şi ci c 1.224.
sens, mai întâi se aplică un operator de recombinare asupra unui număr npr
valoare cuprinsă între 2 şi dim_p. În mod uzual se foloseşte fie varianta npr
2, fie cea a în care npr dim_p. Operatorul de recombinare se aplică
atât componentelor vectorului X, cât şi componentelor vectorului σ, adică utilizat în varianta discretă sau continuă pentru a genera descendentul D
ambelor componente ale reprezentării indivizilor (a se vedea relaţia 3.21) asupra căruia se va aplica operatorul de mutaţie.
realizându -se astfel un proces de autoadaptare a parametrilor. El poate fi
16
Recombinarea discretă P Z
m
[ XT , σ T ]T
ca
În cazul fiind indivizii
npr 2, se generează aleator numerele întregi k şi m din k şi m
ai
intervalul [1,dim_p] şi se selectează cei doi părinţi populaţiei curente
PZ de
k
2
[ XT , σ T ]T
şi
m
m
1
părinţi.
k
k
În
continuare,
pentru
fiecare
genă z
i 1,..., n, n 1,...,2n ki
se
dacă r
generează 0.5
un
număr
aleator
rg [0,1]
şi se
stabileşte
gena
di
a
(3.26)
di
z
dacă r g
0.5
mi
m
Prin urmare, operatorul de recombinare generează un descendent în care m
fiecare componentă este copiată din primul sau al doilea părinte cu
PZ
k
[ XT , σ T ]T
şi P Z
m
[ XT
,σT
]T
folosind procedura prezentată
1
k k
2
De regulă, coeficientul a[0,1] din relaţia combinaţiei convexe
dimensiunea populaţiei de părinţi, iar dim_d este dimensiunea
(3.27) se alege în mod aleator pentru fiecare dintre componentele populaţiei de urmaşi/descendenţi), iar fiecare individ este înzestrat cu un
descendentului. Un caz particular îl constituie recombinarea medie şi mecanism de adaptare. Modelul acestor strategii este unul biologic şi are la
bază faptul, evidenţiat de biologi, că genotipul încorporează un mecanism
corespunde valorii a 0.5. De această dată valoare di a genei urmaşului ce controlează, prin intermediul unor gene mutatoare, propria sa
mutabilitate.
este media aritmetică a genelor omoloage din cei doi părinţi. Operatorul de
recombinare medie poate fi generalizat cu uşurinţă pentru cazul în care În strategia
( )
numărul părinţilor este mai mare ca doi, valoare di a genei urmaşului fiind o populaţie formată dint-un
media aritmetică a genelor omolosge din cei npr 2 părinţi. număr de
dim_p>1 părinţi
este
3.3.3. Strategiile evolutive de tipul ( ) şi ( , ) utilizată pentru a genera
dim_d>
descendenţi care se adaugă populaţiei părinţilor. Se obţine astfel o populaţie
Strategiile evolutive ( ) şi ( , )au fost dezvoltate în scopul intermediară care conţine ( ) indivizi care intră în competiţia
eliminării dezavantajelor strategiei de bază (1+1) în ceea ce priveşte atât pentru supravieţuire. Selecţia este una de tip elitist (favorizează perpetuarea
dimensiunea populaţiei cât şi controlul parametrilor operatorului de elitelor) în sensul că cei mai buni indivizi ai populaţiei
mutaţie. În acest sens, ele folosesc populaţiile de părinţi şi
urmaşi/descendenţi constituite din mai mulţi indivizi ( dim_p este intermediare vor fi selectaţi ca părinţi ai generaţiei următoare. Se asigură
astfel transferul celui mai bun individ de la o generaţie la alta, iar evoluţia
17
este una monotonă spre soluţia optimă. Principalul dezavantaj al acestei Deci selecţia nu este elitistă cea ce face ca strategia să înregistreze şi
strategii este că ea tinde să favorizeze optimele locale. momente de recul. Acest lucru favorizează părăsirea regiunii de atracţie a
unui extrem local şi evoluţia către optimul global. Din acest motiv strategia
În cazul strategiei ( , )numai cei dim_d> descendenţi concurează ( , ) este adecvată pentru rezolvarea problemelor în care funcţia obiectiv
pentru supravieţuire. Astfel, cei mai buni descendenţi sunt
este afectată de zgomot precum şi în cazul sistemelor dinamice când poziţia
selectaţi într-o manieră deterministă pentru a înlocui populaţia curentă de punctului de optim se deplasează în timp.
părinţi şi, prin urmare, durata de viaţă a unei soluţii este limitată la o
singură generaţie. Acest mecanism nu permite ca cel mai bun individ al Având în vedere cele prezentate, rezultă că pentru reprezentarea indivizilor
generaţiei curente (t) să fie transmis generaţiei următoare (t+1). Prin în cadrul strategiilor ( ) şi ( , ) se utilizează o
urmare, este posibil ca cel mai bun individ al noii generaţiei (t+1) să aibă o
performanţă inferioară celui mai bun individ din generaţia precedentă (t ) . reprezentare de tipul (3.21) care include o pereche de doi vectori. Primul
vector (vectorul Xk din relaţia 3.21), numit vector de poziţie, reprezintă
poziţia individului în spaţiul de căutare, iar al doilea vector (vectorul σk din În schimb, parametrul 1 permite controlul schimbărilor individuale,
valoarea 1yi calculându-se pentru fiecare componentă ik a vectorului
relaţia 3.21), numit vectorul de control, conţine parametrii de control ai dispersie.
strategiei.
Pentru alegerea parametrilor de control, Schwefel a propus următoarele
De această dată operatorii evolutivi (recombinarea şi mutaţia) se aplică atât relaţii:
vectorilor de poziţie, cât şi vectorilor de control asigurându -se astfel şi
mecanismul de autoadaptare a controlului la condiţiile locale ce corespund c
diferitelor regiuni ale spaţiului de căutare.
1
Operatorul de recombinare
şi
În procesul de generarea celor descendenţi, pentru recombinare se poate
c
utiliza oricare dintre variantele acestui operator prezentate în paragraful
precedent aferent strategiei evolutive (1) . 1
Operatorul de mutaţie
(3.29)
În ceea ce priveşte operatorul de mutaţie se precizează faptul că mutaţia
variabilelor de poziţie (componentele vectorului Xk ) are loc după
ce s-a efectuat mutaţia componentelor vectorului dispersie σk .
' r 1ri
ik ike i 1,2,...,n (3.28)
Metoda PSO a fost propusă prima dată în 1995 de către psihologul James
În acest caz, din perspectiva utilizării unor tehnici de inteligență artificială KENNEDY şi inginerul Russel EBERHART. Ei au propus utilizarea
bazate pe calcul evolutiv, se poate defini performanța unei soluții posibile noţiunilor de ”roi” pentru populaţie şi de ”particulă” membrii acesteia
(unui individ al populației) astfel: deoarece aceste noţiuni sunt bine asociate cu noţiunea de mişcare specifică
metodei.
f X
Fiecare particulă a roiului este tratată ca un punct din spaţiul n –
dimensional al problemei de rezolvat, care-şi modifică direcţia de deplasare
M
în concordanţă cu experienţa proprie , precum şi cu experienţa de deplasare
(3.32)
a altor particule din vecinătate. Se combină astfel experienţa proprie cu
experienţa de grup.
Cel mai utilizat model este modelul global în care fiecare particulă poate
comunica cu oricare dintre particulele roiului (fig. 3.3. a). Un alt model îl
reprezintă modelul local de tip ring în care fiecare particulă comunică doar
cu vecinii din stânga şi dreapta (fig. 3.3. b).
ția curen
tă a
t , pbi ,2
xi ,1 t , xi ,2 t
, ..., xi , k t , ...,xi , n t
– pozi
– cea
mai
Pbi t pbi ,1
particulei în spațiul n – dimensional al problemei;
t , ..., pbi , k t , ..., pbi , n t
bună/promițătoare poziție a particulei atinsă până la momentul curent t.
, vi ,2 t Cea mai bună poziție atinsă până la momentul curent la nivelul roiului este
memorată în vectorul:
– viteza curentă de
Gb t g b ,1 t , g b ,2 t , ..., g b , k t , ...,g b , n t
Vi t vi ,1 t
distanța dintre poziția curentă
X i t
și cea mai bună poziție
atinsă la nivelul roiului Gb t (experiența grupului);
20
Valorile acestor constante sunt cuprinse în intervalul 0,2 și se recomandă
ca C1 C2 4. În mod uzual C1 C2 2.
Gb
Xi (t+1)
(t) P
(t+1)i
i
b,i (t)
Xi (t)
-
Xi
(t)
V
(t)
Gb(t) Pb,i (t)
Fig. 3.4. Principiul deplasării particulelor în PSO 2
X X
max min
(3.35)
modifică viteza și poziția fiecărei particule conform relațiilor (3.33) și Pentru fiecare particulă i 1,2,...,Dr execută:
(3.34)
evaluează performanța, adică calculează valoarea funcției
stabilește t t 1
revine la pasul 3
de performanță f X i t
ALTFEL
DACĂ Pb ,i t f X i t
Stop
ATUNCI stabilește Pb ,i t f X i t
Observație: Denumirea de implementare sincronă/paralelă provine din faptul
DACĂ Gb t f X i t
că bucla de determinare a valorilor Pb ,i t și Gb t este separată
ATUNCI stabilește Gb t f X i t
de bucla de modificare a vitezelor și pozițiilor particulelor. În acest caz,
evaluarea performanței fiecărei particule se poate realiza printr-o procesare modifică viteza și poziția fiecărei particule conform relațiilor (3.31) și
paralelă ceea ce poate contribui la reducerea timpului de calcul. Varianta (3.32)
asincronă sau serială constă în înlocuirea pașilor P3 și P4 ai algoritmului
sincron cu un singur pas, astfel: Stabilește t t 1
t 2
(3.37)
(3.38)
T
2
2
4
22
în care C1 C2 4. Acest factor se aplică tuturor termenilor din celor definite prin relația (3.31), în care intervin funcții neliniare,
membrul drept al relației (3.33) de modificare a vitezei care devine: discontinue și nondiferențiabile, dificil sau chiar imposibil de rezolvat prin
metode clasice.
Vi t K Vi t C1r1 Pb ,i t X i t C 2 r2 Gb t X i t (3.39)
Ciclul de bază al algoritmului diferențial evolutiv cuprinde patru etape (fig.
3.5),și anume: inițializarea, mutația, recombinarea și selecția.
3.5. Algoritmul diferențial evolutiv – ADE
Este o metodă euristică de căutare, propusă de Rainer STOR și Kenneth Initializare Mutatie Încrucisare Selectie
PRICE în 1996. Metoda face parte din categoria algoritmelor de tip
evolutiv (algoritme genetice, strategii evolutive, programare evolutivă etc.)
care utilizează o populație de indivizi împreună cu operatorii de mutație,
încrucișare și selecție pentru a rezolva probleme de optimizare de tipul
Test convergenta (un nou individ având noi caracteristici) denumit vector donator. În acest
sens, mai întâi se selectează aleator trei vectori/indivizi r1, r2 și r3 , care
trebuie să
fie diferiți unul
de altul dar și de vectorul țintă,
Stop adică
Fig. 3.5. Ciclul de bază al algoritmului diferențial evolutiv r1 r2 r3
i. Apoi se generează vectorul donator folosind relația:
1. Inițializarea
2. Mutația 3. Recombinarea
i,k
generează
o x
valoare aleatoare t încazcontrar
1,n
i,k
u
t
v
t dacă r
CR sau r
k
(3.43)
i,k
Procesul de căutare continuă până când este îndeplinit criteriul de
În relația (3.43) CR reprezintă probabilitatea cu care o componentă a convergență care, de regulă, constă în atingerea numărului maxim de
vectorului donator este transmisă urmașului. Pentru a ne asigura că cel generații Tmax .
puțin o componentă a vectorului mutant va fi transmisă urmașului, în
4. Selecția
24