Sunteți pe pagina 1din 55

exemplu, valorile posibile pentru gena ce codifică trăsătura culoarea

Capitolul 3 părului sunt ”blond”, ”brunet”, ”roşcat” sau ”şaten”.


Evoluţia este un proces ce operează la nivelul cromozomilor;
Calcul evolutiv Selecţia naturală reprezintă legătura dintre cromozomi şi performanţele
indivizilor în sensul că procesul selecţiei naturale favorizează reproducerea
3.1. Consideraţii generale acelor cromozomi ce codifică structuri performante, de succes;
Evoluţia se realizează în procesul reproducerii sub acţiunea selecţiei,
În inteligenţa artificială îndeplinirea oricărei sarcini abstracte este asociată recombinării materialului genetic şi mutaţiei.
cu rezolvarea unei probleme care, la rândul ei, este gândită ca o căutare în Tehnicile de calcul evolutiv – TCE , numite şi inteligenţă computaţională –
spaţiul soluţiilor posibile numit spaţiul stărilor problemei. În cazul în care IC sau calcul uşor - CU , sunt metode stocastice de căutare multi-
căutarea soluţiei este ghidată de o funcţie de performanţă atunci avem un dimensională care simulează evoluţia biologică. În conformitate cu legile
proces de optimizare în care suntem interesaţi de cea mai bună soluţie. evoluţiei naturale, ele modelează adaptarea unei populaţii de indivizi,
Pentru problemele de mare complexitate găsirea soluţiei optime sau a uneia fiecare individ în parte reprezentând o soluţie posibilă a problemei de
acceptabile este dificil de realizat cu ajutorul tehnicilor clasice deoarece rezolvat, în sensul creşterii performanţelor în raport cu funcţia obiectiv.
acestea fie nu pot fi aplicate, fie necesită un timp de calcul foarte mare. Interesul pentru aceste tehnici a crescut foarte repede, deoarece ele oferă un
Calculul evoluţionist sau evolutiv – CE, inspirat din legile evoluţiei naturale mecanism robust de căutare a soluţiei optime. Cele mai cunoscute tehnici
a speciilor, constituie o alternativă pentru rezolvarea unor astfel de de calcul evolutiv sunt:
probleme.
În cursul evoluţiei, organismele vii sunt confruntate cu problema adaptării algoritmii genetici – AG;
la un mediu în continuă mişcare şi în general ostil. În acest proces de strategiile evolutive – SE;
adaptare fiecare individ învaţă, iar cunoaşterea pe care a dobândit-o este
codificată în cromozomii speciei. Deşi codificarea şi decodificarea programarea evolutivă – PE;
informaţiei genetice la nivelul cromozomilor nu este pe deplin elucidată, în programarea genetică – PG;
continuare sunt prezentate, din perspectiva calculului evolutiv, câteva sistemele de clasificare – SE.
dintrecaracteristicile esenţiale ale procesului de evoluţie genetică şi anume: Ciclul de bază al unei proceduri de calculul evolutiv este prezentat figura
Cromozomii sunt purtătorii informaţiei genetice; 3.1. La începutul procesului de calcul se generează în mod aleator un
Fiecare individ al unei specii posedă un număr determinat de cromozomi a număr prestabilit de indivizi care alcătuiesc populaţia iniţială P(0)şi se
căror totalitate reprezintă genotipul său; iniţializează populaţia curentă P ( t )  P(0) . În continuare, fiecare individ
Cromozomii sunt structuri liniare alcătuite din gene. Acestea poartă din populaţia curentă P ( t ) este evaluat în raport cu funcţia obiectiv. Dacă
caracteristicile ereditare ale indivizilor. O genă controlează una sau mai nu a fost atins obiectivul propus, se generează o nouă populaţie P ( t  1). În
multe caracteristici. Genele unei caracteristici ocupă locuri bine
determinate în cromozom, numite loci. O genă se poate afla în mai multe acest sens, din populaţia curentă se selectează indivizii care s-au adaptat cel
stări, numite alele, care desemnează valori ale caracteristicii controlate. De mai bine necesităţilor problemei de soluţionat. Indivizii astfel selecţionaţi
alcătuiesc o populaţie intermediară asupra căreia se aplică operatorii
1
genetici (recombinare, mutaie, inversiune etc) pentru a genera urmaşii. obiectiv sau până când se atinge un număr prestabilit de generaţii.
Procesul ciclic este repetat până în momentul atingerii optimului funcţiei
Generare

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ă

obiectiv Fig. 3.1. Structura unui algoritm bazat pe calculul evolutiv


optimizare?
Conform celor prezentate, structura generală a unei proceduri de calcul
indivizi evolutiv cuprinde următorii paşi:
P1. Iniţializează t  0 ;

Start P2 Generează populaţia iniţială P ( t )  P(0)

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.

O funcţie de evaluare a performanţei fiecărui individ. Funcţie de evaluare


joacă rolul mediului şi este utilizată pentru a cuantifica calitatea indivizilor
în termeni de potrivire / acomodare în raport cu scopul urmărit. Ea este
utilizată în literatura de specialitate sub diverse denumiri, cele mai
cunoscute fiind funcţie de performanţă, funcţie de adecvare sau funcţia de
fitness.

O metodă sau schemă de selectare a indivizilor / cromozomilor pentru


recombinare (reproducere) şi modificare.

Operatori genetici pentru crearea de noi indivizi / cromozomi (reproducere,


mutaţie, inversiune etc.)

Valorile parametrilor ce definesc procedura de calcul evolutiv ca de


exemplu dimensiunea populaţiei, numărul total de generaţii, probabilităţile
de aplicare a diverşilor operatori genetici etc.

În cadrul cursului vor fi abordate aspecte privind algoritmii genetici.


2
mecanismele geneticii şi selecţiei naturale. Ei combină supravieţuirea
3.2. Algoritmi genetici artificială a celui mai bun individ cu operatorii genetici care sunt
abstractizări ale celor din natură, în scopul formării unui mecanism
Algoritmii genetici (AG) sunt procedee de căutare şi optimizare bazate pe robust, aplicabil unei largi game de probleme.
Algoritmii genetici şi, în general, tehnicile de calcul evolutiv, au fost este de aşteptat să se înregistreze o a indivizilor către optimul global al
aplicate cu succes într-un număr mare de probleme. Dintre argumentele funcţiei de adecvare.
care au condus la extinderea utilizării algoritmilor genetici se menţionează
următoarele: Obţinerea unei noi generaţii P ( t  1) pornind de la generaţia actuală
sunt uşor de folosit şi necesită un suport matematic puţin complex, orientat reprezentată de populaţia P ( t ) se realizează în trei etape succesive:
spre intuiţie;
rezolvă probleme dificile ce nu pot fi rezolvate prin metode clasice; Etapa 1 – Evaluarea. În cadrul acestei etape AG calculează valoarea
sunt uşor de extins şi pot fi aplicaţi pentru o gamă largă de probleme; funcţiei de performanţă pentru fiecare individ al generaţiei / populaţiei
portabilitatea – se pot păstra unele subrutine de la un program la altul. actuale.

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.

Structura unui algoritm genetic este aceiaşi cu cea a unei proceduri


evolutive. Cromozomii utilizaţi au o lungime constantă iar numărul de
indivizi în fiecare generaţie este constant. Pentru a crea o nouă generaţie se algoritm.
utilizează operatorii de selecţie, încrucişare şi mutaţie conform următorului
3

P1. Iniţializează t  0 ; De obicei, condiţia de oprire COND_OPRIRE se referă la atingerea


numărului maxim de generaţii specificat ca parametru al algoritmului genetic.
P2 Generează în mod aleator populaţia iniţială P ( t )  P(0) P3 Dacă acest număr este MAX_GEN, atunci condiţia de oprire este t  MAX _
Evaluaează P ( t ) folosind funcţia de performanţă; GEN .

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

care vor contribui la formarea generaţiei următoare folosind un operator


de selecţie (de exemplu selecţia proporţională). Indivizii selectaţi
alcătuiesc o populaţie intermediară
P1 ( t ).
P4.2. Combinarea şi modificarea Se aplică asupra indivizilor din P1 ( t )
operatorii de încrucişare şi mutaţie

rezultând o nouă populaţie intermediară P2 ( t ) (descendenţii populaţiei


curente P ( t ) );
P4.3. Crează noua generaţie În populaţia intermediară P1 ( t )
indivizii utilizaţi în procesele de încrucişare şi mutaţie sunt înlocuiţi cu
descendenţii lor (indivizii care alcătuiesc populaţia intermediară P2 ( t ) ).
Populaţia P3 ( t ) rezultată va constitui

noua generaţie.

P4.4. Stabileşte t  t 1 şi P ( t )  P3 ( t ) ; P4.5. Evaluare Evaluează noua


generaţieP ( t ) ;

Sfârşit ciclu iterativ.

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).

0011001010111111101001000110 În cazul utilizării AG în optimizarea numerică care se referă la minimizarea


sau maximizarea unei funcţii reale prin alegerea valorilor variabilelor reale
dintr-o mulţime permisă, este necesară stabilirea unei metode de codificare,
respectiv decodificarea numerelor reale. În acest sens este necesară
specificarea preciziei soluţiilor q , adică a numărului dorit de

zecimale exacte. De exemplu, dacă se doreşte o precizie de şase zecimale,


6
atunci q 10 .
Fie x  [ x min , x max ]. Pentru a codifica binar valoarea x cu o precizie dată q,
mai întâi se procedează la discretizarea intervalului [ x min , x max ] prin

împărţirea acestuia în intervale de lungime fixă. În acest sens, pentru


început se consideră valoarea maximă a intervalului de eşantionare x  q

şi se generează şirul de valori reale discrete:


5
x0  x min 0x

x1  x min 1 x
x q

..... În continuare se aplică lui x o transformarea liniară prin care se


(3.1) ataşează fiecărui număr real din intervalul
[x ,x ]
min max
x k  x min k
un număr întreg z
x
care reprezintă, de exemplu, indicele termenilor şirului definit de relaţia
(3.1), adică:
xx
min


zz
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)

Alegând zmin  0, din relaţia (3.3) rezultă:


z  zmax
x  xmin Pentru codificare, se reprezintă numărul întreg z, obţinut cu relaţia (3.4), în
baza 2. În acest sens, este necesar să se determine numărul de biţi necesari
(3.4) reprezentării şirului de valori z 0 , z1 , ...zmax corespunzător unei

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


21
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

relaţiile (3.1)), rezultă o primă condiţie pe care trebuie să o satisfacă m: m


2 1
n  zmax adică (3.9)
x x
max min
m
2 1 q
(3.7)

Exemplu: Se consideră că se doreşte utilizarea unui AG pentru


Pentru a ne asigura că m este cel mai mic întreg căutat, trebuie ca valoarea determinarea maximului funcţiei de două variabile reale
maximă întreagă reprezentată printr-un şir de biţi cu lungime m1să fiemai
mică decât n, adică
m 1 f ( x1 , x 2 )  21.5  x1  sin(4  x1 )  x 2  sin(20  x2)
2 1 n 
x x în domeniul  definit de 3.0  x1 12.1
max min
şi 4.1  x2  5.8, cu o precizie de 4
(3.8)
zecimale exacte pentru fiecare variabilă.

q
4
În condiţiile date q 10 , iar numărul minim de valori discrete
este nx 
12.1  3.0
151000, respectiv nx

Din relaţiile (3.7) şi (3.8) rezultă că lungimea cromozomului utilizat pentru


5.8  4.1 2
17
1  151000  2
18
1, iar
 17000
14 15
1 2 1  17000  2 1 rezultă că
4
10
pentru reprezentarea variabilei x1se vor utiliza şiruri de 18 biţi, iar pentru
2
4
reprezentarea variabilei x2 şiruri de 15 biţi. Prin urmare, un individ va avea
10 33 de biţi.
Deoarece
6
Codificarea binară este cea mai obişnuită schemă de codificare, fiind Observaţie: În timp ce operatorul de selecţie nu depinde de tipul codificării
simplu de creat şi utilizat. Ea conferă robusteţe algoritmilor genetici utilizate, operatorii de recombinare (încrucişare) şi mutaţie sunt specifici
permiţând obţinerea unor performanţe bune pentru diferite clase de modului de codificare utilizat.
probleme, precum şi stabilirea unor rezultate teoretice importante, cum ar fi
teorema schemelor. 3.2.2. Operatorul de selecţie.

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

Dimensiunea cromozomilor este constantă şi egală cu dimensiunea


vectorului soluţie din spaţiul stărilor problemei.
continuare funcţie de performanţă. Dacă, pentru o problemă şi o codificare Selecţia proporţională
date,  este mulţimea tuturor indivizilor/cromozomilor posibili, atunci
funcţia de performanţă este o funcţie f :   R care satisface cerinţele: Metoda selecţiei proporţionale este cea mai utilizată metodă de selecţie. Ea
este inspirată din roata de ruletă cunoscută din jocurile de noroc şi a fost
(i) f trebuie să fie pozitivă, adică f ( X )  0 X dezvoltată odată cu primele versiuni ale AG.

(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

P ( t )  { X 1 , ... X i , ..., X n}este: f(Xi)


(3.11)
Pi  f ( X i )
(3.10)

Deoarece prin selecţie se urmăreşte maximizarea performanţei indivizilor, S


căutarea se concentrează în regiunile spaţiului soluţiilor ce corespund
adecvării maxime, realizându-se astfel exploatarea celor mai bune soluţii.
i
În literatura de specialitate există o mare diversitate de metode de selecţie S
dintre care cele mai cunoscute sunt: selecţia proporţională sau metoda roţii
de ruletă, selecţia prin trunchiere sau selecţia bazată pe ordonare, selecţia
competiţională sau selecţia prin concurs (turnir) şi selecţia locală.
în care:
7
este performanţa totală a populaţiei.
S n Deoarece operatorul de selecţie se aplică de n ori asupra populaţiei curenteP ( t ) 
Pi  
n
{ X 1 , ... X i , ..., X n}, constituită din n indivizi/cromozomi, rezultă

f(Xi) căvaloarea medie a numărului descendenţilor individului Xi este:


(3.12)
i 1 n  np
i1
n
Pi
n
f(Xi)

f(Xi) i 1

Pi
(3.13) n
i1

i
i

n
f(Xi)
1

n în care Sm este performanţa medie a populaţiei.


f(Xi)
Pentru a realiza selecţia individului Xi cu o probabilitate pi se
S
m poate utiliza o metodă de tip Monte Carlo. În acest sens, se construieşte o
ruletă având n sectoare, fiecare sector corespunzând unui individ al
populaţiei. Spre deosebire de ruleta clasică care are aceiaşi dimensiune a
sectoarelor, de această dată dimensiunea unui sector i este direct
proporţională cu probabilitate de selecţie pi a individului Xi . Prin urmare, P3. Repetă de n ori

pentru a construi ruleta se calculează sumele parţiale P3.1. Generează un număr aleator rs [0,1]

qi  i P3.2. Efectuează selecţia conform următoarei reguli: DACĂ 0  rs  q1


pk selectează individul X1. DACĂ qi 1  rs  qi selectează individul Xi .
(3.14)
k1 Exemplu. Se consideră o populaţie formată din 10 indivizi, având performanţele
prezentate în coloana 2 din tabelul 3.1. Performanţa totală a populaţiei este egală
cu 155. Rezultă valorile performanţelor normalizate, adică probabilităţile de
selecţie pentru fiecare individ şi sumele parţiale normalizate din coloanele 3 şi 4
Ruleta este rotită de n ori. La fiecare rotire este selectat un individ care este ale tabelului 3.1. Dacă se înmulţeşte coloana 3 cu 10, atunci rezultă numărul
mediu de copii pentru fiecare individ din coloana 5 a tabelului 3.1.
copiat în populaţia intermediară P1 ( t ).
Tabelul 3.1. Exemplu de populaţie
Algoritmul selecţiei bazat pe principiul ruletei este următorul:

P1. Se calculează performanţa Pi a fiecărui individ şi performanţa totală a


populaţiei folosind relaţiile (3.10) şi (3.12)
P2. Pentru fiecare individ al populaţiei curente se calculează probabilitatea
de selecţie (performanţa normalizată) pi şi suma Performanţa
parţială qi folosind relaţiile (3.11) şi (3.14).
Suma parţială

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 101 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

Metode de recombinare în cazul codificării binare

Fie m lungimea cromozomilor unei populaţii rezultată în urma procesului


de codificare binară cu o precizie dată. Un punct de tăietură este un număr
întreg p  {1,2,..., m 1} care indică poziţia din interiorul

cromozomilor unde secvenţa cromozomială se rupe pentru a genera Urmaş 1


segmentele care se vor recombina. Recombinarea se poate realiza într-un
Părinte 2
punct sau în mai multe puncte de tăietura.

Încrucişarea cuun singur punct de tăietură

În acest caz se alege aleator o poziţie de încrucişare p în intervalul [1, m-1],


unde m este lungimea cromozomilor. Astfel, urmaşul 1 va moştenii primele
p gene de la individul 1 şi ultimele m  p gene de la
Urmaş 2
individul 2, în timp ce urmaşul 2 va moştenii primele p gene de la individul
2 şi ultimele m  p gene de la individul 1. Acest mecanism de încrucişare

este ilustrat în figura 3.3.

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

Fig. 3.3. Încrucişarea cu un singur punct de tăietură. punct de tăietură este:

Dacă se consideră că există 2 indivizi, I Algoritmul de încrucişare într-un singur punct


1
 (g
,g1 Pasul 1:Se generează aleator punctul de încrucişare p, 1 p  N .
, ...,g 1
,g1 Pasul 2:Împarte
) şi I1
în g11 , g 12 , ...,g 1p 1,g1p 
şi g 1p 1 , g 1p  2 , ...,g 1N 1,g1N .
Împarte
I2
în g12 , g 22 , ...,g 2p 1,g2p 
1
1
şi g 2p 1 , g 2p  2 , ...,g N2
2
2
N 1
N 1,gN

.
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

Dacă punctul de încrucişare este 5, atunci urmaşii generaţi vor fi:

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

, I 23 g 2p2 1,...,g2p3 ,…,


Algoritmul de încrucişare în mai multe puncte
I 2m g 2pm 11,...,g2pm ,
Pasul 1:Se generează aleator k puncte de încrucişare p1 , p2 , , pk
I 2m 1 g 2pm 1,...,gN2
1  p1  p2 ... pm  N . .
Pasul 2:Împarte I1 în m1 părţi:I11 g11 , g 12 , ...,g1p1 , Pasul 3:Generează cei doi urmaşi U 1 I11 , I 22 , I13 , I 24 ,... şi respectiv

I12 g 1p1 1,...,g1p2 , I13 g 1p2 1,...,g1p3 ,…, I1m g 1pm 11,...,g1pm , U 2 I 21 , I12 , I 23 , I14 ,....

Se consideră exemplul prezentat în paragraful anterior:


I1m 1 g 1pm 1,...,g1N .
Individul 1
Împarte I2 în m1 părţi:I 2 g1 , g 2 , ...,g p1 ,
1 2 2 2 0
1
I 22 g 2p1 1,...,g2p2  1
1
0
0
1 Urmaşul 1
1 0
0 1
1
0
1
Individul 2 0
1 1
0 1
1
0 0
1 1
1 1
0 1
0
1 1
0
1

Dacă
m 3
şi

cele
trei

puncte
de

încrucişare sunt

p1  2  p2  6  p3 10 , atunci urmaşii generaţi vor fi:


Urmaşul 2 Fie doi părinţi având cromozomii:
1
0 gena1 gena2 gena3 gena4 gena5 gena6 gena7 gena8 gena9

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ă.

O variantă de implementare a acestui operator este următoarea: şi P2 


P1. Pentru fiecare genă i  1,2,...,n se generează un număr aleator rg [0,1].

P2. Dacă rg  pg atunci primul urmaş primeşte gena i de la primul ,


P
1,1

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

prin aplicarea operatorului de încrucişare discretă descris anterior, pot da


naştere următorilor descendenţi sau urmaşi :

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
(PP) 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:

 U i  aP1,i (1  a ) P2,i


P (3.16)
1
(PP) Acest operator poate fi extins pentru o schemă de tipul (2 – 2), adică pentru
P a crea doi descendenţi. Valorile genelor celor doi urmşi se determină cu
relaţiile:
1

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 103 , 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

în care pm,0 este valoarea iniţială a probabilităţii de mutaţie (probabilitatea


de mutaţie la prima generaţie t 1), iar 1 este un parametru real. Cu cât mutaţia uniformă înlocuieşte o singură genă a cromozomului cu
valoarea lui  este mai mare, cu atât probabilitatea de mutaţie descreşte mai
repede. o valoare reală generată aleator în intervalul [ g imin , g imax ] de variaţie al
acesteia.
Mutaţia poate fi aplicată şi în cazul codificării în numere reale. În acest caz,
13
În cazul mutaţiei neuniforme genele selectate pentru mutaţie suferă
modificări importante în primele generaţii şi apoi descresc treptat. Se gm  g
realizează astfel un progres important al căutării în faza iniţială şi un
control fin al procesului de căutare în fazele finale ale acestuia. La fiecare (gmax  g
)
generaţie t se generează aleator doi parametrii. Primul parametru r1 va
1

indica creşterea sau descreşterea valorii genei selectate. Astfel, dacă r1  1


valoarea genei selectate va fi scăzută, iar dacă r1 1 valoarea 

acesteia va fi crescută. Al doilea parametru r2 este un număr aleator din dacă r 1


intervalul [0,1], care urmează o distribuţie normală. Dacă gi este gena (3.19)
cromozomului selectată pentru modificare, atunci noua valoare a acesteia
se determină cu relaţiile:


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,

iar T indicele generaţiei pentru care amplitudinea mutaţiei se anulează,


adică indicele generaţiei de la care nu se mai aplică operatorul de mutaţie.
În general T este egal cu numărul maxim de generaţii.
i

3.3. Strategii evolutive

3.3.1. Consideraţii generale

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.

În ultima perioadă de timp, ele au fost extinse şi pentru rezolvarea


1k
problemelor de optimizare cu parametrii discreţi. ik
nk

Strategiile evolutive sunt tehnici de calcul evolutiv care utilizează


codificarea reală şi operatorul de mutaţie ca principal operator genetic.
Ele au la bază observaţia biologică conform căreia, în general, urmaşii sunt
asemănători părinţilor iar schimbările mici sunt mai frecvente decât cele
mari. σ
k
[ 
Specific strategiilor evolutive este faptul că, spre deosebire de algoritmele
, ..., 
genetice, reprezentarea indivizilor încorporează şi parametrii de control ai ik
strategiei legaţi, în principal, de amplitudinea perturbaţiilor generate de , ....
operatorul de mutaţie. În aceste condiţii, fiecare individ k al populaţiei este nk

reprezentat ca o pereche de doi vectori cu componente reale: ]T


- vectorul abaterilor standard.

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 .

, .... x ]T Prin urmare, mutaţiile se realizează conform relaţiei:


este un punct din spaţiul de căutare;
X k (t  1)  Xk (t )  N(0, σ k ) în care N(0,σk )este o variabilă aleatoare n – dimensională ce urmează o
(3.23) distribuţie normală cu media 0 şi abaterea standard σk .

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 .

La un moment dat t al procesului iterativ de căutare, aplicând operatorul de


mutaţie (relaţia 3.23) individului populaţiei curente
Z (t )  [ X (t )T , σ T ]T se obţine un urmaş U (t )  [ X (t  1)T , σ T ]T
acestuia. Trebuie precizat faptul că amplitudinea perturbaţiei nu este
rezultând o populaţie de doi indivizi care intră în competiţie.
aceeaşi pentru toate componentele xi ale vectorului X deoarece, în general,
Mecanismul de selecţie constă în compararea performanţelor celor doi
indivizi. Astfel, dacă performanţa urmaşului este mai bună decât a
părintelui, atunci el este păstrat iar părintele este eliminat. În caz contrar, componentele i alevectorului σ nu sunt egale.
urmaşul este eliminat iar populaţia nu este modificată. Acest mecanism
simplu de selecţie este denumit selecţie (1+1) de unde şi numele strategiei. În anumite condiţii, referitoare la funcţia obiectiv şi valorile componentelor
vectorului σ, metoda de optimizare bazată pe strategia (1+1) poate
Se precizează faptul că deşi populaţia strategiei conţine un singur individ converge către optimul global. Astfel, dacă problema de
care suferă procesul de mutaţie, strategia evolutivă (1+1) prezentată se mai
numeşte şi “strategie evolutivă cu doi membrii” deoarece urmaşul intră în optimizare este regulară, iar toate componentele i sunt egale, adică σ
competiţie cu părintele şi, cel puţin temporar, există doi indivizi în [,...,,....]T , atunci se demonstrează teorema de convergenţă a
populaţie.

Î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

diminuat. În acest context, coeficienţii cd şi ci din relaţia (3.24) au


c σ(t) semnificaţia unor constante de învăţare/instruire care satisfac condiţiile:
dacă (k) 1 5
c
1
σ(t 1) (3.25)
d
dacă (k) 1 5 d
(3.24) 1

 ciσ(t) c
 i

 Pentru aplicarea practică a regulii de succes 1/5, Schwefel a propus


ăk următoarea regulă euristică []:
15

se stabileşte parametrul metodei k  10n

d
i

cd

 n c
se stabilesc valorile coeficienţilor:
cn

şi c  unde n este dimensiunea spaţiului de căutare, iar c  0.817.


1
 O altă variantă a procedurii de corecţie, propusă tot de Schwefel, constă în
1 actualizarea componentelor abaterii standard la fiecare n

1
generaţii şi utilizarea valorilor cd  c  0.817şi ci  c 1.224.

În concluzie, strategia eolutivă (1+1) este o strategie de căutare locală care


c realizează o exploatare a soluţiei curente, similară cu metoda călirii
simulate şi utilizabilă în numeroase contexte. Totuşi, ea prezintă
douădezavantaje majore:

Procesul de căutare punct cu punct bazat pe regula de succes 1/5 poate


conduce la stagnarea căutării într-un punct de minim local datorită
caracterului determinist al descreşterii pasului atunci când situaţia
topologică a suprafeţei de căutare nu conduce la frecvenţe de succes
suficient de mari. În astfel de cazuri apare o diminuare către zero a pasului
de mutaţie şi în mod implicit stagnarea procesului de căutare. Situaţii de
acest fel apar atunci când problema de rezolvat prezintă restricţii sau când
funcţia obiectiv este discontinuă sau nu este derivabilă.

Deoarece mărimea pasului este aceeaşi pentru fiecare axă de coordonate a


spaţiului de căutare (componentele vectorului σ sunt egale), procedura  prin creştereanumărului părinţilor dim_p; strategia ( 1);
avanseazălent spre punctul de optim.
prin creşterea numărului descendenţilor/urmaşilor dim_d; strategia
Performanţele strategia (1+1) pot fi îmbunătăţite prin utilizarea unei
populaţii veritabile cu mai mult de un individ, respectiv prin includerea (1  );
unui mecanism de auto-adaptare a parametrilor algoritmului, în special
pentru dispersie. prin creşterea atât a numărului părinţilor dim_p cât şi al descendenţilor
dim_d; strategia ( ).
Creşterea dimensiunii populaţiei dim_pop se poate realiza în diverse
moduri şi anume: Cele trei tipuri de strategii evolutive rezultate prin creşterea dimensiunii
populaţiei pot fi considerate ca variante ale unei strategii evolutive generale
numită strategia ( ,  ) în care  dim_p, iar  dim_d.

3.3.3. Strategia evolutivă de tipul ( 1)

Această strategie se deosebeşte de strategia de bază (1+1) prin faptul că


urmaşul se obţine dintr-un număr de  dim_p părinţi. În acest

sens, mai întâi se aplică un operator de recombinare asupra unui număr npr

de indivizi selectaţi aleator din populaţia de părinţi curentă. Apoi asupra


individului obţinut prin încrucişare se aplică operatorul de mutaţie la fel ca
în cadrul strategiei de bază (1+1) pentru a se obţine singurul urmaş care va
intra în competiţie cu părinţii săi în cadrul procesului de selecţie a părinţilor
pentru generaţia următoare. Selecţia se realizează prin eliminarea celui mai
slab individ din populaţia intermediară constituită din ( 1) indivizi

( dim_p părinţi ai generaţiei curente plus un urmaş). Cu alte cuvinte, din


 părinţi şi un urmaş se selectează în mod determinist dim_p indivizi care
vor constitui populaţia de părinţi pentru generaţia următoare.

Numărul părinţilor npr selectaţi pentru încrucişare poate avea orice

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
PZ 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

descendentului conform regulii:


(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

aceiaşi probabilitate pg  0.5.


anterior în cazul recombinării discrete şi se atribuie genei di valoarea:
În cazul în care npr  2 mai întâi, din populaţia curentă, se selectează în mod
aleator npr indivizi. Aceştia formează o submulţime de d i  aP1i (1a ) P2i
(3.27)
părinţi utilizaţi în procesul de recombinare. În continuare, pentru fiecare
genă i  1,..., n, n  1,...,2n se selectează aleator un individ din submulţimea

formată anterior şi se copiază gena i a acestuia în gena di a descendentului.


Este evident faptul că în cazul în care npr  părintele care dă valoarea di a
genei descendentului se selectează din întreaga populaţie.

Recombinarea convexă globală

Pentru fiecare genă


i  1,..., n, n  1,...,2n se selectează doi părinţi

PZ
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 .

Există mai multe variante ale operatorului de mutaţie. În cazul


mecanismului de mutaţie standard regula de mutaţie pentru dispersie este:

' r 1ri
ik  ike i  1,2,...,n (3.28)

în care : r şi ri sunt două variabile aleatoare ce respectă o lege normală cu


dispersia 1 şi media 0;

 şi 1 reprezintă constantele de instruire (ratele de învăţarea) procesului .

Parametrul  controlează în mod global mărimea pasului de mutaţie,


valoarea r fiind aceiaşi pentru toate componentele vectorului σk .
în care c şi c1 sunt, în mod uzual, egale cu 1.

Mutaţia componentelor xik ale vectorului de poziţie Xk se realizează


conform relaţiei:
'
x
x
'
2n 
y
(3.30)
ik
1
ik
1
ik
i
2
n
în care yi este o variabilă aleatoare ce respectă o lege normală cu dispersia 1
şi media 0.
18
Optimizarea cu roiuri de particule – ORP (Particle Swarm adesea către un comportament global. Astfel de sisteme se întâlnesc în
Optimization – PSO) natură şi includ stolurile de păsări, bancurile de peşti, turmele de bizoni,
muşuroaiele de furnici etc.
Este o tehnică de optimizare (de determinare a unei soluţii optime pentru o
problemă dată) bazată pe dinamica şi inteligenţa grupurilor. În continuare presupunem că avem de optimizat un proces (de exemplu
minimizarea pierderile de putere activă într-o rețea electrică de
Inteligenţa de grup (IG) sau swarm intelligence (SI) în terminologia transport) dependent de n parametrii care alcătuiesc variabile de control.
englezească, este o tehnică a inteligenţei artificiale bazată pe studiul Pentru a determina valorile optime ale variabilelor de control/parametrilor
comportamentului colectiv în sisteme descentralizate cu auto-organizare şi
utilizează conceptul interacţiunii sociale pentru rezolvarea problemelor. În n
dintr-un domeniu   R , formulăm problema ca o problemă de minim,
acest sens, sistemele bazate pe inteligenţa de grup folosesc o populaţie adică:
constituită din particule/agenţi care interacţionează local între ele, precum
Min  F  X  
şi cu mediul în care se deplasează în vederea identificării soluţiei optime.

FX:R
Deşi în mod normal nu există o structură de control centralizat care să (3.31)
dicteze comportamentul individual, interacţiunile dintre agenţi conduc 
 3.4.1. Varianta de bază a algoritmului PSO

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.

1 F  X  Vecinătatea unei particule este definită ca fiind submulţimea de particule cu


care aceasta poate comunica. În modelul iniţial s-a utilizat distanţa
euclidiană ca o măsură a posibilităţii de comunicare între particule imitându
-se astfel comportamentul stolurilor de păsări sau al turmelor de animale.
Acest model a fost abandonat şi s-a recurs la modele ce necesită un efort de
calcul mai redus. Astfel, au fost dezvoltate modele topologice care nu au
legătura cu poziția particulei la un moment dat, conceptul de vecinătate
fiind unul de tip static, complet diferit de cel utilizat în alte tehnici meta –
în care M este o constantă care definește intervalul în care se mapează euristice de căutare, deoarece vecinii fiecărei particule nu se modifică odată
performanțele indivizilor. cu modificarea poziţiei particulelor.

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).

Fiecare particulă este prevăzută cu o memorie care-i permite să cunoască


cea mai bună poziţie pe care a avut-o până la momentul te timp curent
(experienţa proprie) şi cea mai bună poziţie a celorlalte particule din
vecinătate (experienţa de grup).

Varianta de bază a algoritmului ORP foloseşte modelul de vecinătate


globală, iar fiecare particulă este caracterizată, la un moment dat, de trei
vectori:
19
 deplasare a particulei;
Xit




ț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

, ..., vi , k  t  , ...,vi , n t


proprie Pb ,i  t (experien


distanța dintre poziția curentă
X i  t
și cea mai bună poziție
atinsă la nivelul roiului Gb  t (experiența grupului);

În acest sens, la fiecare pas de timp, algoritmul actualizează întregul roi


modificând viteza și poziția fiecărei particule conform următoarelor relații:

a) b) Vi  t  1Vi  t  C1r1  Pbi  t   Vi  t   C 2 r2  Gb  t   Vi  t


(3.33)
Fig. 3.3. Tipuri de modele topologice folosite în metoda ORP a) modelul X i  t  1 X i  t   Vi  t 1
global; b) modelul local de tip ring.
(3.34)
Referitor la relația (3.33) se fac următoarele precizări:
Principiul de bază al ORP constă în deplasarea fiecărei particule către
pozițiile Pb , i și Gb folosind următoarele informații:
Primul termen din relația reprezintă inerția și are rolul de a menține
 poziția curentă – X i  t; tendința de deplasare a particulei în aceiași direcție și cu aceiași viteză.

Al doilea termen reprezintă influența personală sau experiența cognitivă.


viteza curentă –Vi  t;
Are un caracter conservativ și determină revenirea la o poziție anterioară
mai bună decât cea curentă.

distanța dintre poziția curentă Al treilea termen reprezintă influența socială și determină particula să
X i  t urmeze deplasarea celui mai bun vecin.
și cea mai bună poziție
C1 și C2 sunt două constante ce definesc încrederea în experiența proprie
ța proprie);
(C1), respectiv în experiența de grup (C1).

20
Valorile acestor constante sunt cuprinse în intervalul 0,2 și se recomandă
ca C1  C2  4. În mod uzual C1 C2  2.

 r1și r2 sunt două numere generate aleator în intervalul 0,1 și au rolul


-Xi
unor ponderi aplicate coeficienților C1 și C2 . r1 și r2 se generează la fiecare
moment de timp pentru fiecare particulă, adică r1  r1, i  t și r2  r2, i  t.
(t)

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

Principiul modificării poziției fiecărei particule la momentul de timp t este


ilustrat în figura 3.4 pentru un spațiu de căutare bidimensional.

Pentru a preveni deplasarea particulelor în afara spațiului de căutare, valorile


generate cu relația (3.31) sunt limitate la intervalul Vmax , Vmax .

Vectorul
V
max

se stabilește în funcție de frontierele


spațiului de căutare
în care  
Xmin și
0,1
Xmax folosind relația:


X X
max min

(3.35) 

Există diverse variante de implementare a algoritmului ORP. Varianta


iniţială propusă de Kennedy şi Eberhart, cunoscută sub denumirea de
implementarea sincronă sau paralelă, constă în parcurgerea următorilor
paşi:

P1. Stabilirea parametrilor algoritmului: Dr – dimensiunea roiului de


max particule;

Tmax – numărul maxim de iterații; C1 și C2 – coeficienții de încredere;


 – coeficientul de limitarea vitezei. aleator în intervalul 0,1.

P2. Inițializarea roiului cu valori generate aleator în intervalele X min ,


Xmax  și V max , Vmax  folosind relațiile: P3. Evaluează performanța fiecărei particule conform obiectivelor
problemei și determină Pb ,i  t, respectiv Gb  t.
xi , k  0 xmin, k rand () xmax, k  xmin,k  vi , k  0 vmax, k 2rand ()
P4. DACĂ t  Tmax
vmax,k
ATUNCI:
în care i  1,Dr , k  1,n, iar rand()este funcția de generare a unui număr
21

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

P3. ATÂTA TIMP CÂT t  Tmax


3.4.2. Variante îmbunătățite ale algoritmului ORP
max
Pentru a depăși dificultățile legate de alegerea unei valori adecvate pentru max
min

Vmax care să asigure un echilibru optim între explorarea globală a

spațiului de căutare și exploatarea locală, în literatura de specialitate s-au


propus îmbunătățiri ale variantei inițiale dintre care cele mai importante
sunt:

I. Utilizarea coeficientului de pondere .

Modificarea algoritmului constă în utilizarea unui coeficient de pondere


max
pentru termenul inerțial din expresia (3.33) de modificare a vitezei, care
devine:

Vi  t  1 wVi  t  C1r1  Pbi  t   Vi  t   C 2 r2  Gb  t   Vi  t (3.36)


în care wmax și wmin sunt valorile inițială și finală ale coeficientului de
Printr-o selectare adecvată a valorii coeficientului de pondere w, roiul va pondere. Conform literaturii de specialitate se recomandă wmax  0,9 și
avea tendința de a se autoconcentra pe zona ce conține cele mai wmin  0,4.
performante puncte și să o exploateze în detaliu. În acest sens, se
recomandă modificarea valorii parametrului w în mod dinamic pe parcursul II.Utilizarea factorului de comprimare
procesului de optimizare folosind o relație de forma:
De această dată modificarea algoritmului constă în utilizarea unui factor de
wtw corecție/comprimare care se determină cu relația:
 w
K
w

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

Ca și în cazul optimizării cu roiuri de particule, domeniul , în care se caută Vi  t   X r1


soluția, este definit de frontierele acestuia ( vectorii Xmin și X max ),
 t   F  X r2  t   X r3  t
adică de valorile minimăși maximă ale fiecărei variabile de control: (3.42)
în care F este un factor de scalare real, cuprins ân intervalul 0,2care
xmin, k  xi , k (t )  xmax,k i  1,D p iar k  1,n (3.40) controlează amplitudinea vectorului diferență X r
tXr
în care Dp este dimensiunea populației, iar n dimensiunea spațiului de
 t.
2
3
căutare. Prin urmare, inițializarea populației se realizează conform relației:
Observație: Având în vedere condiția r1  r2  r3  i rezultă că dimensiunea
xi , k  0   xmin, k rand ()  xmax, k  xmin,k  i  1, D p iar k  1,n (3.41)
populației Dp trebuie să fie cel puțin 4.

2. Mutația 3. Recombinarea

Operatorul de recombinare are rolul de a crește diversitatea în rândul


Este principalul operator folosit în cadrul ADE. Pentru fiecare individ X i 
populației. Pentru aceasta, folosind vectorul țintă X i  t și vectorul donator
t al populației curente, denumit vector țintă, se generează un mutant
Vi  tse generează un nou vector U i  t, numit vector de încercare sau
urmaș.
23
Principial există două variante ale operatorului de Prima variantă, numită metoda binomială de recombinare, utilizează
recombinarea/încrucișare. următorul algoritm pentru a selecta componentele urmașului U i  t.
P1. Generează aleator un întreg rk 1,n
1,k
P2. Pentru
fiecare k
k

i,k
generează
o x
valoare aleatoare t  încazcontrar

1,n
i,k

r 1,k0,1și stabilește componenta ui , k t


conform relației:

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

relația (3.43) s-a introdus condiția suplimentară rk  k .

Cea de a doua metodă, numită metoda exponenţială, este similară cu


încrucişarea ăn două puncte de tăietură din algoritmele genetice. În acest
sens, primul punct de tăietură este selectat aleatoriu, iar al doilea astfel încât
L componente succesive, numărate circular, sunt selectate din vectorul
mutant.

4. Selecția

Procesul de selecție este similar cu selecția de tip turnir din cadrul


algoritmelor genetice. Astfel, dacă performanța urmașului este mai bună

decît a vectorului țintă, adică f U i  t    f  X i  t, atunci urmașul U i


 t va înlocui vectorul țintă X i  t în noua generație.

24