Sunteți pe pagina 1din 12

Capitolul 3

Calcul evolutiv. Algoritmi genetici



3.1. Consideraii generale

n inteligena artificial ndeplinirea oricrei sarcini abstracte
este asociat cu rezolvarea unei probleme care, la rndul ei, este gndit
ca o cutare n spaiul soluiilor posibile numit spaiul strilor
problemei. n cazul n care cutarea soluiei este ghidat de o funcie de
performan atunci avem un proces de optimizare n care suntem
interesai de cea mai bun soluie.
Pentru problemele de mare complexitate gsirea soluiei optime
sau a uneia acceptabile este dificil de realizat cu ajutorul tehnicilor
clasice deoarece acestea fie nu pot fi aplicate, fie necesit un timp de
calcul foarte mare. Calculul evoluionist sau evolutiv CE, inspirat din
legile evoluiei naturale a speciilor, constituie o alternativ pentru
rezolvarea unor astfel de probleme.
n cursul evoluiei, organismele vii sunt confruntate cu problema
adaptrii la un mediu n continu micare i, n general, ostil. n acest
proces de adaptare fiecare individ nva, iar cunoaterea pe care a
dobndit-o este codificat n cromozomii speciei. Dei codificarea i
decodificarea informaiei genetice la nivelul cromozomilor nu este pe
deplin elucidat, n continuare sunt prezentate, din perspectiva calculului
evolutiv, cteva dintre caracteristicile eseniale ale procesului de
evoluie genetic i anume:
(i) Cromozomii sunt purttorii informaiei genetice;
(ii) Fiecare individ al unei specii posed un numr determinat de
cromozomi a cror totalitate reprezint genotipul su;
(iii) Cromozomii sunt structuri liniare alctuite din gene. Acestea
poart caracteristicile ereditare ale indivizilor. O gen
controleaz una sau mai multe caracteristici. Genele unei
caracteristici ocup locuri bine determinate n cromozom,
numite loci. O gen se poate afla n mai multe stri, numite
alele, care desemneaz valori ale caracteristicii controlate.
De exemplu, valorile posibile pentru gena ce codific
trstura culoarea prului sunt blond, brunet, rocat
sau aten.
(iv) Evoluia este un proces ce opereaz la nivelul cromozomilor;
(v) Selecia natural reprezint legtura dintre cromozomi i
performanele indivizilor n sensul c procesul seleciei
naturale favorizeaz reproducerea acelor cromozomi ce
codific structuri performante, de succes;
(vi) Evoluia se realizeaz n procesul reproducerii sub aciunea
seleciei, recombinrii materialului genetic i mutaiei.
Tehnicile de calcul evolutiv TCE , numite i inteligen
computaional IC sau calcul uor - CU , sunt metode stocastice de
cutare multi-dimensional care simuleaz evoluia biologic. n
conformitate cu legile evoluiei naturale, ele modeleaz adaptarea unei
populaii de indivizi, fiecare individ n parte reprezentnd o soluie
posibil a problemei de rezolvat, n sensul creterii performanelor n
raport cu funcia obiectiv.
Interesul pentru aceste tehnici a crescut foarte repede, deoarece
ele ofer un mecanism foarte robust de cutare a soluiei optime. Cele
mai cunoscute tehnici de calcul evolutiv sunt:
algoritmii genetici AG;
strategiile evolutive SE;
programarea evolutiv PE;
programarea genetic PG;
sistemele de clasificare SE.

Ciclul de baz al unei proceduri de calculul evolutiv este
prezentat figura 3.1. La nceputul procesului de calcul se genereaz, n
mod aleator, un numr prestabilit de indivizi care alctuiesc populaia
iniial (0) P i se iniializeaz populaia curent ( ) (0) P t P . n
continuare, fiecare individ din populaia curent ( ) P t este evaluat n
raport cu funcia obiectiv. Dac nu a fost atins obiectivul propus, se
genereaz o nou populaie ( 1) P t + . n acest sens, din populaia curent
se selecteaz indivizii care s-au adaptat cel mai bine necesitilor
problemei de soluionat. Indivizii astfel selecionai alctuiesc o
populaie intermediar asupra creia se aplic operatorii genetici
(recombinare, mutaie, inversiune etc) pentru a genera urmaii. Procesul
ciclic este repetat pn n momentul atingerii optimului funciei obiectiv
sau pn cnd se atinge un numr prestabilit de generaii.

Generare
popula ie
ini ial


Evaluare
func ie
obiectiv

S-a atins
criteriul de
optimizare?
Cei mai
buni
indivizi
Selecie Selec ie
Recombinare
Muta ie
Da
Nu
Rezultate Start
Generare
popula ie
nou



Fig. 3.1. Structura unui algoritm bazat pe calculul evolutiv

Conform celor prezentate, structura general a unei proceduri de
calcul evolutiv cuprinde urmtorii pai:
P1. Iniializeaz 0 t = ;
P2 Genereaz populaia iniial ( ) (0) P t P
P3 Evaluaeaz ( ) P t ;
P4 Repet atta timp ct (not COND_OPRIRE)
P4.1. Stabilete 1 t t + ;
P4.2. Selecia : selecteaz populaia intermediar
1
( ) P t din
populaia anterioar ( 1) P t
P4.3. Recombinarea: aplic procesul de recombinarea
asupra lui
1
( ) P t i rezult o nou
populaie intermediar
2
( ) P t ;
P4.4. Mutaia: aplic procesul de mutaie asupra lui
2
( ) P t i
rezult noua populaie ( ) P t ;
P4.5. Evaluare: evalueaz ( ) P t ;
Sfrit ciclu iterativ.

Pentru a rezolva o problem folosind o procedur de calcul
evolutiv sunt necesare urmtoarele elemente:
O modalitate de reprezentare genetic a spaiului de cutare
(spaiul strilor problemei sau spaiul soluiilor posibile). n
cazul problemelor de optimizarea a unor funcii de una sau
mai multe variabile reale, pentru reprezentarea indivizilor /
cromozomilor se utilizeaz fie codificarea binar fie
codificarea real.
O procedur de creare a populaiei iniiale de indivizi
(soluiile candidat). De regul populaia iniial este creat n
mod aleator. Exist i abordri n care soluiile iniiale sunt
obinute cu o euristic i apoi supuse evoluiei cu o
procedur de calcul evolutiv.
O funcie de evaluare a performanei fiecrui individ.
Funcie de evaluare joac rolul mediului i este utilizat
pentru a cuantifica calitatea indivizilor n termeni de
potrivire / acomodare n raport cu scopul urmrit. Ea este
utilizat n literatura de specialitate sub diverse denumiri,
cele mai cunoscute fiind funcie de performan, funcie de
adecvare sau funcia de fitness.
O metod sau schem de selectare a indivizilor /
cromozomilor pentru recombinare (reproducere) i
modificare.
Operatori genetici pentru crearea de noi indivizi /
cromozomi (reproducere, mutaie, inversiune etc.)
Valorile parametrilor ce definesc procedura de calcul
evolutiv ca de exemplu dimensiunea populaiei, numrul
total de generaii, probabilitile de aplicare a diverilor
operatori genetici etc.

n cadrul cursului vor fi abordate aspecte privind algoritmii
genetici.

3.2. Algoritmi genetici

Algoritmii genetici (AG) sunt procedee de cutare i optimizare bazate
pe mecanismele geneticii i seleciei naturale. Ei combin
supravieuirea artificial a celui mai bun individ cu operatorii genetici
care sunt abstractizri ale celor din natur, n scopul formrii unui
mecanism robust, aplicabil unei largi game de probleme.
Algoritmii genetici i, n general, tehnicile de calcul evolutiv, au fost
aplicate cu succes ntr-un numr mare de probleme. Dintre argumentele
care au condus la extinderea utilizrii algoritmilor genetici se
menioneaz urmtoarele:
a) sunt uor de folosit i necesit un suport matematic puin
complex, orientat spre intuiie;
b) rezolv probleme dificile ce nu pot fi rezolvate prin metode
clasice;
c) sunt uor de extins i pot fi aplicai pentru o gam larg de
probleme;
d) portabilitatea se pot pstra unele subrutine de la un program
la altul.
La nivel general, algoritmii genetici simuleaz evoluia unei specii vii,
plasat ntr-un mediu ambiant ostil, n virtutea principiului darwinist al
luptei pentru existen prin selecie natural i motenire ereditar. n
aceti algoritmi, o populaie de indivizi (soluii posibile) sufer o serie
de transformri. Luptnd pentru supravieuire, indivizii se selecteaz
dup o schem probabilist care ofer anse tuturor. Desigur indivizii
cei mai performani au anse mai mari de a supravieui n noua
generaie. Dinamica procesului de cutare generat de un algoritm
genetic se realizeaz prin combinarea i modificarea indivizilor /
cromozomilor. Scopul urmrit este gsirea combinaiei ce corespunde
adecvrii maxime, adic a combinaiei optime. La fiecare iteraie
algoritmul creeaz o nou populuaie, numit generaie, constituit din
acelai numr de indivizi ca i generaiile anterioare. n general, noua
generaie conine indivizi mai performani, adic mai bine adaptai la
mediul reprezentat de funcia de adecvare / adaptare. n aceste condiii,
pe msur ce generaiile se succed este de ateptat s se nregistreze o a
indivizilor ctre optimul global al funciei de adecvare.
Obinerea unei noi generaii ( 1) P t + pornind de la generaia actual
reprezentat de populaia ( ) P t se realizeaz n trei etape succesive:
Etapa 1 Evaluarea. n cadrul acestei etape AG calculeaz
valoarea funciei de performan pentru
fiecare individ al generaiei / populaiei
actuale.
Etapa 2 Selecia. Algoritmul genetic selecioneaz din
generaia actual, pe baza
performanelor, indivizii care vor devenii
prinii noii generaii. Acetia alctuiesc
o populaie intermediar
1
( ) P t .
Etapa 3 Combinarea i modificarea. n aceast ultim etap
AG combin i modific indivizii
selecionai (indivizii populaiei
1
( ) P t )
folosind operatori genetici de tipul
ncruciare, mutaie, inversiune etc. Din
punct de vedere algoritmic, aceti
operatori reprezint metode de a combina
soluiile (ncruciarea) i de schimbare
local a acestor soluii (mutaia i
inversiunea) reprezentate de prini.
Fiecare operator genetic se aplic cu o
anumit probabilitate. Aceste
probabiliti constituie o pate dintre
parametrii algoritmului genetic.
Structura unui algoritm genetic este aceiai cu cea a unei proceduri
evolutive. Cromozomii utilizai au o lungime constant iar numrul de
indivizi n fiecare generaie este constant. Pentru a crea o nou generaie
se utilizeaz operatorii de selecie, ncruciare i mutaie conform
urmtorului algoritm.

P1. Iniializeaz 0 t = ;
P2 Genereaz n mod aleator populaia iniial ( ) (0) P t P
P3 Evaluaeaz ( ) P t folosind funcia de performan;
P4 Repet atta timp ct (not COND_OPRIRE)
P4.1. Selecia Selecteaz din populaia curent ( ) P t
indivizii care vor contribui la formarea
generaiei urmtoare folosind un operator de
selecie (de exemplu selecia proporional).
Indivizii selectai alctuiesc o populaie
intermediar
1
( ) P t .
P4.2. Combinarea i modificarea Se aplic asupra
indivizilor din
1
( ) P t operatorii de ncruciare
i mutaie rezultnd o nou populaie
intermediar
2
( ) P t (descendenii populaiei
curente ( ) P t );
P4.3. Creaz noua generaie n populaia intermediar
1
( ) P t
indivizii utilizai n procesele de ncruciare
i mutaie sunt nlocuii cu descendenii lor
(indivizii care alctuiesc populaia
intermediar
2
( ) P t ). Populaia
3
( ) P t rezultat
va constitui noua generaie.
P4.4. Stabilete 1 t t + i
3
( ) ( ) P t P t ;
P4.5. Evaluare Evalueaz noua generaie ( ) P t ;
Sfrit ciclu iterativ.

Observaii:
(i) De obicei, condiia de oprire COND_OPRIRE se refer la
atingerea numrului maxim de generaii specificat ca
parametru al algoritmului genetic. Dac acest numr este
MAX_GEN, atunci condiia de oprire este _ t MAX GEN > .
(ii) Se admite c rezultatul algoritmului este codificat de cel mai
performant individ al ultimei generaii. n realitate, nu avem
nici o garanie c un individ mai performant nu a fost obinut
ntr-o generaie anterioar. Din acest motiv, pentru a ne
asigura c cea mai bun soluie nu s-a pierdut pe parcurs, la
fiecare pas se va reine i cel mai bun individ care a fost
generat pn atunci.
(iii) Sunt posibile i alte variante de supravieuire. De exemplu,
putem considera c cei mai performani
p
n indivizi din
generaia curent ( ) P t vor fi inclui n mod automat n
generaia urmtoare putnd participa i la procesele de
combinare i modificare.
3.2.1. Reprezentarea cromozomial
Dup cum s-a specificat anterior, cromozomii sunt iruri de gene, care
codific informaia necesar rezolvrii problemei. Primii algoritmi
genetici, denumii i algoritmi genetici standard, au utilizat codificarea
cromozomilor sub form binar. Ulterior au fost dezvoltai i AG cu
codificare n numere reale, cunoscui sub denumirea de AG hibrizi.
Codificarea binar
n codificarea binar, fiecare cromozom / individ al populaiei este
reprezentat printr-un ir de cifre binare, adic printr-un ir constituit din
0 sau 1. Trebuie menionat faptul c n acest caz metoda de codificare
trebuie nsoit n mod obligatoriu de o metod complementar de
decodificare.
n cazul utilizrii AG n optimizarea numeric care se refer la
minimizarea sau maximizarea unei funcii reale prin alegerea valorilor
variabilelor reale dintr-o mulime permis, este necesar stabilirea unei
metode de codificare, respectiv decodificare a numerelor reale. n acest
sens este necesar specificarea preciziei soluiilor q , adic a numrului
dorit de zecimale exacte. De exemplu, dac se dorete o precizie de ase
zecimale, atunci
6
10 q

= .
Fie
min max
[ , ] x x x . Pentru a codifica binar valoarea x cu o
precizie dat q, mai nti se procedeaz la discretizarea intervalului
min max
[ , ] x x prin mprirea acestuia n intervale de lungime fix. n acest
sens, pentru nceput se consider valoarea maxim a intervalului de
eantionare x q = i se genereaz irul de valori reale discrete:

0 min
1 min
min
max min
0
1
.....
.....
k
n
x x x
x x x
x x k x
x x x n x
= +
= +
= +
= = +
(3.1)
din care rezult c numrul minim de valori discrete reprezentate exact
cu precizia q este:

max min max min
x x x x
n
x q

= =

(3.2)
n continuare se aplic lui x o transformarea liniar prin care se
ataeaz fiecrui numr real din intervalul
min max
[ , ] x x un numr ntreg z
care reprezint, de exemplu, indicele termenilor irului definit de relaia
(3.1) , adic:

min min
max min max min
x x z z
x x z z

=

(3.3)
Alegnd
min
0 z = , din relaia (3.3) rezult:

min
max
max min
x x
z z
x x

(3.4)
respectiv

max min
min
max
x x
x x z
z

= + (3.5)
Pentru codificare, se reprezint numrul ntreg z, obinut cu
relaia (3.4), n baza 2. n acest sens, este necesar s se determine
numrul de bii necesari reprezentrii irului de valori
0 1 max
, ,... z z z corespunztor unei precizii date q.
Dac m este numrul de bii utilizai pentru codificarea binar,
atunci valoarea maxim ntreag care poate fi reprezentat este cea
corespunztoare cazului n care toi biii sunt egali cu 1, adic:

0 1 1
2 1
1 2 1 2 ...1 2 2 1
2 1
m
m m

+ + = =

(3.6)
(suma progresiei geometrice avnd primul termen 1 i raia egal cu 2).
Prin urmare, trebuie determinat cel mai mic numrul ntreg m care s
permit reprezentarea lui
max
z n baza 2. innd cont c
max
z trebuie s
fie cel puin egal cu numrul minim de valori discrete reprezentate exact
(n din relaiile (3.1)), rezult o prim condiie pe care trebuie s o
satisfac m:
max
n z adic

max min
2 1
m
x x
q

(3.7)
Pentru a ne asigura c m este cel mai mic ntreg cutat, trebuie
ca valoarea maxim ntreag reprezentat printr-un ir de bii cu lungime
1 m s fie mai mic dect n, adic

1 max min
2 1
m
x x
n
q


= (3.8)
Din relaiile (3.7) i (3.8) rezult c lungimea cromozomului
utilizat pentru reprezentarea numrului real x cu precizia q este ntregul
care satisface dubla inegalitate:


1 max min
2 1 2 1
m m
x x
q


(3.9)

Exemplu: Se consider c se dorete utilizarea unui AG pentru
determinarea maximului funciei de dou variabile reale

1 2 1 1 2 2
( , ) 21.5 sin(4 ) sin(20 ) f x x x x x x = + +
n domeniul definit de
1
3.0 12.1 x i
2
4.1 5.8 x , cu o precizie
de 4 zecimale exacte pentru fiecare variabil.
n condiiile date
4
10 q

= , iar numrul minim de valori discrete
este
1 4
12.1 3.0
151000
10
x
n

= = , respectiv
2 4
5.8 4.1
17000
10
x
n

= =
Deoarece
17 18
2 1 151000 2 1 < < , iar
14 15
2 1 17000 2 1 < < rezult c
pentru reprezentarea variabilei
1
x se vor utiliza iruri de 18 bii, iar
pentru reprezentarea variabilei
2
x iruri de 15 bii. Prin urmare, un
individ va avea 33 de bii.
Codificarea binar este cea mai obinuit schem de codificare,
fiind simplu de creat i utilizat. Ea confer robustee algoritmilor
genetici permind obinerea unor performane bune pentru diferite clase
de probleme, precum i stabilirea unor rezultate teoretice importante,
cum ar fi teorema schemelor.
Codificarea real
Dei reprezentarea binar poate fi utilizat pentru a reprezenta
aproape orice situaie, iar operatorii nu includ cunotine despre
domeniul problemei, n anumite situaii este mai adecvat utilizarea unei
codificri naturale a problemei, numit i codificare speific. Astfel,
n cazul optimizrii numerice, cnd variabilele iau valori ntr-un
domeniu continuu din R, cea mai natural reprezentare este codificarea
n numere reale. Ea nu mai reclam transformri dintr-o baz n alta,
este conceptual adecvat spaiului soluiilor problemei i permite
implementarea eficient a operatorilor genetici.
n codificarea real fiecare gen este reprezentat printr-un
numr real
i
x R , iar fiecare cromozom printr-un vector
1
[ ,... ,..., ]
n
i n
x x x R = X . Dimensiunea cromozomilor este constant i
egal cu dimensiunea vectorului soluie din spaiul strilor problemei.
Observaie: n timp ce operatorul de selecie nu depinde de tipul
codificrii utilizate, operatorii de recombinare (ncruciare) i mutaie
sunt specifici modului de codificare utilizat.

3.2.2. Operatorul de selecie.

Selecia este cel mai important operator al algoritmilor genetici
i are rol hotrtor n dirijarea procesului de cutare din spaiul
soluiilor. Scopul operatorului de selecie este de a asigura mai multe
anse de reproducere celor mai performani indivizi din cadrul unei
populaii date. Prin urmare, pentru a implementa acest operator este
necesar definirea unei msuri a performanei indivizilor, adic definirea
unei funcii de evaluarea a performanei sau adecvrii fiecrui individ,
numit n continuare funcie de performan. Dac, pentru o problem i
o codificare date, este mulimea tuturor indivizilor/cromozomilor
posibili, atunci funcia de performan este o funcie : f R care
satisface cerinele:
(i) f trebuie s fie pozitiv, adic ( ) 0 f X X
(ii) f trebuie s reflecte calitatea cromozomilor n sensul
optimizrii funciei obiectiv.
Prin urmare, performana unui individ
i
X al populaiei curente
1
( ) { ,... ,..., }
i n
P t X X X = este:
( )
i i
P f X = (3.10)
Deoarece prin selecie se urmrete maximizarea performanei
indivizilor, cutarea se concentreaz n regiunile spaiului soluiilor ce
corespund adecvrii maxime, realizndu-se astfel exploatarea celor mai
bune soluii.
n literatura de specialitate exist o mare diversitate de metode
de selecie dintre care cele mai cunoscute sunt: selecia proporional
sau metoda roii de rulet, selecia prin trunchiere sau selecia bazat
pe ordonare, selecia competiional sau selecia prin concurs (turnir)
i selecia local.



Selecia proporional

Metoda seleciei proporionale este cea mai utilizat metod de
selecie. Ea este inspirat din roata de rulet cunoscut din jocurile de
noroc i a fost dezvoltat odat cu primele versiuni ale AG.
Se definete probabilitatea de selecie a individului
i
X ca fiind
performana normalizat a acestuia, adic:

( )
i i
i
P f X
p
S S
= = (3.11)
n care:

1 1
( )
n n
i i
i i
S P f X
= =
= =

(3.12)
este performana total a populaiei.
Deoarece operatorul de selecie se aplic de n ori asupra
populaiei curente
1
( ) { ,... ,..., }
i n
P t X X X = , constituit din n
indivizi/cromozomi, rezult c valoarea medie a numrului
descendenilor individului
i
X este:

1 1
( ) ( )
1
( ) ( )
i i i i
i i
n n
m
i i
i i
P f X f X P
n np n n
S S
f X f X
n
= =
= = = = =

(3.13)
n care
m
S este performana medie a populaiei.
Pentru a realiza selecia individului
i
X cu o probabilitate
i
p se
poate utiliza o metod de tip Monte Carlo. n acest sens, se construiete
o rulet avnd n sectoare, fiecare sector corespunznd unui individ al
populaiei. Spre deosebire de ruleta clasic care are aceiai dimensiune a
sectoarelor, de aceast dat dimensiunea unui sector i este direct
proporional cu probabilitate de selecie
i
p a individului
i
X . Prin
urmare, pentru a construi ruleta se calculeaz sumele pariale

1
i
i k
k
q p
=
=

(3.14)
Ruleta este rotit de n ori. La fiecare rotire este selectat un individ care
este copiat n populaia intermediar
1
( ) P t .
Algoritmul seleciei bazat pe principiul ruletei este urmtorul:
P1. Se calculeaz performana
i
P a fiecrui individ i performana
total a populaiei folosind relaiile (3.10) i (3.12)
P2. Pentru fiecare individ al populaiei curente se calculeaz
probabilitatea de selecie (performana normalizat)
i
p i suma
parial
i
q folosind relaiile (3.11) i (3.14).
P3. Repet de n ori
P3.1. Genereaz un numr aleator [0,1]
s
r
P3.2. Efectueaz selecia conform urmtoarei reguli:
DAC
1
0
s
r q selecteaz individul
1
X .
DAC
1 i s i
q r q

selecteaz individul
i
X .

Exemplu. Se consider o populaie format din 10 indivizi, avnd
performanele prezentate n coloana 2 din tabelul 3.1. Performana
total a populaiei este egal cu 155. Rezult valorile performanelor
normalizate, adic probabilitile de selecie pentru fiecare individ i
sumele pariale normalizate din coloanele 3 i 4 ale tabelului 3.1. Dac
se nmulete coloana 3 cu 10, atunci rezult numrul mediu de copii
pentru fiecare individ din coloana 5 a tabelului 3.1.
Pe baza datelor prezentate n tabelul 3.1. se construiete ruleta din figura
3.2. Se observ c cea mai mare ans de a fi selectat prin mecanismul
ruletei o are individul 8 urmat de indivizii 9 i 10, n timp ce cea mai
mic ans o are individul 1. Dac, de exemplu, n urma generrii unui
numr aleator (o nvrtire a ruletei) rezult valoarea 0,125
s
r = , atunci va
fi selectat individul 3 deoarece
2 3
0, 096 0,125 0, 205
s
q r q = < = < = .
Tabelul 3.1. Exemplu de populaie
Individ
ul
Performan
a
Performana
normalizat
Suma
parial
normalizat
Numrul
mediu de
copii
1 3 0,019 0,019 0,19
2 12 0,077 0,096 0,77
3 17 0,109 0,205 1,09
4 7 0,045 0,250 0,45
5 9 0,058 0,308 0,58
6 11 0,070 0,378 0,70
7 13 0,083 0,461 0,83
8 42 0,270 0,731 2,70
9 23 0,148 0,879 1,48
10 18 0,116 1,00 1,16
1
2
3
4
5
6
7
8
9
10
1 2 3 4 5 6 7 8 9 10


Fig. 3.2. Exemplu de rulet pentru o populaie de 10 indivizi

3.2.3. Operatorul de recombinare.

n cadrul unui AG operatorul de selecie este utilizat pentru a
concentra cutarea n cele mai promitoare regiuni ale spaiului strilor.
El singur nu poate s introduc n populaie noi indivizi. Prin urmare,
sunt necesari ali operatori care, genernd noi indivizi, asigur
explorarea zonelor nvecinate zonei ce conine populaia curent. Dintre
aceti operatori, cei mai utilizai sunt operatorii recombinare i mutaie.
Operatorul de recombinare, denumit i operator de ncruciare
sau crossover operator n terminologia englezeasc, permite generarea
de noi indivizi printr-un proces de ncruciare ntre indivizii populaiei
intermediare rezultat prin selecie, proces care imit ncruciarea
natural. De regul se utilizeaz o procedur de ncruciare de tipul (2-
2), adic din doi prini se vor obine doi descendeni. ncruciarea
realizeaz un schimb de informaie ntre cei doi prini i, prin urmare,
descendenii obinui vor moteni caracteristici ale ambilor prini.
Se precizeaz faptul c nu toi indivizii din populaia
intermediar
1
( ) P t , rezultat n urma seleciei, vor participa la procesul
de ncruciare. Operatorul de ncruciare se aplic asupra indivizilor din
1
( ) P t cu o anumit probabilitate
r
p , numit probabilitatea de
recombinare sau probabilitatea de ncruciare, care constituie unul
dintre parametrii importani ai unui AG. Dac n=dim_pop este
dimensiunea populaiei asupra creia acioneaz AG, deci i
dimensiunea populaiei intermediare, atunci rezult c numrul mediu al
cromozomilor reinui pentru recombinare/ncruciare va fi:
_ _
med
r r r
n n p dim pop p dim pop = = < (3.15)
n contextul celor prezentate, rezult c prima etap din cadrul
procesului de recombinare o constituie selecia indivizilor din populaia
intermediar
1
( ) P t i formarea perechilor pentru ncruciare. Acest
proces se realizeaz conform urmtorului algoritm:

P1. Pentru fiecare individ din
1
( ) P t se execut:
P1.1. Genereaz un numr aleator [0,1]
r
r
P1.2. Dac
r r
r p < , atunci individul este reinut pentru
ncruciare
P2. Fie
r
n numrul indivizilor reinui n pasul P1. Dac
r
n este un
numr impar atunci fie se adaug un nou individ, fie se terge un
individ deja selectat. Pentru adugare sau tergere se opteaz n
mod aleator, genernd un numr aleator suplimentar. Cu
indivizii astfel selectai se formeaz, n mod aleator,
*
2
r
n
perechi, n care
*
r
n este numrul indivizilor reinui dup
aplicare procesului de ajustare prezentat anterior.
Observaie: Probabilitatea de ncruciare are valori de ordinul
1
10

situate, n mod uzual, n intervalul [0.2, 0.95] .


Perechile generate conform algoritmului prezentat sunt supuse
procesului de ncruciare. Combinarea materialului genetic a doi
cromozomi se poate efectua n diverse moduri pentru fiecare dintre
metodele de codificare binar sau real.
Metode de recombinare n cazul codificrii binare
Fie m lungimea cromozomilor unei populaii rezultat n urma
procesului de codificare binar cu o precizie dat. Un punct de tietur
este un numr ntreg {1, 2,..., 1} p m care indic poziia din interiorul
cromozomilor unde secvena cromozomial se rupe pentru a genera
segmentele care se vor recombina. Recombinarea se poate realiza ntr-
un punct sau n mai multe puncte de tietura.
(i) ncruciarea cu un singur punct de tietur
n acest caz se alege aleator o poziie de ncruciare p n intervalul [1, m-
1], unde m este lungimea cromozomilor. Astfel, urmaul 1 va motenii
primele p gene de la individul 1 i ultimele m p gene de la individul 2,
n timp ce urmaul 2 va motenii primele p gene de la individul 2 i
ultimele m p gene de la individul 1. Acest mecanism de ncruciare
este ilustrat n figura 3.3.
P rinte 1
P rinte 2
Urma 1
Urma 2
p gene N-p gene N-p gene p gene

Fig. 3.3. ncruciarea cu un singur punct de tietur.
Pentru a exemplifica aceast metod de recombinare, se consider doi
indivizi caracterizai de un cromozom de lungime 11:
Individul 1 0 1 1 1 0 0 1 1 0 1 0
Individul 2 1 0 1 0 1 1 0 0 1 0 1
Dac punctul de ncruciare este 5, atunci urmaii generai vor fi:
Urmaul 1 0 1 1 1 0 1 0 0 1 0 1
Urmaul 2 1 0 1 0 1 0 1 1 0 1 0
(ii) ncruciarea cu mai multe puncte de tietur
ncruciarea cu mai multe puncte de tietur reprezint o generalizare a
ncrucirii cu un singur punct de tietur. n acest caz vor fi generate k
puncte de tietur
1 2 k
p p p < < n intervalul [1, m-1]. Apoi segmentele
dintre dou puncte succesive de tietur sunt interschimbate ntre cei doi
prini pentru a obine cei doi urmai. Acest mecanism de ncruciare
este prezentat schematic n figura 3.4.
P rinte 1
P rinte 2
Urma 1
Urma 2

Fig. 3.3. ncruciare n mai multe puncte.
Pentru exemplificare se consider exemplul prezentat n paragraful anterior:
Individul 1 0 1 1 1 0 0 1 1 0 1 0
Individul 2 1 0 1 0 1 1 0 0 1 0 1
Dac 3 m = i cele trei puncte de ncruciare sunt
1 2 3
2 6 10 p p p = < = < = ,
atunci urmaii generai vor fi:
Urmaul 1 0 1 1 0 1 1 0 1 1 1 1
Urmaul 2 1 0 1 1 0 0 0 0 1 0 0

(iii) ncruciarea uniform
Este un operator pentru codificarea binar care specific
proveniena pentru fiecare gen a urmaului (de la ce printe s-a
motenit fiecare gen). Acest principiu face posibil ncruciarea la nivel
de gen i nu la nivel de segment, ca n cazurile precedente. Gradul de
amestecare a genelor este dat de un parametru subunitar (uzual egal cu
0,5) numit rat de ncruciare.
Pentru fiecare se genereaz o masc (de lungime egal cu numrul de
gene din cromozom) dup care se va ghida procesul de copiere a genelor
n cromozomul urmailor. Aceast masc este format tot din valori
binare, avnd ns urmtoarea semnificaie: dac valoarea de pe poziia
k din masca primului printe este 1, atunci gena de rang k este copiat n
cromozomul urmaului 1, pe poziia k, iar gena de rang k din urmaul 2
va lua valoarea genei corespunztoare din printele 2. Altfel, pentru
valoarea 0, se procedeaz dual. Reiese natural c mtile sunt
complementare (una este negaia celeilalte).
Metode de recombinare n cazul codificrii reale
n cazul codificrii reale operatorul de ncruciare cu unul sau mai
multe puncte de tietur nu mai este adecvat el ne putnd realiza
cutarea n raport cu fiecare variabil. Aceast cutare ar rmne
exclusiv n sarcina operatorului de mutaie. Din acest motiv s-au definit
operatori de ncruciare/recombinare specifici codificrii reale care pot
fi de tipul (2 2) n care doi prini dau natere la doi
urmai/descendeni sau de tipul (2 1) n care doi prini dau natere
unui singur urma/descendent.
(i) ncruciarea discret
Este un operator de ncruciare pentru codificarea real prin care
doi prini genereaz doi urmai sau descendeni. El este asemntor cu
operatorul de ncruciare uniform n sensul c specific, cu o
probabilitate dat
g
p egal, de regul, cu 0.5, de la ce printe motenesc
urmaii fiecare gen.
O variant de implementare a acestui operator este urmtoarea:
P1. Pentru fiecare gen 1, 2,..., i n = se genereaz un numr
aleator [0,1]
g
r .
P2. Dac
g g
r p < atunci primul urma primete gena i de la
primul printe, iar al doilea urma primete gena i de la al
doilea printe.
P3. Dac
g g
r p atunci primul urma primete gena i de la al
doilea printe, iar al doilea urma primete gena i de la
primul printe.
De exemplu, prinii
1 1,1 1,2 1,3
P P P P = i
2 2,1 2,2 2,3
P P P P = ,
prin aplicarea operatorului de ncruciare discret descris anterior, pot da
natere urmtorilor descendeni sau urmai :
1 1,1 2,2 1,3
U P P P = i
2 2,1 1,2 2,3
U P P P = .
(ii) ncruciarea continu medie
Este un operator de ncruciare probabilist de tipul (2-2). n acest
sens, se aleg cu o probabilitate specificat
g
p anumite gene care, n cei
doi urmai, vor deveni egale cu media aritmetic a genelor
corespunztoare ale prinilor. Selectarea genelor se realizeaz genernd
un numr aleator [0,1]
g
r . Dac
g g
r p < atunci gena respectiv va fi
selectat. Astfel, dac n cazul prinilor din n exemplul precedent se
consider c pentru gena 2 i = este ndeplinit condiia
g g
r p < , atunci
descendenii vor fi:
1 1,1 1,2 2,2 1,3
1
( )
2
U P P P P = + i
2 2,1 1,2 2,2 2,3
1
( )
2
U P P P P = +
O alt variant a acestui operator este cea cunoscut sub numele
de ncruciarea continu medie complet n care se genereaz un singur
urma ale crui gene sunt egale cu media aritmetic a genelor
corespunztore ale prinilor, adic
1, 2,
1
( )
2
i i i
U P P = + .
(iii) ncruciarea aritmetic
Este o generalizare a operatorului ncruciarea continu medie
complet n care cei doi prini nu au aceiai pondere n obinerea
descendentului. De aceast dat valoarea fiecrei gene a urmaului se va
calcula cu relaia:

1, 2,
(1 )
i i i
U aP a P = + (3.16)
Acest operator poate fi extins pentru o schem de tipul (2 2),
adic pentru a crea doi descendeni. Valorile genelor celor doi urmi se
determin cu relaiile:

1, 1, 2,
(1 )
i i i
U aP a P = + i
2, 1, 2,
(1 )
i i i
U a P aP = + (3.17)
Factorul de pondere a este un parametru al algoritmului genetic
care poate fi acelai pentru toate generaiile, variabil cu vrsta generaiei
sau poate fi selectat aleator din domeniul [0;1) pentru fiecare generaie.
O form special a acestui operator se obine atunci cnd valoarea lui a
este modificat pentru fiecare gen n parte.
Indiferent de tipul codificrii, orice algoritm genetic trebuie s
precizeze n ce msur indivizii generaiei curente ( ) P t se regsesc n
generaia urmtoare ( 1) P t + , adic supravieuiesc. n mod standard se
consider c urmtoare generaie va fi format din indivizii nou creai
prin ncruciare i indivizii populaiei intermediare
1
( ) P t care nu au fost
selectai pentru procesul de recombinare. Cu alte cuvinte, urmaii
rezultai prin ncruciare i nlocuiesc prinii n populaia intermediar
1
( ) P t rezultnd astfel o nou populaie intermediar
2
( ) P t asupra creia
se aplic operatorul de mutaie sau constituie noua generaie ( 1) P t + .

3.2.3. Operatorul de mutaie.

Al doilea n ordinea importanei i utilizrii sale n cadrul
algoritmilor genetici, operatorul de mutaie este utilizat pentru pstrarea
diversitii populaiei de la o generaie la alta. Prin modificarea uneia
sau mai multor gene ale unui individ din baza genetic nainte de a fi
transferat n noua generaie, mutaia mpiedic indivizii populaiei s
devin prea asemntori unii cu alii i n acest fel se evit convergena
ctre optime locale, respectiv ncetinirea sau chiar stagnarea evoluiei.
Utilizarea mutaie permite introducerea n populaie a unor indivizi care
nu ar putea fi generai prin alte mecanisme.
Ca i operatorul de ncruciare, operatorul de mutaia este un
operator probabilist care se aplic cu o probabilitate
m
p numit
probabilitatea de mutaie. Fiind inspirat din natur, unde procesele de
mutaie au loc foarte rar, probabilitatea de mutaie are la rndul ei valori
foarte sczute, de ordinul
3
10

, comparativ cu probabilitatea de
ncruciare.
n cazul codificrii binare procedeul de mutaie const n negarea unui
bit selectat arbitrar din secvena genetic pe baza probabilitii de
mutaie
m
p . Exist diverse variante ale operatorului de mutaie care pot
avea dou forme:
forma tare de implementare a operatorului de mutaie n care
valoarea poziiei/genei selectate se schimb automat
forma slab de implementare a operatorului de mutaie n care
valoarea poziiei/genei selectate nu se schimb automat ci
aleator.

n aceste condiii, algoritmul de mutaie, n forma tare, const n
parcurgerea urmtorilor pai pentru fiecare cromozom al populaiei i
pentru fiecare gen/poziie din cromozom:

P1. Pentru fiecare gen i se genereaz un numr aleator [0,1]
m
r
P2. Dac
m m
r p < atunci se execut mutaia genei respective
schimbnd 0 n 1, respectiv 1 n 0.
n varianta slab a operatorului, pasul P2 se nlocuiete cu:
P2. Dac
m m
r p < atunci se alege aleator una dintre valorile 0 sau 1
i se atribuie genei i selectate n pasul 1.
Operatorul de mutaie poate fi utilizat ntr-o manier uniform sau
neuniform. n cazul mutaiei uniforme valoarea
m
p a probabilitii de
mutaie este constant pentru toate generaiile n schimb, n varianta
neuniform a operatorului valoarea probabilitii de mutaie se modific
de la o generaie la alta conform relaiei:

(1 )
,0
( )
t
m m
p t p e

= (3.18)
n care
,0 m
p este valoarea iniial a probabilitii de mutaie
(probabilitatea de mutaie la prima generaie 1 t = ), iar 1 este un
parametru real. Cu ct valoarea lui este mai mare, cu att
probabilitatea de mutaie descrete mai repede.

Mutaia poate fi aplicat i n cazul codificrii n numere reale. n acest
caz, mutaia uniform nlocuiete o singur gen a cromozomului cu o
valoare real generat aleator n intervalul
min max
[ , ]
i i
g g de variaie al
acesteia.
n cazul mutaiei neuniforme genele selectate pentru mutaie sufer
modificri importante n primele generaii i apoi descresc treptat. Se
realizeaz astfel un progres important al cutrii n faza iniial i un
control fin al procesului de cutare n fazele finale ale acestuia. La
fiecare generaie t se genereaz aleator doi parametrii. Primul parametru
1
r va indica creterea sau descreterea valorii genei selectate. Astfel,
dac
1
1 r = valoarea genei selectate va fi sczut, iar dac
1
1 r =
valoarea acesteia va fi crescut. Al doilea parametru
2
r este un numr
aleator din intervalul [0,1] , care urmeaz o distribuie normal. Dac
i
g
este gena cromozomului selectat pentru modificare, atunci noua
valoare a acesteia se determin cu relaiile:

1
max
2
( ) 1
t
m T
i i i i
g g g g r




= +



dac
1
1 r =
1
min
2
( ) 1
t
m T
i i i i
g g g g r




=



dac
1
1 r =
n care
min
i
g i
max
i
g sunt limitele intervalului de variaie a valorilor
genei, iar T indicele generaiei pentru care amplitudinea mutaiei se
anuleaz, adic indicele generaiei de la care nu se mai aplic operatorul
de mutaie. n general T este egal cu numrul maxim de generaii.