Sunteți pe pagina 1din 159

Informații generale

Bazele teoretice ale calculului


evolutiv. Schema unui algoritm
evoluţionist (EA)
INFORMAȚII GENERALE
 Titlu curs: Programare evolutivă și algoritmi genetici

 Titular curs: Cătălina-Lucia Cocianu


 Activități
 curs: Joi 13:30-14:50 (A)
 seminarii: Miercuri 9:00-11:50
 Joi 15:00-16:20
 Joi 16:30-17:50
 consultații
 sala 2301, marti12:00-13:30

 Adresa: Catalina.Cocianu@ie.ase.ro

 Cunoștințe necesare
 Bazele programării, Algoritmi și tehnici de programare
 Probabilități și statistică matematică
 Cunoștințe de bază în utilizarea calculatoarelor
 Bibliografie
 Manual
 C. Cocianu, C. Uscatu, Programare evolutivă și algoritmi genetici,
Editura ASE București, 2015
 Alte monografii
 Eiben, A. E., Smith, J. E., Introduction to Evolutionary Computing,
Springer-Verlag, 2003
 Fulcher, J., Jain, L. C. (Eds.), Computational Intelligence: A
Compendium,Springer-Verlag, 2008
 Engelbrecht, A.P., Computational Intelligence. An Introduction, John
Wiley & Sons, 2007
 Evaluare pe parcurs
 Seminar 50%
 Probă practică 20%
 Proiect 30%
 Lucrare scrisă 50%

 online.ase.ro – accesibilă din intranet ASE


 Fișa disciplinei, prezentări, alte materiale
 Programa studiată:
 Algoritmi evolutivi (EA)
 Prezentarea schemei generale; exemple

 Clasificare

 Componentele EA

 Evoluția căutare directă – căutare stochastică

 Algoritmi genetci (GA)


 Reprezentări specifice, modele de populații

 Funcția de evaluare

 Operatori de variație

 Mutație

 Recombinare

 Operatori de selecție

 Selecția părinților

 Selecția generației următoare


 Rezolvarea unor probleme economice utilizând GA
 Problema planficării activitățlor

 Probleme de optimizarea portofoliilor

 Strategii evolutive (EA)


 Schema generală

 Operatori de mutație

 Operatori de selecție

 Selecția părinților

 Selecția generației următoare

 Mecanismul de auto-adaptare
I. CALCUL EVOLUTIV. SUPORTUL DE NATURĂ
BIOLOGICĂ AL EC
 Calculul evolutiv (EC) - domeniu al informaticii inspirat din procesul evoluţiei
naturale: conexiunea evoluţie naturală – tehnica de rezolvare a problemelor
de tip experiment-eroare (sau generare-testare).

 Considerând un mediu care poate susţine un număr limitat de indivizi şi


instinctul primar al fiecărui individ de a se reproduce, procesul de selecţie
naturală favorizează supravieţuirea celor mai bine adaptaţi.

 Pe parcursul reproducerii celor mai buni indivizi apar mutaţii ocazionale,


care generează noi indivizi.

 Întregul proces - asimilat intuitiv cu modelul unui peisaj adaptiv (dinamic) în


spaţiul 3D (0-x-y-z): un individ p in (x,y,z) este astfel încât
 valorile lui p în planul x-y corespund caracteristicilor individului
 altitudinea lui p (valoarea lui pe axa 0z) corespunde nivelului de
adaptabilitate (fitness). a individului reprezentat de p.
 Evoluţia - procesul de “avans” al populaţiei spre zone aflate la o altitudine
mai mare, acest avans fiind realizat pe baza mutaţiilor şi selecţiei naturale
→ legătura problemele multimodale (puncte de optim local).
II. TIPURI DE PROBLEME REZOLVATE DE EC
 Probleme de optimizare: sunt cunoscute modelul şi datele de ieşire dorite,
iar problema este de a determina datele de intrare care corespund
rezultatelor dorite. Exemple:
 problema comis voiajorului;
 problema planificării activităţilor;
 probleme care pot fi formulate în termeni specifici claselor de probleme
de optimizare: problema celor N regine

 Probleme de modelare sau de identificare a sistemului: sunt cunoscute


datele de intrare şi rezultatele corespunzătoare lor, iar modelul este
necunoscut. Modelul trebuie determinat astfel încât, pentru fiecare intrare
dată, să calculeze rezultatul corect. Exemplu : clasificarea supervizată în cazul
modelului cu două clase.
−1, 𝑥 𝑒𝑠𝑡𝑒 𝑑𝑖𝑛 𝐶1
h 𝑥 = 1, 𝑥 𝑒𝑠𝑡𝑒 𝑑𝑖𝑛 𝐶2
0, "𝑖𝑛𝑑𝑒𝑐𝑖𝑠"

 Probleme de simulare: sunt cunoscuţi modelul şi o serie de date de intrare


şi cerinţa este de a determina datele de ieşire corecte, corespunzătoare
intrărilor date. Exemplu: răspunsul la întrebări de tipul “ce se întâmplă dacă”
(what-if questions), în condiţiile în care problema subiectului investigat
evoluează (în termenii operaţiilor de variaţie şi selecţie).
III. SCHEMA GENERALĂ A UNUI EA
ALGORTIMUL GENERIC
CLASIFICAREA ALGORITMI EVOLUTIVI (CALCUL
EVOLUTIV)
 ALGORITMI GENETICI – CEI MAI UTILIZAȚI

 STRATEGII EVOLUTISTE

 PROGRAMARE EVOLUTISTĂ

 PROGRAMARE GENETICĂ
IV. EXEMPLU: Rezolvarea unei probleme de
optimizare a unei funcţii de o variabilă
OBSERVAȚIE. OPERATORII DE SELECȚIE ȘI VARIAȚIE PREZENTAȚI
ÎN CONTINUARE SUNT DEFINIȚI EXLUSIV ÎN SCOP DIDACTIC, CA
POSIBILE ALEGERI.
 Procesul de selecție de tip turneu este implementat astfel: de 𝑑𝑖𝑚 2 ori
selectează aleator doi indivizi din populația curentă și alege cromozomul cu
valoarea fitness cea mai mare. Populația de părinți este cu dimensiune 𝑑𝑖𝑚 2.

 La nivelul părinților, operaţia de încrucişare este aplicată pentru o


împerechere aleatoare a câte 2 indivizi părinţi, cu probabilitatea pc:
 For i=1: 𝑑𝑖𝑚 4
 selectează aleator o pereche de părinți încă neselectați

 aplică operatorul crossover cu probabilitatea pc

 Cele 𝑑𝑖𝑚 4 progenituri rezultate, 𝒪𝒫, sunt supuse mutaţiei cu o probabilitate


pm:
 For i=1: 𝑑𝑖𝑚 4
 aplică operatorul mutație cu probabilitatea pm celui de-al i-lea individ
din 𝒪𝒫
 Mecanismul de selectare a noii generaţii este “superelitist”
 ordonează descrescătoare indivizii populaţiei curente şi progeniturile
eventual mutante obţinute şi alegerea primilor dim indivizi pentru a forma
populaţia următoare.

 Condiţia terminală
 a fost depăşit un prag al numărului de generaţii sau calitatea medie a
populaţiei nu mai poate fi îmbunătăţită semnificativ.

 Observație. Un algoritm evolutiv implementează o căutare stochastică


în spațiul soluțiilor.
Exemplu – variația caltății medii a populației în 75 de iterații (generații)
Exemplu – distribuța populației pentru dim=104, pc=0.5, pm=0.1, si maxim 100
de generații
Componentele algoritmilor
evolutivi. Evoluția căutare
directă-căutare stochastică
I. Componentele EA
 Reprezentarea (definirea membrilor populaţiei)

 Funcţia de evaluare (fitness)

 Populaţia

 Mecanismul de selectare a părinţilor

 Operatorii de variaţie (recombinarea şi mutaţia)

 Mecanismul de selectare a membrilor generaţiei următoare

 Definirea modulului de iniţializare (determinarea populaţiei iniţiale)

 Definirea condiţiei terminale.


II. Componentele EA. Reprezentarea
 Reprezentarea - stabilirea unei conexiuni între contextul problemei
particulare de rezolvat şi spaţiul în care evoluează tehnica PS considerată.

 Fenotipuri : soluţiile posibile în contextul problemei de rezolvat

 Genotipuri (cromozomi): reprezentarea fenotipurilor în context EA; un


genotip conţine valori (alele), plasate în poziţii numite variabile sau gene.

 Scopul: stabilirea corespondenţei între mulţimea fenotipurilor şi cea a


genotipurilor.

 Reprezentarea desemnează:
 codificare/decodificare
 structura de date utilizată pentru definirea spaţiul genotipurilor
Exemplu de reprezentare prin permutări

D
D
D
D
D
D
D
D

𝑃 = 2, 7, 5, 8, 1, 4, 6, 3
Exemplu de reprezentare binară a unui număr real
Reprezentarea unui număr 𝑥 ∈ 𝐷 = 𝑎, 𝑏 ⊂ ℝ cu 𝑛𝑧 zecimale exacte

 Împarte 𝐷 în 𝑏 − 𝑎 ∙ 10𝑛𝑧 intervale de lungimi egale; fie m cel mai mic cu


𝑏 − 𝑎 ∙ 10𝑛𝑧 ≤ 2𝑚 − 1 ⇒ 𝒎 = 𝒍𝒐𝒈𝟐 𝒃 − 𝒂 ∙ 𝟏𝟎𝒏𝒛 + 𝟏
 Distanța dintre două numere consecutive în reprezentarea discretă cu 𝑛𝑧
𝒃−𝒂
zecimale exacte a numerelor din 𝐷 este 10−𝑛𝑧−1 < 𝟐𝒎−𝟏 ≤ 10−𝑛𝑧

 Observație: sunt în total 2𝑚 numere în reprezentarea cu precizia 10−𝑛𝑧


𝑏−𝑎 𝑏−𝑎 𝑚
𝑏−𝑎
𝑎, 𝑎 + 1 ∙ 𝑚 ,𝑎 + 2 ∗ 𝑚 ,…,𝑎 + 2 − 1 ∙ 𝑚 =𝑏
2 −1 2 −1 2 −1

𝒃−𝒂
 Deci cel de-al 𝑛 + 1-lea număr, 𝑛 = 0,1, … , 2𝑚 − 1, 𝒙 = 𝒂 + 𝒏 ∗ 𝟐𝒎 −𝟏 este unic
determinat de valoarea 𝒏 (𝑎, 𝑏, 𝑚 sunt fixate), 𝒙 poate fi reprezentat binar
utilizând reprezentarea binară a lui n pe m biți.
𝒙 ↔ 𝒏 ↔ 𝒗: 𝒗𝒆𝒄𝒕𝒐𝒓𝒖𝒍 𝒓𝒆𝒑𝒓𝒆𝒛𝒆𝒏𝒕𝒂𝒓𝒆 𝒃𝒊𝒏𝒂𝒓ă 𝒂 𝒍𝒖𝒊 𝒏 𝒑𝒆 𝒎 𝒃𝒊ț𝒊
𝒃−𝒂 𝒙 − 𝒂 ∙ 𝟐𝒎 − 𝟏
𝒙=𝒂+𝒏∗ 𝒎 ⇒𝒏=
𝟐 −𝟏 𝒃−𝒂
Exemplu numeric; funcții MATLAB utilizate
 Problema: 𝐷 = −3,10.2 , 𝑏 − 𝑎 = 13.2. Reprezintă 𝒙 = 𝟐. 𝟏𝟕𝟑895 cu
precizia 𝑛𝑧 = 3 zecimale exacte
A. 𝒙 → 𝒏 → 𝒗: 𝒗𝒆𝒄𝒕𝒐𝒓𝒖𝒍 𝒓𝒆𝒑𝒓𝒆𝒛𝒆𝒏𝒕𝒂𝒓𝒆 𝒃𝒊𝒏𝒂𝒓ă 𝒂 𝒍𝒖𝒊 𝒏 𝒑𝒆 𝒎 𝒃𝒊ț𝒊
2.173895+3 ∗ 214 −1
 𝑚 = 𝑙𝑜𝑔2 13.2 ∗ 103 + 1 = 14; 𝑛 = = 6421
13.2
 pentru [] – funcția MATLAB fix; pentru 𝑙𝑜𝑔2 funcția MATLAB log2
 𝑣 = [0 1 1 0 0 1 0 0 0 1 0 1 0 1] reprezentarea
binară a lui 6421 – în MATLAB v=bitget(n,m:-1:1)
 𝟐. 𝟏𝟕𝟑895 → 6421 → [0 1 1 0 0 1 0 0 0 1 0 1 0 1]
B. 𝒗 → 𝒏 → 𝒙 , aproximarea lui 𝒙 cu 3 zecimale exacte
 𝑚 = 14, 𝑛 = 𝑚 𝑖=1 𝑣 𝑖 ∙ 2
𝑚−𝑖
= 6421 – în MATLAB:
n=0;
for i=1:m
n=bitset(n,m+1-i,v(i));
end;
13.2
 𝑥 = −3 + 6421 ∗ 214−1 = 𝟐. 𝟏𝟕𝟑5 aproximarea lui 𝒙 cu 3 zecimale exacte
 [0 1 1 0 0 1 0 0 0 1 0 1 0 1] → 6421 → 𝟐. 𝟏𝟕𝟑5
III. Componentele EA. Funcţia de evaluare 𝒇

 Rolul – măsură a gradului de adaptabilitate ale fiecărui individ la mediu:


calitatea individului măsurată în spațiul genotipurilor (EA)

 Proprietatea principală – stă la baza proceselor de selecție

 Observație – dacă 𝑓 trebuie minimizată (optimul este minim), este calculat


1
maximul funcției −𝑓 (sau, unde este posibil maximul lui 𝑓 )

 Exemplu: funcția de maximizat în spațiul fenotipurilor 𝑓𝑓𝑒𝑛 𝑥 = 𝑥 2


 Presupunem genotipul=reprezentarea binară a fenotipului
 Pentru fenotipul 𝑥 = 7, genotipul este 𝑟𝑥 = 1 1 1 și
𝑓 𝑟𝑥 = 𝑓𝑓𝑒𝑛 𝑥 = 49
IV. Componentele EA. Populaţia
 Populația – multiset de genotipuri

 Rolul – menține o colecție de genotipuri corespunzătoare candidaților la


soluție

 Operatorii genetici de selecție sunt definiți la nivel de populație

 Tipuri de populații – de dimensiune fixă pe tot parcursul EA (cele mai simple


și utilizate modele), respectiv de dimensiune variabilă

 Caracteristica principală: diversitatea definită prin


 Numărul fenotipurilor/genotipurilor distincte
 Numărul valorilor distincte ale funcției de evaluare(fitness)
 Măsuri de natură entropică etc.
V. Componentele EA. Selecţia părinţilor
 Rolul: de a distinge între indivizii populaţiei pe baza calităţii acestora;
permite cu prioritate celor mai buni indivizi să se reproducă, deci să
participe la generarea populaţiei următoare.

 Mecanism probabilist de selectare a părinţilor : alegerea unui individ pentru


a se reproduce depinde direct proporţional de calitatea lui

 Forţează îmbunătăţirea calităţii globale a populaţiei de la o generaţie la alta.

 Indivizii “slabi” nu sunt eliminaţi din procesul de selectare pentru


reproducere, ci doar au asociate probabilităţi mici, dar nenule, de selecţie:
 Algoritmul de căutare nu este de tip greedy
 Riscul de a identifica o valoare de optim local este diminuat
VI. Componentele EA. Operatori de variaţie
 Optimul global al funcţiei obiectiv poate fi obţinut în situaţia în care
operatorii de variaţie utilizaţi asigură obţinerea oricărui genotip soluţie
potenţială a problemei de optim.

 Operatorul mutaţie: este operator unar.

 Aplicat unui genotip rezultă o variantă “mutantă”, numită progenitură sau


copil. Operatorul mutaţie este întotdeauna stochastic: rezultatul depinde de
o serie de alegeri aleatoare.

 Rolul mutaţiei depinde de tipul de algoritm implementat: în cazul GA,


mutaţia are rolul de a „împrospăta” structura genetică a unei populaţii.

 În general un operator mutaţie permite modificarea oricărei alele dintr-un


cromozom cu orice variantă posibilă, cu o probabilitate nenulă.
VI. Componentele EA. Operatori de variaţie
 Operatorul de recombinare: operator binar ce produce unul sau două
genotipuri copil prin combinarea informaţiei din două genotipuri părinte.

 Recombinarea este stochastică: alegerea acelor părţi ale părinţilor care vor
fi combinate şi tipul de recombinare sunt bazate pe extrageri aleatoare.

 În cadrul GA este cel mai utilizat operator de variaţie

 În dezvoltări de tip EA pot fi folosiţi şi operatori de recombinare de aritate


mai mare decât 2

 Aplicarea EA determină crearea de urmaşi direcţi prin încrucişări aleatoare.


Progeniturile pot avea însuşiri nedorite, pot fi calitativ similari sau chiar
inferiori părinţilor şi doar o mică parte dintre ei au în general caracteristici
superioare celor ale părinţilor.
VII. Componentele EA. Trecerea la o nouă generaţie
 Rolul: diferenţiază indivizii în funcţie de calitatea lor - similar procesului de
selecţie a părinţilor dar utilizat într-o etapă diferită a evoluţiei unui EA.

 Mecanismul revine la aplicarea unei funcţii de decizie fiecărui individ


aparţinând populaţiei curente sau mulţimii progeniturilor (mutate sau nu).

 Funcţia de decizie este de obicei construită pe baza funcţiei de evaluare,


luând în calcul calitatea fiecărui individ şi, în unele situaţii, factorul vârstă.

 Exemple:
 Funcţie de decizie este bazată exclusiv pe funcţia de evaluare
 Funcţie de decizie este bazată exclusiv pe factorul vârstă
 Decizia este luată funcție și de vârstă și de calitate
VIII. Componentele EA. Iniţializarea. Condiţia
terminală
 Iniţializarea: crearea populaţiei iniţiale este realizată în general prin
generare aleatoare de fenotipuri şi apoi obţinerea multisetului de genotipuri
asociat.

Condiţia terminală:

 atingerea unui număr maxim de iteraţii (generaţii);


 atingerea unui număr maxim de evaluări ale calităţii indivizilor;
 pentru o anumită perioadă de timp (un număr de iteraţii specificat sau un
număr de evaluări specificat) calitatea populaţiei curente nu este
semnificativ îmbunătăţită (este sub un prag dat);
 diversitatea populaţiei scade sub un prag dat.
IX. Evoluţia căutare directă-căutare stochastică
 Evoluţia căutare directă-căutare stochastică: metodele de tip “hill
climbing” şi “simulated annealing”.

 Metodele de tip “hill climbing”


 tehnică de iterativitate îmbunătăţită, aplicată unui singur punct din spaţiul de
căutare.
 la o iteraţie este selectat un nou punct aflat într-o vecinătate a punctului curent
procesat.
 dacă acest punct determină o valoare mai bună (din punct de vedere al criteriului
de optim considerat) pentru funcţia obiectiv, el devine punct curent.
 altfel, este selectată o altă vecinătate a punctului curent, procesul desfăşurându-
se ulterior similar.
 algoritmul se încheie când nici un punct vecin celui curent nu aduce îmbunătăţiri
valorilor funcţiei obiectiv.
 sunt obţinute de obicei la valori de optim local, depinzând de punctul de start.
Pentru a creşte performanţele unor astfel de modele, acestea se utilizează
pentru un număr mare de punct de start.
X. Algoritmul “hill climbing”
 Exemplu: maximizează 𝑓: −2,2 × −2,2 → ℝ, definită prin
𝑓 𝑥, 𝑦 = 𝑒𝑥𝑝 −𝑥 2 − 𝑦 2 + 𝑦 ∗ 𝑐𝑜𝑠 5𝑥 − 𝑥 ∗ 𝑠𝑖𝑛 3𝑦
 Prin aplicarea procedurii hillclimbing în reprezentare binară cu precizie de 5
zecimale pentru fiecare argument al lui 𝑓 și MAX=75; pot fi obţinute :
x=-1.9102, y=-1.6250, valoarea maximă: 3.4989.
Algoritmi genetici (GA).
Reprezentări cromozomiale.
Operatorul mutație.
I. ALGORITMI GENETICI (GA)
 Respectă structura unui EA
II. Reprezentarea soluțiilor. Reprezentarea binară
 Alegerea unei anumite reprezentări depinde de problema particulară de
rezolvat și este foarte importantă pentru ca GA să furnizeze soluții apropiate
de cele optime.

 Cele mai utilizate tipuri de reprezentări în GA:


 secvenţe binare;
 secvenţe de numere întregi;
 secvenţe de numere reale;
 permutări.

 Reprezentarea binară: prima ca istoric

 În cazul unor clase de probleme care conţin variabile de tip decizie


booleană, reprezentarea binară este cea mai naturală. Altfel, pot fi obţinuţi
GA superiori ca performanţe prin utilizarea reprezentărilor directe
Reprezentarea binară. Exemplu
Problema rucsacului de tip 0-1

 Fiind date m obiecte, fiecare cu câte o valoare şi respectiv un cost de


selecţie, determină un set de obiecte cu proprietatea că este de valoare
maximă şi costul<Cmax.
 val: vectorul valorilor asociate celor m obiecte; cost: vectorul costurilor
 Poate fi selectat un obiect (nu fracțiuni din el) dacă nu este depăşit Cmax.

 O soluţie posibilă: un set de obiecte selectate astfel încât costul< Cmax.


Reprezentarea unui candidat la soluţie: vector de m elemente, v, unde
1, 𝑑𝑎𝑐ă 𝑜𝑏𝑖𝑒𝑐𝑡𝑢𝑙 𝑖 𝑎 𝑓𝑜𝑠𝑡 𝑠𝑒𝑙𝑒𝑐𝑡𝑎𝑡 î𝑛 𝑚𝑢𝑙ţ𝑖𝑚𝑒
𝑣 𝑖 = , 𝑖 = 1, … , 𝑚 şi
0, î𝑛 𝑐𝑎𝑧 𝑐𝑜𝑛𝑡𝑟𝑎𝑟
𝑚

𝑐𝑜𝑠𝑡 𝑖 ∗ 𝑣 𝑖 < 𝐶𝑚𝑎𝑥


𝑖=1
 Fiecare genotip v corespunde unui număr 𝑅 ∈ 1, … , 2𝑚 , v este
reprezentarea binară a lui R-1 şi astfel încât nu este depăşit pragul Cmax.
Reprezentarea binară. Codificarea Gray
 Reprezentarea binară standard a numerelor naturale are dezavantajul că
distanța Hamming între două numere consecutive nu este 1

 Pentru 𝑥 = 𝑥1 , 𝑥2 , … , 𝑥𝑛 , y= 𝑦1 , 𝑦2 , … , 𝑦𝑛 distanța Hamming este


𝑑𝐻 𝑥, 𝑦 = 𝑖, 1 ≤ 𝑖 ≤ 𝑛 𝑥 𝑖 ≠ 𝑦 𝑖

 Exemplu- k=15, k_s=14, k_d=16 și reprezentarea lor pe 5 biți


 𝑥 → 01111 𝑥_𝑠 → 01110 𝑥_𝑑 → 10000
 𝑑𝐻 𝑥, 𝑥_𝑠 = 1 𝑑𝐻 𝑥, 𝑥_𝑑 = 5

 O variantă de reprezentare în care distanța Hamming între două numere


naturale consecutive este 1: codificarea Gray.
 ℱ = 0,1,2, … , 𝑛 , 2𝑚−1 < 𝑛 ≤ 2𝑚 − 1.
 𝑥 ∈ ℱ , 𝑏𝑥 reprezentarea binară standard pe 𝑚 biţi: 𝑥 = 𝑚
𝑖=1 𝑏𝑥 𝑚 + 1 −
 Reciproc, fie 𝑔𝑥 reprezentarea Gray pe m biți a unui număr 𝑥 ∈ ℱ. Calculul lui
x:
 Pas 1: determină 𝑏𝑥 reprezentarea binară standard pe 𝑚 biți
 𝑏𝑥 1 = 𝑔𝑥 1 ; val= 𝑏𝑥 1
 𝑖 = 2, … , 𝑚
 Dacă 𝑔𝑥 𝑖 = 1, val=not(val)
 𝑏𝑥 𝑖 = 𝑣𝑎𝑙
 Pas2: calculează 𝑥 = 𝑚 𝑖=1 𝑏𝑥 𝑚 + 1 − 𝑖 ∗ 2
𝑖−1 .

Exemplu pentu m=4

Număr 0 1 2 3 4 5 6 7
Cod binar 0000 0001 0010 0011 0100 0101 0110 0111
std.
Cod Gray 0000 0001 0011 0010 0110 0111 0101 0100
Număr 8 9 10 11 12 13 14 15
Cod binar 1000 1001 1010 1011 1100 1101 1110 1111
std.
Cod Gray 1100 1101 1111 1110 1010 1011 1001 1000
III. Reprezentarea prin vectori cu numere întregi

 Este utilizată în problemele de optimizare a funcţiilor cu variabile luând


valori în mulţimea numerelor întregi.

 Exemplu: problema determinării unui drum între două puncte date într-o
reţea de puncte în care conexiunile posibile sunt sus, jos, stânga şi
respectiv dreapta revine la determinarea unei secvenţe de deplasări către
nord, sud, est, respectiv vest cu câte o unitate. Fiecare tip de deplasare
este codificată cu o valoare din 0,1,2,3 .

 Alegerea unei codificări - pe baza unor relaţii naturale între valorile pe care
le poate lua fiecare atribut (variabilă).
 Atribute ordinale - dacă sunt cu valori într-o mulţime de numere întregi,
valoarea 2 este “mai similară“ cu 3 decât cu 312.
 Atributelor cardinale – distanța între două valori posibile este irelevantă.
IV. Reprezentarea prin numere reale
 În multe situaţii practice, reprezentarea unui candidat la soluţie este
realizată prin intermediul unui şir de numere reale. În general este preferată
această reprezentare atunci când fenotipurile provin dintr-o distribuţie
continuă. Genotipul corespunzător unui candidat soluţie cu n gene este deci
vectorul 𝑥 = 𝑥1 , 𝑥2 , … , 𝑥𝑛 , unde 𝑥𝑖 ∈ ℝ, 𝑖 = 1, … , 𝑛.

 Exemple: probleme de optimizarea de tipul

max 𝑓 𝑥
𝑥∈𝐷
𝑥 = 𝑥1 , 𝑥2 , … , 𝑥𝑛 𝑇
𝑛

𝐷= 𝑎𝑖 , 𝑏𝑖
𝑖
(probleme de optimizarea potrofoliilor de active)
V. Reprezentarea prin permutări
 Permutările sunt utilizate în probleme în care trebuie stabilită
ordinea apariţiei unor secvenţe de evenimente.

 Operatorii de variaţie trebuie definiţi astfel încât rezultatul


aplicării acestora să corespundă unor soluţii admisibile.

 Clase de probleme:
 probleme în care ordinea apariţiei evenimentelor este
importantă. Exemplu: problema planificării activităţilor;
 probleme în care apare dependenţa de adiacenţă – scopul:
stabilirea vecinătăților. Exemplu: problema comis-voiajorului
 Diferenţa: în cazul celei de-a doua clase, punctul de start (în
cazul problemei comis-voiajorului oraşul de plecare) nu este
important.
VI. Operatorul mutaţie. Reprezentarea binară
 Cel mai utilizat operator de mutaţie în reprezentarea binară consideră
fiecare genă a fiecărui cromozom pentru inversarea valorii asociate cu o
probabilitate pm în general mică.

 Numărul valorilor modificate nu este fixat, dar, în medie, dacă populaţia


conţine dim cromozomi cu câte n gene, este egal cu 𝑝𝑚 ∗ 𝑑𝑖𝑚 ∗ 𝑛.

 Exemplu: dacă în cromozomul părinte


este aplicat operatorul de mutaţie genelor 2, 3 şi 7, rezultă cromozomul
copil

 Parametrul pm este setat în următoarele limite: într-o generaţie, în medie,


este modificată o singură genă a unui singur cromozom din populaţie,
respectiv în populaţia curentă este modificată, în medie, câte o genă din
fiecare cromozom.
VII. Mutaţia în reprezentarea prin numere întregi
 Resetarea aleatoare prin care, cu probabilitatea pm, valoarea fiecărei
gene este modificată prin generarea aleatoare a unei valori din mulţimea
valorilor admisibile pentru gena respectivă. Acest operator este utilizat în
situaţia în care genele codifică atribute de tip cardinal (în acest caz
valorile admisibile ale unei gene trebuie să poată fi selectate cu aceeaşi
probabilitate într-o operaţie de mutaţie).

 Exemplu: dacă un cromozom conţine 4 gene, fiecare cu valori în


mulţimea −100, −99, … , 200 , un exemplu de mutaţie posibilă in
cromozomul (118 -40 110 -44) gena 1 determină obţinerea
cromozomului (-37 -40 110 -44)

 Mutaţiei de tip fluaj. Operatorul este utilizat în cazul atributelor de tip


ordinal şi, cu o probabilitate p, adaugă/scade o anumită cantitate (de
obicei mică) la/din valoarea fiecărei gene a fiecărui cromozom.
VIII. Mutaţia în reprezentarea prin numere reale
 Fie n numărul genelor unui cromozom şi presupunem că, pentru 𝑖 =
1, … , 𝑛 , valoarea genei i aparţine intervalului 𝑎𝑖 , 𝑏𝑖 şi, prin aplicarea
operatorului mutaţie asupra cromozomului 𝑥 = 𝑥1 , 𝑥2 , … , 𝑥𝑛 este obţinut
𝑦 = 𝑦1 , 𝑦2 , … , 𝑦𝑛 , unde 𝑥𝑖 , 𝑦𝑖 ∈ 𝑎𝑖 , 𝑏𝑖 , 𝑖 = 1, … , 𝑛.

 Mutaţia uniformă : modificarea fiecărei gene 𝑖 = 1, … , 𝑛 din fiecare


cromozom, cu probabilitatea pm, prin generarea aleatoare uniformă a
câte unui număr din 𝑎𝑖 , 𝑏𝑖 . Corespunde mutaţiei prin resetare aleatoare
în cazul reprezentării cromozomiale prin şiruri de numere întregi.

 Mutaţia neuniformă, cu distribuţie fixată: este corespondentul operatorului


de mutaţie fluaj. Operatorul este proiectat astfel încât cantitatea de
informaţie modificată să fie mică. Aplicarea lui asupra unei gene i, 𝑖 =
1, … , 𝑛, presupune modificarea valorii curente cu o valoare generată de
obicei din distribuţia gaussiană cu medie 0 şi deviaţie standard
specificată, 𝜎, (distribuţie notată 𝑁 0, 𝜎 2 ) rezultatul fiind apoi adus pe
intervalul 𝑎𝑖 , 𝑏𝑖 .
 Dacă valorile cu care sunt modificate alelele sunt în −𝑡, 𝑡 , atunci ele
pot fi generate din distribuţia 𝑁 0, 𝜎 2 , unde 3𝜎 < 𝑡:
𝑃 −3𝜎 ≤ 𝑥 ≤ 3𝜎 ≅ 0.9973
IX. Mutaţia în reprezentarea prin permutări
 Operatorul mutaţie poate fi aplicat doar la nivel de cromozom, deci rata
de mutaţie corespunde probabilităţii modificării unui genotip.

 Mutaţia prin interschimbare: selectarea aleatoare a două gene dintr-un


cromozom şi interschimbarea valorilor asociate acestora. Exemplu:
pentru poziţiile 5 şi 8
din 3 6 1 8 7 5 2 4 rezultă
3 6 1 8 4 5 2 7

 Mutaţia prin inserare presupune selectarea aleatoare a două gene, 1 ≤


𝑖 < 𝑗 ≤ 𝑛, memorarea alelei din gena j, A, deplasarea cu o poziţie către
dreapta a valorilor genelor 𝑖 + 1, 𝑖 + 2, … , 𝑗 − 1 şi plasarea valorii A pe
poziţia i+1. Dacă 𝑖 + 1 = 𝑗 nu are efect.
Exemplu: pentru poziţiile i = 5 < 𝑗 = 8, 𝑛 = 10
din 3 6 10 8 7 5 2 4 1 9, A=4, rezultă
3 6 10 8 7 4 5 2 1 9
Mutaţia în reprezentarea prin permutări
 Mutaţia prin amestec : repoziţionarea fiecărei alele în mod aleator,
pentru o secvenţă de gene ale unui cromozom sau pentru întreg
cromozomul. Exemplu:
din 4 3 1 7 8 5 2 6
prin amestecul aleator al valorilor genelor 3,4,5 şi 6 poate rezulta
4 3 7 1 5 8 2 6.

 Mutaţia prin inversiune presupune selectarea aleatoare a două gene,


1 ≤ 𝑖 < 𝑗 ≤ 𝑛, şi inversarea ordinii în secvenţa dintre cele două poziţii.
Exemplu: 𝑖 = 3 < 𝑗 = 6
din 4 3 1 7 8 5 2 6 rezultă
4 3 5 8 7 1 2 6.
 În problemele bazate pe dependenţa de adiacenţă, inversiunea unui
subşir aleator într-un cromozom este cea mai mică modificare ce poate
fi adusă acelui cromozom şi corespunde reprezentării Gray în cazul
spaţiului genotipurilor şiruri binare.
Algoritmi genetici (GA).
Reprezentări cromozomiale.
Operatorul mutație.
I. ALGORITMI GENETICI (GA)
 Respectă structura unui EA
II. Reprezentarea soluțiilor. Reprezentarea binară
 Alegerea unei anumite reprezentări depinde de problema particulară de
rezolvat și este foarte importantă pentru ca GA să furnizeze soluții apropiate
de cele optime.

 Cele mai utilizate tipuri de reprezentări în GA:


 secvenţe binare;
 secvenţe de numere întregi;
 secvenţe de numere reale;
 permutări.

 Reprezentarea binară: prima ca istoric

 În cazul unor clase de probleme care conţin variabile de tip decizie


booleană, reprezentarea binară este cea mai naturală. Altfel, pot fi obţinuţi
GA superiori ca performanţe prin utilizarea reprezentărilor directe
Reprezentarea binară. Exemplu
Problema rucsacului de tip 0-1

 Fiind date m obiecte, fiecare cu câte o valoare şi respectiv un cost de


selecţie, determină un set de obiecte cu proprietatea că este de valoare
maximă şi costul<Cmax.
 val: vectorul valorilor asociate celor m obiecte; cost: vectorul costurilor
 Poate fi selectat un obiect (nu fracțiuni din el) dacă nu este depăşit Cmax.

 O soluţie posibilă: un set de obiecte selectate astfel încât costul< Cmax.


Reprezentarea unui candidat la soluţie: vector de m elemente, v, unde
1, 𝑑𝑎𝑐ă 𝑜𝑏𝑖𝑒𝑐𝑡𝑢𝑙 𝑖 𝑎 𝑓𝑜𝑠𝑡 𝑠𝑒𝑙𝑒𝑐𝑡𝑎𝑡 î𝑛 𝑚𝑢𝑙ţ𝑖𝑚𝑒
𝑣 𝑖 = , 𝑖 = 1, … , 𝑚 şi
0, î𝑛 𝑐𝑎𝑧 𝑐𝑜𝑛𝑡𝑟𝑎𝑟
𝑚

𝑐𝑜𝑠𝑡 𝑖 ∗ 𝑣 𝑖 < 𝐶𝑚𝑎𝑥


𝑖=1
 Fiecare genotip v corespunde unui număr 𝑅 ∈ 1, … , 2𝑚 , v este
reprezentarea binară a lui R-1 şi astfel încât nu este depăşit pragul Cmax.
Reprezentarea binară. Codificarea Gray
 Reprezentarea binară standard a numerelor naturale are dezavantajul că
distanța Hamming între două numere consecutive nu este 1

 Pentru 𝑥 = 𝑥1 , 𝑥2 , … , 𝑥𝑛 , y= 𝑦1 , 𝑦2 , … , 𝑦𝑛 distanța Hamming este


𝑑𝐻 𝑥, 𝑦 = 𝑖, 1 ≤ 𝑖 ≤ 𝑛 𝑥 𝑖 ≠ 𝑦 𝑖

 Exemplu- k=15, k_s=14, k_d=16 și reprezentarea lor pe 5 biți


 𝑥 → 01111 𝑥_𝑠 → 01110 𝑥_𝑑 → 10000
 𝑑𝐻 𝑥, 𝑥_𝑠 = 1 𝑑𝐻 𝑥, 𝑥_𝑑 = 5

 O variantă de reprezentare în care distanța Hamming între două numere


naturale consecutive este 1: codificarea Gray.
 ℱ = 0,1,2, … , 𝑛 , 2𝑚−1 < 𝑛 ≤ 2𝑚 − 1.
 𝑥 ∈ ℱ , 𝑏𝑥 reprezentarea binară standard pe 𝑚 biţi: 𝑥 = 𝑚
𝑖=1 𝑏𝑥 𝑚 + 1 −
 Reciproc, fie 𝑔𝑥 reprezentarea Gray pe m biți a unui număr 𝑥 ∈ ℱ. Calculul lui
x:
 Pas 1: determină 𝑏𝑥 reprezentarea binară standard pe 𝑚 biți
 𝑏𝑥 1 = 𝑔𝑥 1 ; val= 𝑏𝑥 1
 𝑖 = 2, … , 𝑚
 Dacă 𝑔𝑥 𝑖 = 1, val=not(val)
 𝑏𝑥 𝑖 = 𝑣𝑎𝑙
 Pas2: calculează 𝑥 = 𝑚 𝑖=1 𝑏𝑥 𝑚 + 1 − 𝑖 ∗ 2
𝑖−1 .

Exemplu pentu m=4

Număr 0 1 2 3 4 5 6 7
Cod binar 0000 0001 0010 0011 0100 0101 0110 0111
std.
Cod Gray 0000 0001 0011 0010 0110 0111 0101 0100
Număr 8 9 10 11 12 13 14 15
Cod binar 1000 1001 1010 1011 1100 1101 1110 1111
std.
Cod Gray 1100 1101 1111 1110 1010 1011 1001 1000
III. Reprezentarea prin vectori cu numere întregi

 Este utilizată în problemele de optimizare a funcţiilor cu variabile luând


valori în mulţimea numerelor întregi.

 Exemplu: problema determinării unui drum între două puncte date într-o
reţea de puncte în care conexiunile posibile sunt sus, jos, stânga şi
respectiv dreapta revine la determinarea unei secvenţe de deplasări către
nord, sud, est, respectiv vest cu câte o unitate. Fiecare tip de deplasare
este codificată cu o valoare din 0,1,2,3 .

 Alegerea unei codificări - pe baza unor relaţii naturale între valorile pe care
le poate lua fiecare atribut (variabilă).
 Atribute ordinale - dacă sunt cu valori într-o mulţime de numere întregi,
valoarea 2 este “mai similară“ cu 3 decât cu 312.
 Atributelor cardinale – distanța între două valori posibile este irelevantă.
IV. Reprezentarea prin numere reale
 În multe situaţii practice, reprezentarea unui candidat la soluţie este
realizată prin intermediul unui şir de numere reale. În general este preferată
această reprezentare atunci când fenotipurile provin dintr-o distribuţie
continuă. Genotipul corespunzător unui candidat soluţie cu n gene este deci
vectorul 𝑥 = 𝑥1 , 𝑥2 , … , 𝑥𝑛 , unde 𝑥𝑖 ∈ ℝ, 𝑖 = 1, … , 𝑛.

 Exemple: probleme de optimizarea de tipul

max 𝑓 𝑥
𝑥∈𝐷
𝑥 = 𝑥1 , 𝑥2 , … , 𝑥𝑛 𝑇
𝑛

𝐷= 𝑎𝑖 , 𝑏𝑖
𝑖
(probleme de optimizarea potrofoliilor de active)
V. Reprezentarea prin permutări
 Permutările sunt utilizate în probleme în care trebuie stabilită
ordinea apariţiei unor secvenţe de evenimente.

 Operatorii de variaţie trebuie definiţi astfel încât rezultatul


aplicării acestora să corespundă unor soluţii admisibile.

 Clase de probleme:
 probleme în care ordinea apariţiei evenimentelor este
importantă. Exemplu: problema planificării activităţilor;
 probleme în care apare dependenţa de adiacenţă – scopul:
stabilirea vecinătăților. Exemplu: problema comis-voiajorului
 Diferenţa: în cazul celei de-a doua clase, punctul de start (în
cazul problemei comis-voiajorului oraşul de plecare) nu este
important.
VI. Operatorul mutaţie. Reprezentarea binară
 Cel mai utilizat operator de mutaţie în reprezentarea binară consideră
fiecare genă a fiecărui cromozom pentru inversarea valorii asociate cu o
probabilitate pm în general mică.

 Numărul valorilor modificate nu este fixat, dar, în medie, dacă populaţia


conţine dim cromozomi cu câte n gene, este egal cu 𝑝𝑚 ∗ 𝑑𝑖𝑚 ∗ 𝑛.

 Exemplu: dacă în cromozomul părinte


este aplicat operatorul de mutaţie genelor 2, 3 şi 7, rezultă cromozomul
copil

 Parametrul pm este setat în următoarele limite: într-o generaţie, în medie,


este modificată o singură genă a unui singur cromozom din populaţie,
respectiv în populaţia curentă este modificată, în medie, câte o genă din
fiecare cromozom.
VII. Mutaţia în reprezentarea prin numere întregi
 Resetarea aleatoare prin care, cu probabilitatea pm, valoarea fiecărei
gene este modificată prin generarea aleatoare a unei valori din mulţimea
valorilor admisibile pentru gena respectivă. Acest operator este utilizat în
situaţia în care genele codifică atribute de tip cardinal (în acest caz
valorile admisibile ale unei gene trebuie să poată fi selectate cu aceeaşi
probabilitate într-o operaţie de mutaţie).

 Exemplu: dacă un cromozom conţine 4 gene, fiecare cu valori în


mulţimea −100, −99, … , 200 , un exemplu de mutaţie posibilă in
cromozomul (118 -40 110 -44) gena 1 determină obţinerea
cromozomului (-37 -40 110 -44)

 Mutaţiei de tip fluaj. Operatorul este utilizat în cazul atributelor de tip


ordinal şi, cu o probabilitate p, adaugă/scade o anumită cantitate (de
obicei mică) la/din valoarea fiecărei gene a fiecărui cromozom.
VIII. Mutaţia în reprezentarea prin numere reale
 Fie n numărul genelor unui cromozom şi presupunem că, pentru 𝑖 =
1, … , 𝑛 , valoarea genei i aparţine intervalului 𝑎𝑖 , 𝑏𝑖 şi, prin aplicarea
operatorului mutaţie asupra cromozomului 𝑥 = 𝑥1 , 𝑥2 , … , 𝑥𝑛 este obţinut
𝑦 = 𝑦1 , 𝑦2 , … , 𝑦𝑛 , unde 𝑥𝑖 , 𝑦𝑖 ∈ 𝑎𝑖 , 𝑏𝑖 , 𝑖 = 1, … , 𝑛.

 Mutaţia uniformă : modificarea fiecărei gene 𝑖 = 1, … , 𝑛 din fiecare


cromozom, cu probabilitatea pm, prin generarea aleatoare uniformă a
câte unui număr din 𝑎𝑖 , 𝑏𝑖 . Corespunde mutaţiei prin resetare aleatoare
în cazul reprezentării cromozomiale prin şiruri de numere întregi.

 Mutaţia neuniformă, cu distribuţie fixată: este corespondentul operatorului


de mutaţie fluaj. Operatorul este proiectat astfel încât cantitatea de
informaţie modificată să fie mică. Aplicarea lui asupra unei gene i, 𝑖 =
1, … , 𝑛, presupune modificarea valorii curente cu o valoare generată de
obicei din distribuţia gaussiană cu medie 0 şi deviaţie standard
specificată, 𝜎, (distribuţie notată 𝑁 0, 𝜎 2 ) rezultatul fiind apoi adus pe
intervalul 𝑎𝑖 , 𝑏𝑖 .
 Dacă valorile cu care sunt modificate alelele sunt în −𝑡, 𝑡 , atunci ele
pot fi generate din distribuţia 𝑁 0, 𝜎 2 , unde 3𝜎 < 𝑡:
𝑃 −3𝜎 ≤ 𝑥 ≤ 3𝜎 ≅ 0.9973
IX. Mutaţia în reprezentarea prin permutări
 Operatorul mutaţie poate fi aplicat doar la nivel de cromozom, deci rata
de mutaţie corespunde probabilităţii modificării unui genotip.

 Mutaţia prin interschimbare: selectarea aleatoare a două gene dintr-un


cromozom şi interschimbarea valorilor asociate acestora. Exemplu:
pentru poziţiile 5 şi 8
din 3 6 1 8 7 5 2 4 rezultă
3 6 1 8 4 5 2 7

 Mutaţia prin inserare presupune selectarea aleatoare a două gene, 1 ≤


𝑖 < 𝑗 ≤ 𝑛, memorarea alelei din gena j, A, deplasarea cu o poziţie către
dreapta a valorilor genelor 𝑖 + 1, 𝑖 + 2, … , 𝑗 − 1 şi plasarea valorii A pe
poziţia i+1. Dacă 𝑖 + 1 = 𝑗 nu are efect.
Exemplu: pentru poziţiile i = 5 < 𝑗 = 8, 𝑛 = 10
din 3 6 10 8 7 5 2 4 1 9, A=4, rezultă
3 6 10 8 7 4 5 2 1 9
Mutaţia în reprezentarea prin permutări
 Mutaţia prin amestec : repoziţionarea fiecărei alele în mod aleator,
pentru o secvenţă de gene ale unui cromozom sau pentru întreg
cromozomul. Exemplu:
din 4 3 1 7 8 5 2 6
prin amestecul aleator al valorilor genelor 3,4,5 şi 6 poate rezulta
4 3 7 1 5 8 2 6.

 Mutaţia prin inversiune presupune selectarea aleatoare a două gene,


1 ≤ 𝑖 < 𝑗 ≤ 𝑛, şi inversarea ordinii în secvenţa dintre cele două poziţii.
Exemplu: 𝑖 = 3 < 𝑗 = 6
din 4 3 1 7 8 5 2 6 rezultă
4 3 5 8 7 1 2 6.
 În problemele bazate pe dependenţa de adiacenţă, inversiunea unui
subşir aleator într-un cromozom este cea mai mică modificare ce poate
fi adusă acelui cromozom şi corespunde reprezentării Gray în cazul
spaţiului genotipurilor şiruri binare.
Algoritmi genetici.
Recombinarea
Schemea generala de recombinare aplicată
populației de părinți
 B/O – populația de părinți/copii;
 dim – dimensiunea populației de părinți
 K – numărul de operații de recombinare între doi indivizi din B;
presupunem că rezultă 2 copii
 𝒑𝒄 - probabilitatea de recombinare

A. PROBLEME FĂRĂ CONSTRÂNGERI – rezultă 2K progenituri


for i=1:K
1. generează aleator două poziții din B, 𝑝1 ≠ 𝑝2 , 𝑝1 , 𝑝2 = 1, 𝑑𝑖𝑚
2. generează 𝑟 ∈ 0,1
3. if 𝑟 ≤ 𝑝𝑐
3.1. 𝑂 2 ∙ 𝑖 − 1, : , 𝑂 2 ∙ 𝑖, : = crossover B 𝑝1 , : , 𝐵 𝑝2 , :
3.2. evaluează 𝑂 2 ∙ 𝑖 − 1, : , 𝑂 2 ∙ 𝑖, :
else
3.1. recombinarea asexuată: 𝑂 2 ∙ 𝑖 − 1, : , 𝑂 2 ∙ 𝑖, : = B 𝑝1 , : , 𝐵 𝑝2 , :
B. PROBLEME CU CONSTRÂNGERI – dacă nu implementate criterii
suplimentare privind dimensiunea populației 𝑂, numărul copiilor rezultați
depinde de extragerile aleatoare (din crossover) care furnizează sau nu
soluții fezabile
poz=1; 𝑂 ← ∅;
for i=1:K
1. generează aleator două poziții din B, 𝑝1 ≠ 𝑝2 , 𝑝1 , 𝑝2 = 1, 𝑑𝑖𝑚
2. generează 𝑟 ∈ 0,1
3. if 𝑟 ≤ 𝑝𝑐
3.1. 𝑅 = crossover B 𝑝1 , : , 𝐵 𝑝2 , :
3.2. for j=1:2
if Admisibil(R(j))

𝑂 𝑝𝑜𝑧, : = R 𝑗 ; poz = poz + 1; evaluează 𝑂 𝑝𝑜𝑧, :
else
3.1. recombinarea asexuată: 𝑂 𝑝𝑜𝑧, : , 𝑂 𝑝𝑜𝑧 + 1, : = B 𝑝1 , : , 𝐵 𝑝2 , :
3.2. poz=poz+2
Exemple de criterii suplimentare:
 repetă 3.1-3.2 până la obținerea a două soluții fezabile SAU
 dacă un copil R 𝑗 nu este fezabil, propagă in 𝑂 unul din părinții lui R 𝑗
Recombinarea în reprezentarea binară
 Încrucişarea uni punct este primul operator propus pentru recombinare.
Recombinarea este aplicată câte unei perechi de cromozomi părinte 𝑥1 , 𝑦1
şi presupune efectuarea următoarelor operaţii: selectarea aleatoare a unei
gene, poz, şi obţinerea progeniturile 𝑥2 , 𝑦2 astfel :
 copiază primele poz elemente din 𝑥1 , respectiv 𝑦1 în 𝑥2 , respectiv 𝑦2
 copiază în ultimele m-poz+1 poziţii din 𝑥2 , respectiv 𝑦2 , ultimele m-poz+1
elementele din 𝑦1 , respectiv 𝑥1 , unde m este lungimea reprezentării
 Încrucişarea multipunct este o extensie naturală a operatorului de
recombinare uni punct. Recombinarea este aplicată câte unei perechi de
cromozomi părinte 𝑥1 , 𝑦1 şi presupune selectarea aleatoare a N gene şi
obţinerea progeniturile 𝑥2 , 𝑦2 prin copierea alternativă a secvenţelor din
cromozomii fiecărui părinte.

 În figura următoare este reprezentată încrucişarea multipunct pentru situaţia


𝑁 = 2.
Recombinarea uniformă în reprezentarea binară și
pe șiruri de numere întregi
 Încrucişarea uniformă este aplicată câte unei perechi de cromozomi părinte
𝑥1 , 𝑦1 şi presupune obţinerea progeniturile 𝑥2 , 𝑦2 prin consultarea fiecărei
gene în mod independent şi atribuirea valorii corespunzătoare din gena
unuia dintre părinţi, ales aleator.

 Fie m este dimensiunea reprezentării prin şiruri binare şi p un parametru dat


(în general 𝑝 = 0.5). Pentru fiecare genă 𝑖, 1 ≤ 𝑖 ≤ 𝑚, este generată aleator,
din distribuţia uniformă, o valoarea v.
 Dacă 𝑣 ≤ 𝑝, atunci 𝑥2 𝑖 = 𝑥1 𝑖 , 𝑦2 𝑖 = 𝑦1 𝑖
 Altfel, copierea este inversă, 𝑥2 𝑖 = 𝑦1 𝑖 , 𝑦2 𝑖 = 𝑥1 𝑖 .

 Pentru şiruri de numere întregi, operatorii de încrucişare sunt similari


celor definiţi pentru reprezentarea prin şiruri binare. O altă alegere, de
exemplu recombinarea aritmetică poate avea ca rezultat cromozomi care nu
aparţin spaţiului soluţiilor fezabile (nu sunt şiruri de numere întregi).
Recombinarea în reprezentarea în numere reale

 Recombinarea de tip discret este clasa operatorilor definiţi similar


reprezentării prin şiruri binare, o alelă fiind un număr real. Dezavantaj: nu
sunt obţinute valori noi pentru genele cromozomilor urmaşi.

 Recombinarea aritmetică simplă aplicată unei perechi de părinți 𝑥1 , 𝑦1


determină obţinerea progeniturilor 𝑥2 , 𝑦2 prin selectarea aleatoare a unei
gene 𝑖, 1 ≤ 𝑖 ≤ 𝑚, şi efectuarea operaţiilor, (𝛼 ∈ 0,1 )
 copiază primele i-1 elemente din 𝑥1 , respectiv 𝑦1 în 𝑥2 , respectiv 𝑦2
 𝑥2 𝑝 = 𝛼𝑦1 𝑝 + 1 − 𝛼 𝑥1 𝑝 ; 𝑦2 𝑝 = 𝛼𝑥1 𝑝 + 1 − 𝛼 𝑦1 𝑝 , 𝑖 ≤ 𝑝 ≤ 𝑚

 Exemplu, dacă 𝑚 = 6, 𝑖 = 5, 𝛼 = 0.5 şi


𝑥1 = 0.4, 1.2, −0.5, 0.3, 0, 2.2 , 𝑦1 = −0.2, 0, −0.7, 0.5, 0.4, 1.2
𝑥2 = 0.4, 1.2, −0.5, 0.3, 0.2, 1.7 , 𝑦2 = −0.2, 0, −0.7, 0.5, 0.2, 1.7
 Recombinarea aritmetică singulară aplicată perechii 𝑥1 , 𝑦1 şi determină
obţinerea cromozomilor 𝑥2 , 𝑦2 în modul următor. Este selectată aleator o
genă 𝑖, 1 ≤ 𝑖 ≤ 𝑚, şi sunt efectuate următoarele operaţii:
 copiază primele i-1, respectiv ultimele m-i elemente din 𝑥1 , respectiv 𝑦1 în 𝑥2 ,
respectiv 𝑦2
 𝑥2 𝑖 = 𝛼𝑦1 𝑖 + 1 − 𝛼 𝑥1 𝑖 ; 𝑦2 𝑖 = 𝛼𝑥1 𝑖 + 1 − 𝛼 𝑦1 𝑖

 De exemplu, dacă 𝑚 = 6, 𝑖 = 4, 𝛼 = 0.4 şi


𝑥1 = 0.4, 1.2, −0.5, 1, 0, 2.2 , 𝑦1 = −0.2, 0, −0.7, 2, 0.4, 1.2
𝑥2 = 0.4, 1.2, −0.5, 1.4, 0, 2.2 , 𝑦2 = −0.2, 0, −0.7, 1.6, 0.4, 1.2

 Recombinarea aritmetică totală aplicată perechii 𝑥1 , 𝑦1 determină


progeniturile 𝑥2 , 𝑦2 prin:
𝑥2 𝑖 = 𝛼𝑥1 𝑖 + 1 − 𝛼 𝑦1 𝑖 ; 𝑦2 𝑖 = 𝛼𝑦1 𝑖 + 1 − 𝛼 𝑥1 𝑖 , 1 ≤ 𝑖 ≤ 𝑚

 De exemplu, dacă 𝑚 = 4, 𝛼 = 0.2 şi


𝑥1 = 0.40, 1.20, −0.5, 1 , 𝑦1 = −0.20, 0, −0.70, 2
𝑥2 = −0.08, 0.24, −0.66, 1.8 , 𝑦2 = 0.28, 0.96, −0.54, 1.2
Recombinarea în reprezentarea prin permutări.
Operatorul PMX
 Operatorul PMX (Partially Mapped Crossover) – folosit în probleme de
dependență de adiacență
 Fie 𝑥1 și 𝑦1 permutările părinți. Progeniturile 𝑥2 și 𝑦2 rezultă astfel.
 1. Alege aleator 𝑝1 , 𝑝2 puncte de încrucişare, 𝑥2 𝑝 = 𝑥1 𝑝 , 𝑝 = 𝑝1 , … , 𝑝2
 2. Calculează mulţimea alelelor din secvenţa de gene 𝑝1 , … , 𝑝2 din cel de-al
doilea părinte, care nu au fost deja copiate în prima progenitură,
𝐴 = 𝑎, 𝑝 𝑎 = 𝑦1 𝑝 , 𝑝 = 𝑝1 , … , 𝑝2 ∖ 𝑎, 𝑝 𝑎 = 𝑥1 𝑝 , 𝑝 = 𝑝1 , … , 𝑝2
 3. Pentru fiecare 𝑎, 𝑝 ∈ 𝐴, plasează valoarea a în 𝑥2 : calculează 𝑏 =
𝑥2 𝑝 , 𝑖 cu 𝑦1 𝑖 = 𝑏 (poziţia lui b din cel de-al doilea părinte).
 3.1 Dacă în poziţia i din prima progenitură nu a fost plasată o valoare, 𝑥2 𝑖 = 𝑎.
 3.2 În caz contrar, determină 𝑐 = 𝑥2 𝑖 , 𝑗 cu 𝑦1 𝑗 = 𝑐. Dacă poziţia j în 𝑥2 este
neocupată, setează 𝑥2 𝑗 = 𝑎. Altfel i=j şi reia 3.2.
 4. La acest moment au fost copiate în prima progenitură alelele secvenţei
de gene 𝑝1 , … , 𝑝2 din ambii părinţi. Genele rămase fără valori în prima
progenitură sunt ocupate, în ordine, de alelele încă necopiate din cel de-al
doilea părinte.
Operatorul CX
 Operatorul recombinare ciclică (CX, Cycle Crossover): un cromozom copil
trebuie creat păstrând cât mai bine posibil informaţia relativă la poziţia
absolută în care apare o valoare în cromozomii părinte.

 Procedura de generare a progeniturilor grupează elementele în cicluri.


După partajarea părinţilor în cicluri, cromozomii rezultaţi sunt construiţi prin
alegerea alternativă a câte unui ciclu din fiecare părinte.

 Fie 𝑥1 , 𝑦1 o pereche de cromozomi părinte, 𝑥2 , 𝑦2 progeniturile calculate


şi m numărul genelor unui cromozom.
Cât timp nu au fost asignate toate alelele unui ciclu, execută
 Pas1. Iniţializează ciclul curent cu secvenţa vidă, 𝐶𝑐 = ∅
 Pas2. Fie i prima genă din 𝑥1 încă neutilizată; 𝑎1 = 𝑥1 𝑖 , 𝑗 = 𝑖
 Pas3. Calculează 𝑎 = 𝑦1 𝑗
 Pas4. Determină 𝑗, 𝑥1 𝑗 = 𝑎
 Pas5. 𝐶𝑐 = 𝐶𝑐 ∪ 𝑎
 Pas6. Repetă Pas3-Pas5 până când 𝑥1 𝑗 = 𝑎1.
x1 1 2 4 6 5 7 3 9 10 8

y1 10 5 2 7 9 1 3 8 6 4

x1 1 2 4 6 5 7 3 9 10 8

y1 10 5 2 7 9 1 3 8 6 4

x1 1 2 4 6 5 7 3 9 10 8

y1 10 5 2 7 9 1 3 8 6 4

𝐶𝑐1 = 10, 6, 7, 1
𝐶𝑐2 = 5, 9, 8, 4, 2
𝐶𝑐3 = 3

x2 1 5 2 6 9 7 3 8 10 4
y2 10 2 4 7 5 1 3 9 6 8
Operatorul OCX
 Operatorul de recombinare de ordine (Order Crossover): probleme în care
spaţiul genotipurilor este dat printr-un set de permutări semnificând ordinea
apariţiei unor evenimente.

 Pas1. Alege aleator 𝑝1 , 𝑝2 puncte de încrucişare, efectuează 𝑥2 𝑝 =


𝑥1 𝑝 , 𝑝 = 𝑝1 , … , 𝑝2

 Pas2. Copiază în 𝑥2 valorile din 𝑦1 care nu au fost deja copiate în 𝑥2 la


pasul 1, începând cu gena 𝑝2 până la gena m şi apoi din poziţia 1 în poziţia
𝑝2 − 1

 Cel de-al doilea copil este construit similar, plecând de la secvenţa de alele
din cel de-al doilea părinte şi copiind restul elementelor din primul părinte
similar procedeului descris pentru crearea primei progenituri.
Recombinarea multiplă
 Operatorii de recombinare multiplă - obţinerea de progenituri prin utilizarea
n-tuplurilor de părinţi, 𝑛 > 2.

 Sunt uşor de implementat, dar, spre deosebire de recombinarea a doi


cromozomi părinte, nu au echivalent biologic.

 Din punct de vedere tehnic utilizarea recombinării multiple poate amplifica


efectele încrucişării. Clasificare:
 bazaţi pe frecvenţa alelelor: de exemplu votul p-sexual, care
generalizează încrucişarea uniformă;
 bazaţi pe segmentarea şi recombinarea secvenţelor: încrucişarea
diagonală, care generalizează recombinarea multi-punct;
 bazaţi pe operaţii asupra alelelor numere reale în virgulă fixă:
recombinarea de tip baricentru, care generalizează operatorii de
recombinare aritmetică.

 În general creşterea arităţii operatorului de încrucişare de la 2 la n nu


garantează obţinerea unor EA superiori ca performanţă
Mecanisme de selecţie.

Exemplu de aplicare a GA.


Problema rucsacului 0-1
Operatorul de selecție. Selecția multisetului părinților
Determinarea distribuţiei de probabilitate de selecţie
Calculul distribuției de probabilitate FPS
(Fitness Proportional Selection)

 Principiul: pentru fiecare cromozom 𝑦𝑖 , 1 ≤ 𝑖 ≤ 𝜇, este calculată performanţa


sa, prin funcţia de evaluare 𝑓𝑖 = 𝑓 𝑦𝑖 . Probabilitatea de selectare a lui 𝑦𝑖 :

𝑓𝑖
𝑝𝑖 = 𝜇
𝑗=1 𝑓 𝑦𝑗

 Fie 𝜇 numărul de indivizi. Pentru fiecare individ 𝑦𝑖 , 1 ≤ 𝑖 ≤ 𝜇, numărul de


apariţii în multisetul selectat este, în medie,

𝑓𝑖
𝑛𝑎𝑖 =
𝑓
 Inconveniente ale utilizării distribuției de selecție FPS:

 indivizii mult superiori restului populaţiei vor domina întreaga populaţie


într-un timp relativ scurt - convergenţă prematură;

 dacă indivizii sunt astfel încât valorile funcţiei de evaluare sunt


comparabile, atunci nu există aproape nici o constrângere de selecţie;
pe parcursul evoluţiei, când indivizii mai slabi dispar şi începe să se
instaleze procesul de convergenţă, performanţa indivizilor generaţiei
curente nu este semnificativ îmbunătăţită;

 mecanismul se comportă diferit pe versiuni translatate ale lui f (vezi


exemplul de la final)
Variante ale FPS

 În scopul eliminării (reducerii) inconvenientelor – recalcularea distribuției


FPS prin eliminarea (reducerea cantității) de informație care le induce

FPS și împărţirea în ferestre


 La fiecare moment t, pentru fiecare 𝑦𝑖 , 1 ≤ 𝑖 ≤ 𝜇, din populaţia curentă 𝒫 𝑡
corespunzător fenotipului 𝑥𝑖 ,
𝑓 𝑦𝑖 ← 𝑓 𝑦𝑖 - 𝛽𝑝𝑡

unde 𝛽𝑝𝑡 depinde de istoria recentă (ultimele p generaţii) a evoluţiei GA.

 O alegere frecventă: media mobilă a calităţii celui mai slab individ pe


parcursul ultimelor p generaţii

𝑡
1
𝛽𝑝𝑡 = min 𝑓 𝑦
𝑝 𝑦∈𝒫𝑢
𝑢=𝑡−𝑝+1
FPS cu sigma-scalarea

 Varianta de distribuție de probabilitate de tip FPS încorporează informaţiile


medie de selecţie şi respectiv deviaţie standard de selecţie în cadrul
populaţiei curente.
 Definirea distribuției de probabilitate g: 𝒫 𝑡 populația curentă, valoarea
medie a distribuției FPS 𝑓𝑡 , varianța în cadrul valorilor distribuției FPS 𝜎𝑓,𝑡

1
𝑓𝑡 = 𝑓 𝑦 ,
𝒫𝑡
𝑦∈𝒫𝑡
2 1 2
𝜎𝑓,𝑡 = 𝑓 𝑦 − 𝑓𝑡
𝒫𝑡 − 1
𝑦∈𝒫𝑡

𝑔 𝑦 = 𝑚𝑎𝑥 𝑓 𝑦 − 𝑓𝑡 − 𝑐 ∙ 𝜎𝑓,𝑡 , 0

unde c este un parametru dat (de obicei 𝑐 = 2).


Distribuția de selecție bazată pe funcția rang

 Calculul distribuție de probabilitate pentru selecție pe baza funcției rang


menţine o valoare constantă a constrângerii de selecţie.

 Distribuția de probabilitate este determinată prin


 sortarea crescătoare a indivizilor populaţiei în funcţie de valorile funcţiei
fitness
 alocarea câte unei probabilităţi de selecţie fiecărui individ, în funcţie de
rangul ocupat în şirul sortat.

Forma liniară a distribuție rang

 1 < 𝑠 ≤ 2 este un parametru dat, 𝑦𝑖 , 1 ≤ 𝑖 ≤ 𝜇, cromozom al populaţiei


curente sortate 𝒫𝑠 𝑡 , probabilitatea de selecţie este setată liniar,
2 − 𝑠 2𝑖 𝑠 − 1
𝑃𝑟𝑎𝑛𝑔_𝑙 𝑦𝑖 = +
𝜇 𝜇 𝜇+1
 În medie, un individ cu calitatea apropiată de media valorilor funcţiei de
evaluare, deci aflat la jumătatea şirului ordonat, trebuie să aibă, relativ la
întreaga populaţie, o şansă de a se reproduce:
𝜇 1
𝑠 = 2, 𝑖 = 2 : 𝑃𝑟𝑎𝑛𝑔 𝑦𝑖 = 𝜇+1

Forma neliniară. Creşterea constrângerii de selecţie

 O altă variantă de stabilire a probabilităţii de selecţie - probabilitatea de


selecţie a indivizilor cu calitatea peste medie trebuie să fie semnificativ mai
mare decât a celorlalţi. Este utilizată o distribuţie de tip exponenţial:

1 − 𝑒𝑥𝑝 −𝑖
𝑃𝑟𝑎𝑛𝑔_𝑒 𝑦𝑖 =
𝑐

unde 𝑐 este un parametru care asigură faptul că


𝜇

𝑃𝑟𝑎𝑛𝑔_𝑒 𝑦𝑖 = 1
𝑖=1
Exemplu
Maximizarea funcţiei 𝑓 𝑥 = 𝑥 2 , cu 𝑥𝜖 0,1,2, … , 31 .

Un fenotip este reprezentat printr-un şir binar de lungime 5. Populaţia este


generată aleator, din distribuţia uniformă pe 0,1,2, … , 31 , cu dimensiunea 5.

Nr. Şirul binar Calitatea FPS Rang liniar Rang


crt. s=1.5 exp.
1 0 1 1 0 0 144 0.0598 0.1200 0.1430
2 1 0 0 1 0 324 0.1344 0.1600 0.1955
3 1 0 1 1 0 484 0.2008 0.2000 0.2149
4 1 1 0 1 1 729 0.3025 0.2400 0.2220
5 1 1 0 1 1 729 0.3025 0.2800 0.2246
Exemplu
Maximizarea funcţiei 𝑓 𝑥 = 𝑥 2 + 1000, cu 𝑥𝜖 0,1,2, … , 31 .

Un fenotip este reprezentat printr-un şir binar de lungime 5. Populaţia este


generată aleator, din distribuţia uniformă pe 0,1,2, … , 31 , cu dimensiunea 5.

Nr. Şirul binar Calitatea FPS Rang liniar Rang


crt. s=1.5 exp.
1 0 0 1 1 0 1036 0.1608 0.1200 0.1430
2 0 1 1 0 0 1144 0.1776 0.1600 0.1955
3 0 1 1 1 0 1196 0.1857 0.2000 0.2149
4 1 0 1 0 1 1441 0.2237 0.2400 0.2220
5 1 1 0 0 1 1625 0.2523 0.2800 0.2246
Implementarea distribuţiei de probabilitate de selecţie.
Mecanismul de selecție ruletă
 Mecanismul de selecţie a părinţilor de tip ruletă este o variantă de
construcţie a bazinului de recombinare astfel încât să corespundă unei
probe din distribuţia de probabilitate a selecţiei.

 Pas 1. Pentru fiecare cromozom 𝑦𝑖 , 1 ≤ 𝑖 ≤ 𝜇:


 evaluează performanţa sa, prin funcţia de evaluare 𝑓𝑖 = 𝑓 𝑦𝑖 ;
 calculează probabilitatea de selecţie din mecanismul de tip FPS sau
cea bazată pe ranguri,𝑝𝑖 şi probabilitatea cumulată 𝑞𝑖 = 𝑖𝑗=1 𝑝𝑗

 Pas 2. Pentru 𝑘 = 1. . 𝜇 execută 2.1 şi 2.2


 2.1. generează aleator un număr 𝑟 ∈ 0,1 ;
 2.2 dacă 𝑟 ≤ 𝑞1 parinte(k)=𝑦1 ;
 altfel, este selectat cromozomul 𝑦𝑖 , 1 ≤ 𝑖 ≤ 𝜇, cu proprietatea
𝑞𝑖−1 < 𝑟 ≤ 𝑞𝑖 : parinte(k)= 𝑦𝑖
Exemplu de implementare
Exemplu Maximizarea funcţiei 𝑓 𝑥 = 𝑥 2 , cu 𝑥𝜖 0,1,2, … , 31 .
Nr. Fenotipul Cromozomul Calitatea FPS
crt. populaţiei iniţiale lui asociat
1 6 0 0 1 1 0 36 0.0226
2 28 1 1 1 0 0 784 0.4922
3 18 1 0 0 1 0 324 0.2034
4 20 1 0 1 0 0 400 0.2511
5 7 0 0 1 1 1 49 0.0308

Nr. Fenotipul Cromozomii părinte Calitatea


crt. selectaţi

1 18 1 0 0 1 0 324
2 20 1 0 1 0 0 400
3 28 1 1 1 0 0 784
4 18 1 0 0 1 0 324
5 28 1 1 1 0 0 784
Exemplu de implementare
Exemplu Maximizarea funcţiei 𝑓 𝑥 = 𝑥 2 , cu 𝑥𝜖 0,1,2, … , 31 .
Nr. Fenotipul Cromozomul Calitatea FPS
crt. populaţiei iniţiale lui asociat
1 6 0 0 1 1 0 36 0.0226
2 28 1 1 1 0 0 784 0.4922
3 18 1 0 0 1 0 324 0.2034
4 20 1 0 1 0 0 400 0.2511
5 7 0 0 1 1 1 49 0.0308

Nr. Fenotipul Cromozomii părinte Calitatea


crt. selectaţi

1 18 1 0 0 1 0 324
2 20 1 0 1 0 0 400
3 28 1 1 1 0 0 784
4 18 1 0 0 1 0 324
5 28 1 1 1 0 0 784
Mecanismului SUS
O variantă îmbunătăţită: algoritmul SUS (Stochastic Universal Sampling). Spre
deosebire de mecanismul de tip ruletă, în care o ruletă cu un braţ este rotită de
𝜇 ori, mecanismul SUS asigură o rotire a unei rulete cu 𝜇 braţe echidistante.

Pas 1. Pentru fiecare cromozom 𝑦𝑖 , 1 ≤ 𝑖 ≤ 𝜇:


evaluează performanţa sa, prin funcţia de evaluare 𝑓𝑖 = 𝑓 𝑦𝑖 ;
calculează probabilitatea de selecţie 𝑝𝑖 şi probabilitatea cumulată 𝑞𝑖
Pas 2. generează aleator un număr 𝑟 ∈ 0, 1 𝜇 ; i=1; k=1;
Pas 3. Cât timp 𝑘 ≤ 𝜇 execută 3.1 şi 3.2
3.1. cât timp 𝑟 ≤ 𝑞𝑖 execută 3.1.1, 3.1.2 şi 3.1.3
3.1.1. parinte(k)=𝑦𝑖 ;
3.1.2.𝑟 = 𝑟 + 1 𝜇 ;
3.1.3. 𝑘 = 𝑘 + 1;
3.2. 𝑖 = 𝑖 + 1
Implementarea mecanismului SUS
Exemplu
Maximizarea funcţiei 𝑓 𝑥 = 𝑥 2 , cu 𝑥𝜖 0,1,2, … , 31 .

Distribuţia de probabilitate de selecţie este de tip rang liniar, după formula

2 − 𝑠 2𝑖 𝑠 − 1
𝑃𝑟𝑎𝑛𝑔 𝑦𝑖 = +
𝜇 𝜇 𝜇+1
Implementarea mecanismului SUS
Nr. Cromozomul populaţiei iniţiale Calitatea lui Rang liniar,
crt. s=1.8
1 0 0 0 1 0 4 0.0933
2 1 0 1 0 0 400 0.1467
3 1 1 0 0 1 625 0.2000
4 1 1 1 0 1 841 0.2533
5 1 1 1 1 0 900 0.3067

Nr. Cromozomii părinte selectaţi Calitatea


crt.
1 1 0 1 0 0 400
2 1 1 0 0 1 625
3 1 1 1 0 1 841
4 1 1 1 1 0 900
5 1 1 1 1 0 900
Selecţia de tip turneu
 În situaţiile în care dimensiunea populaţiei este foarte mare sau populaţia
este distribuită în sisteme paralele, calculul probabilităţilor de selecţie de tip
FPS poate dura foarte mult sau poate fi imposibil. Selecţia de tip turneu
este un operator cu proprietatea importantă că nu necesită informaţii
globale relativ la populaţia curentă şi presupune definirea unei relaţii de
ordine pe doi (sau în general k, unde 𝑘 ≪ 𝜇) indivizi.

 Pas 1. Pentru 𝑖 = 1. . 𝜇 execută 1.1, 1.2 şi 1.3


 1.1. generează aleator k indivizi din populaţie în setul S (cu sau fără
înlocuire);
 1.2. calculează 𝑦, 𝑓 𝑦 = max 𝑓 𝑥 , cel mai bun individ din S;
𝑥∈𝑆
 1.3. parinte(i)=𝑦;
Schimbul de generaţii bazat pe vârstă
 Ideea: de a asigura prezenţa fiecărui individ într-un număr fixat de generaţii
şi nu în funcţie de calitatea indivizilor. Un mecanism de acest tip este utilizat
de obicei în cazul GA simpli.

 Deoarece, în general, numărul urmaşilor, 𝜆 , este egal cu dimensiunea


populaţiei, 𝜇 , strategia schimbă populaţia curentă cu multisetul de
progenituri (eventual mutante) create, indiferent dacă populaţia curentă
şi/sau multisetul progeniturilor conţin indivizi care se repetă (sunt mutiseturi
de cromozomi, nu mulţimi în sens matematic).

 La polul opus - crearea unui singur cromozom copil la fiecare ciclu şi


înlocuirea celui mai „bătrân” individ al populaţiei curente cu noul cromozom
creat. Alternativă - selectarea aleatoare a unui individ din populaţie şi
înlocuirea lui cu cromozomul copil nou creat.
Schimbul de generaţii bazat pe calitatea indivizilor
 Schimbul de generaţii dirijat de valorile funcţiei de evaluare poate fi realizat
prin strategii utilizate şi în selectarea părinţilor.

 Schema de substituire GENITOR presupune înlocuirea celor mai slabi 𝜆 <


𝜇 indivizi din populaţia curentă. Acest mecanism conduce la îmbunătăţirea
semnificativă a calităţii globale a populaţiei dar are dezavantajul că poate
conduce la convergenţă prematură. Modelul este utilizat pentru populaţii de
dimensiuni mari sau în cazul populaţiilor care nu conţin duplicate.

 Elitismul este o strategie utilizată în combinaţie cu scheme de substituire


bazate pe vârstă şi scheme stochastice de înlocuire bazate pe funcţia de
evaluare, scopul fiind acela de a evita pierderea celor mai bine adaptaţi
indivizi la schimbul de generaţii. Revine la urmărirea celui mai bun individ
din populaţia curentă, b: dacă b este ales pentru înlocuire şi nici unul dintre
urmaşii care sunt selectaţi pentru schimbul de generaţii nu are valoarea
funcţiei obiectiv cel puţin egală cu cea corespunzătoare lui b, atunci b este
menţinut în generaţia următoare şi este eliminat unul dintre urmaşii selectaţi
pentru înlocuire.
Exemplu de aplicare a GA. Problema rucsacului 0-1
 Fiind date m obiecte, fiecare cu câte o valoare şi respectiv un cost de
selecţie, determină un set de obiecte cu proprietatea că este de valoare
maximă şi costul<Cmax.

 val: vectorul valorilor asociate celor m obiecte; cost: vectorul costurilor

 Poate fi selectat un obiect (nu fracțiuni din el) dacă nu este depăşit Cmax.

 O soluţie posibilă (fezabilă): un set de obiecte selectate astfel încât costul<


Cmax.
 Reprezentarea unui candidat la soluţie: vector de m elemente, v, unde
1, 𝑑𝑎𝑐ă 𝑜𝑏𝑖𝑒𝑐𝑡𝑢𝑙 𝑖 𝑎 𝑓𝑜𝑠𝑡 𝑠𝑒𝑙𝑒𝑐𝑡𝑎𝑡 î𝑛 𝑚𝑢𝑙ţ𝑖𝑚𝑒
𝑣 𝑖 = , 𝑖 = 1, … , 𝑚 şi
0, î𝑛 𝑐𝑎𝑧 𝑐𝑜𝑛𝑡𝑟𝑎𝑟
𝑚

𝑐𝑜𝑠𝑡 𝑖 ∗ 𝑣 𝑖 < 𝐶𝑚𝑎𝑥


𝑖=1
 Fiecare genotip v corespunde unui număr 𝑅 ∈ 1, … , 2𝑚 , v este
reprezentarea binară a lui R-1 şi astfel încât nu este depăşit pragul Cmax.
 Funcția fitness (de maximizat)
𝑚

𝑓 𝑣 = 𝑣𝑎𝑙𝑜𝑎𝑟𝑒 𝑖 ∗ 𝑣 𝑖
𝑖=1

 Modelul de populație – cu dimensiune constantă


 Generarea populației inițiale – aleator, dar astfel încât fiecare șir binar să
corespundă unei soluții fezabile

 Operatorii de variație
 Recombinarea unipunct, cu probabilitatea 𝑝𝑐 ≥ 0.6 . Schema de
recombinare presupune că populația de părinți este generată fără a ține
cont de o anumită ordine/valoare ale funcției fitness. Cromozomii
rezultat sunt considerați în multisetul copiilor dacă aceștia corespund
unor soluții fezabile  dimensiunea populației de copii este cel mult
egală cu dimensiunea populației curente
 Mutația bit-flip, cu probabilitatea 𝑝𝑚 ≅ 0.1 – similar, cromozomul rezultat
este considerat în multisetul copiilor mutați dacă acesta corespunde
unei soluții fezabile
 Stabilirea populației de părinți (selecția părinților) – prin SUS, utilizând
distribuția FPS cu sigma-scalare

 Selecția generației următoare – de tip GENITOR, cu înlocuirea celor mai


slabi n indivizi ai populației curente cu cei mai buni n copii; dacă multisetul
copiilor nu conține n indivizi, sunt utilizați cei existenți. Dacă cele două
populații sunt sortate în vederea aplicării operatorului de selecție, ulterior
supraviețuitorii înlocuiesc populația curentă într-o ordine aleatoare.

 Condiția de terminare – nu a fost depășit un număr MAX de iterații,


diversitatea din punct de vedere a funcției fitness este nenulă (sunt măcar
două valori diferite ale funcției fitness în cadrul populației) și la ultimele
NRM generații cel mai bun individ și-a modificat (îmbunătățit) valoarea
funcției obiectiv.
 Exemplu
m=23 de obiecte
cost= [3 12 2 1 7 9 10 2 1 9 10 1 1 2 3 12 13 4 5 1 3 2 1]
valoare=[3 2 10 7 4 9 10 21 12 9 10 12 12 2 22 11 8 7 10 1 2 4 12]
Probleme de optimizarea
portofoliilor de active.
Rezolvare prin tehnica de tip
gradient.
Randamentul / riscul unui portofoliu
 Fie 𝐴 = 𝑎1 , 𝑎2 , … , 𝑎𝑛 ↔ 1,2, … , 𝑛 un grup de n active, 𝑆𝑠 suma disponibilă
 Considerăm disponibil istoricul randamentelor procentuale pe m perioade
de timp pentru fiecare i ∈ 1,2, … , 𝑛
 𝑟𝑖𝑗 , randamentul acţiunii i în perioada j;
1 𝑚
 𝑟𝑖 = 𝑚 𝑗=1 𝑟𝑖𝑗 , randamentul mediu al acţiunii i
𝑛
 𝑦𝑖 , fracţiunea investită în acţiunea i, astfel încât 𝑆 = 𝑖=1 𝑦𝑖 =1
 𝜎𝑖2 , varianţa acţiunii i:
𝑚
1 2
𝜎𝑖2 = 𝑟𝑖𝑗 − 𝑟𝑖
𝑚
𝑗=1
 𝜎𝑖𝑘 , covarianţa dintre acţiunile i şi k:
𝑚
1
𝜎𝑖𝑘 = 𝑟𝑖𝑗 − 𝑟𝑖 𝑟𝑘𝑗 − 𝑟𝑘
𝑚
𝑗=1
 Portofoliul este definit de fracţiunile de investiţii 𝒚𝟏 , 𝒚𝟐 , … , 𝒚𝒏 .
Randamentul / riscul unui portofoliu
 Varianţa portofoliului este definită prin

𝑛 𝑛−1 𝑛

𝑉 𝑦 = 𝜎𝑖2 𝑦𝑖 2 + 2 𝜎𝑖𝑗 𝑦𝑖 𝑦𝑗
𝑖=1 𝑖=1 𝑗=𝑖+1

sau, matriceal

𝑉 𝑦 = 𝑦 𝑇 𝑄𝑦,

𝑦 = 𝑦1 , 𝑦2 , … , 𝑦𝑛 𝑇
𝑄 = 𝜎𝑖𝑗 1≤𝑖≤𝑛 , 𝜎𝑖𝑖 = 𝜎𝑖2 , 1 ≤ 𝑖 ≤ 𝑛
1≤𝑗≤𝑛

şi este utilizată ca măsură a riscului portofoliului.


Randamentul / riscul unui portofoliu
 Randamentul aşteptat al portofoliului este dat prin
𝑛

𝑅= 𝑟𝑖 𝑦𝑖
𝑖=1
sau, matriceal
𝑅 = 𝑟𝑇 𝑦 ,

𝑟 = 𝑟1 , 𝑟2 , … , 𝑟𝑛 𝑇

 În reprezentare matriceală relaţia


𝑛

𝑆= 𝑦𝑖 = 1
𝑖=1
devine
𝑆 = 𝑒𝑇𝑦 = 1

𝑒 = 1,1, … , 1 𝑇 vectorul unitar n-dimensional.


Definirea problemelor de tip risc minim
 Problema primară de minimizare a riscului, RISCMIN0:

RISCMIN0:
Minimizează 𝑉 = 𝑦 𝑇 𝑄𝑦
𝑛
cu restricţia 𝑖=1 𝑦𝑖 = 1 .

 În general, un portofoliu este considerat optim dacă el furnizează cel mai


mare randament cu cel mai mic risc. Poate fi utilizată ca funcţie obiectiv
funcţia compozit F şi este obţinută RISC-RANDAMENT1:

RISC-RANDAMENT1:
Minimizează 𝐹 = −𝑟 𝑇 𝑦 + 𝜌𝑦 𝑇 𝑄𝑦
𝑛
cu restricţia 𝑖=1 𝑦𝑖 = 1 .

𝜌 controlează raportul dintre randament şi risc


Definirea problemelor de tip risc minim
 O variantă alternativă: fixarea unei valori ţintă pentru randament: Rp
procente, şi considerarea problemei de optimizare RISCMIN1,

RISCMIN1:
Minimizează 𝑉 = 𝑦 𝑇 𝑄𝑦
𝑛 𝑛
cu restricţiile 𝑖=1 𝑟𝑖 𝑦𝑖 = 𝑅𝑝 şi 𝑖=1 𝑦𝑖 =1.

 sau, alternativ, problema modificată RISCMIN1M,

RISCMIN1M:
Minimizează
𝑛 2
𝜌
𝐹= 𝑦 𝑇 𝑄𝑦 + 2 𝑟𝑖 𝑦𝑖 − 𝑅𝑝
𝑅𝑝 𝑖=1
𝑛
cu restricţia 𝑖=1 𝑦𝑖 =1.
Definirea problemelor de tip randament maxim
 Problema primară de maximizarea randamentului, RANDAMENTMAX0 :

RANDAMENTMAX0:
Minimizează 𝑅 = −𝑟 𝑇 𝑦
cu restricţia 𝑛𝑖=1 𝑦𝑖 = 1 .

 O alternativă realistă: selectarea unui nivel acceptabil de risc, 𝑉𝑎𝑐 , şi


maximizarea randamentul aşteptat. Problema RANDAMENTMAX1:

RANDAMENTMAX1:
Minimizează 𝑅 = −𝑟 𝑇 𝑦
𝑛
cu restricţiile 𝑉 = 𝑦 𝑇 𝑄𝑦 = 𝑉𝑎𝑐 şi 𝑖=1 𝑦𝑖 =1.
Definirea problemelor de tip randament maxim
 Problema modificată RANDAMENTMAX1M:

RANDAMENTMAX1M:
Minimizează
𝜌
𝐹 = −𝑟 𝑇 𝑦 + 2
𝑦 𝑇 𝑄𝑦 − 𝑉𝑎𝑐 2
𝑉𝑎𝑐
𝑛
cu restricţia 𝑖=1 𝑦𝑖 =1.

𝜌 semnifică relaţia existentă între randamentul şi riscul portofoliului.


Transformarea în probleme de optimizare fără
constrângeri
 Variabila 𝑦𝑛 este poate fi eliminată,
𝑛−1

𝑦𝑛 = 1 − 𝑦𝑖
𝑖=1
 𝑥 = 𝑦1 , 𝑦2 , … , 𝑦𝑛−1 𝑇 , 𝛼 = 0,0, … , 0,1 𝑇 vector n-dimensional şi B matrice
1 0 … 0
0 1 … 0
de dimensiune 𝑛 × 𝑛 − 1 , 𝐵 = …………… .
0 0 … 1
−1 − 1 … − 1

 Obţinem
𝑦 = 𝛼 + 𝐵𝑥
Transformarea în probleme de optimizare fără
constrângeri
MINRISC0:
Minimizează
𝑉 = 𝛼 + 𝐵𝑥 𝑇 𝑄 𝛼 + 𝐵𝑥
RISCMIN1M
Minimizează
𝜌 2
𝐹 = 𝛼 + 𝐵𝑥 𝑇 𝑄 𝛼 + 𝐵𝑥 + 2 𝑟 𝑇 𝛼 − 𝑅𝑝 + 𝑟 𝑇 𝐵𝑥
𝑅𝑝
RANDAMENTMAX1M
Minimizează
𝜌 2
𝐹= −𝑟 𝑇 𝛼 + 𝐵𝑥 + 𝛼 + 𝐵𝑥 𝑇 𝑄 𝛼 + 𝐵𝑥 − 𝑉
𝑎𝑐
𝑉𝑎𝑐 2
 Dacă 𝑥 ∗ = 𝑥1∗ , 𝑥2∗ , … , 𝑥𝑛−1
∗ 𝑇 este o soluţie a uneia din problemele enunţate,

atunci portofoliul de risc minim este:


𝑛−1

𝑦𝑖∗ = 𝑥𝑖∗ , 1 ≤ 𝑖 ≤ 𝑛 − 1 ş𝑖 𝑦𝑛∗ = 1 − 𝑥𝑖∗


𝑖=1
Rezolvarea RISCMIN1M prin tehnica celei mai
rapide descreşteri
 O serie de metode care rezolvă problema minimizării unei funcţii de mai
multe variabile utilizează vectorul derivatelor parţiale de ordinul I, numit
gradient. Dacă V este funcţie de m variabile, atunci gradientul lui V, notat
𝛻𝑉 sau 𝑉𝑥 , este definit prin
𝑇
𝜕𝑉 𝜕𝑉 𝜕𝑉
𝛻𝑉 = , …,
𝜕𝑥1 𝜕𝑥2 𝜕𝑥𝑚
 Gradientul funcţiei F din RISCMIN1M ,
2
𝐹 𝑥 = 𝑉 𝑥 + 𝜌 𝑅 𝑥 − 𝑅𝑝
unde
𝜌
𝑉 𝑥 = 𝛼 + 𝐵𝑥 𝑇 𝑄 𝛼 + 𝐵𝑥 , 𝜌 = 2 şi 𝑅 𝑥 = 𝑟 𝑇 𝛼 + 𝐵𝑥
𝑅𝑝

este
𝛻𝐹 𝑥 = 𝛻𝑉 𝑥 + 2𝜌 𝑅 − 𝑅𝑝 𝛻𝑅 𝑥
unde 𝛻𝑉 𝑥 = 2𝐵𝑇 𝑄 𝛼 + 𝐵𝑥 şi 𝛻𝑅 𝑥 = 𝐵𝑇 𝑟
Rezolvarea RISCMIN1M prin tehnica celei mai
rapide descreşteri

 În toate problemele de optimizare a portofoliilor funcţiile obiectiv îndeplinesc


condiţiile teormei care asigură existenţa unui minim local. Optimizarea
funcţiilor de acet tip poate fi realizată prin metode de tip gradient.

 Tehnica celei mai rapide descreşteri este justificată geometric astfel.


Presupunem că 𝐹 𝑥 este funcţia de minimizat şi 𝑥𝑘 este punctul construit la
momentul curent. Un punct „mai bun” (în sensul că valoare funcţiei obiectiv
descreşte în acel punct faţă de punctul curent) poate fi determinat prin
deplasarea pe direcţia de căutare care determină descreşterea cea mai
rapidă a lui F, adică pe direcţia gradientului negativ.
Rezolvarea RISCMIN1M prin tehnica celei mai
rapide descreşteri
Metoda celei mai rapide descreşteri de tip „perfect line search”
 Selectează 𝑥0 , estimare iniţiale a punctului de minim al lui 𝐹 𝑥 şi 𝜀 > 0
 Repetă pentru 𝑘 = 0,1,2 …
 𝑝𝑘 = − 𝛻𝐹 𝑥𝑘
 calculează 𝑠 ∗ care minimizează 𝜑 𝑠 = 𝐹 𝑥𝑘 + 𝑠 ∙ 𝑝𝑘
 aplică regula de actualizare 𝑥𝑘+1 = 𝑥𝑘 + 𝑠 ∗ ∙ 𝑝𝑘
 Până când 𝛻𝐹 𝑥𝑘+1 < 𝜀
 Teorema de convergență. Fie 𝐹 𝑥 o funcţie dublu diferenţiabilă, cu
derivatele continue şi mărginită inferior şi pentru care este îndeplinită
proprietatea 𝑧 𝑇 𝛻 2 𝐹 𝑥 𝑧 ≤ 𝑀 𝑧 2 pentru orice vector z, unde M>0 este
constantă scalară. Atunci şirul definit prin
𝟏 1
𝒙𝒌+𝟏 = 𝒙𝒌 − 𝜵𝑭 𝒙𝒌 𝑠=
𝑴 𝑀
are proprietatea 𝛻𝐹 𝑥𝑘 → 0 când 𝑘 → ∞.
Rezolvarea RISCMIN1M prin tehnica celei mai
rapide descreşteri. Exemplu
Evoluţia preţului unui portofoliu de 5 acţiuni pe perioada a 10 saptamani:

S1 S2 S3 S4 S5 S6 S7 S8 S9 S10

A1 1.2 1.3 1.4 1.5 1.1 1.2 1.1 1.0 1.0 1.1

A2 1.3 1.0 0.8 0.9 1.4 1.3 1.2 1.1 1.2 1.1

A3 0.9 1.1 1.0 1.1 1.1 1.3 1.2 1.1 1.0 1.1

A4 1.1 1.1 1.2 1.3 1.2 1.2 1.1 1.0 1.1 1.2

A5 0.8 0.75 0.65 0.75 0.8 0.9 1.0 1.1 1.1 1.2

Problema de rezolvat: determinarea portofoliului de risc minim pentru un


randament dat 𝑅𝑝 = 1.15%.
Rezolvarea RISCMIN1M prin tehnica celei mai
rapide descreşteri. Exemplu
𝑇
𝑟 ≅ 1.19 1.13 1.09 1.15 0.905

0.0249 − 0.0187 − 0.0011 0.0085 − 0.0219


−0.0187 0.0321 0.0033 − 0.0035 0.0099
𝑄≅ −0.0011 0.0033 0.0109 0.0015 0.0035
0.0085 − 0.0035 0.0015 0.0065 − 0.0058
−0.0219 0.0099 0.0035 − 0.0058 0.0307

 Pentru eroarea permisă 10−5 𝑛 ş𝑖 𝜌 = 100, rezultă


 portofoliul 𝑦 = 0.42 0.34 0.01 0.2 0.04
 riscul minim 𝑉 = 3.44 × 10−3
 randamentul ≅ 𝑅𝑝 , randamentul dat.
Problema RISCMIN1M.

Abordare GA.
Reprezentare, generarea
populației inițiale, operatorul de
recombinare
Randamentul / riscul unui portofoliu
 Fie 𝐴 = 𝑎1 , 𝑎2 , … , 𝑎𝑛 ↔ 1,2, … , 𝑛 un grup de n acţiuni
 Considerăm disponibil istoricul randamentelor procentuale pe m perioade
de timp pentru fiecare i ∈ 1,2, … , 𝑛 şi notăm cu
 𝑟𝑖𝑗 , randamentul acţiunii i în perioada j;
1 𝑚
 𝑟𝑖 =
𝑚 𝑗=1 𝑟𝑖𝑗 , randamentul mediu al acţiunii i
𝑛
 𝑦𝑖 , fracţiunea investită în acţiunea i, astfel încât 𝑆 = 𝑖=1 𝑦𝑖 =1
 𝜎𝑖2 , varianţa acţiunii i:
𝑚
1 2
𝜎𝑖2 = 𝑟𝑖𝑗 − 𝑟𝑖
𝑚
𝑗=1
 𝜎𝑖𝑘 , covarianţa dintre acţiunile i şi k:
𝑚
1
𝜎𝑖𝑘 = 𝑟𝑖𝑗 − 𝑟𝑖 𝑟𝑘𝑗 − 𝑟𝑘
𝑚
𝑗=1
 Portofoliul este definit de fracţiunile de investiţii 𝑦1 , 𝑦2 , … , 𝑦𝑛 .
Randamentul / riscul unui portofoliu
 Varianţa portofoliului este definită prin
𝑉 𝑦 = 𝑦 𝑇 𝑄𝑦,

𝑦 = 𝑦1 , 𝑦2 , … , 𝑦𝑛 𝑇
𝑄 = 𝜎𝑖𝑗 1≤𝑖≤𝑛 , 𝜎𝑖𝑖 = 𝜎𝑖2 , 1 ≤ 𝑖 ≤ 𝑛
1≤𝑗≤𝑛
şi este utilizată ca măsură a riscului portofoliului.

 Randamentul aşteptat al portofoliului este dat prin

𝑅 𝑦 = 𝑟𝑇 𝑦 ,

𝑇
𝑟 = 𝑟1 , 𝑟2 , … , 𝑟𝑛
Definirea problemei RISCMIN1M
 Determinarea portofoliului de risc minim pentru un randament apropiat de o
valoare dată 𝑅𝑝 - problema RISCMIN1M:

Minimizează
𝜌 2
𝐹 𝑦 = 𝑦 𝑇 𝑄𝑦 + 2 𝑟 𝑇 𝑦 − 𝑅𝑝
𝑅𝑝
𝑛
cu restricţia 𝑖=1 𝑦𝑖 =1.

𝑛
 Pentru eliminarea restricției 𝑖=1 𝑦𝑖 = 1 procedăm astfel:
 𝑥 = 𝑦1 , 𝑦2 , … , 𝑦𝑛−1 𝑇
 𝛼 = 0,0, … , 0,1 𝑇 vector n-dimensional

1 0 … 0
0 1 … 0
 B matrice de dimensiune 𝑛 × 𝑛 − 1 , 𝐵 = ……………
0 0 … 1
−1 − 1 … − 1
Definirea problemei RISCMIN1M
 Rezultă 𝑦 = 𝛼 + 𝐵𝑥 și

𝜌 2
𝐹1 𝑥 = 𝛼 + 𝐵𝑥 𝑇 𝑄 𝛼 + 𝐵𝑥 + 2 𝑟 𝑇 𝛼 + 𝑟 𝑇 𝐵𝑥 − 𝑅𝑝
𝑅𝑝

 Transformarea în problema de maxim:


Maximizează
𝜌 2
−𝐹1 𝑥 = − 𝛼 + 𝐵𝑥 𝑇 𝑄 𝛼 + 𝐵𝑥 + 2 𝑟 𝑇 𝛼 + 𝑟 𝑇 𝐵𝑥 − 𝑅𝑝
𝑅𝑝

 Deoarece F1 este cu valori negative, în mecanismul de selecție a


părinților este utilizată distribuţia de probabilitate de selecţie de tip
rang liniar, cu presiunea de selecţie s.
Rezolvarea RISCMIN1M prin tehnica celei mai
rapide descreşteri. Exemplu
Evoluţia preţului unui portofoliu de 5 acţiuni pe perioada a 10 saptamani:

S1 S2 S3 S4 S5 S6 S7 S8 S9 S10

A1 1.2 1.3 1.4 1.5 1.1 1.2 1.1 1.0 1.0 1.1

A2 1.3 1.0 0.8 0.9 1.4 1.3 1.2 1.1 1.2 1.1

A3 0.9 1.1 1.0 1.1 1.1 1.3 1.2 1.1 1.0 1.1

A4 1.1 1.1 1.2 1.3 1.2 1.2 1.1 1.0 1.1 1.2

A5 0.8 0.75 0.65 0.75 0.8 0.9 1.0 1.1 1.1 1.2

Problema de rezolvat: determinarea portofoliului de risc minim pentru un


randament dat 𝑅𝑝 = 1.15%.
Rezolvarea RISCMIN1M prin tehnica celei mai
rapide descreşteri. Exemplu
𝑇
𝑟 ≅ 1.19 1.13 1.09 1.15 0.905

0.0249 − 0.0187 − 0.0011 0.0085 − 0.0219


−0.0187 0.0321 0.0033 − 0.0035 0.0099
𝑄≅ −0.0011 0.0033 0.0109 0.0015 0.0035
0.0085 − 0.0035 0.0015 0.0065 − 0.0058
−0.0219 0.0099 0.0035 − 0.0058 0.0307

 Pentru eroarea permisă 10−5 𝑛 ş𝑖 𝜌 = 100, rezultă


 portofoliul 𝑦 = 0.42 0.34 0.01 0.2 0.04
 riscul minim 𝑉 = 3.44 × 10−3
 randamentul ≅ 𝑅𝑝 , randamentul dat.
Abordarea genetică a problemei RISCMIN1M

Modelul de populaţie
 Populația este cu dimensiune constantă (funcție de generație), dim.

Asocierea fenotip-genotip. Definirea soluțiilor fezabile


 Fiecărui fenotip y (portofoliu) îi corespunde un cromozom definit de un şir cu
n-1 numere reale.
 Din punct de vedere al implementării, fiecare cromozom este însoţit de
informaţia calitatea evaluată în termenii funcţiei obiectiv.
 Reprezentarea - este utilizat un vector x, cu

𝑥 𝑖 = 𝑦 𝑖 ,1 ≤ 𝑖 ≤ 𝑛 − 1

𝑥 𝑛 = −𝐹1 𝑥 1: 𝑛 − 1
Abordarea genetică a problemei RISCMIN1M

Asocierea fenotip-genotip. Definirea soluțiilor fezabile

 Sunt tratate cele două situaţii posibile:


 SHORT SELLING admis : nu este impusă codiţia ca fiecare 𝑦𝑖 să fie
pozitiv: 1 ≥ 𝑦 𝑖 ≥ −1, 1 ≤ 𝑖 ≤ 𝑛
 SHORT SELLING exclus : 1 ≥ 𝑦 𝑖 ≥ 0, 1 ≤ 𝑖 ≤ 𝑛

 SHORT SELLING - o valoare 𝑦𝑖 negativă are semnificaţia că strategia


optimă de investiţie implică vânzarea de tip “short selling”, adică vânzarea
unor active pe care investitorul nu le deţine, prin împrumutul acestora de la
broker cu intenţia de a le returna ulterior.

 Strategia SHORT SELLING este efectivă doar în situaţia în care preţul


acţiunilor este în scădere.
Abordarea genetică a problemei RISCMIN1M

Restricțiile impuse genotiourilor (reprezentarea cromozomială)

 Restricții în strategia SHORT SELLING:


 1 ≥ 𝑥 𝑖 ≥ −1, 1 ≤ 𝑖 ≤ 𝑛 − 1
 Deoarece
𝑦 𝑛 = 1 − 𝑛−1
𝑖=1 𝑥 𝑖 ∈ −1,1
rezultă
0 ≤ 𝑛−1
𝑖=1 𝑥 𝑖 ≤ 2.

 Restricții în strategia de ecludere a situației SHORT SELLING


 1 ≤ 𝑖 ≤ 𝑛 − 1, 0 ≤ 𝑥 𝑖 ≤ 1
𝑛−1
 𝑖=1 𝑥 𝑖 ≤ 1
Abordarea genetică a problemei RISCMIN1M
 Funcția fitness

function [val,V]=fobiectiv(Q,rmed,alpha,B,ro,Rp,x)

val=((alpha+B*x).')*Q*(alpha+B*x)+
(ro/(Rp^2))*((rmed.')*alpha-Rp+(rmed.')*B*x)^2;

V=((alpha+B*x).')*Q*(alpha+B*x);

end
Abordarea genetică a problemei RISCMIN1M
 Generarea populaţiei inițiale: aleator, cu respectarea restricțiilor
 SHORT SELLING admis
function [pop]=gen_ini_short_selling(dim,n,Q,rmed,alpha,B,ro,Rp)
pop=zeros(n,dim);
for i=1:dim
x=zeros(n-1,1); gata=0;
while(~gata)
for j=1:n-1
x(j)=unifrnd(-1,1);
end;
if((sum(x)>=0)&&(sum(x)<=2))
pop(1:n-1,i)=x(1:n-1);
[val,V]=fobiectiv(Q,rmed,alpha,B,ro,Rp,x(1:n-1));
pop(n,i)=-val; gata=1;
end;
end;
end;
end
Abordarea genetică a problemei RISCMIN1M
 SHORT SELLING exclus
function [pop]=gen_ini(dim,n,Q,rmed,alpha,B,ro,Rp)
pop=zeros(n,dim);
for i=1:dim
x=zeros(n-1,1);
for j=1:n-1
gata=0;
while(~gata)
r=unifrnd(0,1); if(sum(x)+r<=1) x(j)=r;gata=1;end;
end;
if(sum(x)==1) break; end;
end;
pop(1:n-1,i)=x(1:n-1); [val,V]=fobiectiv(Q,rmed,alpha,B,ro,Rp,x(1:n-1));
pop(n,i)=-val;
end;
end
Abordarea genetică a problemei RISCMIN1M

Operația de recombinare

 Recombinarea este aplicată cu o rată pc şi revine la aplicarea operatorului


de recombinare aritmetică totală, cu ponderea p, celor 𝑑𝑖𝑚 2 perechi de
cromozomi aleşi aleator din populaţia de părinţi.

 Rezultatele recombinării corespund întotdeauna unor soluții fezabile.

 Recombinarea este implementată şi în varianta asexuată.

 Orice pereche de cromozomi aleşi ca părinţi este unică.


Abordarea genetică a problemei RISCMIN1M
function [popN]=crossover1(pop,pc,p,Q,rmed,alpha,B,ro,Rp)
[n,dim]=size(pop);
poz=[]; popN=zeros(n,dim);
for i=1:2:dim
ok=0;
while(~ok)
p1=unidrnd(dim-1); p2=p1;
while(p1>=p2)
p2=unidrnd(dim);
end;
if(~ismember([p1 p2],poz,'rows'))
poz=[poz;[p1 p2]]; ok=1;
end;
end;
% nu pot fi generate aceleasi perechi de parinti la treceri diferite
Abordarea genetică a problemei RISCMIN1M
x=pop(1:n-1,p1); y=pop(1:n-1,p2);
r=unifrnd(0,1);
if(r<=pc)
x1=p*x+(1-p)*y;
popN(1:n-1,i)=x1(1:n-1);
[val,V]=fobiectiv(Q,rmed,alpha,B,ro,Rp,x1(1:n-1));
popN(n,i)=-val;
y1=p*y+(1-p)*x;
popN(1:n-1,i+1)=y1(1:n-1);
[val,V]=fobiectiv(Q,rmed,alpha,B,ro,Rp,y1(1:n-1));
popN(n,i+1)=-val;
else %recombinare asexuata
popN(1:n,i)=pop(1:n,p1); popN(1:n,i+1)=pop(1:n,p2);
end;
end;
end
Problema RISCMIN1M.

Abordare GA.
Randamentul / riscul unui portofoliu
 Fie 𝐴 = 𝑎1 , 𝑎2 , … , 𝑎𝑛 ↔ 1,2, … , 𝑛 un grup de n acţiuni
 Considerăm disponibil istoricul randamentelor procentuale pe m perioade
de timp pentru fiecare i ∈ 1,2, … , 𝑛 şi notăm cu
 𝑟𝑖𝑗 , randamentul acţiunii i în perioada j;
1 𝑚
 𝑟𝑖 =
𝑚 𝑗=1 𝑟𝑖𝑗 , randamentul mediu al acţiunii i
𝑛
 𝑦𝑖 , fracţiunea investită în acţiunea i, astfel încât 𝑆 = 𝑖=1 𝑦𝑖 =1
 𝜎𝑖2 , varianţa acţiunii i:
𝑚
1 2
𝜎𝑖2 = 𝑟𝑖𝑗 − 𝑟𝑖
𝑚
𝑗=1
 𝜎𝑖𝑘 , covarianţa dintre acţiunile i şi k:
𝑚
1
𝜎𝑖𝑘 = 𝑟𝑖𝑗 − 𝑟𝑖 𝑟𝑘𝑗 − 𝑟𝑘
𝑚
𝑗=1
 Portofoliul este definit de fracţiunile de investiţii 𝑦1 , 𝑦2 , … , 𝑦𝑛 .
Randamentul / riscul unui portofoliu
 Varianţa portofoliului este definită prin
𝑉 𝑦 = 𝑦 𝑇 𝑄𝑦,

𝑦 = 𝑦1 , 𝑦2 , … , 𝑦𝑛 𝑇
𝑄 = 𝜎𝑖𝑗 1≤𝑖≤𝑛 , 𝜎𝑖𝑖 = 𝜎𝑖2 , 1 ≤ 𝑖 ≤ 𝑛
1≤𝑗≤𝑛
şi este utilizată ca măsură a riscului portofoliului.

 Randamentul aşteptat al portofoliului este dat prin

𝑅 𝑦 = 𝑟𝑇 𝑦 ,

𝑇
𝑟 = 𝑟1 , 𝑟2 , … , 𝑟𝑛
Definirea problemei RISCMIN1M
 Determinarea portofoliului de risc minim pentru un randament apropiat de o
valoare dată 𝑅𝑝 - problema RISCMIN1M:

Minimizează
𝜌 2
𝐹 𝑦 = 𝑦 𝑇 𝑄𝑦 + 2 𝑟 𝑇 𝑦 − 𝑅𝑝
𝑅𝑝
𝑛
cu restricţia 𝑖=1 𝑦𝑖 =1.

𝑛
 Pentru eliminarea restricției 𝑖=1 𝑦𝑖 = 1 procedăm astfel:
 𝑥 = 𝑦1 , 𝑦2 , … , 𝑦𝑛−1 𝑇
 𝛼 = 0,0, … , 0,1 𝑇 vector n-dimensional

1 0 … 0
0 1 … 0
 B matrice de dimensiune 𝑛 × 𝑛 − 1 , 𝐵 = ……………
0 0 … 1
−1 − 1 … − 1
Definirea problemei RISCMIN1M
 Rezultă 𝑦 = 𝛼 + 𝐵𝑥 și

𝜌 2
𝐹1 𝑥 = 𝛼 + 𝐵𝑥 𝑇 𝑄 𝛼 + 𝐵𝑥 + 2 𝑟 𝑇 𝛼 + 𝑟 𝑇 𝐵𝑥 − 𝑅𝑝
𝑅𝑝

 Transformarea în problema de maxim:


Maximizează
𝜌 2
−𝐹1 𝑥 = − 𝛼 + 𝐵𝑥 𝑇 𝑄 𝛼 + 𝐵𝑥 + 2 𝑟 𝑇 𝛼 + 𝑟 𝑇 𝐵𝑥 − 𝑅𝑝
𝑅𝑝

 Deoarece F1 este cu valori negative, în mecanismul de selecție a


părinților este utilizată distribuţia de probabilitate de selecţie de tip
rang liniar, cu presiunea de selecţie s.
Abordarea genetică a problemei RISCMIN1M

Modelul de populaţie
 Populația este cu dimensiune constantă (funcție de generație), dim.

Asocierea fenotip-genotip. Definirea soluțiilor fezabile


 Fiecărui fenotip y (portofoliu) îi corespunde un cromozom definit de un şir cu
n-1 numere reale.
 Din punct de vedere al implementării, fiecare cromozom este însoţit de
informaţia calitatea evaluată în termenii funcţiei obiectiv.
 Reprezentarea - este utilizat un vector x, cu

𝑥 𝑖 = 𝑦 𝑖 ,1 ≤ 𝑖 ≤ 𝑛 − 1

𝑥 𝑛 = −𝐹1 𝑥 1: 𝑛 − 1
Abordarea genetică a problemei RISCMIN1M

Asocierea fenotip-genotip. Definirea soluțiilor fezabile

 Sunt tratate cele două situaţii posibile:


 SHORT SELLING admis : nu este impusă codiţia ca fiecare 𝑦𝑖 să fie
pozitiv: 1 ≥ 𝑦 𝑖 ≥ −1, 1 ≤ 𝑖 ≤ 𝑛
 SHORT SELLING exclus : 1 ≥ 𝑦 𝑖 ≥ 0, 1 ≤ 𝑖 ≤ 𝑛

 SHORT SELLING - o valoare 𝑦𝑖 negativă are semnificaţia că strategia


optimă de investiţie implică vânzarea de tip “short selling”, adică vânzarea
unor active pe care investitorul nu le deţine, prin împrumutul acestora de la
broker cu intenţia de a le returna ulterior.

 Strategia SHORT SELLING este efectivă doar în situaţia în care preţul


acţiunilor este în scădere.
Abordarea genetică a problemei RISCMIN1M

Restricțiile impuse genotiourilor (reprezentarea cromozomială)

 Restricții în strategia SHORT SELLING:


 1 ≥ 𝑥 𝑖 ≥ −1, 1 ≤ 𝑖 ≤ 𝑛 − 1
 Deoarece
𝑦 𝑛 = 1 − 𝑛−1
𝑖=1 𝑥 𝑖 ∈ −1,1
rezultă
0 ≤ 𝑛−1
𝑖=1 𝑥 𝑖 ≤ 2.

 Restricții în strategia de ecludere a situației SHORT SELLING


 1 ≤ 𝑖 ≤ 𝑛 − 1, 0 ≤ 𝑥 𝑖 ≤ 1
𝑛−1
 𝑖=1 𝑥 𝑖 ≤ 1
Abordarea genetică a problemei RISCMIN1M
 Funcția fitness

function [val,V]=fobiectiv(Q,rmed,alpha,B,ro,Rp,x)

val=((alpha+B*x).')*Q*(alpha+B*x)+
(ro/(Rp^2))*((rmed.')*alpha-Rp+(rmed.')*B*x)^2;

V=((alpha+B*x).')*Q*(alpha+B*x);

end
Abordarea genetică a problemei RISCMIN1M
 Generarea populaţiei inițiale: aleator, cu respectarea restricțiilor
 SHORT SELLING admis
function [pop]=gen_ini_short_selling(dim,n,Q,rmed,alpha,B,ro,Rp)
pop=zeros(n,dim);
for i=1:dim
x=zeros(n-1,1); gata=0;
while(~gata)
for j=1:n-1
x(j)=unifrnd(-1,1);
end;
if((sum(x)>=0)&&(sum(x)<=2))
pop(1:n-1,i)=x(1:n-1);
[val,V]=fobiectiv(Q,rmed,alpha,B,ro,Rp,x(1:n-1));
pop(n,i)=-val; gata=1;
end;
end;
end;
end
Abordarea genetică a problemei RISCMIN1M
 SHORT SELLING exclus
function [pop]=gen_ini(dim,n,Q,rmed,alpha,B,ro,Rp)
pop=zeros(n,dim);
for i=1:dim
x=zeros(n-1,1);
for j=1:n-1
gata=0;
while(~gata)
r=unifrnd(0,1); if(sum(x)+r<=1) x(j)=r;gata=1;end;
end;
if(sum(x)==1) break; end;
end;
pop(1:n-1,i)=x(1:n-1); [val,V]=fobiectiv(Q,rmed,alpha,B,ro,Rp,x(1:n-1));
pop(n,i)=-val;
end;
end
Abordarea genetică a problemei RISCMIN1M

Operația de recombinare

 Recombinarea este aplicată cu o rată pc şi revine la aplicarea operatorului


de recombinare aritmetică totală, cu ponderea p, celor 𝑑𝑖𝑚 2 perechi de
cromozomi aleşi aleator din populaţia de părinţi.

 Rezultatele recombinării corespund întotdeauna unor soluții fezabile.

 Recombinarea este implementată şi în varianta asexuată.

 Orice pereche de cromozomi aleşi ca părinţi este unică.


Abordarea genetică a problemei RISCMIN1M
function [popN]=crossover1(pop,pc,p,Q,rmed,alpha,B,ro,Rp)
[n,dim]=size(pop);
poz=[]; popN=zeros(n,dim);
for i=1:2:dim
ok=0;
while(~ok)
p1=unidrnd(dim-1); p2=p1;
while(p1>=p2)
p2=unidrnd(dim);
end;
if(~ismember([p1 p2],poz,'rows'))
poz=[poz;[p1 p2]]; ok=1;
end;
end;
% nu pot fi generate aceleasi perechi de parinti la treceri diferite
Abordarea genetică a problemei RISCMIN1M
x=pop(1:n-1,p1); y=pop(1:n-1,p2);
r=unifrnd(0,1);
if(r<=pc)
x1=p*x+(1-p)*y;
popN(1:n-1,i)=x1(1:n-1);
[val,V]=fobiectiv(Q,rmed,alpha,B,ro,Rp,x1(1:n-1));
popN(n,i)=-val;
y1=p*y+(1-p)*x;
popN(1:n-1,i+1)=y1(1:n-1);
[val,V]=fobiectiv(Q,rmed,alpha,B,ro,Rp,y1(1:n-1));
popN(n,i+1)=-val;
else %recombinare asexuata
popN(1:n,i)=pop(1:n,p1); popN(1:n,i+1)=pop(1:n,p2);
end;
end;
end
Abordarea genetică a problemei RISCMIN1M
 Operatorul de mutaţie ales este cel de tip fluaj, cu o rată pm.

 Varianta în care este exclusă situaţia de tip “short selling”: cu o rată pm,
fiecare genă din fiecare cromozom c1 suferă o mutaţie prin adăugarea unei
𝑡
valori generate din repartiţia N 0, 𝜎 = 3 , dar astfel încât cromozomul
rezultat c2 să corespundă unei soluţii fezabile. Dacă c2 nu este soluţie
fezabilă, atunci alela/alelele modificate este/sunt ajustată/ajustate astfel
încât c2 să devină soluţie fezabilă.

 Varianta generală: cu o rată pm, fiecare genă din fiecare cromozom suferă
𝑡
o mutaţie prin adăugarea unei valori generate din repartiţia N 0, 𝜎 = 3 .
Restricţii:
 valoarea fiecărei alele să fie în −1,1
𝑛−1 𝑛−1
 𝑦 𝑛 = 1 − 𝑖=1 𝑥 𝑖 să fie în −1,1 , adică 0 ≤ 𝑖=1 𝑥 𝑖 ≤ 2 .
Dacă prin modificarea valorii unei gene este obținută o soluţie nefezabilă,
atunci este generată o altă valoare de fluaj, până când restricţiile sunt
îndeplinite.
Abordarea genetică a problemei RISCMIN1M
function [popN]=mutatie(pop,pm,t,Q,rmed,alpha,B,ro,Rp,caz);
[n,dim]=size(pop); popN=pop;
for i=1:dim
efectuat=0;
if(caz==0)
% fara short selling
for j=1:n-1
r=unifrnd(0,1);
if(r<=pm)
fluaj=normrnd(0,t/3); a=pop(j,i)+fluaj;
efectuat=1;
if(a<0) a=0; end;
s=sum(popN(1:n-1,i));
if(s+fluaj>1) xx=s+fluaj-1; a=a-xx; end;
popN(j,i)=a;
end;
end;
Abordarea genetică a problemei RISCMIN1M
else
%cu short selling
for j=1:n-1
r=unifrnd(0,1);
if(r<=pm)
gata=0;
while(~gata)
fluaj=normrnd(0,t/3);
if(fluaj>0) a=min([pop(j,i)+fluaj 1]);
else a=max([pop(j,i)+fluaj -1]); end;
s=sum(popN(1:n-1,i));
if((s+fluaj>=0)&&(s+fluaj<=2)) popN(j,i)=a; efectuat=1; gata=1; end;
end; end; end;end;
if(efectuat)
[val,V]=fobiectiv(Q,rmed,alpha,B,ro,Rp,popN(1:n-1,i)); popN(n,i)=-val;
end; end;
end
Abordarea genetică a problemei RISCMIN1M
 Selecţia părinţilor este realizată pe baza algoritmului SUS, prin utilizarea
distribuţiei de probabilitate de selecţie de tip rang liniar, cu presiunea de
selecţie s. Înaintea apelului, populația este sortată. La fiecare generaţie sunt
selectaţi dim părinţi.

function [parinti]=selectie_SUS_rang_l(pop,s)
[n,dim]=size(pop); p=rang_l(pop,s); q=zeros(dim,1);
for i=1:dim q(i)=sum(p(1:i)); end;
parinti=zeros(n,dim);
i=1;k=1;r=unifrnd(0,1/dim);
while(k<=dim)
while(r<=q(i))
parinti(1:n,k)=pop(1:n,i); r=r+1/dim; k=k+1;
end; i=i+1;
end;
end
Abordarea genetică a problemei RISCMIN1M

function [p]=rang_l(pop,s)
[~,dim]=size(pop);
p=zeros(1,dim);
for i=1:dim
p(i)=(2-s)/dim+(2*i*(s-1)/(dim*(dim+1)));
end;
end
Abordarea genetică a problemei RISCMIN1M
 Mecanismul de supravieţuire este elistist standard
function [rezultat]=selectie_generatie_urmatoare(pop,popN);
[n,dim]=size(pop); fob=pop(n,1:dim);
fobN=popN(n,1:dim); rezultat=popN;
[max1,i]=max(fob); [max2,j]=max(fobN);
if(max1>max2)
[min1,k]=min(fobN);
rezultat(1:n,k)=pop(1:n,i);
end;
end

 Condiția terminală: simulare pe un număr date de epoci


Exemplu - excluderea situaţiei de tip “short selling”
Evoluţia preţului unui portofoliu de 5 acţiuni pe perioada a 10 saptamani:

S1 S2 S3 S4 S5 S6 S7 S8 S9 S10

A1 1.2 1.3 1.4 1.5 1.1 1.2 1.1 1.0 1.0 1.1

A2 1.3 1.0 0.8 0.9 1.4 1.3 1.2 1.1 1.2 1.1

A3 0.9 1.1 1.0 1.1 1.1 1.3 1.2 1.1 1.0 1.1

A4 1.1 1.1 1.2 1.3 1.2 1.2 1.1 1.0 1.1 1.2

A5 0.8 0.75 0.65 0.75 0.8 0.9 1.0 1.1 1.1 1.2

Problema de rezolvat: determinarea portofoliului de risc minim pentru un


randament dat 𝑅𝑝 = 1.15%.
Rezolvarea RISCMIN1M prin tehnica celei mai
rapide descreşteri - excluderea situaţiei “short
selling”

𝑟 ≅ 1.19 1.13 1.09 1.15 0.905 𝑇

0.0249 − 0.0187 − 0.0011 0.0085 − 0.0219


−0.0187 0.0321 0.0033 − 0.0035 0.0099
𝑄≅ −0.0011 0.0033 0.0109 0.0015 0.0035
0.0085 − 0.0035 0.0015 0.0065 − 0.0058
−0.0219 0.0099 0.0035 − 0.0058 0.0307

 Pentru eroarea permisă 10−5 𝑛 ş𝑖 𝜌 = 100, rezultă


 portofoliul 𝑦 = 0.42 0.34 0.01 0.2 0.04
 riscul minim 𝑉 = 3.44 × 10−3
 randamentul ≅ 𝑅𝑝 , randamentul dat.
Rezolvarea GA a problemei RISCMIN1M -
excluderea situaţiei “short selling”
Exemplu – considerarea situaţiei de tip “short
selling”
 În cadrul acestui exemplu au fost folosite date reale, selectate de pe Bursa
de Valori din Londra, pe 20 de perioade de timp cuprinse între anii 2002 şi
2003. Vectorului medie a randamentelor şi a matricei de covarianţă 𝑄 sunt
disponibile în (Bartholomeu-Biggs, 2005) şi au următoarele valori,

𝑇
𝑟 ≅ −0.028 0.366 0.231 − 0.24 0.535

1.0256 − 0.4340 0.0202 − 0.1968 − 0.0311


−0.4340 1.1049 − 0.0783 0.2347 − 0.1776
𝑄≅ 0.0202 − 0.0783 0.4328 − 0.1236 − 0.1895
−0.1968 0.2347 − 0.1236 8.0762 1.0093
−0.0311 − 0.1776 − 0.1895 1.0093 2.9007
Exemplu – considerarea situaţiei de tip “short
selling”

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