Sunteți pe pagina 1din 21

8

STRATEGII EVOLUTIVE

8.1 Generalităţi

Strategiile evolutive (SE) au apărut din necesitatea de a


rezolva probleme de optimizare de tipul: “se cere x *  D  R n cu
 
f x
*
f x   x  D , unde f : D  R
n
 R si D este o regiune

mărginită determinată de restricţiile impuse asupra lui x ”. Pentru


astfel de problemă strategiile evolutive sunt mai potrivite decât
algoritmii genetici, deoarece nu necesită codificarea binară a datelor
care are dezavantajul că limitează precizia. Strategiile evolutive
reprezintă indivizii sub forma unor vectori cu componente reale şi
folosesc mutaţia ca principal operator de evoluţie. În strategiile
evolutive avansate reprezentarea indivizilor încorporează în ea şi
parametrii de control ai strategiei. Un individ se reprezintă ca o
pereche v   x ,   , unde vectorul x este un element din spaţiul de

căutare iar  2 este vectorul dispersie;  i2 reprezintă dispersia


perturbaţiei pe care o suferă componenta x i a vectorului x în procesul
de mutaţie. Vectorul  reprezintă parametrul de control al strategiei.

169
Primul algoritm de tip SE a fost propus în 1964 de către
Rechenberg şi Schwefel în scopul rezolvării unei probleme care cerea
amplasarea unei conducte flexibile într-o zonă de o anumită formă
astfel încat costul să fie cât mai mic. Ideea rezolvării era: pornind de la
o aproximaţie curentă se genera alta printr-o perturbaţie aleatoare
bazată pe o repartiţie normală şi se alegea cea mai bună dintre cele
două. Această strategie, numită 1  1 , nu opera cu populaţii ci
urmărea adaptarea unui singur individ sub acţiunea mutaţiei. Limitele
acestui model au dus la căutarea unor mecanisme care să implice în
evoluţie mai mulţi indivizi. Dintre acestea amintim:

• Strategia   ,   : pornind de la cei  indivizi ai populaţiei curente


se generează prin încrucişare şi mutaţie    indivizi noi, iar dintre
aceştia se aleg  , care vor forma noua populaţie; dacă   1 , se alege
individul cel mai bun ( cel pentru care funcţia obiectiv este cea mai
mică).

• Strategia      : pornind de la cei  indivizi ai populaţiei


curente se generează prin încrucişare şi mutaţie un număr de 
indivizi noi care se adaugă la populaţia curentă; din populaţiile reunite
se selectează  indivizi care vor forma noua populaţie. Dacă   1 ,
se foloseşte doar mutaţia pentru a genera indivizi noi, fiind evident că
încrucişarea nu poate fi utilizată. Dacă   1 , selecţia urmăreşte
eliminarea celui mai slab individ (cel care dă cea mai mare valoare a
funcţiei obiectiv) din populaţiile reunite. Este clar că dacă individul

170
nou generat este mai slab decât toate elementele populaţiei curente
atunci aceasta rămâne nemodificată.

• Strategia   , k ,  , p  : este o extindere a strategiei   ,   şi se


caracterizează prin:
a) k  1 reprezintă durata de viaţă a indivizilor, măsurată în
generaţii. Valoarea lui k se micşorează cu 1 la fiecare nouă generaţie
iar un individ va fi selectat doar dacă k  0 .
b) operaţiile de mutaţie şi încrucişare sunt controlate de
probabilităţile p m şi respectiv p c , la fel ca în cazul algoritmilor
genetici.
c) numărul părinţilor folosiţi în operaţia de încrucişare este p
d) se pot folosi şi operatori de încrucişare specifici algoritmilor
genetici, ca de exemplu încrucişarea multiplă.

• Strategia evolutivă rapidă: este o variantă, încadrată de autorii ei


la programarea evolutivă, caracterizată prin:
a) foloseşte o mutaţie specifică bazată pe perturbarea
elementelor cu valori generate în conformitate cu distribuţia Cauchy a
cărei funcţie de densitate este:
1 1
 ( x)  ,  0
 x 
2 2

Acest tip de perturbaţie prezintă avantajul că poate genera descedenţi


îndepărtaţi de părinte cu o probabilitate mai mare decât perturbaţia
normală (asigurând o probabilitate mai mare de evadare din minime
locale şi o accelerare a procesului de găsire a optimului). Diferenţa

171
dintre cele două funcţii de densitate (normală şi Cauchy) este ilustrată
în figura 8.1.
b) perturbaţiile sunt independente iar parametrii  i sunt
determinaţi prin autoadaptare (cu perturbare log-normală) la fel ca în
cazul strategiilor evolutive clasice.
c) nu se foloseşte încrucişare nici asupra componentelor
propriu-zise nici asupra parametrilor de control.
d) selecţia este de tip turneu.

Figura 8.1: Funcţiile de distribuţie ale repartiţiilor normală (linie


întreruptă) şi Cauchy (linie continuă)

172
8.2 Operatori de evoluţie
8.2.1 Incrucişarea

Operatorul de încrucişare selectează, cu o probabilitate


uniformă, cei p părinţi. Cel mai des se utilizează cazurile p  2 şi
p . Datorită similarităţii dintre reprezentarea indivizilor în
strategii evolutive şi în algoritmi genetici, există similaritate şi între
tipurile de încrucişare.

8.2.1.1 Încrucişarea discretă

În cazul p  2 fie x 1 şi x 2 părintii selectati aleator; pentru


fiecare componentă i   1, 2 ,  , n  se generează un număr aleator
q i  0 , 1 , urmând distribuţia uniformă. Componenta yi a
descendentului va fi
 x 1 dac ă q i  0 . 5
i
yi  
2
 x i dac ă q i  0 . 5

În cazul când se încrucişează p părinţi  x ,  ,  x  , componenta


1 p

yi a descendentului y este componenta xi a părintelui

173
 1
x  x ,  , x
p
 ales aleator. În cazul p   , părintele care dă
componenta y i a descendentului y este ales din întreaga populaţie;
de aceea încrucişarea se numeşte globală.

8.2.1.2 Încrucişarea intermediară

În acest caz componenta y i a descendentului y este o


combinaţie convexă a componentelor corespunzătoare din cei p

părinţi x 1 ,  , x p , aleşi aleator:


p

  j xi
j
yi  i  1, 2 ,  , n
j 1

şi
p

 j  1, j  0.
j 1

În general se lucrează cu doi părinţi x 1 , x 2 :


y i   x i  1    x i , i   1, 2 ,  , n 
1 2

cu   0 , 1 ales ca fiind valoarea unei variabile aleatoare cu


distribuţie uniformă şi păstrând aceeaşi valoare pentru toate
componentele.
Încrucişarea intermediară poate fi extinsă schimbând părinţii şi
parametrul  pentru fiecare componentă a descendentului. Toate

174
tipurile de încrucişare se aplică similar şi pentru dispersie sau alţi
parametri de control.
Experimental, s-a observat că se obţin rezultate bune dacă pentru
vectorii de poziţie se utilizează încrucişarea discretă iar pentru
parametri strategiei se foloseşte încrucişarea intermediară.

8.2.2. Mutaţia

Mutaţia este cel mai important operator al strategiilor evolutive.


Am văzut că un individ este o pereche  x ,   , unde vectorul  indică
modul în care vectorul de poziţie x se transformă prin mutaţie.
Parametrul de control  este supus şi el operaţiei de mutaţie.
Individul  x ,   se transformă prin mutaţie în  x ' ,  '  :
 x ' ,  '  mut  x ,  .
Vectorul x ' se obţine după legea
x '  x    N 0 , 1 

sau, pe componente,
x ' i  x i   ' i N i 0 , 1 , i  1, 2 ,  , n 

unde N i 0 , 1 este o variabilă aleatoare de medie 0 şi dispersie 1.


Mutaţia asupra lui  acţionează diferit, după cum   1 sau
  1 în modelele   ,   şi    .

175
8.3. Funcţionarea strategiilor evolutive

Structura generală a unei strategii evolutive este cea a unui


algoritm evolutiv, apărând, în funcţie de strategie, unele diferenţe la
nivelul operatorilor.

8.3.1 Strategia (1  1)

Modelul iniţial al lui Rechenberg consideră populaţia formată


dintr-un singur individ supus operatorului de mutaţie. După obţinerea
descendentului, cei doi membri ai populaţiei sunt comparaţi între ei
prin intermediul funcţiei de adecvare şi este reţinut individul cel mai
bun. Folosim următoarele notaţii:
• k = un număr de generaţii consecutive; de obicei se ia k  10 n ,
unde n este dimensiunea spaţiului de căutare
• s (k ) = numărul mutaţiilor de succes din ultimele k generaţii
consecutive
s(k )
• p (k )  = frecvenţa mutaţiilor de succes din ultimele k
k
generaţii
• C= constantă, aleasă (la sugestia lui Schwefel) ca fiind 0.817

Algoritmul SE(1+1)
begin
t : 1 , P ( t )  x ( t ),  ( t )

evaluează f ( x )
176
while not cond ( P ( t )) do
begin
calculează p (k )
calculează
  t  1
 n dac ă p (k ) 
c 5

 1
 t  1   mut  t    t  dac ă p (k ) 
 5
 1
 t   c p k  
n
dac ă
 5

calculează
x t  1   mut  x t   x t    t  1   N 0 , 1 

evaluează f  x t  1 
if f  x t  1   f  x t  {selecţia}
then P t  1   x t  1 ,  t  1 
else P ( t  1) : P ( t )
t : t  1
end
end

Observaţii.
1) cond ( P ( t )) reprezintă condiţia de oprire, dată de obicei prin
numărul de generaţii
2) Schwefel a propus (1995) o altă versiune a mutaţiei pentru

177
parametrul  ??
  t  1
 c dac ă p (k ) 
5

 1
 t  n      t  dac ă p (k ) 
 5
 1
 c   t  dac ă p k  
 5

3) Strategia (1+1) lucrează cu populaţii formate dintr-un singur


individ şi nu foloseşte încrucişarea.

8.3.2 Strategia (   1)

Strategia (1+1) poate fi generalizată prin mărirea numărului


părinţilor fiecărui descendent şi/sau a numărului descendenţilor unui
părinte. În strategia    1  ,   1 părinţi vor genera un singur
descendent folosind încrucişarea şi mutaţia. Încrucişarea se aplică atât
vectorului de poziţie cât şi dispersiei şi se poate folosi oricare din
operatorii prezentaţi anterior. Mutaţia se aplică urmând principiul
strategiei 1  1 , dar nu există o metodă de control a dispersiei, regula
1
nemaifiind aplicabilă în acest caz. Acest dezavantaj face ca
5
strategia    1  să fie puţin folosită.

8.3.2 Strategii multidescendent

Aceste strategii au apărut din dorinţa de a folosi metode mai


178
robuste şi mai generale pentru a controla parametri mutaţiei. Din
această categorie fac parte strategiile      şi   ,   care lucrează
cu populaţii formate din   1 părinţi şi    descendenţi, ceea ce
determină o creştere a vitezei de convergenţă. Cei  indivizi ai noii
generaţii se selectează din :
• populaţia intermediară obţinută reunind cei  indivizi ai
generaţiei curente cu cei  descendenţi ai ei, în cazul strategiei
  

• din cei  descendenţi ai populaţiei curente, în cazul strategiei


 ,   .
Deoarece strategia   ,   îşi schimbă complet populaţia la
fiecare nouă generaţie, ea nu este elitistă. Această calitate permite
ieşirea din zona unui optim local şi evoluţia către optimul global. În
schimb, strategia      permite supravieţuirea unor indivizi
neperformanţi din vechea generaţie. În felul acesta procesul de căutare
tinde să favorizeze minimele locale în defavoarea celor globale. De
aceea se recomandă folosirea strategiei   ,   .
Încrucişarea. Iniţial strategiile      şi   ,   au fost
aplicate folosind doar operatorul de mutaţie. Ulterior s-a constatat că
se obţin rezultate mai bune dacă se foloseşte şi încrucişarea, aplicată
înaintea mutaţiei. În mod empiric, s-a ajuns la concluzia că folosirea
încrucişării discrete pentru vectorii de poziţie şi a celei convexe pentru
parametri strategiei conduce la cele mai bune rezultate. Operatorul de
încrucişare se aplică de  ori populaţiei de  părinţi, obţinându-se o
179
populaţie intermediară de    indivizi. Un descendent se obţine
prin încrucişarea a p părinţi, 1  p   ; de obicei se ia p  2 sau
p   .
Mutaţia. Considerăm indivizii reprezentaţi prin perechi de
forma  x ,   , unde x  R n este vectorul de poziţie iar  2 este
vectorul dispersie. Notăm cu N 0 , 1  un număr aleator ce urmează
distribuţia normală de medie 0 şi dispersie 1. Mutaţia standard
înlocuieşte individul  x ,   cu  x ' ,  '  obţinut după regulile:
p 1 N ( 0 , 1)  p 2 N i ( 0 , 1)
 'i   i e

x ' i  x i   ' i N i 0 , 1 

cu i   1, 2 ,  , n  . Parametri p1 şi p 2 controlează mărimea pasului


mutaţiei şi respectiv schimbările individuale. Schwefel (1977) a
propus pentru aceşti parametri următoarele valori
c1 c2
p1  şi p 2 
2n 2 n

unde c1 şi c 2 iau de obicei valoarea 1.


Mutaţia, aşa cum rezultă din formulele anterioare, acţionează
întâi asupra dispersiei şi apoi asupra vectorului de poziţie. Se poate
lucra cu vectorul dispersie având toate componentele egale; fie 
valoarea lor comună. În acest caz mutaţia funcţionează după regulile
 '  e
pN ( 0 , 1)

x ' i  x i   ' N i 0 , 1 

180
adică toate componentele vectorului de poziţie se modifică folosind
c
aceeaşi dispersie; parametrul p ia valoarea p  .
n
Strategiile multidimensionale funcţionează după următorul algoritm

begin
t : 0
iniţializează populaţia P (t )
evaluează indivizii din P (t )
while not cond ( P ( t )) do
begin
P ' ( t ) : încrucişare ( P ( t ))

P " ( t ) : mutaţie ( P ' ( t ))

evaluează P " ( t )
P (t  1) : selecţie  P " ( t )  M 
t : t  1
end
end

Populaţia iniţială se construieşte alegând aleator , cu o


probabilitate uniformă,  puncte x i  R n , i  1, 2 ,  ,   . Dacă se
cunoaşte un punct x aflat în vecinătatea celui de optim atunci x va fi
unul dintre indivizi iar ceilalţi   1 se obţin prin mutaţii asupra lui. O
adaptare eficientă a parametrilor strategiei necesită o diversitate
181
suficient de mare a populaţiei de părinţi. Deci, numărul  trebuie să
fie mai mare ca 1 iar raportul dintre numărul descendenţilor şi cel al
părinţilor trebuie să fie în favoarea descendenţilor. Se recomandă un

raport  7 şi, în mod frecvent, se foloseşte strategia 15 , 100  .

Kursowe [] a arătat că asigurarea convergenţei este influenţată de
operatorul de încrucişare folosit; acesta depinde de forma funcţiei
obiectiv, de dimensiunea spaţiului de căutare şi de numărul de
parametri ai strategiei.
Condiţia de oprire cond se referă, de obicei, la numărul maxim
de generaţii dar pot fi luate în consideraţie şi alte criterii, printre care
cele de mai jos:
1) diversitatea populaţiei a scăzut sub o anumită limită, semn că
ne aflăm în vecinătatea unui optim global; diversitatea poate fi
măsurată prin diferenţa calităţilor asociate celui mai bun individ şi
celui mai neperformant.
2) nu se mai obtin îmbunătăţiri semnificative ale funcţiei obiectiv

Mulţimea M poate lua una din valorile:


M  P (t ) pentru strategia     

M   pentru strategia   ,   .

182
8.3.3 Utilizarea mutaţiilor corelate

Fiecare individ din populaţie este caracterizat nu numai de


vectorul x al variabilelor ci şi de parametrul  al strategiei.
Reprezentarea poate fi extinsă introducând valorile de varianţă
c ii   i
2
( 1 i  n) şi valorile de covarianţă c ij

( 1  i  n  1, i  1  j  n ) ale distribuţiei normale n  dimensionale


având densitatea de probabilitate
1 T
det( A )  z Az
p(z)  e 2
2 n
Pentru a asigura pozitiv-definirea matricei de covarianţă A  1
se utilizează unghiurile de rotaţie  j în locul coeficienţilor c ij . Acum
un individ se va reprezenta sub forma a   x ,  ,   unde
n
• xR este vectorul variabilelor obiectiv
n
•   R este vectorul deviaţiilor standard ale distribuţiei
normale; 1  n  n

    ,  
n
• este vectorul unghiurilor ce definesc mutaţiile
 n 
corelate ale lui x ; n   n    n  1 .
 2 

Vectorul  permite căutarea în orice direcţie; altfel erau


favorizate direcţiile paralele cu axele sistemului de coordonate.

183
Parametri  şi  ai strategiei se modifică prin mutaţie iar tipul
acestei operaţii depinde de valorile lui n  şi n  . Astfel, pentru
• n  1 şi n  0 se obţine mutaţia standard, când o singură

valoare a deviaţiei standard controlează mutaţia tuturor componentelor


lui x .
• n  n şi n  0 se obţine mutaţia standard, când valorile
 1 ,  ,  n controlează mutaţia componentelor corespunzatoare ale

vectorului x
n ( n  1)
• n  n şi n  se obţin mutaţiile corelate
2

• n  2 şi n  n  1 : varianţa  12 este folosită pentru a efectua

căutarea într-o direcţie arbitrară iar  22 este utilizată pentru toate


direcţiile perpendiculare pe aceasta.
Mutaţia asupra unui individ
a   x1 ,  , x n ,  1 ,  ,  n ,  1 ,  ,  n 

acţioneaza astfel:
 ' N ( 0 , 1)    N i ( 0 , 1)
 'i   i e , 1  i  n
'j   j    N j ( 0 , 1) , 1  j  n 

x '  x  cov ( ,  )

unde vectorul cov este calculat astfel:


cov  Tz , z   z1 ,  , z n  ,


z i  N 0 ,  ' i 
2
,
184
n 1 n
T    T pq  ' j  ,
p 1 q  p 1

1
j   2 n  p  p  1  2 n  q .
2
Matricea de rotaţie T pq  ' j  este matricea unitate exceptând
t pp  t qq  cos   j  şi t pq  j .
  t qp   sin 

Pentru factorii  ,  ' şi  , Schwefel a sugerat următoarele valori:


c1 c2
  ,  ' ,   0 . 0973 (  5 o )
2 n 2n

8.3.3 Analiza convergenţei

Din punct de vedere teoretic un algoritm evolutiv este


considerat convergent dacă
P (lim t x * ( t ))  1

unde x * ( t ) este cel mai bun element al populaţiei de la generaţia t .


Folosindu-se instrumente din teoria lanţurilor Markov s-au
obţinut condiţii suficiente de convergenţă în sens probabilist pentru
strategiile evolutive. Condiţii suficiente (nu şi necesare) simplu de
verificat sunt:
i) repartiţia utilizată pentru mutaţie are suport infinit ( este
satisfăcută atât de către repartiţia normală cât şi de repartiţia Cauchy);
ii) selecţia este elitistă (strategiile de tip (    ) satisfac această

185
proprietate);
iii) recombinarea se aplică cu o anumită probabilitate pr.

Din punct de vedere practic convergenţa în timp infinit nu este de


mare folos ci mai degrabă testează abilitatea algoritmului de a găsi
elemente din ce în ce mai bune prin trecerea de la o generaţie la alta
(algoritmul progresează în procesul de căutare). O situaţie nedorită
este aceea în care acest progres este stopat. Există două manifestări ale
acestui fapt:
• Convergenţa prematură. Algoritmul se blochează într-un optim
local datorită faptului că populaţia nu mai este suficient de diversă
pentru a susţine procesul de explorare.
• Stagnare. Algoritmul s-a blocat în condiţiile în care populaţia este
încă diversă, însă mecanismele evolutive nu sunt suficient de
puternice pentru a susţine explorarea.
Soluţionarea acestor probleme se bazează pe alegerea adecvată a
operatorilor şi a parametrilor de control; încă nu există rezultate
teoretice care să furnizeze soluţii de evitare a situaţiilor de
convergenţă prematură sau stagnare.

Studiul teoretic al vitezei de convergenţa se bazează pe estimarea


unor rate de progres în cazul unor funcţii test simple (funcţia sferă şi
perturbaţii ale acesteia). Prin estimarea ratei de progres s-au obţinut
informaţii referitoare la alegerea parametrilor de control astfel încât să
se maximizeze rata de progres. Există diverse abordări şi diferite
măsuri ale progresului strategiilor evolutive. Din punct de vedere

186
practic este util faptul că strategiile evolutive au cel mult viteză liniară
de convergenţă.
În absenţa unei teorii complete a domeniului, multe dintre
proprietăţile şi regulile de proiectare sunt deduse pornind de la studii
experimentale. Acestea se efectuează pe probleme de optimizare
construite în aşa fel încât să ridice dificultăţi metodelor de rezolvare
(de exemplu cu multe minime locale sau cu un minim global greu de
atins din cauza prezenţei unor "platouri"). Multe dintre funcţiile de test
utilizate în analiza strategiilor evolutive au fost construite pentru a
testa metode tradiţionale de optimizare şi au ridicat dificultăţi pentru
acestea.
Cum strategiile evolutive implică prezenţa unor elemente
aleatoare, la rulări diferite ale algoritmului se vor obţine rezultate
diferite. Din acest motiv studiul experimental nu poate fi decât unul
statistic caracterizat prin faptul că se vor efectua mai multe rulări
independente şi se va determina frecvenţa situaţiilor în care strategia
a avut succes. Se consideră că strategia a avut succes atunci când cel
mai bun element întâlnit de-a lungul generaţiilor (sau cel mai bun
element din ultima generaţie) este suficient de apropiat de optim.
Studiile statistice sunt folosite pentru a analiza influenţa
operatorilor şi a parametrilor de control asupra eficacităţii strategiei
evolutive. Valoarea lor este limitată datorită faptului că rezultatele
obţinute pe funcţii test nu pot fi extrapolate pentru orice problemă de
optimizare. Coroborate însă cu rezultatele teoretice (obţinute pentru

187
funcţii test simple, cum este modelul sferei) au condus la criterii
euristice care au un oarecare succes în practică.
Din punct de vedere statistic prezintă interes valoarea medie şi
dispersia valorii optime descoperite la fiecare rulare.

8.3. Domenii de aplicabilitate

Câteva dintre aplicaţiile strategiilor evolutive sunt:


• Biologie şi biotehnologie: simularea evoluţiei proteinelor,
proiectarea lentilelor optice, optimizarea parametrilor unui model al
transmiterii semnalelor genetice bazat pe transcriere a ADN-ului,
optimizarea proceselor de fermentare.
• Chimie şi inginerie chimică: determinarea compoziţiei optimale de
electroliţi în procesele de galvanizare, minimizarea energiei clusterilor
în moleculele gazelor rare, estimarea parametrilor modelelor de
analiză cinetică a spectrelor de absorbţie, identificarea benzilor în
spectrele obţinute prin rezonanţă magnetică nucleară.
• Proiectare asistată de calculator: determinarea parametrilor unui
amortizor pneumatic de şocuri, optimizarea volumului unor construcţii
în vederea minimizării instabilităţii, determinarea formei optimale a
unor dispozitive, adaptarea parametrilor unor modele de tip element
finit pentru proiectarea optimală a structurilor, optimizarea eficienţei,
senzitivităţii şi lărgimii de bandă a convertoarelor cu ultrasunete,
proiectarea optimală a arcelor utilizate în dispozitivele de suspensie de
la vehicule.
188
• Fizică şi analiza datelor: determinarea configuraţiei optime a
defectelor în materialele cristaline, estimarea parametrilor în probleme
de dinamica fluidelor, determinarea stărilor stabile în sistemele
disipative.
• Procese dinamice, modelare şi simulare: optimizarea unui sistem
socio-economic complex, identificarea parametrilor unui model de
răspândire a unei infecţii virale.
• Medicină şi inginerie medicală: controlul optimal al protezelor,
identificarea parametrilor modelelor folosite în farmacologie.
• Inteligenţă artificială: controlul inteligent al vehiculelor
autonome, determinarea ponderilor reţelelor neuronale.

189

S-ar putea să vă placă și