Sunteți pe pagina 1din 25

Algoritmi genetici.

Operatorul de recombinare.
Distribuia de probabilitate de
selecie



Operatorul de recombinare
Recombinarea (ncruciarea) : procesul crerii de noi soluii candidat pe
baza informaiei coninute n dou (sau mai multe) soluii candidat prini

Este cel mai utilizat operator de variaie n GA

Este aplicat n manier probabilist, cu o probabilitate (rat) pc, setat n
general n intervalul 0.5,1 .

Rata de ncruciare, pc, corespunde ansei ca perechea de prini selectat
s fie supus operaiei de recombinare.

Procesul presupune selectarea a dou soluii candidat printe, generarea
aleatoare a unui numr din 0, 1 , r, i compararea lui cu rata de
recombinare, pc. Dac , indivizii noi sunt creai prin recombinarea
celor doi prini, n caz contrar sunt creai asexuat, prin duplicarea prinilor.

Recombinarea n reprezentarea binar
ncruciarea uni punct este primul operator propus pentru recombinare.
Recombinarea este aplicat cte unei perechi de cromozomi printe
1
,
1

i presupune efectuarea urmtoarelor operaii: selectarea aleatoare a unei
gene, poz, i obinerea progeniturile
2
,
2
astfel :
copiaz primele poz elemente din
1
, respectiv
1
n
2
, respectiv
2

copiaz n ultimele m-poz+1 poziii din
2
, respectiv
2
, ultimele m-poz+1
elementele din
1
, respectiv
1
, unde m este lungimea reprezentrii


Recombinarea n reprezentarea binar
ncruciarea multipunct este o extensie natural a operatorului de
recombinare uni punct. Recombinarea este aplicat cte unei perechi de
cromozomi printe
1
,
1
i presupune selectarea aleatoare a N gene i
obinerea progeniturile
2
,
2
prin copierea alternativ a secvenelor din
cromozomii fiecrui printe.

n figura urmtoare este reprezentat ncruciarea multipunct pentru situaia
= 2.


Recombinarea n reprezentarea binar.
Reprezentarea n numere ntregi
ncruciarea uniform este aplicat cte unei perechi de cromozomi printe

1
,
1
i presupune obinerea progeniturile
2
,
2
prin consultarea fiecrei
gene n mod independent i atribuirea valorii corespunztoare din gena
unuia dintre prini, ales aleator.

Fie m este dimensiunea reprezentrii prin iruri binare i p un parametru dat
(n general = 0.5). Pentru fiecare gen , 1 , este generat aleator,
din distribuia 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 ncruciare sunt similari celor
definii pentru reprezentarea prin iruri binare. O alt alegere, de exemplu
recombinarea aritmetic poate avea ca rezultat cromozomi care nu aparin
spaiului soluiilor fezabile (nu sunt iruri de numere ntregi).

Recombinarea n reprezentarea n numere reale
Recombinarea de tip discret este clasa operatorilor definii similar
reprezentrii prin iruri binare, o alel fiind un numr real. Acest tip de
ncruciare are dezavantajul c nu sunt obinute valori noi pentru genele
cromozomilor urmai, singurul operator care poate introduce valori noi ale
genelor rmnnd cel de mutaie.

Recombinarea aritmetic simpl este aplicat cte unei perechi de
cromozomi printe
1
,
1
i presupune obinerea progeniturile
2
,
2
prin
selectarea aleatoare a unei gene , 1 , i efectuarea operaiilor,
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 n reprezentarea n numere reale
Recombinarea aritmetic singular opereaz asupra unei perechi de
cromozomi printe
1
,
1
i determin obinerea cromozomilor
2
,
2
n
modul urmtor. Este selectat aleator o gen , 1 , i sunt efectuate
urmtoarele operaii:
copiaz primele i-1 elemente din
1
, respectiv
1
n
2
, respectiv
2


2
=
1
+ 1
1
;
2
=
1
+ 1
1

copiaz n ultimele m-i poziii din
2
, respectiv
2
, ultimele m-i elementele din
1
,
respectiv
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 n reprezentarea n numere reale
Recombinarea aritmetic total este descris astfel. Fie
1
,
1
o pereche
de cromozomi printe. Progeniturile
2
,
2
sunt obinute prin:

2
=
1
+ 1
1
;
2
=
1
+ 1
1
, 1

Evident, pentru = 0.5, cei doi cromozomi rezultai sunt identici.

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 permutri
Operatorul PMX (Partially Mapped Crossover).
1. Alege aleator
1
,
2
puncte de ncruciare,
2
=
1
, =
1
, ,
2

2. Calculeaz mulimea alelelor din secvena de gene
1
, ,
2
din cel de-al
doilea printe, 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
= (poziia lui b din cel de-al doilea printe).
3.1 Dac n poziia i din prima progenitur nu a fost plasat o valoare,
2
= .
3.2 n caz contrar, determin =
2
, cu
1
=
Dac poziia 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 secvenei
de gene
1
, ,
2
din ambii prini. Genele rmase fr valori n prima
progenitur sunt ocupate, n ordine, de alelele nc necopiate din cel de-al
doilea printe.

Operatorul PMX
Operatorul PMX

Recombinarea n reprezentarea prin permutri
Operatorul de recombinare de ordine (Order Crossover): probleme n care
spaiul genotipurilor este dat printr-un set de permutri semnificnd ordinea
apariiei unor evenimente.

Pas1. Alege aleator
1
,
2
puncte de ncruciare, efectueaz
2
=

1
, =
1
, ,
2


Pas2. Copiaz n
2
valorile din
1
care nu au fost deja copiate n
2
la
pasul 1, ncepnd cu gena
2
pn la gena m i apoi din poziia 1 n poziia

2
1

Cel de-al doilea copil este construit similar, plecnd de la secvena de alele
din cel de-al doilea printe i copiind restul elementelor din primul printe
similar procedeului descris pentru crearea primei progenituri.

Order Crossover
Recombinarea n reprezentarea prin permutri
Operatorul de recombinarea muchiilor (Edge Crossover): un cromozom
copil trebuie creat utiliznd exclusiv perechi de alele (muchii) prezente cel
puin ntr-unul dintre prini. Rezult un singur copil
Pas1. Construiete tabela de muchii astfel: pentru fiecare v, memoreaz
, lista alelelor a vecine cu v ntr-unul dintre prini; dac a i v sunt
vecine n ambii prini, atunci este memorat a+.
Pas2. Alege aleator o gen, i, i copiaz valoarea acesteia, v, n
cromozomul progenitur; .
REPET
Pas3. Determin , lista vecinilor elementului curent .
Pas4. Examineaz fiecare a nc necopiat n cromozomul urma.
Dac conine cel puin un a+, atunci selecteaz primul astfel de a
pentru copiere n cromozomul rezultat. Altfel, copiaz cu
= min

. . Valoarea copiat n cromozomul printe nu
va mai fi consultat ulterior: este eliminat din celelalte liste de adiacen.
Pas5. Dac = , este examinat pentru expandare cellalt capt al
cromozomului urma, altfel este ales aleator un nou element (o nou alel).
PN CND TOATE GENELE URMAULUI AU FOST COMPLETATE


Edge Crossover
Edge Crossover
Recombinarea n reprezentarea prin permutri
Operatorul recombinare ciclic (CX, Cycle Crossover): un cromozom copil
trebuie creat pstrnd ct mai bine posibil informaia relativ la poziia
absolut n care apare o valoare n cromozomii printe. Procedura de
generare a progeniturilor grupeaz elementele n cicluri. Dup partajarea
prinilor n cicluri, cromozomii rezultai sunt construii prin alegerea
alternativ a cte unui ciclu din fiecare printe.
Fie
1
,
1
o pereche de cromozomi printe,
2
,
2
progeniturile calculate
i m numrul genelor unui cromozom.

Ct timp nu au fost asignate toate alelele unui ciclu, execut
Pas1. Iniializeaz ciclul curent cu secvena vid, =
Pas2. Fie i prima gen din
1
nc neutilizat; 1 =
1
, =
Pas3. Calculeaz =
1

Pas4. Determin ,
1
=
Pas5. =
Pas6. Repet Pas3-Pas5 pn cnd
1
= 1.

CX
x1
y1
1 2 4 6 5 7 3 9 10 8
10 5 2 7 9 1 3 8 6 4
x1
y1
1 2 4 6 5 7 3 9 10 8
10 5 2 7 9 1 3 8 6 4
1 2 4 6 5 7 3 9 10 8
10 5 2 7 9 1 3 8 6 4
x1
y1
1 5 2 6 9 7 3 8 10 4
10 2 4 7 5 1 3 9 6 8
x2
y2
Rezult cromozomii:

1
= 10, 6, 7, 1

2
= 5, 9, 8, 4, 2

3
= 3
Recombinarea multipl
Operatorii de recombinare multipl - obinerea de progenituri prin utilizarea
n-tuplurilor de prini, > 2.

Sunt uor de implementat, dar, spre deosebire de recombinarea a doi
cromozomi printe, nu au echivalent biologic.

Din punct de vedere tehnic utilizarea recombinrii multiple poate amplifica
efectele ncrucirii. Clasificare:
bazai pe frecvena alelelor: de exemplu votul p-sexual, care generalizeaz
ncruciarea uniform;
bazai pe segmentarea i recombinarea secvenelor: ncruciarea
diagonal, care generalizeaz recombinarea multi-punct;
bazai pe operaii asupra alelelor numere reale n virgul fix: recombinarea
de tip baricentru, care generalizeaz operatorii de recombinare aritmetic.

n general creterea aritii operatorului de ncruciare de la 2 la n nu
garanteaz obinerea unor EA superiori ca performan
Determinarea distribuiei de probabilitate de selecie
Selecia proporional cu calitatea indivizilor : FPS
Principiul: pentru fiecare cromozom

, 1 , este calculat performana


sa, prin funcia de evaluare

. Probabilitatea de selectare a
individului

este

=1

Fie numrul de indivizi. Pentru fiecare individ

, 1 , numrul de
apariii n multisetul selectat este, n medie,


Inconveniente:
indivizii mult superiori restului populaiei vor domina ntreaga populaie ntr-un
timp relativ scurt - convergen prematur;
dac indivizii din populaie sunt astfel nct valorile funciei de evaluare sunt
comparabile, atunci nu exist aproape nici o constrngere de selecie; pe
parcursul evoluiei GA, cnd indivizii mai slabi dispar i ncepe s se instaleaz
procesul de convergen, performana indivizilor generaiei curente nu este
semnificativ mbuntit;
mecanismul se comport diferit pe versiuni translatate ale lui f (vezi exemplul de
la final)
Determinarea distribuiei de probabilitate de selecie
Variante ale FPS pentru eliminarea ultimelor dou inconveniente
mprire n ferestre: la fiecare moment t, pentru fiecare

, 1 , din
populaia curent

corespunztor fenotipului


unde

depinde de istoria recent (ultimele p generaii) a evoluiei GA.


O alegere frecvent: media mobil a calitii celui mai slab individ pe
parcursul ultimelor p generaii

=
1

min

=+1

Sigma-scalarea : care ncorporeaz informaiile medie de selecie i
respectiv deviaie standard de selecie n cadrul populaiei curente

,
,
,

=
1

,
,
2
=
1


,
, 0
unde c este un parametru dat (de obicei = 2).
Determinarea distribuiei de probabilitate de selecie
Selecia rangurilor
Procedura menine o valoare constant a constrngerii de selecie prin
sortarea cresctoare a indivizilor populaiei n funcie de valorile funciei
fitness i alocarea cte unei probabiliti de selecie fiecrui individ, n
funcie de rangul ocupat n irul sortat.

Forma liniar
1 < 2 este un parametru dat,

, 1 , cromozom al populaiei
curente sortate

, probabilitatea de selecie este setat liniar,

=
2

+
2 1
1
,

=

_

=1

n medie, un individ cu calitatea apropiat de media valorilor funciei de
evaluare, deci aflat la jumtatea irului ordonat, trebuie s aib, relativ la
ntreaga populaie, o ans de a se reproduce:
= 2, =

2
:

=
1
1


Determinarea distribuiei de probabilitate de selecie
Selecia rangurilor
Creterea constrngerii de selecie

O alt variant de stabilire a probabilitii de selecie corespunde situaiei n
care constrngerea de selecie trebuie s fie mai mare, n sensul c
probabilitatea de selecie a indivizilor cu calitatea peste medie trebuie s fie
semnificativ mai mare dect a celorlali. n acest caz este utilizat o
distribuie de tip exponenial:

=
1



unde este un parametru care asigur faptul c

=1
= 1

Determinarea distribuiei de probabilitate de selecie
Maximizarea funciei =
2
, cu 0,1,2, , 31 .

Un fenotip este reprezentat printr-un ir binar de lungime 5. Populaia este
generat aleator, din distribuia uniform pe 0,1,2, , 31 , cu dimensiunea 5.



Nr.
crt.
irul binar Calitatea FPS Rang liniar
s=1.5
Rang
exp.
1 0 1 1 0 0 144 0.0598 0.1200 0.0075
2 1 0 0 1 0 324 0.1344 0.1600 0.0280
3 1 0 1 1 0 484 0.2008 0.2000 0.0836
4 1 1 0 1 1 729 0.3025 0.2400 0.2349
5 1 1 0 1 1 729 0.3025 0.2800 0.6460
Determinarea distribuiei de probabilitate de selecie
Maximizarea funciei =
2
+1000, cu 0,1,2, , 31 .

Un fenotip este reprezentat printr-un ir binar de lungime 5. Populaia este
generat aleator, din distribuia uniform pe 0,1,2, , 31 , cu dimensiunea 5.



Nr.
crt.
irul binar Calitatea FPS Rang liniar
s=1.5
Rang
exp.
1 0 0 1 1 0 1036 0.1608 0.1200 0.0075
2 0 1 1 0 0 1144 0.1776 0.1600 0.0280
3 0 1 1 1 0 1196 0.1857 0.2000 0.0836
4 1 0 1 0 1 1441 0.2237 0.2400 0.2349
5 1 1 0 0 1 1625 0.2523 0.2800 0.6460

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