Sunteți pe pagina 1din 20

Operația de recombinare în GA.

Operatori de recombinare
I. ALGORITMI GENETICI (GA)
 Respectă structura unui EA
II. 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,
2. generează
3. if
3.1.
3.2. evaluează
else
4.1. recombinarea asexuată:
B. PROBLEME CU CONSTRÂNGERI – numărul copiilor rezultați depinde de
extragerile aleatoare (din ) care furnizează sau nu soluții fezabile

poz=1; ;
for i=1:K
1. generează aleator două poziții din B,
2. generează
3. if
3.1.
3.2. for j=1:2
if Admisibil(R(j))
; evaluează
else
3.1. recombinarea asexuată:
3.2. poz=poz+2

Criterii suplimentare pentru asigurarea unui număr predefinit de copii:


 repetă 3.1-3.2 până la obținerea a două soluții fezabile SAU
 dacă un copil nu este fezabil, propagă in unul din părinții lui
III Recombinarea în reprezentarea binară
 Încrucişarea uni punct este primul operator propus pentru recombinare.
 m lungimea unui cromozom, părinți  copii

 Algoritm:
 selectează aleator o genă, poz
 copiază primele poz elemente din , respectiv în , respectiv
 copiază în ultimele m-poz+1 poziţii din , respectiv , ultimele m-poz+1
elementele din , respectiv

 Încrucişarea multipunct  extensie naturală a operatorului de


recombinare uni punct. Sunt folosite mai multe puncte de încrucișare
Recombinarea uniformă în reprezentarea binară și
pe șiruri de numere întregi
 Încrucişarea uniformă  consultarea fiecărei gene în mod independent şi
atribuirea valorii corespunzătoare din gena unuia dintre părinţi, ales aleator.

 m lungimea unui cromozom, p dat (), părinți  copii

 Pentru fiecare genă


 Generează v.
 Dacă , atunci
 Altfel, copierea este inversă, .

 Recombinarea în reprezentări prin şiruri de numere întregi  similar


reprezentării prin şiruri binare. Alte alegeri (recombinarea aritmetică) pot
genera indivizi din afara domeniului (valori fracționare)
Recombinarea uniformă în reprezentarea binară și
pe șiruri de numere întregi
 X1=(0,1,1,1,0,0,1) m=7
 Y1=(1,1,0,0,0,1,0)
 P=(0.52,0.7,0.1,0.1,0.9,0.8,0.3)  7 valori in [0,1] generate aleator

 X2=(1,1,1,1,0,1,1)
 Y2=(0,1,0,0,0,0,0)

 Recombinarea în reprezentări prin şiruri de numere întregi  similar


reprezentării prin şiruri binare. Alte alegeri (recombinarea aritmetică) pot
genera indivizi din afara domeniului (valori fracționare)
Punct de încrucișare
 Unipunct
 1 poziție pp

Părinți
Părinți Descendenți
Descendenți

Puncte de încrucișare

 Multipunct
 n poziții p1 p2 p3

Părinți Descendenți

 Uniformă
 fiecare poziție
Părinți Descendenți
Recombinarea în reprezentarea în numere reale

 Recombinarea de tip discret  similară recombinării uniforme


 Dezavantaj: nu sunt obţinute valori noi pentru genele cromozomilor urmaşi.

m lungimea unui cromozom, , părinți  copii

 Recombinarea aritmetică simplă


 Algoritm: 0.3*5.8+(1-0.3)*3.5 = 4.19
 selectează aleator o genă
=0.3
 copiază primele i-1 elemente din , respectiv în , respectiv
1.4 2.5 0.1 5.8 3.4 9.1 4.5 6.2 7.3 3.0 1.4 2.5 0.1 4.19

pp m
m
4.5 6.1 3.6 3.5 2.4 5.3 1.2 5.7 8.2 1.3 4.5 6.1 3.6 5.11

Părinți
Părinți Descendenți
Descendenți

(1-0.3)*5.8+0.3*3.5 = 5.11
 Recombinarea aritmetică singulară
 Algoritm: 0.3*5.8+(1-0.3)*3.5 = 4.19
 selectează aleator o genă
=0.3
 copiază primele i-1, respectiv ultimele m-i elemente din , respectiv în ,
respectiv
1.4 2.5 0.1 5.8 3.4 9.1 4.5 6.2 7.3 3.0 1.4 2.5 0.1 3.4 9.1 4.5 6.2 7.3 3.0
pp
4.5 6.1 3.6 3.5 2.4 5.3 1.2 5.7 8.2 1.3 4.5 6.1 3.6 2.4 5.3 1.2 5.7 8.2 1.3

Părinți
Părinți Descendenți
Descendenți

(1-0.3)*5.8+0.3*3.5 = 5.11
 Recombinarea aritmetică totală
0.3*5.8+(1-0.3)*3.5 = 4.19
ߙ
ൌ Ͳ͵Ǥ͵
1.4 2.5 0.1 5.8 3.4 9.1 4.5 6.2 7.3 3.0

4.5 6.1 3.6 3.5 2.4 5.3 1.2 5.7 8.2 1.3

Părinți Descendenți

(1-0.3)*5.8+0.3*3.5 = 5.11
Operatorul PMX
 (Partially Mapped Crossover) –probleme cu dependență de adiacență

 , părinți  , copii
 1. puncte de încrucişare, în rest
 2.

 3. Plasare alele din A


 , plasează valoarea a în :
 , ; plasat=0
 Cât timp ~plasat
 Dacă , atunci și plasat=1

 Altfel c , determină cu i=j .

 4. Plasarea alele din afara lui A: genele rămase fără valori în prima
progenitură sunt ocupate, în ordine, de alelele încă necopiate din
Exemplul 1
m=10, p1=4, p2=7

5 3 2 4 10 1 8 9 6 7 22 4 10 1 8 5 7
pp11 pp22
6 1 9 7 8 2 5 3 10 4

Părinți
Părinți Descendent
Descendent

a=7, p=4, b=4


i=10, x2(10)=0  x2(10)=7
a=2, p=6, b=1
i=2, x2(2)=0  x2(2)=2
a=5, p=7, b=8
i=5, x2(5)=10 ≠ 0  i=9
i=9, x2(9)=0  x2(9)=5
Exemplul 2
m=8, p1=1, p2=4
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.

 cromozomi părinte, progeniturile calculate, lungime m

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 încă neutilizată;
 Pas3. Calculează
 Pas4. Determină
 Pas5.
 Pas6. Repetă Pas3-Pas5 până când .
xx11 1 2 4 6 5 7 3 9 10 8 xx11 1 2 4 6 5 7 3 9 10 8

xx22 10 5 2 7 9 1 3 8 6 4 xx22 10 5 2 7 9 1 3 8 6 4

C1: 10, 6, 7, 1 C2: 5, 9, 8, 4 ,2

x1 1 2 4 6 5 7 3 9 10 8 yy11 1 5 2 6 9 7 3 8 10 4

x2 10 5 2 7 9 1 3 8 6 4 yy22 10 2 4 7 5 1 3 9 6 8

C3: 3 Descendenți
Descendenți
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 puncte de încrucişare, efectuează

 Pas2. Copiază în valorile din care nu au fost deja copiate în la pasul 1,


începând cu gena până la gena m şi apoi din poziţia 1 în poziţia

 Cel de-al doilea copil este construit similar


 Exemplu
 m=10, p1=4, p2=7

5 3 2 4 10 1 8 9 6 7 4 10 1 8
pp11 pp22
6 1 9 7 8 2 5 3 10 4

Părinți
Părinți Descendent
Descendent

 Al doilea descendent: (4,10,1,7,8,2,5,9,6,3)


Recombinarea multiplă
 Operatorii de recombinare multiplă - obţinerea de progenituri prin utilizarea
n-tuplurilor de părinţi, .

 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ţă
Referințe curs

 Referințe
 Manual
 capitolul 3.4

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