Sunteți pe pagina 1din 60

Universitatea Alexandru Ioan Cuza

Facultatea de Informatic
Departamentul de nvmnt la Distan








Prof. Dr. Henri Luchian
Prep. Drd. Mihaela Breabn



ALGORITMI GENETICI


Anul III, Semestrul II










2006 - 2007

2

3
Introducere................................................................................................................ 4
1. Strategii n rezolvarea problemelor ........................................................................ 5
2. Algoritmi genetici ................................................................................................. 8
2.1 Calcul evolutiv ................................................................................................ 8
2.2 Terminologie ................................................................................................... 9
2.3 Direcii n algoritmii evolutivi........................................................................ 10
2.4 Elemente comune ale algoritmilor evolutivi ................................................... 11
2.5 Structurile de date.......................................................................................... 11
2.6 Modele teoretice pentru algoritmii genetici .................................................... 11
2.7 Elementele unui algoritm genetic................................................................... 12
2.8 Optimizarea unui algoritm genetic ................................................................. 13
2.9 Schema general a unui algoritm genetic ....................................................... 15
2.10 Algoritmi genetici - exemple........................................................................ 16
2.10.1 Un exemplu numeric simplu ................................................................. 16
2.10.2 Un exemplu combinatorial .................................................................... 19
2.10.3 Un exemplu din nvarea automat....................................................... 20
2.11 Cum lucreaz algoritmii genetici.................................................................. 22
3. Algoritmii genetici n optimizarea numeric.........................................................24
4. Teorema schemelor ..............................................................................................29
4.1 Formularea teoremei schemelor ................................................................. 29
4.2 Problema banditului cu dou brae ............................................................. 34
4.3 nelarea unui algoritm genetic .................................................................. 38
4.4 Critica teoremei schemelor......................................................................... 39
5. Funciile Royal Roads ..........................................................................................40
6. Implementarea algoritmilor genetici .....................................................................48
6.1 Reprezentarea ................................................................................................ 49
6.2 Mecanisme de selecie ................................................................................... 54
6.2.1. Roata norocului...................................................................................... 54
6.2.2. Selecie universal stocastic ................................................................. 55
6.2.3. Scalare sigma......................................................................................... 55
6.2.4. Elitism................................................................................................... 56
6.2.5. Selecie Boltzmann ................................................................................ 56
6.2.6. Selecie bazat pe rang........................................................................... 56
6.2.7. Selecie turneu ....................................................................................... 57
6.2.8. Selecie stare stabil (steady-state) ......................................................... 58
Scheme de selecie comparaii ...................................................................... 58
6.3 Modelul insulelor........................................................................................... 59

4
Introducere
Cursul de fa prezint o alternativ metodelor clasice de rezolvare a
problemelor cu ajutorul calculatorului, introducnd o serie de algoritmi a cror
formulare a fost inspirat din natur i care prezint drept caracteristic
central auto-adaptarea. Aceti algoritmi au nevoie de mai puine aproximri
n rezolvarea problemei deoarece lucreaz n mod direct cu reprezentri ale
soluiilor n calculator eliminnd necesitatea obiectelor matematice
intermediare. Decizii sunt luate n mod probabilist i mai multe soluii bune
sunt returnate. Auto-adaptarea urmrete descoperirea i exploatarea
proprietilor specifice instanei problemei.
n acest context sunt prezentai algoritmii genetici - metode generale
de cutare inspirate din evoluia natural care i gsesc o larg utilizare n
optimizare, nvare automat i proiectarea sistemelor complexe.
O introducere n calculul evolutiv prezint sursa de inspiraie i
motivaia utilizrii unor astfel de algoritmi. Este prezentat apoi schema
general a algoritmilor genetici precum i unele abateri de la aceasta. Sunt
descrise detalii de implementare pentru rezolvarea de probleme din diferite
domenii i sunt expuse rezultate experimentale. Rezultate teoretice, precum
teorema schemelor, explic modul n care algoritmii genetici efectueaz
cutarea i ajung la convergen. Sunt evideniate proprieti ale problemelor
pentru care algoritmii genetici ar trebui s depeasc prin performan ali
algoritmi; n acest context sunt prezentate funciile Royal Roads. Sunt trecute
n revist unele modificri ale algorimului genetic clasic: adaptarea
reprezentrii, scheme cu diferite presiuni de selecie, operatori genetici
modificai.



5
Capitolul 1
Strategii n rezolvarea problemelor
Goldstein i Levin (1987) au definit rezolvarea problemelor ca fiind
procesul cognitiv de ordin nalt care necesit modulaia i controlul mai multor
capaciti/ndemnri fundamentale, considernd-o cea mai complex dintre
toate funciile intelectuale. Rezolvarea problemelor apare atunci cnd un
organism sau un sistem ce posed inteligen artificial nu cunoate drumul
de la o stare dat, ctre o stare scop dorit.
Procesul rezolvrii problemelor difer n funcie de domeniul de
cunoatere i de nivelul de expertiz. Rezultate obinute n laboratoare de
multe ori nu pot fi extinse pentru situaii reale, complexe. Din acest motiv,
ultimele studii se concentreaz pe probleme ct mai complexe iar utilizarea
calculatoarelor a devenit o necesitate.

n rezolvarea de probleme cu ajutorul calculatorului sunt utilizate dou
strategii: abordarea determinist (care cuprinde algoritmi determiniti exaci
i euristici) i abordarea probabilist.
Algoritmii determiniti produc aceeai soluie i urmeaz aceeai
secven de stri pe o instan dat la execuii repetate.
Algoritmii determiniti exaci obin soluii exacte dar nu sunt tot
timpul utilizabili n practic deoarece, de cele mai multe ori realizeaz o
cutare exhaustiv n spaiul problemei. Considernd pentru rezolvare clasa
algoritmilor determiniti, a fost stabilit ierarhia de complexitate a problemelor.
Astfel, o problem are complexitatea dat de cel mai bun algoritm determinist
exact cunoscut a o rezolva. Clasa problemelor NP-complete cuprinde
probleme pentru care nu se cunoate nc un algoritm determinist exact care
s o rezolve n timp polinomial. Exemple de probleme NP-complete sunt:
problema rucsacului, problema comisului voiajor, problema clicii maximale.
Pentru aceste probleme algoritmii determiniti exaci devin intractabili.

Euristicile sunt algoritmi determiniti care obin soluii aproximative.
Cu ct precizia soluiei este mai bun, cu att complexitatea timp este mai
mare. Utiliznd aceast clas de algoritmi, complexitatea problemelor se
modific: de exemplu, problema rucsacului devine polinomial pentru orice
precizie iar problema comis-voiajorului devine polinomial pentru o precizie
de 50%. Pentru problema clicii maximale nu se cunoate nici o euristic care

6
s dea soluii aproximative (oricare ar fi precizia) n timp polinomial.

Algoritmii probabiliti implic mcar un pas n care decizia se ia n
mod aleatoriu. Acetia sunt algoritmi impredictibili, la repetri succesive se
obin soluii diferite datorit unor pai ce depind de valori generate aleatoriu n
timpul execuiei. Soluiile obinute sunt aproximative.
Un algoritm probabilist poate fi privit ca o distribuie de probabilitate
peste o mulime de algoritmi determiniti. Dac este uor s se gseasc o
instan a unei probleme care s ridice dificulti pentru unul sau mai muli
algoritmi determiniti din aceast mulime, este dificil s se gseasc o
singur intrare cu anse mari de a bate un algoritm ales aleatoriu. Aceast
paradigm st la baza succesului oricrui algoritm probabilist (R. Motwani, P.
Raghavan).
Din clasa algoritmilor probabiliti fac parte algoritmi precum Monte
Carlo, Las Vegas i metaeuristicile (algoritmi evolutivi, clirea simulat,
cutarea tabu, etc.). Complexitatea timp pentru astfel de algoritmi crete
odat cu precizia soluiilor. Algoritmii genetici utilizeaz o schem polinomial.
Unele Strategii Evolutive au probabilitatea egal cu 1 s gseasc soluia
exact.
Calitatea unei soluii aproximative se apreciaz cu ajutorul a doi indici:
acurateea - care msoar distana fa de optim a valorii acelei soluii, i
precizia care msoar apropierea variabilelor soluiei de punctul n care se
obine optimul.


precizia

acurateea
x
f(x)
optimul global
Fig1: Precizia i acurateea unei soluii aproximative: f-funcia de evaluare; x -
parametrii funciei.
optim local

7
Metodele convenionale de rezolvare de probleme precum calculul
diferenial, calculul integral, analiza numeric a. sunt denumite tehnici hard
computing. Aceste modele sunt rigide, statice, fr posibilitate de adaptare;
ele sunt complet formulate n prealabil i nu se pot modifica cu nimic pe
parcursul rezolvrii. Doar sisteme relativ simple pot fi descrise i analizate cu
astfel de metode.
Existena sistemelor complexe din domenii precum biologia, medicina,
economia a dus la apariia metodelor soft computing care prezint
posibilitate de auto-adaptare. Aceste metode sunt bazate pe feed-back-ul
intern al algoritmului i al structurilor de date iar proprietile individuale ale
instanei problemei sunt exploatate la maxim. Spre deosebire de metodele
hard-computing care pun accent pe exactitate, tehnicile soft-computing
exploateaz adevrul parial fcnd uz de modelarea i raionarea
probabilist.
Principalele modele soft-computing sunt reelele neuronale artificiale,
sistemele fuzzy (vagi) i calculul evolutiv. Dac primele dou modele sunt
dezvoltri moderne ale unor tehnici din statistic i teoria mulimilor, calculul
evolutiv a adus o abordare i idei fundamental noi n modelare, n conceptul
de calcul i n paradigma general de rezolvare a problemelor de optimizare.


Sisteme cu
inteligen
artificial
Calcul
convenional
Logic
fuzzy
Reele
neuronale
Calcul
evolutiv
HARD COMPUTING
(pur numeric)
SOFT COMPUTING (pur simbolic)
Fig. 2: Calculul soft este situat ntre calculul convenional (hard) i sistemele de
inteligen artificial

8
Capitolul 2
Algoritmi genetici
2.1 Calcul evolutiv
Calculul evolutiv este o subramur a Inteligenei Artificiale care
cuprinde paradigme soft-computing pentru rezolvarea de probleme n domenii
precum nvarea automat, proiectarea sistemelor complexe i n optimizare.
Aceti algoritmi sunt algoritmi probabiliti inspirai cu precdere din biologie i
au n comun urmtoarele elemente:
- menin o populaie de reprezentri de soluii candidat
- care evolueaz de-a lungul unor generaii/iteraii
- sub controlul unei funcii fitness care msoar meritul individual.
Algoritmii evolutivi cu cele trei direcii - strategiile evolutive,
programarea evolutiv i algoritmii genetici - sunt cei mai vechi algoritmi de
acest tip i au ca surs de inspiraie evoluia biologic. Ulterior s-au dezvoltat
metode care au la baz studiul comportamentului colectiv n sisteme
decentralizate precum coloniile de furnici (Ant Colony Optimization) i stolurile
de psri (Particle Swarm Optimization), metode care formeaz paradigma
Swarm intelligence.
n calculul evolutiv paradigma de rezolvare a problemelor se modific.
Dac n hard-computing paii necesari rezolvrii unei probleme sunt:
1. nelege problema:
2. construiete un model matematic i studiaz teoretic acel
model;
3. modeleaz un algoritm de rezolvare a problemei pe baza
rezultatelor teoretice;
4. implementeaz metoda i execut programul;
5. obine soluia;
n calculul evolutiv aceast paradigm devine:
1. nelege problema;
2. construiete reprezentarea, funcia fitness;
3. modeleaz un algoritm de calcul evolutiv pentru rezolvarea ei;
4. implementeaz metoda i execut experimente;
5. obine mai multe soluii;
ceea ce nseamn c rezolvarea unei probleme nu mai trebuie s fie
precedat neaprat de obinerea unor rezultate teoretice asupra modelului
matematic corespunztor.

9


Tehnicile calculului evolutiv sunt metode slabe de optimizare; ele nu
sunt, n principiu specializate, ci sunt aplicabile unor clase largi de probleme.
Pentru a putea fi abordat cu aceste tehnici, problema de rezolvat
trebuie pus sub forma unei probleme de optimizare.

2.2 Terminologie
Algoritmii evolutivi utilizeaz un vocabular mprumutat din genetic. Un
algoritm genetic simuleaz evoluia printr-o succesiune de generaii (proces
iterativ) ale unei populaii (mulime) de soluii candidat. O soluie candidat
este reprezentat intern ca un ir de gene (genotip) i poart numele de
cromozom. Gena este informaia atomic dintr-un cromozom. Poziia pe care
o ocup o gen se numete locus iar toate valorile posibile pentru o gen
formeaz setul de alele ale genei. Populaia meninut de algoritmul genetic
evolueaz prin aplicarea unor operatori genetici care simuleaz elemente
considerate de geneticieni ca fiind fundamentale: mutaia care const n
modificarea aleatoare a unei gene i ncruciarea (recombinarea) care are
ca scop schimbul de informaie genetic ntre doi sau mai muli cromozomi.
Cromozomul asupra cruia se aplic un operator genetic poart numele de
printe iar cromozomul rezultat n urma acelui operator este numit
descendent. Un proces (aleator) de selecie ofer indivizilor mai bine adaptai
anse mai mari pentru a supravieui n generaia urmtoare. Gradul de
adaptare la mediu al indivizilor este msurat de funcia fitness obinut
rezultate
teoretice
Problema
Model
matematic
Proiectarea
algoritmului
soluie
Problema
modificat
(reprezentare,
Proiectarea
algoritmului
rulare
soluii
rulare
calcul evolutiv
calcul convenional (hard)
Fig. 3: Etapele rezolvrii unei probleme n hard computing i calcul evolutiv;
etapele haurate reprezint aproximri de la problema real

10
pornind de la funcia matematic de optimizat. Soluia returnat de un
algoritm genetic este cel mai bun individ din ultima generaie.

2.3 Direcii n algoritmii evolutivi
Excelenta adaptare a fiinelor vii n ceea ce privete structura, forma,
funciile i stilul de via, a fcut ca muli cercettori s mprteasc ideea
c natura posed soluii optimale la problemele sale, soluii superioare
oricror performane tehnologice. S-a demonstrat chiar matematic
optimalitatea unor subsisteme biologice precum: raportul diametrelor
ramificaiilor arterelor, valoarea hematocritului, poziia punctului de ramificare
a vaselor de snge, etc. n consecin, au aprut ncercri de imitare a
procesului de evoluie natural.
Strategiile evolutive au luat natere n 1970 cnd, avnd de rezolvat
o problem de mecanica fluidelor, Hans-Paul Schwefel i Ingo Rechenberg
au cutat o nou tehnic de optimizare ntruct metodele cunoscute pn n
acel moment nu duceau la soluie. Ideea lor a ntruchipat conjectura lui
Rechenberg, rmas pn astzi justificarea fundamental a aplicrii
tehnicilor evolutive: Evoluia natural este, sau cuprinde, un proces de
optimizare foarte eficient, care, prin simulare, poate duce la rezolvarea
proceselor dificile de optimizare. Metoda astfel conceput pentru a rezolva
probleme de optimizare de variabil continu are la baz utilizarea
operatorului de mutaie aleatoare i selecia celui mai bun individ.
Programarea evolutiv s-a cristalizat la Universitatea San Diego n
1966 cnd Fogel a generat programe simple sub form de maini cu numr
finit de stri. Pe astfel de structuri (diagrame de stare-tranziie pentru maini
cu numr finit de stri) au fost aplicate mutaii aleatoare iar cel mai bun individ
este selectat pentru supravieuire.
Algoritmii genetici au fost propui de John Holland n 1973 dup muli
ani de studiere a ideii de simulare a evoluiei. Aceti algoritmi modeleaz
motenirea genetic i lupta Darwinian pentru supravieuire.
Complexitatea problemelor din lumea real a dus la dezvoltarea de noi
direcii care implementeaz sau utilizeaz tehnicile specifice algoritmilor
genetici n mod nestandard: algoritmi genetici messy (Goldeberg),
programarea genetic (Koza), co-evoluia (Hillis), algoritmii
memetici/culturali, algoritmii micro-economici. De asemenea s-au realizat
diverse studii statistice n ceea ce privete compatibilitatea ntre reprezentare
i funcia fitness, operatorii, etc.


11
2.4 Elemente comune ale algoritmilor evolutivi
Auto-adaptarea n algoritmii evolutivi se bazeaz pe simularea evoluiei
prin adaptare i competiie din lumea vie. Toi algoritmii evolutivi sunt procese
iterative i pot fi descrii prin urmtoarea schem general: menin o
populaie de reprezentri de soluii candidat care sunt mbuntite de-a
lungul unor generaii succesive prin intermediul unor operatori specifici (cum
sunt mutaia i ncruciarea) i a seleciei bazate pe meritul individual care
este asignat indivizilor prin evaluare cu ajutorul funciei fitness.
Deosebirile ntre direciile menionate n algoritmii evolutivi apar la nivel
de reprezentare a soluiilor, implementare a operatorilor i a schemelor de
selecie.

2.5 Structurile de date
Strategiile evolutive lucreaz cu reprezentri n virgul mobil.
Programarea evolutiv utilizeaz ca reprezentri maini cu numr finit
de stri.
Algoritmii genetici nregistreaz o mare variaie n ceea ce privete
reprezentarea soluiilor candidat. Algoritmii genetici standard reprezint
cromozomii ca iruri de bii, iruri de numere ntregi sau reale sau permutri,
n funcie de problema propus spre rezolvare. n ultimii ani s-au raportat
diverse abateri de la reprezentarea sub form de ir pentru a ngloba
informaie specific problemei; sunt utilizate structuri bidimensionale precum
matrici sau grafuri, reprezentri bazate pe vecinti (insule) sau distribuite
geografic, etc. Se folosesc de asemenea reprezentri de dimensiune
variabil.
n programarea genetic se optimizeaz o populaie de programe-
calculator reprezentarea unui individ realizndu-se cu o structur de tip
arbore.
Condiiile pe care trebuie s le satisfac o bun reprezentare sunt:
independena relativ a genelor (lipsa epistaziei), includerea ct mai multor
restricii ale problemei direct n reprezentare, complexitate sczut a
codificrii/decodificrii cromozomilor. n general, pentru modelarea unei
probleme se poate alege ntre mai multe reprezentri candidat.

2.6 Modele teoretice pentru algoritmii genetici
Modelul teoretic fundamental propus pentru studiul algoritmilor genetici
este cel propus de Holland i denumit modelul schemelor. Acesta explic
modul n care un algoritm genetic standard converge la soluie fr a face

12
ns predicii asupra producerii sau nu a convergenei, a acurateei soluiilor
gsite sau asupra vitezei de convergen. Rezultatul central este teorema
schemelor ns ipotezele acesteia o fac aplicabil doar pentru algoritmul
genetic clasic.
Teorema schemelor a fost extins mai trziu (Vose 1991) la diferite
tipuri de reprezentri i diferii operatori de ncruciare.
n studiul algoritmilor genetici au fost utilizate i tehnici din statistic
precum lanul lui Markov i modele Bayesiene.

2.7 Elementele unui algoritm genetic
Un algoritm genetic trebuie s aib definite urmtoarele elemente
pentru rezolvarea unei probleme:
- o reprezentare (genotip) a soluiilor candidat;
- o procedur de iniializare (creare) a populaiei iniiale de soluii
candidat;
- o funcie de evaluare (funcie fitness) care joac rolul mediului i
care este utilizat pentru a msura calitatea soluiilor n termeni de
potrivire/ acomodare;
- o schem de selecie (nlocuirea generaiilor);
- operatorii genetici (mutaia, ncruciarea, );
- parametrii numerici.
Reprezentarea clasic n algoritmii genetici este cea binar: fiecare
soluie candidat (cromozom) este reprezentat ca un ir de bii, fiecare bit
constituind o gen. Algoritmii genetici au evoluat ei nii, setul reprezentrilor
extinzndu-se la numere ntregi i reale, permutri,arbori, reprezentri bi- i
multi-dimensionale. Pentru orice reprezentare alta dect cea binar nu exist
rezultate teoretice care s explice aplicaiile spectaculoase ale algoritmilor
genetici la probleme de optimizare dificil.
Procedura de iniializare este una aleatoare. Exist i abordri n
care soluiile iniiale sunt obinute cu o euristic (ex. greedy) i apoi supuse
evoluiei cu un algoritm genetic.
Funcia fitness se obine plecnd de la funcia matematic de
optimizat. Complexitatea funciei de evaluare poate crete complexitatea
intrinsec polinomial a algoritmului genetic.
Selecia este un element comun mai multor tehnici de optimizare (hill-
climbing, simulated annealing). Selecia n algoritmii genetici este una
probabilist. Esenial este caracterul neextinctiv: i cel mai slab (ca fitness)
individ are ans nenul de supravieuire. n acest mod, informaie local (un

13
numr redus de bii) aparinnd unui individ cu fitness slab poate fi transmis
n generaiile urmtoare pentru a se regsi n final n structura soluiei optime.
Au fost propuse i studiate numeroase tipuri de selecie: scheme bazate
direct pe valorile fitness, scheme bazate pe rangul n ierarhie, selecia
proporional, sistem turneu, etc.
Operatorii genetici de baz ncruciarea i mutaia - apar n forme
diverse, fiind necesar n prealabil adaptarea lor la problem prin
ncorporarea proprietilor/informaiei specifice problemei de rezolvat.
ncruciarea clasic este cea cu tiere ntr-un singur punct i
interschimbarea segmentelor celor doi cromozomi implicai.

x
1
x
2
x
3
| x
4
x
5
x
6
x
7
x
8
x
1
x
2
x
3
y
4
y
5
y
6
y
7
y
8

y
1
y
2
y
3
|

y
4
y
5
y
6
y
7
y
8
y
1
y
2
y
3
x
4
x
5
x
6
x
7
x
8


n literatur au aprut ns i ncruciri cu dou sau mai multe puncte
fixe, ncruciarea uniform, cu mai muli prini, ncruciri specifice pentru
permutri, grafuri/arbori sau pentru alte reprezentri multidimensionale.

Operatorul clasic de mutaie neag valoarea unei gene (bit) alese
aleatoriu.
8 7 6 5 4 3 2 1
x x x x x x x x

8 7 6 5 4 3 2 1
x x x x x x x x

Mai exist mutaii specifice problemelor de permutare i mutaii
euristice.

n proiectarea unui algoritm genetic trebuiesc luate decizii i n ceea ce
privete valorile unor parametrii precum dimensiunea populaiei, rata
(probabilitatea de aplicare) mutaiei i ncrucirii i stabilirea unei condiii de
oprire a algoritmului. n afara unor consideraii generale (de exemplu rata
mutaiei crescut la nceputul vieii populaiei i sczut spre sfrit, cu
evoluia complementar a ratei ncrucirii), gsirea valorilor optime ale
parametrilor unui algoritm genetic ine deocamdat mai mult de empirism
dect de un studiu teoretic abstract.

2.8 Optimizarea unui algoritm genetic
Pentru o problem dat pot fi proiectai mai muli algoritmi genetici, mai
mult sau mai puin asemntori, prin variaii de la schema general i

14
existena mai multor posibiliti de definire a elementelor constitutive
enumerate mai sus.
Reprezentarea soluiilor candidat i funcia fitness sunt dependente de
problem iar pentru o problem dat pot fi construite diverse reprezentri i
pot fi formulate mai multe funcii fitness.
Operatorii pot fi selectai dintre cei standard ns este necesar i
pentru acetia o prealabil adaptare la problem astfel nct s nglobeze
informaie specific problemei. De exemplu, pentru probleme de permutare s-
au formulat diveri operatori de ncruciare care pstreaz structura de
permutare a soluiei.
De asemenea exist mai multe tipuri de selecie (n jur de 10 scheme
studiate) care favorizeaz mai mult sau mai puin supravieuirea indivizilor cu
grad ridicat de adaptare (cu valori mari ale funciei fitness).
Alegerea valorilor parametrilor numerici care intervin n structura
algoritmului este o alt problem de decizie n proiectarea algoritmului genetic
iar numrul de posibiliti este de ordinul zecilor sau poate chiar al sutelor.
n urma unui calcul succint, numrul de algoritmi genetici diferii care
pot fi scrii pentru rezolvarea unei probleme este de ordinul sutelor de mii.
Dintre acetia, majoritatea nu vor converge la soluia optim sau nu vor fi
eficieni din punct de vedere al spaiului/timpului de lucru necesar algoritmului
pentru a atinge convergena; o parte dintre ei ns, vor depi ali algoritmi
existeni. Determinarea celui mai bun algoritm genetic care poate fi scris
pentru o problem dat este o problem de optimizare n sine.
Exist dou abordri pentru optimizarea unui algoritm genetic:
optimizarea empiric i utilizarea unui algoritm genetic supervizor.
Optimizarea empiric a parametrilor unui algoritm genetic const din
rulri multiple ale acestuia, cu setri diferite ale parametrilor, respectiv cu
alegeri pentru elementele algoritmului, sistematic alese dintre cele posibile.
Algoritmul genetic supervizor SAG (meta-algoritm genetic)
optimizeaz parametrii numerici ai unui algoritm genetic de baz AG.
Elementele SAG sunt cele uzuale, cu excepia meta-cromozomilor care conin
cte o meta-gen pentru fiecare parametru de optimizat al algoritmului AG
(dimensiunea populaiei, rata mutaiei, rata ncrucirii, un bit pentru elitism).
SAG este foarte costisitor ca timp deoarece evaluarea unui meta-cromozom
const din rularea repetat a algoritmului AG cu parametrii setai conform
meta-genelor, fitnessul acestuia fiind egal cu performana medie a AG astfel
setat (fitnessul celui mai bun individ sau media valorilor fitness a celor mai
buni indivizi obinui n urma unui numr de rulri consecutive ale GA). De

15
obicei, meta-algoritmii genetici au populaii de dimensiuni mici i numr redus
de generaii.

2.9 Schema general a unui algoritm genetic
Un algoritm genetic efectueaz o cutare multi-dimensional prin
utilizarea unei populaii de soluii candidat (cromozomi) care evolueaz de-a
lungul unui numr de generaii n care efectueaz schimb de informaii. La
iteraia t fiecare individ din populaia curent P(t) este evaluat. Apoi o nou
populaie P(t+1) este format prin selectarea celor mai buni indivizi. Civa
membri din noua populaie sunt supui recombinrii prin intermediul mutaiei
i ncrucirii pentru a forma noi soluii. Acest proces este ilustrat de
urmtorul pseudo-cod:

INIIALIZARE. begin t:=0
genereaz P(t)
evalueaz P(t)
ITERARE while (not COND_OPRIRE) do begin
t:=t+1
selecteaz P(t) din P(t-1)
recombin P(t)
evalueaz P(t)
end

Aceast schem se aplic pentru majoritatea algoritmilor evolutivi.
Fiind algoritmi de tip probabilist, un generator de numere aleatoare
este necesar n mai multe etape ale algoritmului: generarea populaiei iniiale
dac aceasta se face aleator, selecia indivizilor pentru supravieuire,
alegerea indivizilor pentru recombinare, aplicarea operatorilor genetici.
Cel mai bine adaptat individ din ultima generaie reprezint soluia pe
care algoritmul genetic o gsete n rularea respectiv. Din cauza caracterului
nedeterminist , comportamentul unui algoritm genetic este considerat n
medie, pentru mai multe execuii diferite, cu iniializri diferite ale
generatorului de numere aleatoare.
Schema general a unui algoritm genetic este polinomial dac se
consider instruciunile din descrierea de mai sus ca fiind elementare.
Singurul pas care poate modifica aceast complexitate polinomial este
evaluarea. Funcia fitness obinut din modelul matematic al problemei poate
duce la evaluare exponenial existnd astfel probleme de complexitate

16
exponenial la aproximarea prin algoritmi genetici.
Exist numeroase variaii i adaptri ale schemei generale pentru
diverse clase de probleme. Unele dintre acestea privesc doar structura i
evoluia populaiei:
- Algoritmii genetici steady-state (cu stare stabil), n care diferena
dintre populaiile a dou generaii succesive const doar din
modifcarea a doi indivizi;
- Algoritmi genetici cu reprezentare pe niveluri diferite (delta-
coding, dynamic parameter encoding);
- Algoritmi genetici distribuii, inclusiv cu distribuire spaial, n care
un numr de sub-populaii evolueaz relativ independent;
- Modele co-evolutive prad-victim pentru optimizarea prin
acelai algoritm a dou probleme duale;
- Algoritmi genetici paraleli, etc.

2.10 Algoritmi genetici - exemple
n ceea ce urmeaz sunt descrii trei algoritmi genetici utilizai n
rezolvarea unor probleme din domenii diferite diferite. Un prim exemplu
prezint un algoritm genetic pentru optimizarea unei funcii simple de variabil
real. Al doilea exemplu aplic un algoritm genetic pentru o problem
combinatorie NP-dificil, problema comis-voiajorului. Al treilea exemplu
ilustreaz utilizarea algoritmilor genetici n domeniul nvrii automate pentru
determinarea unei strategii ntr-un joc simplu.

2.10.1 Un exemplu numeric simplu
1

Problema propus spre rezolvare n aceast seciune este formulat n
felul urmtor:
S se determine valoarea variabilei x n intervalul [-1; +2] care
maximizeaz funcia f(x) = xsin(10x)+1. Precizia cu care exprimm
rezultatul se dorete a fi de 6 zecimale.

1
Exemplu preluat din (Michalewicz 1996)

17
-1.00
-0.50
0.00
0.50
1.00
1.50
2.00
2.50
3.00
-1.00 0.00 1.00 2.00

Fig. 4: Graficul funciei f(x) = xsin(10x)+1.

Elementele unui algoritm genetic care rezolv aceast problem sunt
descrise n continuare.

Reprezentarea unui cromozom (soluie candidat) se realizeaz sub
forma unui vector binar al crui lungime depinde de precizia cerut. Domeniul
variabilei x are lungime 3; restricia de precizie implic o divizare a intervalului
[-1; 2] n cel puin 310
6
subintervale de lungime egal. Aceasta nseamn ca
sunt necesari 22 bii pentru reprezentare: 2097152 = 2
21
< 310
6
< 2
22
=
4194304.
Decodificarea unui ir binar ntr-un numr real din intervalul [-1; 2] este
realizat n doi pai: convertirea irului din baza 2 n baza 10 i determinarea
numrului real x corespunztor:
1. (b
21
b
20
b
0
) b
i
2
i
= x
2. x = -1+x(3/(2
22
-1))
De exemplu, cromozomii
v1=(1000101110110101000111)
v2=(0000001110000000010000)
v3=(1110000000111111000101)
corespund valorilor numerice
x
1
= +0.637197
x
2
= -0.958973
x
3
= +1.627888.
Limitele domeniului, -1 i 2, corespund cromozomilor

18
(0000000000000000000000) i respectiv (1111111111111111111111) .

Funcia de evaluare a cromozomilor este identic cu funcia studiat f.
Pentru cei trei cromozomi valorile funciei de evaluare sunt dup cum
urmeaz:
eval(v
1
) = f(x
1
) = 1.586245;
eval(v
2
)=f(x
2
) = 0.078878;
eval(v
3
)=f(x
3
) = 2.250650.

Operatorii genetici utilizai sunt cei standard. Mutaia modific cu o
probabilitate dat de valoarea ratei mutaiei bitul de pe o poziie selectat
aleatoriu. De exemplu, s presupunem c a cincia gen a cromozomului v
3
a
fost selectat. Dup aplicarea mutaiei cromozomul v
3
devine:
v3 = (1110000001111111000101)
n urma evalurii se constat c s-a obinut un cromozom mai bun:
x
3
= +1.630818 eval(v
3
) = f(x
3
) = 2.343555 > f(x
3
) = eval(v
3
)
Operatorul de ncruciare utilizat este cel cu un singur punct de tiere.
Dac utilizm cromozomii v
2
i v
3
drept prini iar punctual de tiere a fost
ales aleatoriu ntre genele 5 i 6 obinem descendenii v
2
i v
3

v
2
= (00000 | 01110000000010000)
v
3
= (11100 | 00000111111000101)
v
2
=(00000|00000111111000101) x
2
=-0.99811
v
3
=(11100|01110000000010000)x
3
=+1.66602
n urma evalurii celor doi cromozomi descendeni se constat c unul
din acetia este mai bine adaptat dect ambii prini:
eval(v
2
) = f(x
2
) = 0.940865 > eval(v
2
)
eval(v
3
) = f(x
3
) = 2.459245 > eval(v
3
) > eval(v
2
)

Principalii parametrii ai algoritmului genetic au luat urmtoarele valori:
dimensiunea populaiei pop_size = 50, rata ncrucirii p
c
= 0.25, rata mutaiei
p
m
= 0.01.

n urma execuiei algoritmului genetic cel mai bun cromozom la iteraia
50 a fost v
max
= (1111001101000100000101) corespunztor valorii reale x
max
= 1.850773; valoarea funciei n acest punct este eval(v
max
) = f(x
max
)=

19
2.850227.
Urmtorul tabel prezint evoluia fitnessului celui mai bun individ curent
pe parcursul generaiilor.






2.10.2 Un exemplu combinatorial
Utilizarea algoritmilor genetici n optimizarea combinatorie este ilustrat
pe problema comis-voiajorului: dat costul drumului ntre oricare dou orae,
obiectivul este determinarea celui mai puin costisitor itinerariu care trece o
singur dat prin fiecare ora i se ncheie n punctul de plecare.


n ultimii ani s-au nregistrat mai multe ncercri de a aproxima aceast
problem cu algoritmii genetici. n ceea ce urmeaz este prezentat una din
metodele utilizate.
Restricia ca oraele s fie vizitate o singur dat este nglobat n
reprezentarea soluiilor candidat prin utilizarea de permutri de numere
ntregi. Devine astfel necesar utilizarea de operatori genetici specializai care
s nu construiasc reprezentri ilegale.
Mutaia este definit ca inversarea a dou gene ntr-un individ.
ncruciarea, al crei scop este de a combina informaia genetic din
doi sau mai muli cromozomi bine adaptai pstreaz structura de permutare a
descendenilor prin urmtoarea procedur (ncruciare OX): se copie o
subsecven din alctuira unui cromozom printe i se completeaz pstrnd
1 10 40 100
1.441942 2.250363 2.345087 2.849246
Fig. 5: Problema comis-voiajorului: cel mai scurt circuit Hamiltonian
ntr-un graf complet

20
ordinea de apariie din cel de al doilea.
Spre exemplu, dac prinii sunt
P: (1 2 3 4 5 6 7 8 9 10 11 12) (7 3 1 11 4 12 5 2 10 9 6 8)
i se selecteaz pentru copiere genele de pe poziiile 4-7 rezultatul
aplicrii ncrucirii l constituie doi cromozomi n care se regsesc relaii
structurale cu ambii prini:
O: (3 1 11 4 5 6 7 12 2 10 9 8) (1 2 3 11 4 12 5 6 7 8 9 10)
Rezultatele obinute n urma a 20 de rulri pe o instan generat
aleatoriu cu 100 de orae indic o valoare a ntregului tur cu 9,4% mai mare
dect valoarea turului optim.

2.10.3 Un exemplu din nvarea automat
n aceast seciune este descris un algoritm genetic utilizat pentru
nvarea unei strategii ntr-un joc simplu cunoscut sub numele de dilema
prizonierului.
Doi prizonieri sunt inui n celule separate fr a avea posibilitatea de
a comunica unul cu cellalt. Fiecrui prizonier i se cere s-l trdeze pe cellalt.
n funcie de aciunile lor, prizonierii sunt recompensai sau pedepsii dup
cum urmeaz:
- dac doar un singur prizonier trdeaza, el este recompensat iar cellalt este
pedepsit;
- dac ambii prizonieri trdeaz, ambii sunt pedepsii;
- dac nici un prizonier nu trdeaz, vor primi amndoi o recompens
moderat.
Dilema prizonierului este de a lua o decizie: s trdeze sau s
coopereze cu cellalt prizonier.
Tabelul de mai jos exprim scorul obinut de fiecare juctor n funcie
de deciziile luate:
Juctor1 Juctor2 Punctaj1 Punctaj2
Trdeaz Trdeaz 1 1
Trdeaz Coopereaz 5 0
Coopereaz Trdeaz 0 5
Coopereaz Coopereaz 3 3

Problema este aadar de a nva o strategie care s maximizeze
numrul de puncte obinute.
n ceea ce urmeaz sunt prezentate elementele algoritmului genetic

21
utilizat de Axelrod(1987) pentru nvarea unei strategii.
Pentru simplitate sunt considerate strategii deterministe bazate pe
ultimele 3 micri. Pentru fiecare micare sunt posibile 4 variante de rspuns
din partea juctorului ceea ce duce la 4
3
= 64 istorii diferite pentru ultimele trei
micri. O strategie poate fi specificat indicnd ce micare trebuie fcut
pentru fiecare din aceste istorii posibile. Aadar n reprezentarea se poate
utiliza un ir de 64 bii care pstreaz decizia luat de fiecare juctor: trdare
sau cooperare. La acest ir se mai adaug 6 bii care specific ultimele 3
micri din evoluia jocului. Aceasta duce la o reprezentare pe 70 bii a unui
cromozom care specific decizia luat de juctor n fiecare circumstan
posibil. Utiliznd aceast reprezentare pot fi definite un total de 2
70
strategii.
Populaia iniial format din iruri a cte 70 bii este generat aleator.
La fiecare iteraie are loc evaluarea fiecrui juctor (cromozom) lund
ca adversari strategii predefinite sau fiecare individ din populaie. Valoarea
fitnessului este considerat ca fiind media tuturor jocurilor la care particip.
Procedura de selecie este urmtoarea: un individ ce a obinut un scor
mediu este ales o singur dat pentru reproducere; un individ ce a obinut un
scor mai mare cu o deviaie standard dect media este selectat de dou ori;
indivizii care au obinut un scor cu o deviaie standard sub media populaiei nu
sunt selectai deloc.
Indivizii selectai sunt supui mutaiei i ncrucirii.
Experimentele s-au desfurat pe un numr de 20 de indivizi, iar
populaia a evoluat de-a lungul a 50 generaii.
ntr-un prim experiment s-a considerat un mediu fix: indivizii au fost
evaluai utiliznd cele mai bune 8 strategii construite de om. Dei au fost
vizitate maxim 20*50=1000 strategii din 2
70
posibile rezultatele obinute au
fost la fel de bune sau chiar mai bune cu cele nregistrate de strategia Ochi
pentru ochi (ncepe prin a coopera i apoi f ce a fcut adversarul la pasul
anterior).
ntr-un al doilea experiment mediul utilizat a fost dinamic: fiecare individ
a fost evaluat lund ca adversar pe fiecare din cei 20 membrii ai populaiei. n
primele generaii s-au obinut strategii necooperative. Dup 10-20 generaii s-
au nregistrat tot mai multe strategii care funcioneaz n maniera Ochi pentru
ochi.

Cele trei exemple prezentate ilustreaz domeniul larg de aplicabilitate
al algoritmilor genetici i n acelai timp ofer cteva indicii asupra dificultilor
ce pot aprea n proiectarea acestor algoritmi: reprezentarea soluiilor nu este

22
ntotdeauna imediat, funcia de evaluare nu este clar definit (vezi problema
de nvare), operatorii trebuie adaptai la problem pentru a ngloba
cunotine specifice acesteia.

2.11 Cum lucreaz algoritmii genetici
Etapele implementrii i utilizrii unui algoritm genetic sunt urmtoarele:
- definirea elementelor algoritmului (reprezentarea, funcia fitness, mecanismul
de selecie, operatorii genetici, parametrii)
- proiectarea experimentului
- execuia experimentului
- interpretarea rezultatelor
Analiza unui algoritm evolutiv se face empiric, pe baza rezultatelor unor
experimente ce urmresc fie performana absolut de calcul a algoritmului
studiat, fie compararea algoritmului genetic studiat cu un alt algoritm ce
rezolv aceeai problem (studiu relativ). De aceea, n faza de proiectare a
experimentului trebuie avut n vedere optimizarea algoritmului genetic i,
pentru al doilea caz, considerai alte tipuri de algoritmi dect cei genetici
pentru efectuarea de comparaii.

n algoritmul genetic clasic, funcia de evaluare trebuie s fie strict
pozitiv, iar asupra ei s se realizeze maximizare. Ambele condiii sunt uor
de statisfcut atunci cnd funcia fitness este dat de o funcie real: funcia
de evaluare poate fi uor modificat prin translarea cu o constat iar, dac
este cazul, problema de minimizare poate fi exprimat ca problem de
maximizare prin nmulirea cu 1 a funciei fitness.
Nu orice problem poate fi exprimat ca problem de optimizare a unei
funcii reale. Pentru situaii n care funcia fitness nu are o expresie algoritmic
sau este necunoscut - mai ales n unele aplicaii de inteligen artificial
se poate folosi evaluarea interactiv, n care utilizatorul stabilete on-line
fitnessul fiecrui individ sau ierarhia generaiei.
Algoritmii genetici clasici sunt formulai pentru optimizarea uni-criterial.
n practic ns sunt numeroase probleme n care trebuiesc urmrite mai
multe obiective. Un exemplu este problema orarului n care, n afara
constrngerilor de natur material care trebuiesc satisfcute (suprapunerea
n aceeai sal a dou cursuri, resurse materiale limitate videoproiector,
laptop distribuite ntre profesori, la o or dat un profesor ine / un student
particip la cel mult un curs), sunt necesare i optimizri din punct de vedere
al timpului alocat (ct mai puine ferestre n orarul unui profesor/student).

23
Soluia preferat n rezolvarea unor astfel de probleme este construirea unui
criteriu global (modele liniare sau neliniare) n care fiecrui subcriteriu i se
acord mai mult sau mai puin importan.
Algoritmii genetici sunt algoritmi care mbuntesc soluia pas cu pas
de-a lungul mai multor generaii. Exist probleme ns de tipul acul n carul
cu fn care prin formulare nu permit o mbuntire pas cu pas. Un exemplu
n acest sens este problema satisfiabilitii n care, dat o formul n logica
Boolean peste un numr de k variabile booleene se cere o asignare a
acestora astfel nct ntreaga formul sa fie satisfiabil (rezultatul evalurii s
fie 1 echivalent valorii booleene adevrat). Pentru aceast problem poate fi
scris un algoritm genetic clasic n care reprezentarea soluiilor se face sub
forma unui ir de k bii, iar operatorii genetici sunt cei standard. Funcia fitness
d valoarea de adevr a expresiei booleene sub asignrile date de
cromozomi. Dificultatea rezid n faptul c evalund cromozomii cu o funcie
fitness ce are doar dou valori nu se poate face mbuntirea pas cu pas iar
nvarea devine imposibil. Trebuie gsit o modalitate de a ierarhiza indivizii
nesatisfiabili iar acest lucru este posibil utiliznd cunotine suplimentare din
domeniul problemei. O soluie este exprimarea problemei n form normal
conjunctiv echivalent; pentru o astfel de formulare a problemei,
mbuntirea soluiilor poate fi realizat pas cu pas considernd ca funcie
fitness numrul de termeni care se evalueaz la valoarea boolean adevrat.

24
Capitolul 3
Algoritmii genetici n optimizarea numeric
Optimizarea numeric se refer la studiul problemelor n care se
ncearc minimizarea sau maximizarea unei funcii reale prin alegerea
valorilor variabilelor reale sau ntregi dintr-o mulime permis.
Forma general a unei probleme n optimizarea numeric este
urmtoarea:
Dat o funcie f : R
k
R pozitiv (f > 0) s se determine un element x
opt

din R
k
cu restriciile x
i
opt
[a
i
;b
i
] astfel nct f(x
opt
) f(x) oricare ar fi xR
k
.
O problem de minimizare a unei funcii g poate fi exprimat n forma
de mai sus considernd f = -g. n acest caz soluia problemei de minimizare a
funciei g este aceeai cu soluia problemei de maximizare a funciei f:
min g(x) = max {-g(x)} = max f(x).
O problem de maximizare a unei funcii g care nu este pozitiv poate
fi exprimat n forma de mai sus considernd funcia f de forma f = g + C unde
C este o constant. Soluia problemei de maximizare a funciei g este soluie
a problemei de maximizare a funciei f:
max g(x) = max {g(x) + C} = max f(x).

n rezolvarea unei probleme de optimizare numeric cu algoritmi
genetici este necesar fixarea apriori a preciziei soluiilor. S considerm c
optimizarea se face cu precizia de 6 zecimale.
Pentru a obine aceast precizie este necesar divizarea spaiului de
cutare ntr-un numr de (b
i
a
i
)10
6
subintervale de lungime egal. Se caut
cel mai mic ntreg m
i
astfel nct (b
i
a
i
)10
6
2
mi
1. Fiecare component x
i

a unei soluii va fi reprezentat ca un ir de m
i
bii. Interpretarea acestui ir de
bii se face dup urmtoarea formul de calcul:


unde decimal(ir_binar) reprezint valoarea zecimal a irului.
Reprezentarea unei soluii candidat se face sub forma unui ir de bii
rezultat din concatenarea celor k componente: lungimea necesar este m =

i=1,k
m
i
, unde k este numrul de dimensiuni al spaiului de cutare iar m
i
este
numrul de bii necesari pentru a reprezenta o valoare din intervalul [a
i
; b
i
] cu
precizia dat.
1 - 2
a - b
) d ...d (d a x
i i m
i i
0 1 1 - m i i
+ = decimal

25
Iniializarea populaiei se poate face n mod aleatoriu prin construirea
a pop_size cromozomi prin setri aleatoare ale biilor sau se pot utiliza soluii
obinute cu alte euristici.
Pentru evaluarea cromozomilor se face mai nti decodificarea
acestora dup procedeul descris mai sus; dup obinerea pentru cromozomul
(irul) v a celor k componente ale soluiei x din spaiul numerelor reale se
calculeaz valoarea funciei f n punctul x: eval(v)=f(x) .
Algoritmul este oprit dup un numr fixat de generaii sau atunci cnd
nu se observ nici o mbuntire n fitnessul soluiilor candidat.
Procedura de selecie are loc n acord cu o distribuie de probabiliti
bazat pe fitnessul indivizilor. Cea mai bun procedur cunoscut este roata
norocului, n care, probabilitatea de selecie a fiecrui cromozom este direct
proporional cu valoarea fitnessului su. Paii necesari n efectuarea unei
selecii de acest tip sunt urmtorii:
o se calculeaz fitnessul fiecrui individ v
i
, eval(v
i
);
o se calculeaz fitnessul total ca suma fitnessului tuturor indivizilor:


o se calculeaz probabilitile de selecie individuale: p
i
=eval(v
i
) / F
o se calculeaz probabilitile de selecie cumulate:


Procesul de selecie are loc prin nvrtirea ruletei de pop_size ori: de
fiecare dat este selectat pentru supravieuire un cromozom din populaia
curent i pus n populaia intermediar. Acest lucru este realizat n modul
urmtor:
se genereaz aleatoriu un numr real r n intervalul [0, 1];
dac (q
i-1
< r q
i
) atunci selecteaz v
i
.

n principiu, utiliznd aceast schem de selecie, populaia
intermediar va conine mai multe copii ale celor mai buni cromozomi i
aproximativ o copie a indivizilor de calitate medie, n timp ce cromozomii de
calitate slab dispar.
Populaia intermediar obinut n urma seleciei este supus
operatorilor genetici ncruciarea i mutaia. Fiecare operator utilizeaz un
parametru numeric care d probabilitatea sa de a fi aplicat.
Dac probabilitatea ncrucirii este p
c
, atunci numrul total estimat de
indivizi care sunt supui ncrucirii este p
c
pop_size. Indivizii sunt selectai n

=
=
size pop
i
i
_
1
) (v F eval

=
=
i
j 1
j i
p q

26
modul urmtor din populaia intermediar: pentru fiecare cromozom
- se genereaz un numr aleatoriu r n intervalul [0, 1];
- dac r < p
c
individul curent este selectat.
Indivizii astfel selectai sunt mperecheai aleatoriu. Pentru fiecare
pereche ncruciarea are loc n dou etape: se genereaz aleatoriu un numr
n mulimea {1,...,m-1} care va constitui punctual de tiere i se nlocuiesc cei
doi prini cu descendenii lor rezultai n urma interschimbrii fragmentelor de
o parte i de alta a punctului de tiere. Procedeul este ilustrat n continuare:
considernd cromozomii prini P1 i P2 i punctul de tiere pos, se obin
cromozomii descendeni O1 i O2.
P1 = (a
1
a
2
a
pos
a
pos+1
a
m
) O1 =(a
1
a
2
a
pos
b
pos+1
b
m
)
P2 = (b
1
b
2
b
pos
b
pos+1
b
m
) O2 =(b
1
b
2
b
pos
a
pos+1
a
m
)
Operatorul de mutaie se aplic pe populaia intermediar rezultat n
urma aplicrii ncrucirii. Probabilitatea mutaiei p
m
d numrul estimat de bii
care vor fi supui mutaiei: p
m
m pop_size. Fiecare bit aceeai ans de a fi
supus mutaiei. Pentru fiecare cromozom din populaia intermediar i pentru
fiecare bit din cromozom
o se genereaz un numr aleatoriu r n intervalul [0, 1];
o dac r < p
m
valoarea bitului este negat.

Evoluia acestui algoritm genetic este ilustrat pe urmtoare problem de
maximizare cu dou variabile:
f(x
1
,x
2
) = 21.5 + x
1
sin(4x
1
) + x
2
sin(20x
2
),
cu restriciile: -3.0 x
1
( 12.1 i 4.1 ( x2 ( 5.8.
Se cere o precizie de 4 zecimale pentru fiecare variabil ceea ce
necesit o divizare a intervalului [-3.0, 12.1] n cel puin 15.1104 subintervale
i a intervalului [4.1, 5.8] n cel puin 1.7104 subintervale de lungime egal.
Sunt astfel necesari 18 bii pentru reprezentarea variabilei x1 i 15 bii pentru
reprezentarea variabilei x2:
217<151000<218; 214<17000<215
Lungimea total a reprezentrii unui individ este de 33 bii, primii 18 bii
reprezentnd codificarea primei variabile iar urmtorii 15 bii codificarea celei
de a doua variabile. De exemplu, cromozomul
v = (010001001011010000.111110010100010)
corespunde perechii (1.0524, 5.7553). Fitnessul acestui cromozom este egal

27
cu
eval(v) = f(1.0524, 5.7553) = 20.2526.

n continuare este descris modul de desfurare al experimentului i
sunt prezentate rezultatele obinute pentru o rulare
2
.
Parametrii algoritmului genetic utilizat sunt dup cum urmeaz:
dimensiunea populaiei pop_size = 20, probabilitatea ncrucirii p
c
= 0.25,
probabilitatea mutaiei p
m
= 0.01.
Populaia iniial a fost creat aleatoriu. n urma evalurii s-a
determinat cel mai bun individ ca fiind v
15
iar cel mai slab ca fiind v2.
Fitnessul total al populaiei iniiale a fost F=(eval(v
i
)=387.7768.
S-au calculat probabilitile de selecie pi pentru fiecare cromozom.
S-au calculat valorile probabilitilor cumulate q
i
.
Prin rotirea roii norocului de 20 de ori s-a creat populaia intermediar.
Din aceasta s-au selectat indivizii care particip la ncruciare. Dei numrul
estimat este 5 doar 4 cromozomi au fost selectai. Acetia sunt mperecheai
aleatoriu pentru ncruciare. n cazul n care numrul de indivizi ar fi fost
impar ar fi fost necesar selecia unui individ n plus sau eliminarea unuia deja
selectat. De exemplu, prima pereche supus ncrucirii a fost format din
perechea
v
2
= (100011000.101101001111000001110010)
v
11
= (111011101.101110000100011111011110)
perechea rezultat fiind
v
2
= (100011000. 101110000100011111011110)
v
11
=(111011101. 101101001111000001110010)
Pentru aplicarea mutaiei este necesar efectuarea seleciei de 660 ori.
Numrul estimat de mutaii este p
m
mpop_size=6.6. Numrul de gene
afectate a fost 5. Urmtorul tabel reprezint poziia genei alese pentru mutaie
(din 660 posibile), cromozomul afectat i poziia bitului afectat n cromozom.

Poziia bitului
(populaie)
Numrul
cromozomului
Poziia bitului
(cromozom)
112 4 13
349 11 19

2
Exemplu preluat din (Michalewicz 1996)

28
418 13 22
429 13 33
602 19 8

Doar 5 cromozomi au fost afectai de operatorul de mutaie, iar din
acetia unul a suferit dou mutaii.
Valoarea fitnessului total al populaiei dup prima iteraie a fost F =
447.049, mult mai mare dect fitnessul populaiei anterioare.
Dup 1000 generaii cel mai bun cromozom obinut a fost
v
11
=(110101100000010010001100010110000)
iar fitnessul acestuia are valoarea
eval (v
11
) = f (9.6236 , 4.4278) = 35.4779.

ntr-o generaie intermediar a algoritmului (generaia numrul 396) s-a
obinut ns un individ cu o valoare a fitnessului mai mare: eval (best_so_far)
= 38.8275. Pentru a nu pierde astfel de indivizi cu valori mari ale fitnessului i
care au ansa de a deveni soluie este necesar memorarea lor. n final,
algoritmul nu va raporta ca soluie cromozomul din generaia final cu cea mai
bun valoare a fitnessului ci cel mai bun individ ntlnit pe parcursul cutrii.
Motivul pentru care indivizi foarte buni sunt eliminai din populaie l
constituie erorile stocastice de selecie (numere pseudo-aleatorii, populaii
finite, numr finit de generaii).

29
Capitolul 4
Teorema schemelor
n studiul algoritmilor genetici este evident necesitatea unui model
teoretic care s poat da rspunsuri unor ntrebri precum:
ce legi descriu comportamentul macroscopic al algoritmilor genetici
ce efect au operatorii genetici (selecia, ncruciarea, mutaia)
asupra comportamentului macroscopic al algoritmilor genetici
ce face o problem potrivit pentru rezolvarea cu un algoritm
genetic
ce face o problem nepotrivit pentru rezolvarea cu algoritmii
genetici
ce criterii de performan sunt relevante
Primul demers n acest sens este cel al lui Holland(1975) care propune
un model ce explic modul n care un algoritm genetic standard converge la
soluie, fr a face ns predicii asupra producerii sau nu a convergenei, a
acurateii soluiilor gsite sau asupra vitezei de convergen. Rezultatul su
central este teorema schemelor.
Investignd performanele algoritmilor genetici, Forrest, Holland i
Mitchell au propus n 1992 funciile Royal Roads care ar fi trebuit s constituie
un tip de probleme uor de rezolvat pentru algoritmii genetici datorit structurii
special definite a soluiilor. n urma unor studii experimentale s-a constatat
ns c euristici simple precum hill-climbing depesc algoritmii genetici i
numeroase observaii n acest sens vin s ntregeasc sfera de nelegere a
acestor algoritmi.
Au fost formulate i modele matematice exacte care s descrie
comportamentul unui algoritm genetic simplu: Vose (1991), Goldberg (1987),
Davis (1991), Horn (1993), Whitley (1993).
S-au ncercat de asemenea modelri din statistica mecanic: Prgel-
Bennett (1994).

4.1 Formularea teoremei schemelor
n cele ce urmeaz este prezentat modelul lui Holland care dezvolt
mai multe argumente pentru a explica modul n care un algoritm genetic
reuete s efectueze o cutare complex i robust. Modelul are la baz
reprezentarea soluiilor sub form de ir binar i noiunea de schem, o
formalizare a noiunii informale de blocuri de construcie.

30
O schem este o mulime de iruri de bii descris printr-un cuvnt
peste alfabetul {1, 0, *}. Mulimea tuturor irurilor care satisfac o schem dat
conine acele iruri care sunt identice pe toate poziiile exceptnd cele pe care,
n schem, apare caracterul *.
De exemplu, schemei S
1
de lungime 10 care conine un singur caracter
*
S
1
=(001100011*)
i corespund cele dou iruri date de mulimea H
1
:
H
1
={(0011000111), (0011000110)},
Schemei S
2
de lungime 10 dar cu dou simboluri *
S
2
=(00*100*111)
i corespund cele 4 iruri date de mulimea H
2
:
H
2
={(0011000111), (0001000111), (0011001111),(0001001111)};
Schema de lungime 10 format numai cu caracterul * reprezint toate
irurile binare de dimensiune 10 n timp ce o schem n care nu apare acest
simbol reprezint un singur ir: irul identic.
n general, o schem care conine a apariii ale simbolului *este
descris de un hiperplan ce conine 2
a
iruri. Pe de alt parte, un ir de
lungime m este reprezentat de (este instan a) 2
m
scheme. De exemplu, irul
de lungime 2 (01) este instan a urmtoarelor scheme: 01, 0*, *1, **.
Pentru toate cele 2
m
iruri de lungime m exist exact 3
m
scheme. ntr-o
populaie de dimensiune pop_size pot fi reprezentate ntre 2
m
i pop_size2
m

scheme.
Schemele sunt caracterizate de dou proprieti importante: ordinul
schemei i lungimea de definiie a schemei.
Poziiile unei scheme care nu sunt ocupate cu caracterul * poart
numele de bii definii.
Ordinul unei scheme S, o(S), este dat de numrul de bii definii n
schema respectiv (numrul poziiilor fixe, ocupate cu 0 sau 1). Aceast
caracteristic este o msur a specificitii schemei. De exemplu,
considernd urmtoarele scheme de lungime 6
S
1
= (**1**0),
S
2
= (11**10),
S
3
= (01110*),
care au ordinele:

31
o(S
1
) = 2, o(S
2
) = 4, o(S
3
) = 5,
cea mai specific este schema S
3
care are cea mai mare valoare a
ordinului.
Caracterizarea unei scheme prin ordinul ei este utilizat pentru a
calcula probabilitatea de supravieuire a schemei la mutaii.
Lungimea de definiie a schemei S, (S), este distana dintre primul i
ultimul bit definit din schem. Este o msur a compactitii informaiei
coninut n schem. De exemplu, schemele de mai sus au urmtoarele
lungimi de definiie:
(S
1
) = 6-3 = 3, (S
2
) = 6-1 = 5, (S
3
) = 5-1 = 4.
O schem care are un singur bit definit va avea o lungime de definiie
egal cu 0.
Lungimea de definiie a unei scheme intervine n calculul probabilitii
de supravieuire la operaii de ncruciare.
Fitnessul static al unei scheme S ntr-un algoritm genetic este definit ca
media aritmetic a valorilor fitness a tuturor instanelor str
i
a schemei:
eval(S) = (1/2
r
)
i
eval(str
i
)
unde r este numrul de simboluri * din schem.
n iteraia n a algoritmului genetic fitnessul unei scheme S este definit
ca media aritmetic a valorilor fitness a tuturor indivizilor din populaie care
sunt reprezentai de schema S:
eval(S,n) = (1/k)
j
eval(str
j
),
unde k este numrul total de instane ale schemei S n populaia P(n).
Schemele nu sunt explicit reprezentate i evaluate ntr-un algoritm
genetic. n timpul execuiei unui algoritm genetic nu sunt calculate i
memorate estimri ale fitnessului vreunei scheme. Totui, numrul de instane
ale schemelor reprezentate iniial, crete sau descrete n generaii succesive
ale algoritmului. Dac iniializarea se face aleatoriu, n prima generaie
aproximativ jumtate din populaie vor fi instane ale schemei S = (1**) iar
cealalt jumtate instane ale schemei T = (0**). Evalurile cromozomilor
pot fi considerate ca fiind estimri ale fitnessului celor dou scheme, eval(S)
i eval(T).
Fie H o schem reprezentat n generaia t de un numr (H,t) de
instane. Fitnessul acestei scheme n aceast iteraie este dat de fitnessul
mediu observat eval(H,t). Pentru a urmri evoluia schemei H de-a lungul unui
algoritm genetic este necesar estimarea numrului de cromozomi care

32
satisfac aceast schem n iteraia t+1, E((H,t+1)). n acest sens este studiat
efectul fiecrui operator asupra schemei. Algoritmul genetic considerat este
cel clasic n care selecia este de tip roata norocului, operatorul de ncruciare
este cel cu un singur punct de tiere iar mutaia este cea standard.
n urma seleciei un individ primete zero, una sau mai multe copii n
populaia intermediar n funcie de valoarea fitnessului su. Cromozomul x
va avea n generaia urmtoare un numr de urmai estimat de

unde f(x) = eval(x) este fitnessul individului iar este fitnessul mediu n
generaia t curent. innd seama de acest rezultat, numrul de cromozomi
care satisfac schema H n generaia t+1 este



Algoritmul genetic nu calculeaz explicit eval(H,t) dar aceast cantitate
decide numrul de instane ale schemei H n generaiile urmtoare. Numrul
de iruri n populaie crete o dat cu raportul dintre fitnessul schemei i
fitnessul mediu al populaiei. Schemele cu fitness peste medie vor primi un
numr mai mare de iruri n generaia urmtoare, schemele cu fitness mai mic
dect media vor primi un numr mai mic de iruri iar cele cu fitness mediu vor
primi un numr aproximativ egal.
n urma operatorului de ncruciare vor fi distruse unele instane ale
schemei H sau vor fi create altele noi. Dac se consider doar caracterul
destructiv se obin valori mai mici pentru E((H,t+1)). Punctul de tiere pentru
ncruciare este ales uniform din cele m-1 posibile unde m este lungimea
cromozomului. Probabilitatea de distrugere a unei scheme este dat de
D
c
(H) = (H)/(m-1)
ceea ce d o probabilitate de supravieuire la ncruciare de
S
c
(H) = 1- (H)/(m-1).
Deoarece numrul de cromozomi care sunt supui ncrucirii este dat
de probabilitatea de ncruciare p
c
, i n urma unei ncruciri sunt anse ca
schema s nu fie distrus dei punctul de tiere se afl ntre poziii fixe (atunci
cnd indivizii care particip la ncruciare satisfac aceeai schem),
probabilitatea de supravieuire a schemei H dup aplicarea operatorului de
ncruciare satisface urmtoarea relaie:
S
c
(H) 1- p
c
((H)/(m-1)).
, ) t ( f )/ , eval( ) , ( ) t ( f eval(x)/ 1)) , E((
x
t H t H t H
H
= = +

) t ( f / ) (x f
) t ( f

33
Probabilitatea de supravieuire la ncruciare este mai mare pentru
schemele mai compacte, adic cele cu valori mici ale lungimii de definiie.
Dac se consider operatorul de mutaie cu probabilitatea de
modificare a unui bit dat de p
m
, atunci probabilitatea de supravieuire a unui
singur bit este 1-p
m
. Deoarece mutaiile sunt independente ntre ele,
probabilitatea de supravieuire a schemei H n urma mutaiei, echivalent cu
probabilitatea ca nici un bit dintre cei definii s nu fie mutat, este dat de:
S
m
(H) = (1-p
m
)
o(H)
.
Probabilitatea de supravieuire a unei scheme supuse operaiei de
mutaie este mai mare pentru schemele de ordin redus.
nsumnd efectul seleciei cu efectele celor doi operatori ncruciarea
i mutaia obinem creterea minimal a unei scheme H de la o generaie la
urmtoarea:



Factorul de cretere este

Interpretarea relaiei de mai sus poart numele de teorema
schemelor: schemele scurte, de ordin redus, cu valori ale fitnessului constant
peste medie vor primi un numr cresctor exponenial de instane n generaii
succesive ale algoritmului genetic.
Teorema schemelor d o limit inferioar deoarece neglijeaz
creativitatea operatorilor.
Un rezultat imediat al teoremei schemelor este ideea c ncruciarea
este sursa major a puterii algoritmului genetic, recombinnd instane ale
schemelor bune pentru a crea instane ale unor scheme cel puin la fel de
bune. Acest rezultat poart numele de ipoteza blocurilor de construcie i
este formulat n modul urmtor: un algoritm genetic exploreaz spaiul de
cutare prin juxtapunerea schemelor scurte, de ordin redus i performan
ridicat, denumite blocuri de construcie.
Mutaia furnizeaz diversitate n populaie chiar atunci cnd populaia
tinde s convearg. Dac n populaie un bit devine 0, numai mutaia ofer
ansa de a se face noi ncercri cu valoarea 1.
ntr-o generaie, algoritmul genetic estimeaz fitnessul mediu al tuturor
schemelor care au instane n acea generaie i crete sau descrete
reprezentarea acestor scheme n generaia urmtoare corespunztor valorii
acestuia. Are loc aadar o evaluare implicit a unui numr mare de scheme
o(H)
m c
) p - (1 )
1 - m
(H)
p - (1 t) (H,
(t) f
t) eval(H,
1)) t , H E(( +
.
(t) f
t) eval(H,

34
utiliznd numai pop_size cromozomi. Holland a artat c cel puin pop_size
3

scheme sunt procesate i a denumit aceast proprietate n 1975 drept
paralelism intrinsec dup care, pentru a evita confuzia cu terminologia din
calculul paralel a utilizat termenul de paralelism implicit. Un numr de scheme
mult mai mare dect dimensiunea populaiei sunt reprezentate, aceast
explozie combinatorial constituind de data aceasta un avantaj.
n acelai timp, algoritmii genetici prin structura lor, se preteaz la
implementri paralele, proprietate denumit paralelism inerent.
n concepia lui Holland, un sistem adaptiv ar trebui s identifice,
testeze i ncorporeze proprieti structurale care au anse s dea
performan mai bun ntr-un anumit mediu. Algoritmii genetici trebuie s
pstreze un echilibru ntre explorare i exploatare. Explorarea are loc prin
cutarea de noi adaptri utile, n timp ce exploatarea desemneaz utilizarea i
propagarea adaptrilor. Dac explorarea este neglijat, se ajunge n situaia
de supra-adaptare, inflexibilitate la noutate, blocarea algoritmului. Insuficient
exploatare duce la sub-adaptare, puine proprieti sunt ctigate.

4.2 Problema banditului cu dou brae
Pentru a studia modul n care algoritmul genetic utilizeaz schemele,
Holland a utilizat o problem intens studiat n contextul teoriei deciziilor
statistice i controlului adaptiv (Bellman 1961): problema banditului cu dou
brae.
Scenariul este urmtorul: un juctor are la dispoziie N monede pentru
a juca la o main cu dou brae etichetate A
1
i A
2
. Ctigul mediu la o
ncercare pentru cele dou brae este
1
, respectiv
2
, i este stabil de-a
lungul timpului (procese staionare, independente unul fa de cellalt). Att
ctigurile ct i varianele
1
i
2
sunt necunoscute juctorului. Acesta poate
s le estimeze doar jucnd pentru fiecare bra. Problema const n
determinarea unui model de alocare a monedelor pentru fiecare bra, date
ctigurile observate, estimarea ctigurilor medii
1
,
2
i estimarea
varianelor
1
,
2
. Scopul nu este aadar determinarea celui mai bun bra, ci
maximizarea ctigului n timp ce informaia este ctigat n timpul alocrii
resurselor. Un astfel de criteriu de performan este denumit on-line deoarece
ctigul pentru fiecare ncercare particip la evaluarea final.
Pe msur ce se obine mai mult informaie prin alocri succesive,
strategia optimal este de a crete exponenial probabilitatea de alocare
pentru braul aparent mai bun n defavoarea braului cu ctiguri mai mici. Ori,
aceast strategie a fost evideniat de Holland n teorema schemelor pentru

35
mecanismul de eantionare a schemelor n algoritmii genetici. Cele 3
m

scheme pot fi vzute ca 3
m
brae ale unei maini cu mai multe brae. Ctigul
observat al unei scheme H este fitnessul mediu observat prin numrul de
reprezentani ai schemei H n populaie.
S presupunem c
1

2
,ceea ce nseamn c A
1
ofer un ctig
mediu mai mare dect A
2
. Dintr-un numr de N ncercri fie n numrul de
alocri ctre A
L
i N-n numrul de alocri ctre A
H
, unde A
H
(N, N-n) este
braul cu cel mai mare ctig observat iar A
L
(N, n) braul cu un ctig observat
mai mic. Problema se reduce la determinarea numrului n care maximizeaz
profitul de-a lungul a N ncercri.
Ideal este ca alocarea monedelor s se efectueze doar la braul A
1
,
ctigul estimat fiind N
1
.
O pierdere este considerat o ncercare n care alocarea se face ctre
braul cu ctig real mai mic.
Dac braul observat ca fiind cel mai bun n urma ncercrilor este i n
realitate cel care ofer cele mai mari ctiguri, n cazul nostru A
H
(N, N-n) =
A
1
, de-a lungul celor n ncercri alocate lui A
L
(N, n), juctorul pierde din
profitul estimat n(
1
-
2
).
Dac dimpotriv, braul considerat ca fiind cel mai prost n urma
ncercrilor este n realitate cel mai bun (A
L
(N, n) = A
1
), pierderea din profitul
estimat provine de la cele N-n ncercri alocate braului A
H
(N, N-n), i are
valoarea (N-n)(
1
-
2
).
Fie q probabilitatea ca primul caz s aib loc, q = Prob(A
L
(N, n) = A
1
) i
fie L(N-n, n) numrul de pierderi pentru cele N ncercri. Atunci, urmtoarea
relaie are loc:
L(N-n,n) = q(N-n)(
1
-
2
) + (1-q)n(
1
-
2
)
Pentru a detrmina valoarea lui n
*
care minimizeaz expresia lui L(N-n,
n) se calculeaz derivata acesteia n raport cu n:





unde S
1
n
este suma ctigurilor pentru ncercrile alocate lui A
1
iar S
2
N-
n
suma ctigurilor pentru ncercrile de alocare lui A
2
.
Deoarece cele dou sume sunt variabile aleatoare, diferena acestora
este tot o variabil aleatoare. Determinarea lui q se reduce la determinarea
ariei de sub partea distribuiei care e mai mic sau egal cu 0. Holland a
0 )
n
2n) - (N 2 1 ( ) - (
n
L
2 1
= + =
d
dq
q
d
d
, ) 0
n N
S
n
S
( )
n
S
n N
S
( dar
n N
2
n
1
n
1
n N
2
<

= >

=

ob Pr ob Pr q

36
aproximat aceast arie prin utilizarea teoremei limitei centrale pentru distribuii
normale. Dan Frantz a corectat aceast aproximare utiliznd teoria marilor
deviaii i a obinut urmtoarea valoare pentru n
*
:



unde c
1
, c
2
i c
3
sunt constante pozitive definite de acesta.
Cu ajutorul unor calcule algebrice se obine numrul optim de
ncercri alocate braului cel mai bun observat:



Pe msur ce n
*
crete, se poate face aproximarea


unde c = 1/2c
1
.
Concluzionnd, alocarea ncercrilor ctre braul cel mai bun observat
ar trebui s creasc exponenial cu numrul de ncercri alocate braului mai
prost observat.
Problema banditului cu dou brae ilustreaz perfect dificultatea
sistemelor adaptive de a echilibra explorarea i exploatarea.
Teorema schemelor susine c, n condiiile stabilite, algoritmul genetic
conine o versiune a strategiei optimale descrise mai sus: populaia crete
exponenial n raport cu numrul de ncercri alocate celor mai slabe scheme
observate.
Interpretarea corect a analogiei dintre banditul cu dou brae i
scheme nu este totui simpl. Grefenstette i Baker ilustreaz acest lucru prin
urmtoarea funcie fitness:
2 if x 111**
f(x) = 1 if x 0****
0 otherwise

Fitnessul mediu static (media fitnessului tuturor instanelor schemelor)
calculat pentru schemele care au doar primul bit definit este:
eval(1**) = (3 instane din 4 au fitnessul egal cu 0, i doar una d
2)
eval(0**) = 1
n urma seleciei, instane ale schemei 111** vor fi puternic selectate
)
) N ln(c
N c
ln( c n
2
3
2
2
1
*


*
2
2
3 /2c n *
n
c
) N ln(c
n N
1
*
e
*
cn *
n N e

37
n populaie. Dup un numr de n generaii fitnessul observat pentru schema
111** este aproximativ egal cu 2.
eval(1**, n) eval(111**, n) 2.
Instane ale schemei 111** sunt ns instane i pentru schema
1**. Acestea din urm vor fi selectate aadar de mult mai multe ori dect
instanele schemei 0** dei au un fitness mediu static mai mic.
Pentru problema banditului cu dou brae cele dou variabile aleatoare
care descriu fiecare bra sunt independente (deciziile nu sunt influenate de
jocurile anterioare), n timp ce n algoritmul genetic, braele (schemele)
interacioneaz: ctigul observat pentru schema 1*...* este puternic influenat
de ctigul observat pentru scheme 111*...*. Aadar, algoritmul genetic nu
eantioneaz schemele n mod independent pentru a estima adevratul lor
ctig.
n realitate algoritmul genetic nu simuleaz jocul banditului cu 3
m
brae,
n care toate schemele au rolul braelor, ci banditul cu 2
k
brae pentru fiecare
schem de ordin k. Algoritmul genetic aloc un numr exponenial de instane
celei mai bune sub-scheme observate dintr-o schem i nu celei mai bune
scheme viitoare. Strategia algoritmului genetic va fi (aproape) optimal dac
valorile fitness ale schemelor n poulaie au o distribuie uniform. Exemplu
anterior al lui Grefenstette i Baker este ilustrativ n acest sens.
n ceea ce privete evoluia banditului cu 2
k
brae, valoarea lui k crete
pe parcursul algoritmului genetic: o dat cu derularea generaiilor, se obin
scheme de ordin tot mai mare. Totui, la fiecare generaie selecia introduce
noi erori n modalitatea de eantionare a schemelor, rezultatul fiind
necorelarea fitnessului mediu static cu fitnessul mediu observat.
Strategia de alocare exponenial utilizat pentru problema banditului
cu dou brae este potrivit problemelor care necesit adaptare i n care
performana este msurat on-line, precum problemele de control n timp real
(controlul automat al mainilor) i probleme de nvare automat (de ex.
navigarea ntr-un mediu necunoscut, prezicerea pieelor financiare). n astfel
de probleme algoritmul genetic reuete s ofere soluii aproximative
satisfctoare, n timp scurt. Spre deosebire de optimizare (determinarea
celei mai bune soluii), algoritmul genetic reuete s maximizeze, ntr-un
timp relativ scurt dat, cantitatea de informaie legat de sub-spaiile cu anse
mari de a furniza soluii bune. Obinerea de soluii n acest mod poate fi
denumit satisfacere. Pentru o real optimizare, este necesar hibridizarea
algoritmului genetic cu alte strategii (precum hill climbing) care s realizeze o
cutare de tip gradient. Algoritmii genetici realizeaz o ctare global, fiind

38
capabili s descopere n timp scurt regiuni promitoare n spaiul de cutare,
n timp ce algoritmii de tip hill climbing realizeaz o cutare local n acele
regiuni.

4.3 nelarea unui algoritm genetic
n algoritmii genetici selecia dirijeaz procedura de eantionare ctre
instane ale schemelor cu fitnessul estimat peste medie. Acurateea acestei
estimri crete odat cu vrsta populaiei. Exist totui contraexemple n care,
scheme scurte de ordin redus i cu fitness peste medie pot nela algoritmul
genetic cauznd convergena ctre puncte suboptimale (Bethke 1980). Un
exemplu n acest sens este urmtorul: toate schemele n care biii definii au
valoarea 1, au valori mari ale fitnessului static; excepie face schema care are
1 pe primele dou poziii i pe ultima, 111; n locul acesteia din urm,
fitness ridicat obine schema 000. Funciile de acest gen au fost denumite
complet neltoare (termenul nelotor n englez deceptive a fost
introdus n 1986 de ctre Goldberg): scheme de ordin redus dau informaii
false cu privire la localizarea optimului. Exemplul este ilustrat n continuare:
schemele S
1
, S
2
, S
3

S
1
= (11******)
S
2
= (*******1)
S
3
= (00*****0)
au fitnessul peste medie dar combinaia schemelor S
1
i S
2
dat de S
4

S
4
= (11*****1)
are fitness sczut.
Dac soluia optim este irul
s = (11111111)
algoritmul genetic va ntmpina dificulti n a converge ctre aceasta
deoarece prezint tendina de a converge ctre puncte precum (00111110).
Exist grade diferite de nelare a unui algoritm genetic. Bethke a
utilizat transformri Walsh (asemntoare transformrilor Fourier) pentru a
crea funcii fitness cu diferite grade de nelare.
nelarea este un factor imortant atunci cnd algoritmii genetici sunt
utilizai pentru optimizare (pentru determinarea optimului global). Dac ns ei
sunt utilizai pentru satisfacere (maximizarea ctigului), nelarea poate fi
neglijat
Problema ridicat de nelare poate fi tratat prin utilizarea de

39
reprezentri alternative (n exemplul nostru o codificare n care primii doi bii i
ultimul s ocupe poziii adiacente), reprezentri care necesit ns cunotine
apriori despre funcia obiectiv i natura decepiei. O alt soluie este utilizarea
unui al treilea operator inversia care selecteaz dou puncte n ir i
inverseaz ordinea biilor.

4.4 Critica teoremei schemelor
Teorema schemelor nu explic n totalitate comportamentul algoritmilor
genetici. Ea nu ofer o garanie pentru producerea convergenei ntr-un
algoritm genetic care respect setul de condiii specificat, dar explic cum se
produce convergena atunci cnd are ntr-adevr loc. Nu d informaii nici n
ceea ce privete viteza de convergen.
Teorema schemelor lucreaz numai cu scheme care apar n prima
iteraie a algoritmului, nu explic apariia de noi scheme pe parcursul
algoritmului i nici nu ofer estimri ale schemelor ce vor fi descoperite.
Teorema schemelor lucreaz cu fitnessul observat al unei scheme,
obinut din indivizii prezeni n populaie; valoarea acestuia poate diferi ns de
fitnessul static, obinut lund n calcul toi reprezentanii schemei.
Schemele sunt potrivite pentru blocurile de construcie rezultate n
urma ncrucirii cu un singur punct de tiere. Alte structuri sunt ns
necesare pentru a lucra cu ali operatori.
Prediciile fcute pe termen ndelungat sunt nerealiste, evoluia
populaiei este corect apreciat doar pentru un pas al algoritmului.

40
Capitolul 5
Funciile Royal Roads
Teorema schemelor a evideniat efectele pozitive ale seleciei; n ceea
ce privete operatorii genetici a luat ns n considerare numai efectele
negative/ destructive ale acestora.
Teorema schemelor a sugerat c drumul ctre soluia optim ntr-un
algoritm genetic este croit pornind de la scheme scurte, de ordin redus i bine
adaptate care, prin combinare, dau natere unor scheme de ordin intermediar
cu fitness ridicat; acestea, la rndul lor, dau natere unor scheme cu valori i
mai ridicate ale fitnessului, procesul repetndu-se pn la convergen.
Pornind de la aspectele evideniate de teorema schemelor, Stephanie
Forrest, John Holland i Melanie Mitchell au formulat n 1992 o funcie care s
respecte ipoteza blocurilor de construcie i care s ilustreze puterea
constructiv a operatorului de ncruciare. Aceast funcie este construit
utiliznd o list de scheme s
i
i o mulime de coeficieni c
i
asociai acestor
scheme. Funcia R
1
este dat de urmtoarea sum:
R
1
(x) =
i
c
i

i
(x),
n care
i
(x) = if (xs
i
) then 1 else 0 verific satisfacerea schemei s
i

de ctre soluia x.
Funcia R
1
are o structur sub form de blocuri de construcie; ipoteza
blocurilor de construcie ar trebui s contureze un drum regal ctre irul
optim pentru algoritmul genetic. Aceste funcii studiaz de fapt procesarea i
recombinarea schemelor, testnd abilitatea algoritmilor genetici de a propaga
blocuri de construcie folositoare..
O funcie de acest gen este ilustrat n continuare; ea este construit
cu ajutorul a 8 scheme de ordin egal cu 8; coeficienii c
i
sunt egali cu ordinul
schemelor:
s
1
= 11111111********************************, c1=8
s
2
= ********11111111************************, c2=8
s
3
= ****************11111111****************, c3=8
s
4
= ****************************************, c4=8
s
5
= ****************************************, c5=8
s
6
= ****************************************, c6=8
s
7
= ************************11111111********, c7=8
s
8
= ********************************11111111, c8=8.

41
Valoarea maxim a funciei este egal cu 64 i se obine n punctual de
optim:
s
opt
= 1111111111111111111111111111111111111111.
Pentru aceast funcie a fost proiectat un algoritm genetic standard cu
urmtoarele valori ale parametrilor: pop_size = 128, pc = 0.7, pm = 0.005.
Iniializarea populaiei s-a fcut aleatoriu.
Schema de selecie utilizat a fost -selecia, n care numrul estimat
de copii ale unui individ este stabilit prin comparaie ntre fitnessul individului
i fitnessul mediu raportat la deviaia standard:
1 + ( f(x
i
) F / pop_size ) /
Aceast schem are drept rezultat realizarea a zero, una sau dou
copii ale unui individ n generaia intermediar. n alegerea schemei de
selecie s-a avut n vedere faptul c pentru funcia R
1
unii indivizi pot avea
valori mult mai mari ale fitnessului dect ali indivizi; datorit numrului mic de
copii pe care un individ le poate primi n generaia intermediar sub aceast
schem de selecie, convergena este ncetinit i n acest fel evitat
convergena prematur.
Algoritmul genetic astfel proiectat a fost comparat cu trei algoritmi,
variaii ale algoritmului Hillclimbing standard.
n urma experimentelor, algoritmul genetic a convers prematur ctre o
soluie diferit de soluia optim, un punct de optim local. Convergena
prematur nu a fost neaprat rezultatul a prea puine generaii, ci mai degrab
a faptului c algoritmul genetic s-a ndreptat ctre o int greit.
Cele trei variante ale algoritmului Hill Climbing utilizat au fost: steepest
ascent hill climbing (SAHC), next-ascent hill climbing (NAHC) i random
mutation hill climbing (RMHC).
SAHC caut printre vecinii soluiei curente pe cael care ofer cea mai
bun mbuntire a funciei fitness:
1. alege aleatoriu un ir;
2. genereaz toi vecinii la distan Hamming 1;
3. vecinul care d cea mai bun mbuntire a fitnessului devine
soluie curent
4. dac nu se obine nici o mbuntire a fitnessului atunci mergi la
pasul 1, altfel mergi la pasul 2
5. cnd este atins numrul maxim de evaluri ale funciei fitness,
returneaz cea mai bun soluie gsit.
NAHC ia n considerare primul vecin care ofer o mbuntire i

42
continu cutarea din acel loc:
1. alege aleatoriu un ir; seteaz j=1;
2. genereaz cel mult m vecini la distan Hamming 1 ncepnd cu
poziia j;
3. dac la poziia k se obine o mbuntire a fitnessului, noul ir
devine soluie curent, actualizeaz j = (k+1)%m i mergi la pasul 2;
4. mergi la pasul 1;
5. cnd este atins numrul maxim de evaluri ale funciei fitness,
returneaz cea mai bun soluie gsit.
RMHC, spre deosebire de cele dou variante de mai sus, utilizeaz
selecia aleatoare a vecinilor:
1. genereaz aleatoriu un ir;
2. alege aleatoriu o locaie pentru modificare;
3. dac fitnessul soluiei obinute este cel puin la fel de bun,
selecteaz-o drept soluie curent;
4. mergi la pasul 2 pn numrul maxim de evaluri este atins;
5. returneaz soluia curent.
Fiecare algoritm a fost rulat de 200 ori cu iniializri diferite a
generatorului de numere aleatoare. Numrul maxim de evaluri a fost setat la
256.000. Algoritmilor li s-a permis s ruleze pn a fost gsit optimul iar
numrul de evaluri a funciei a fost nregistrat.
Rezultatele experimentale sunt afiate n tabelul urmtor.
n ceea ce privete algoritmii SAHC i NAHC rezultatele sunt cele
estimate: nici unul nu reuete s gseasc optimul cu un maxim de 256000
evaluri ale funciei n timp ce algoritmul genetic gsete soluia optim dup
un numr mediu de 61334 evaluri. Lucru neateptat, RMHC este de
aproximativ 10 ori mai rapid dect algoritmul genetic atingnd optimul dup
un numr mediu de numai 6179 evaluri ale funciei.


Numrul de
evaluri pentru
200 rulri
GA
(/sqrt(200))
SAHC NAHC RMHC
(/sqrt(200))
Media 61.334
(2.304)

>256,000

>256,000
6,179
(186)
Mediana 54208
>256,000

>256,000
5,775

43
Dei funciile Royal Roads s-au dorit a fi un mediu special creat pentru
a furniza drumuri regale ctre convergen pentru algoritmii genetici,
rezultatele experimentale au dovedit c o procedur aleatoare obine o
performan mai bun.
Rmne deschis aadar ntrebarea referitoare la condiiile n care un
algoritm genetic depete ali algoritmi, precum hill climbing.
O analiz a algoritmului RMHC a fost realizat pentru a explica
rezultatele bune obinute de acesta pe funciile Royal Roads. Funcia
considerat pentru analiz utilizeaz N blocuri adiacente, fiecare cu o lungime
de K bii (pentru problema de mai sus N=8, K=8). Timpul necesar gsirii unui
al doilea bloc este mai mare dact cel necesar determinrii primului bloc
deoarece sunt efectuate mutaii i n cadrul primului bloc. Numrul de mutaii
folositoare, efectuate n afara primului bloc este egal cu (KN-K)/KN.
Pentru a estima numrul de evaluri ale funciei, efectuate de ctre
algoritm pn la gsirea soluiei optime, se estimeaz, din aproape n
aproape, numrul de evaluri necesare gsirii primului bloc, celui de al doilea
bloc, samd., pn cnd toate cele N blocuri au fost determinate. Dac utilizm
notaia E(K, I) pentru a desemna numrul estimat de evaluri ale funciei
pentru determinarea a I blocuri, obinem urmtorul ir de relaii:
E(K,2) = E(K,1) + E(K,1) ( KN / (KN - K) ) = E(K,1) N / (N-1)
E(K,3) = E(K,2) N / (N-2)

E(K,N) = E(K,N-1) N / (N-(N-1))
E(K,N) = E(K,1) N (1+1/2+1/3++1/N)
Dei ultima formul estimeaz numrul de evaluri necesare gsirii
soluiei optime funcie de numrul de evaluri necesar gsirii primului bloc, n
realitate, E(K,N) depinde de numrul de evaluri necesar determinrii blocului
cel mai nefavorabil.
Aproximnd ultimul termen, obinem urmtoarea relaie:
E(K,N) E(K,1) N (ln N + )
unde este constanta lui Euler.
Pentru a estima numrul de evaluri necesar gsirii primului bloc printr-
un ir de mutaii succesive, se realizeaz o analiz statistic cu ajutorul
lanurilor lui Markov. Rezultatul obinut estimeaz numrul de evaluri la 2
k

pentru determinarea primului bloc. Pentru cazul particular considerat,
valoarea estimat este E(8,1) = 301,2.
Numrul estimat de evaluri ale funciei efectuate de algoritmul RMHC

44
pn la gsirea optimului este dat aadar de urmtoarea relaie:
E(K,N) 2
K
N (ln N + )
iar valoarea obinut pentru cazul particular considerat este E(8,8) =
6.549.
n realitate, n urma execuiei repetate a algoritmului RMHC, media
pentru 200 de rulri a numrului de evaluri necesare pn la obinerea
soluiei optime a fost 6.179 apropiat de cel estimat. Aadar, rezultatele
teoretice obinute pentru algoritmul RMHC estimeaz corect performana
acestuia n practic.

Au fost cutate motivele pentru care algoritmul genetic d rezultate mai
slabe comparativ cu algoritmul RMHC.
Principalul motiv analizat a fost denumit hitchhicking (autostopist): o
dat gsit un bloc (o schem), scheme care conin 0 pe alte poziii dect
blocurile descoperite poart acelai fitness ridicat n populaie. Aceasta
ncetinete descoperirea de noi scheme pe alte poziii, n special a celor care
sunt apropiate de poziiile definite ale schemelor cu fitness ridicat
(probabilitatea ca punctul de tiere al operatorului de ncruciare s fie n
aceste poziii este mai mic).
Fenomenul hitchhicking, denumit i corelaie fals, a fost studiat de
Belew (1992), Whitley (1991), Schaffer (1991), a. Paralelismul implicit al
algoritmului genetic este limitat prin restricionarea, la anumite poziii, a
numrului de scheme prelevate; selecia acestora nu este independent.
Eficacitatea ncrucirii este limitat de convergena ctre scheme cu fitness
ridicat dar greite n primele iteraii. O schem bun care nu e prezent n
prima generaie va fi defavorizat n generaiile urmtoare din cauza
schemelor vecine prezente deja n populaie, mai ales dac ambele blocuri
vecine sunt deja gsite n scheme diferite sau n aceeai schem.

Datorit paralelismului implicit i a ncrucirii, algoritmul genetic ar
trebui s dea rezultate mai bune pe funciile Royal Roads dect algoritmul
RMHC. Dar, ca i n cazul RMHC (fiecare ir difer de cel anterior printr-un
singur bit) selecia nu este independent nici n algoritmul genetic. De
exemplu, seleciile n hiperplanul s
3
nu sunt independente de cele din
hiperplanele s
2
sau s
4
.
Conform ipotezei statice a blocurilor de construcie, dac n algoritmul
genetic procedura de selecie ar fi independent n fiecare hiperplan i cea
mai bun schem din fiecare hiperplan ar fi selactat, atunci ncruciarea va

45
combina rapid cele mai bune scheme ntr-un singur ir. Plecnd de la aceste
premize, Mitchell, Holland i Forrest (1994) au formulat un algoritm genetic
idealizat.
Algoritmul genetic idealizat (IGA) nu are o populaie, ci lucreaz cu un
singur ir la un moment dat. IGA are drept intrare schemele dorite i
funcioneaz conform pseudo-codului urmtor:
repeat {genereaz iruri aleatoriu}until (irul generat conine cel puin
o schem dorit) ;
memoreaz acel ir;
While (not condiie_oprire) do {
genereaz iruri aleatoriu (cu probabilitate uniform);
oricnd este descoperit un ir care conine una sau mai
multe scheme nedescoperite nc, aplic ncruciarea
ntre acesta i cel memorat;
nlocuiete irul memorat cu descendentul care conine
toate schemele dorite descoperite pn atunci
}
Analiznd pseudo-codul, urmtoarele proprieti capteaz elementele
eseniale ale unui algoritm genetic i satisfac ipoteza static a blocurilor de
construcie sunt evidente:
irurile sunt selectate complet independent, ceea ce rezult ntr-o
selecie independent a schemelor (hiperplanelor)
Selecia (determinist) este condus de memorarea schemelor dorite /
gsite
Este utilizat ncruciarea.
Schemele dorite sunt de fapt necunoscute apriori.
IDA ofer o limit inferioar pentru timpul (numrul de evaluri)
necesar algoritmilor genetici s gseasc irul optim.
Pentru a compara performana algoritmului genetic idealizat cu cea a
algoritmului RMHC, este estimat numrul de evaluri ale funciei pn la
gsirea irului optim. Considernd funcia cu N blocuri (scheme), fiecare de
lungime K, probabilitatea de a gsi o instan a unei scheme H n mod
aleatoriu este p = 1/2
K
. Probabilitatea ca schema H s nu fie gsit o notm
cu q = 1-p. Probabilitatea ca H s fie gsit pn la momentul t este p
1
(t) = 1-
q
t
iar probabilitatea de a gsi toate cele N scheme pn la momentul t este
p
N
(t) = ( 1 - q
t
)
N
.
Pentru a estima ns timpul necesar gsirii tuturor celor N scheme este
nevoie de probabilitatea P
N
(t) de a gsi ultima schem exact la momentul t:

46
P
N
(t) = P
N
(t) - P
N
(t-1) = (1 - q
t
)
N
(1 - q
t
-1)
N

Pentru a estima timpul utiliznd aceast probabilitate se sumeaz dup
toate momentele de timp:




Utiliznd teorema binomial, diferenele de mai sus pot fi extinse astfel:




Pentru a suma dup t de la 1 la considerm suma infinit a primului
termen, suma infinit a celui de al doilea termen, etc:






Suma celui de al n-lea termen este:


Substituind 1-p cu q i presupunnd c valoarea lui K este suficient de
mare pentru a putea face aproximarea q
n
= (1-p)
n
1- np, obinem:




Pentru valorile N=8 i K=8 timpul estimat are valoarea E
N
696.
Experimentele effectuate de Mitchell dau exact aceast valoare pentru 200 de
rulri ale algoritmului genetic idealizat (cu deviaia standard 19,7).
Utiliznd teorema binomial i integrarea lui (1+x)
N
obinem:




ceea ce duce la :


=

=
= =
1 t
1
1 t
N N
) ) 1 ( ) 1 (( ) ( E
N t N t
q q t t t P
] ) 1 / 1 ( [ ) 1 ( ... ] ) 1 / 1 ( [ ] ) 1 / 1 ( [
) ) 1 ( ) 1 ((
1 2 2 2 1
1
Nt N N
N
N t
N
t
N
N t N t
q q C q q C q q C
q q
+ + =
=

q
C
q
q
dq
d
q q C q q
dq
d
q q C
q q q q q C q t q C
N N N
N
t
t
N

= + +
= + + + =

=
1
1
)
1
( ) 1 / 1 ( ...) ( ) 1 / 1 (
...) 3 2 ( ) 1 / 1 ( ) 1 / 1 (
1 1 2 1
3 2 1
1
1
.
1
1
n
n
N
q
C

) ) 1 ( ...
3 2 1
(
1
E
1
3 2 1
n
N
C C C C
p
N
N n N N N
+ +

=

=
+ =
N
n
n
N
n
n
n
N
x
n n
x
C
1
1
1
) 1 ) 1 ((
1

47




Pentru algoritmul genetic idealizat timpul estimat este aadar
EN = O (2K ln(N))
n timp ce pentru algoritmul RMHC timpul estimat este
E(K,N) = O (2K N ln (N)).
Algoritmul genetic idealizat este de N ori mai rapid dect RMHC n
primul rnd datorit paralelismului implicit perfect implementat: noi instane
sunt date independent fiecrei scheme n algoritmul genetic n timp ce n
RMHC fiecare ir nou d ofer o instan pentru doar o schem. Selecia
independent n IGA permite mai multor scheme s fie gsite ntr-un singur
ir i evit mutaiile nefolositoare, pe bii coreci.
Comparaia fcut pentru IGA este valabil considernd orice metod
de tip HC bazat pe mutaia unui singur bit sau a unui numr redus de bii.
Algoritmul genetic idealizat lucreaz n acest mod deoarece cunoate
explicit care sunt schemele dorite. Algoritmul genetic standard nu dispune de
aceast informaie i poate face doar estimri.
Unele caracteristici ale IGA, pot fi aproximate in algoritmul genetic
standard.
Pentru o eantionare independenta populaia trebuie s fie suficient de
mare, presiunea de selecie trebuie s fie suficient de scazuta (fitnessul relativ
al schemelor dorite care nu se suprapun sa aiba valoare mica) iar rata
mutaiei suficient de mare pentru a asigura ca nici un locus s nu fie fixat pe o
singur valoare n fiecare ir din populatie sau intr-un numar foarte mare de
siruri.
Pentru a inmagazina schemele dorite, presiunea de selecie trebuie sa
fie suficient de mare ca sa permit supravieuirea acestora.
Rata ncrucirii trebuie s aib o valoare suficient de mare ca sa
permita recombinarea rapida a schemelor dorite.
Pentru ca algoritmul genetic s fie ntr-adevr rapid comparativ cu
metoda RMHC lungimea irului trebuie sa fie suficient de mare ca factorul N
sa fie semnificativ.
Nu toate aceste mecanisme sunt insa compatibile, unele au caracter
opus, iar implementarea lor trebuie sa obin echilibrul.


= =
+ =


N
n
N
n
n
n
N
N
p n p n
C
p
1 1
N
) (ln
1 1 1 ) 1 ( 1
E

48
Capitolul 6
Implementarea algoritmilor genetici
Dup cum s-a vzut n capitolele anterioare, pentru rezolvarea unei
probleme pot fi proiectai o mulime larg de algoritmi genetici. Apar astfel
dificulti n alegerea celui mai potrivit algoritm genetic, teoria oferind prea
puine informaii n acest sens. Algoritmii genetici standard utilizeaz
reprezentri pe bii, scheme de selecie bazate pe proporiile fitnessului i
operatori simpli; acestea ns nu sunt cea mai bun alegere pentru orice caz
particular. Implementarea unui algoritm genetic trebuie s in cont de
caracteristicile specifice problemei de rezolvat i s exploateze aceste
cunotine n special prin intermediul operatorilor.
n practic, algoritmii genetici s-au dovedit a fi o unealt puternic ns
au fost cazuri n care au nregistrat i eecuri, fiind depii de alte metode.
Nu exist reguli stricte pentru a identifica situaiile n care algoritmii genetici
sunt cea mai potrivit opiune pentru a rezolva o problem; intuitiv ns, un
algoritm genetic are anse mari de a depi alte metode dac problema
prezint urmtoarele proprieti:
spaiul de cutare este suficient de mare nct o cutare exhaustiv
ar fi practic imposibil
funcia de optimizat este
ne-standard sau cu zgomot, nefiind potrivit abordarea cu
metode bazate pe un singur candidat (ex. Hillclimbing);
multi-modal, n cazul problemelor uni-modale fiind utilizate
cu succes metode de tip gradient ascendent;
mai puin neleas; dac spaiul problemei este foarte bine
neles, metodele de cutare care utilizeaz euristici
specifice domeniului pot fi uor proiectate pentru a depi
metodele cu scop general precum algoritmii genetici;
nu este necesar determinarea optimului global ci gsirea unei
soluii suficient de bune ntr-un timp relativ scurt.
Regulile de mai sus nu sunt suficiente pentru a prezice performana
unui algoritm genetic relativ la alte metode. Aceasta depinde n mare msur
de detaliile implementrii algoritmului genetic, precum modul de codificare a
soluiilor candidat, operatorii, parametrii.


49
6.1 Reprezentarea
Reprezentarea soluiilor candidat este considerat a fi factorul central
de care depinde succesul sau eecul algoritmilor genetici.
Reprezentarea cea mai des ntlnit este cea din algoritmul genetic
clasic: iruri de bii cu dimensiune i ordine fixe. Principalul avantaj al unei
astfel de codificri este dat de existena unui fundament teoretic care explic
modul n care are loc cutarea pn la convergen. Un alt avantaj, evideniat
de Holland este gradul ridicat de paralelism implicit n cadrul algoritmului
genetic: pentru codificri relativ lungi binare numrul de scheme reprezentate
este mai mare dect pentru codificri peste un numr mare de caractere dar
de dimensiune mai mic. De asemenea, pentru astfel de codificri exist
numeroase studii care au evideniat anumite euristici pentru setri ale.
Din pcate, de multe ori astfel de codificri nu sunt naturale, fiind greu
de utilizat pentru multe probleme.
Extensii ale codificrii binare au fost propuse precum codurile gray sau
codificrile binare diploide.
Naturale i uor de utilizat sunt codificrile care utilizeaz un numr
mai mare de caractere sau valori reale (un exemplu l constituie
reprezentarea cu numere reale pentru antrenarea reelelor neuronale).
Contrar argumentelor lui Holland, n practic pentru unele probleme se obine
o performan mai bun dac se lucreaz cu alfabete de dimensiune mai
mare.
John Koza a introdus codificarea sub form de arbore (soluiile
candidat sunt programe de calculator) punnd bazele Programrii Genetice.
Spaiul cutrii este nelimitat, n principiu dimensiunea unui arbore putnd
crete foarte mult prin operaii de mutaie i ncruciare. Un dezavantaj al
acestei reprezentri l constituie dificultatea de simplificare i interpretare a
arborilor de dimensiune mare.
Unele probleme se preteaz la reprezentri multidimensionale (precum
clasificarea nesupervizat clustering), altele necesit reprezentri
neomogene (de ex. pentru problema orarului codificarea instruciunilor care
duc la construirea orarului). Decodificarea necesit uneori utilizarea unor
euristici specifice problemei: de ex. pentru clasificarea nesupervizat
(clustering) n determinarea claselor reprezentate de o solue candidat ce
codific doar centrele claselor se utilizeaz metoda celui mai apropiat vecin.
Nu exist reguli stricte care s ne ajute la alegerea celei mai bune
reprezentri pentru o problem. Cu o bogat experien n aplicarea
algoritmilor genetici n lumea real, Lawrence Davis sugereaz utilizarea

50
codificrii naturale a problemei i proiectarea celorlalte elemente ale
algoritmului genetic n funcie de aceasta.
Paradoxal ns, algoritmii genetici sunt potrivii pentru a rezolva
probleme mai puin nelese; cum poate fi atunci cunoscut codificarea
natural apriori? Unele poziii sunt mai importante dect altele n schemele
folositoare. Apare astfel fenomenul denumit legare (linkage) n care o mulime
de bii acioneaz ca alele coadaptate tinznd s se transmit ca un grup.
Problema este de a reprezenta compact un grup de gene n raport cu o
schem, astfel nct aceasta s nu fie alterat de ncruciare.
Imposibilitatea cunoaterii celei mai bune reprezentri a dus la ideea
adaptrii codificrii pe parcursul algoritmului.
O prim schem de adaptare ia n considerare lungimea
cromozomului. Este cazul programrii genetice n care lungimea
cromozomului se modific prin aplicarea operatorilor. O astfel de codificare cu
lungime variabil este necesar n rezolvarea problemelor de clasificare
nesupervizat cnd numrul de clase este necunoscut apriori. De asemenea,
n probleme de nvare a celei mai bune strategii (precum dilema
prizonierului) este interesant evoluia strategiilor pentru lungimi diferite a
istoricului.
O alt modalitate de adaptare a reprezentrii face uz la operatorii
genetici: utilizarea unui nou operator - inversiunea i identificarea punctelor de
tiere pentru operatorul de ncruciare astfel nct descendenii s fie mai
bine adaptai.

Alturi de ncruciare i mutaie, inversiunea este de multe ori
considerat un operator genetic de baz. Acest operator a fost introdus de
Holland (1975) pentru a modifica linkage-ul dintre biii unui cromozom de
lungime fix n aa fel nct bii cu interaciuni neliniare puternice s devin
apropiai pe cromozom. Holland a accentuat ideea c un linkage corect este
esenial pentru funcionalitatea operatorului de ncruciare.
Inversiunea este un operator de reordonare inspirat din genetica real.
Spre deosebire de algoritmii genetici, n genetica real funcia unei gene este
de cele mai multe ori independent de poziia sa n cromozom iar inversarea
unei poriuni de cromozom are un efect minor asupra semanticii
cromozomului iniial.
Inversiunea are drept efect modificarea ordinii biilor ntr-un cromozom
dar nu i a semanticii cromozomului. Din acest motiv este necesar o
modificare n reprezentarea cromozomului astfel nct codificarea s fie

51
independent de poziie. De exemplu, se poate utiliza codificarea cu perechi
n care primul numr este eticheta, indexnd bitul, iar al doilea numr este
valoarea bitului:
(00011010001)
( (1,0)(2,0)(3,0)(4,1)(5,1)(6,0)(7,1)(8,0)(9,0)(10,0)(11,1) )
Inversiunea acioneaz asupra unei ordini aa cum mutaia acioneaz
asupra biilor. Tipic, inversiunea este implementat prin rsturnarea unui
segment din cromozom ales aleatoriu. Dac punctele de inversiune generate
aleatoriu au valorile 3 i 7, n urma aplicrii inversiunii cromozomul de mai sus
devine:
( (1,0) (2,0) (3,0)|(7,1) (6,0) (5,1) (4,1)|(8,0) (9,0) (10,0) (11,1) )
Prin modificarea linkage-ului cu ajutorul inversiunii se modific
probabilitile de supravieuire a schemelor la ncruciare. De exemplu,
scheme precum (10*********01) pot supravieui la ncruciare dac inversiuni
utile gsesc blocul de construcie ( (1,1) (2,0) (13,1) (12,0) (11,*)(3,*) ).
Inversiunea este aadar o modalitate de a evita fenomenul nelrii n
algoritmii genetici prin determinarea unui linkage corect.
Utilizarea acestui operator prezint ns i unele dezavantaje: datorit
utilizrii unor structuri de tip permutare, ncruciarea clasic cu un punct de
tiere poate duce la descendeni cu o structur lipsit de sens n care o gen
apare de mai multe ori iar unele nu apar deloc. O soluie mai puin agreat
este restricionarea aplicrii ncrucirii doar pentru indivizii care au aceeai
permutare a poziiilor biilor. O alt abordare este stpn/sclav: un printe
este ales drept stpn iar cellalt este reordonat temporar la aceeai
permutare ca a stpnului. Dup efectuarea ncrucirii cel de al doilea
cromozom (sclavul) este adus la ordonarea original.
Rezultatele empirice obinute prin aplicarea acestui operator au
evideniat mbuntiri minore n algoritmul genetic. Nu exist nici o dovad
clar (experimente sistematice sau rezultate teoretice) a beneficiilor aduse de
inversiune. n plus, trebuie luat n calcul necesitatea unor resurse
suplimentare de spaiu i timp.

Schaffer i Morishima introduc o abordare dual inversiunii: n locul
determinrii unei cele mai bune ordini, ei caut locurile fierbini n care este
permis ncruciarea. n acest mod, nu ordinea biilor n ir evolueaz ci
poziiile unde poate fi aplicat operatorul de ncruciare. Astfel, n aceast
abordare, fiecare cromozom are ataat un vector de aceeai lungime n care

52
valoarea 1 se gsete numai pe poziiile n care este admis ncruciarea. n
exemplul urmtor, poziiile marcate cu ! sunt cele n care este permis
ruperea cromozomului la ncruciare (ncruciarea este cea cu mai multe
puncte de tiere):
prini: ( 1 0 0 1! 1 1 1! 1 )
( 0 0 0 0 0 0! 0 0 )
descendeni: ( 1 0 0 1! 0 0! 1! 0 )
( 0 0 0 0 1 1 0 1 )
Mutaia acioneaz att asupra cromozomului ct i asupra vectorilor
ataai.
Dei numai soluiile candidat sunt utilizate pentru evaluare, prin
selecie, ncruciare i mutaie evolueaz nu numai acestea ci i vectorii de
ncruciare ataai.
Ca i n cazul inversiunii, mbuntirile observate pe un set redus de
funcii nu au fost mari. Metoda nu a fost analizat pe o gam mai larg de
probleme.

Algoritmii genetici messy (dezordonai) au fost creai de Goldberg, Deb
i Korb n 1989 pentru a mbunti performana algoritmilor genetici n
optimizarea funciilor. Ideea general a fost motivat tot de evoluia natural:
forme de via simple au dat natere la forme de via complexe; genomul
uman cu un numr de aproximativ 5.9*10
9
perechi de nucleotide a avut ca
precursori reprezentri mai simple.
Algoritmii genetici messy utilizeaz astfel reprezentri incomplete sau
chiar contradictorii i introduc noi operatori. Scopul este de a construi
incremental iruri cu fitness ridicat din blocuri de construcie mai scurte.
Reprezentarea soluiilor candidat se face sub forma unor iruri de bii la care
se ataeaz i locusul. Nu toate reprezentrile au toate locusurile specificate
(subspecificare) iar unele reprezentrile pot avea mai multe valori specificate
pentru acelai locus (supraspecificare). De exemplu, irul
{(1,0),(2,0),(4,1),(4,0)} nu are nici o valoare specificat pentru locusul 3 i
dou valori pentru locusul 4.
Problema apare la evalurea unui astfel de cromozom. n cazul
supraspecificrii evaluarea ia n calcul valorile pentru gene de la stnga la
dreapta. Cromozomul dat ca exemplu mai sus corespunde astfel schemei
00*1. Evaluarea unui cromozom (subspecificat) se reduce aadar la
evaluarea unei scheme. Dou modaliti au fost propuse pentru a evalua

53
cromozomii (schemele) n algoritmul messy. Prima variant calculeaz
fitnessul static al schemei corespunztoare prin generarea aleatoare de
cromozomi corepunztori schemei i evaluarea acestora pentru a obine o
medie. A doua modalitate utilizeaz un optim local determinat cu ajutorul unei
euristici i completarea schemei cu valori din aceast soluie.
Algoritmul genetic se abate de la schema general a algoritmului
genetic clasic prin utilizarea a dou etape distincte: faza pimordial care are
ca scop principal explorarea spaiului de cutare i, i faza de juxtapunere n
care se efectueaz exploatarea schemelor determinate prin combinarea lor.
n prima faz sunt determinate scheme relativ scurte dar promitoare
prin execuia urmtorilor pai:
se ghicete valoarea celui mai mic ordin k astfel nct s se obin
scheme folositoare;
se enumer toate schemele de ordin k; de exemplu, pentru un
cromozom de lungime m=8 i o valoare k=3 fixat schemele sunt:
{(1,0),(2,0),(3,0)};
{(1,0),(2,0),(3,1)};

{(1,1),(2,1),(3,1)};
{(1,0),(2,0),(4,0)};
{(1,0),(2,0),(4,1)};

{(6,1),(7,1),(8,1)}
se aplic selecia n modul urmtor: se creaz un numr de copii ale
cromozomilor proporional cu valoarea fitnssului i se terge jumtate din
populaie la intervale regulate.
Dup un numr fixat de generaii faza primordial ia sfrit i ncepe
faza de juxtapunere. Dimensiunea populaiei rmne fix i evoluia continu
cu ajutorul seleciei i a doi operatori de juxtapunere: tierea i mbinarea.
Tierea este un operator unar care acioneaz prin divizarea unui cromozom
messy printe dnd natere la doi cromozomi messy descendeni. mbinarea
este un operator binar care are drept rezultat alipirea a doi cromozomi prini.

Tierea: {(1,0),(2,0),(4,1)}
{(1,0),(2,0),(4,1),(4,0),(3,0)}
{(4,0),(3,0}


54
mbinarea:
{(6,0),(3,1),(4,1),(3,0)}
{(6,0),(3,1),(4,1),(3,0), (2,1),(1,1)}
{(2,1),(1,1)}

Experimente au fost efectuate pe o funcie fitness neltoare
construit peste m=30 bii divizai n 10 segmente de lungime 3 care sumeaz
scorul acestor segmente. Cel mai mare scor l-a primit segmentul 111;
segmentul 000 a primit scorul imediat urmtor:
00028; 00126; 01022; 0110;
10014; 1010; 1100; 11130
Principala problem n rezolvarea unor astfel de probleme cu algoritmii
genetici messy l constituie alegerea parametrului k (o valoare minim a
ordinului pentru a obine scheme folositoare) fr a dispune de cunotine
apriori despre funcia de optimizat.
Odat fixat valoarea parametrului k, trebuiesc generate 2
k
C
m
k

scheme, ceea ce rezult ntr-o explozie combinatorial. Dimensiunea
populaiei crete exponenial cu k iar problemele de dimensiune real devin
intractabile. Soluia este iniializarea complet probabilist, n care sunt creai
cromozomi de lungime cuprins ntre k i m; paralelismul implicit va furniza
multe scheme de ordin k pentru un ir.

6.2 Mecanisme de selecie
n pasul de selecie al algoritmilor genetici sunt create copii ale
cromozomilor care particip la reproducere pentru a crea descendeni. Scopul
seleciei este de a alege pentru supravieuire cei mai adaptai indivizi din
populaie cu sperana c descendenii acestora vor avea un fitness mai
ridicat. n combinaie cu variaii ale operatorilor de ncruciare i mutaie,
selecia trebuie s pstreze un echilibru ntre explorare i exploatare. O
presiune de selecie ridicat duce la crearea unei diversiti sczute n
populaia creat din indivizi bine adaptai dar suboptimali, ceea ce duce la o
limitare a modificrilor i implicit a progresului. Pe de alt parte, o presiune de
selecie sczut ncetinete evoluia. n continuare sunt prezentate cele mai
ntlnite scheme de selecie n literatura de specialitate.

6.2.1. Roata norocului
Aceast este schema de selecie introdus de Holland n algoritmul

55
genetic original. Numrul estimat de copii pe care le primete un individ este
proporional cu fitnessul su mprit la fitnessul mediu al populaiei.
Procedura de selecie a fost descris detaliat n capitolul (Algoritmii genetici n
optimizarea numeric). Pentru populaii relativ mici utilizate n algoritmul
genetic, numrul estimat de descendeni pe care l primete un cromozom
este ns diferit de cel real. n plus, cu o probabilitate diferit de 0, toi
descendenii pot fi alocai celui mai slab adaptat cromozom.

6.2.2. Selecie universal stocastic
James Baker propune o nou metod de selecie pentru a preveni
variaia mare de la valorile estimate. n aceast schem, ruleta este nvrtit o
singur dat, nu de un numr de ori egal cu dimensiunea populaiei pop_size,
dar cu pop_size indicatori egal spaiai. Urmtorul pseudo-cod descrie
procedura de selecie:
ptr = Rand();
for (sum = i = 0; i < pop_size; i++)
for (sum += Expected_Value(i,t); sum > ptr; ptr++)
Select(i);
unde Expected_Value(i,t) este valoarea estimat a individului i la
momentul t.
n aceast schem, fiecare individ i este selectat la genaraia t de cel
puin Expected_Value(i,t) ori i de cel mult Expected_Value(i,t) ori.

Att roata norocului ct i selecia universal stocastic favorizeaz
selecia unui numr mic de indivizi pentru reproducere n fazele de nceput ale
algoritmului ceea ce favorizeaz explaotarea n detrimentul explorrii. Acest
fenomen duce la convergena prematur a algoritmului genetic.

6.2.3. Scalare sigma
n schemele anterioare rata evoluiei depinde de variaia fitnessului n
populaie. Dup cum s-a artat, o variaie prea mare duce convergen
prematur. La captul opus, o variaie mic a fitnessului ntre indivizii din
populaie, duc la un comportament aproape aleatoriu al algoritmului.
Pornind de la aceste observaii, Forrest (1985) a creat o schem de
selecie mai puin influenat de varian prin limitarea num[rului de copii pe
care le poate primi un cromozom. Valoarea estimat Expected_Value (i,t) a
unui individ i n generaia t este funcie de valoarea fitnessului su f(i), media
populaiei f_med(t) i deviaia standard a populaiei :

56
E_V(i,t) = if ((t) 0)
then (1+(f(i)-f_med(t))/2(t)) else
1.0
Expected_Value(i,t) = if (E_V(i,t)>=0)
then E_V(i,t) else
const (ex. const = 0.1).

6.2.4. Elitism
Elitismul, intordus de Ken DeJong (1975) este o schem adiional
oricrui mecanism de selecie al crei scop este de a reine cei mai buni k
indivizi la fiecare generaie; astfel de idivizi ar putea altfel disprea din cauz
c nu au fost selecati pentru supravieuire sau fiindc au fost distrui prin
aplicarea operatorilor. Studii experimentale au dovedit ca de multe ori
elitismul mbuntete semnificativ performana algortimului genetic.

6.2.5. Selecie Boltzmann
Spre deosebire de selecia sigma n care presiunea de selecie este
constant pe parcursul algoritmului, n selecia Boltzmann presiunea de
selecie variaz continuu funcie de un parametru T numit temperatur. Valori
mari ale temperaturii la nceputul algoritmului determin o presiune de
selecie sczut. Pe parcursul algoritmului temperatura scade, ceea ce
determin o cretere gradat a presiunii de selecie. Asfel, nivelul de
diversitate scade pe parcursul algoritmului; la nceputul algoritmului este
ncurajat explorarea iar spre final spaiul cutrii este limitat ncurajnd
exploatarea.
n implementarea tipic, fiecrui individ i i este asignat o valoare
estimat:
Exp_Val(i,t) = e
f(i)/T
/ e
f(i)/T

t
,
unde
t
reprezint media peste generaia t. Pe msur ce
temperatura T descrete, diferena pentru valorile Exp_Val(i,t) crete ntre
fitness-uri sczute i ridicate ceea ce duce la o cretere a presiunii de
selecie.

6.2.6. Selecie bazat pe rang
Pentru a preveni convergena prematur ce apare la utilizarea
schemelor de selecie proporional cu fitnessul, Baker a intodus n 1985 o
nou schem n care indivizilor li se atribuie un rang n funcie de fitness.

57
Valorile estimate depind n aceast schem de rang i nu de valorile fitness
absolute. Presiunea de selecie este n acest mod sczut n cazul n care
variana fitnessului este mare i este crescut dac variana fitnessului este
mic.
Baker a utilizat o metod liniar pentru a atribui fiecrui individ un rang:
indivizii sunt ordonai cresctor n funcie de valoarea fitnessului iar fiecare
individ primete drept rang poziia sa n ir. Primul individ din ir va fi etichetat
aadar cu rangul 1 iar ultimul cu rangul pop_size. Pentru rangul pop_size se
alege o valoare estimat 2 Max 0. Pentru rangul 1 valoarea estimat este
Min = 2 Max. Pentru orice individ i cu rangul rank(i,t) valoarea estimat se
obine astfel:
Exp_Val(i,t) = Min + (Max-Min)(rank(i,t)-1)/(pop_size-1)
Valorile Min i Max au fost astfel alese pentru a satisface condiia ca
suma valorilor estimate a tuturor indivizilor din populaie la momentul t s fie
egal cu dimensiunea populaiei: Exp_Val(i,t) = pop_size.
Selecia bazat pe rang poate fi implementat utiliznd un mecanism
asemntor celui utilizat n roata norocului.
O alt modalitate de a implementa selecia bazat pe rang introduce
un parametru numeric q cu ajutorul cruia, fiecrui rang i i se ataeaz o
probabilitate de selecie a cromozomului corespunztor prob(i) = q(1-q)
i-1
. n
aceast abordare rangul 1 corespunde celui mai bun cromozom. De exemplu,
pentru o populaie de 50 de indivizi i o valoare a parametrului q=0,04, se
obin urmtoarele valori ale probabilitilor de selecie:
prob(1)=0.04; prob(2)=0.0384; prob(3)=0.036864; etc.
Selecia parametrului q se face astfel nct suma probabilitilor de
selecie a tuturor rangurilor s fie aproximativ egal cu 1.





6.2.7. Selecie turneu
Selecia turneu este cea mai eficient din punct de vedere al
complexitii timp. Din punct de vedere al presiunii de selecie se aseamn
seleciei bazat pe rang.
n aceast abordare, doi indivizi sunt selectai la ntmplare din
populaie. Un numr r [0;1] generat aleatoriu este comparat cu un
. 1 ) - (1 ) ( prob
1 1
=

= =
pop_size
i
i
pop_size
i
q q i

58
parametru k (de ex. k=0,9) al schemei ales n prealabil. Dac r<k atunci este
selectat pentru supravieuire cel mai adaptat individ, altfel este ales cel mai
puin adaptat. Cei doi indivizi nu sunt eliminai din populaia original, putnd
astfel participa mai departe la selecie.
O analiz a acestei metode a fost efectuat de Goldberg i Deb (1991).

6.2.8. Selecie stare stabil (steady-state)
Majoritatea algoritmilor genetici descrii n literatur sunt de tip
generaional: noua populaie este format ntr-o iteraie a algoritmului din
descendeni rezultai n urma aplicrii operatorilor genetici asupra prinilor
selectai din populaia anterioar. Nici unul, puini sau mai muli prini pot
supravieui nemodificai. De exemplu, schema de selecie elitist prezentat
mai sus pstreaz o proporie din populaie nemodificat pentru iteraia
urmtoare.
Proporia indivizilor noi din noua generaie poart numele de decalaj
(gap) generaional (DeJong). n selecia stare stabil, un numr mic de indivizi
sunt nlocuii n fiecare generaie. De obicei sunt nlocuii indivizii cei mai slabi
cu descendeni rezultai n urma ncrucirii i mutaiei a celor mai buni
indivizi. Acest tip de selecie este util n evoluia sistemelor bazate pe reguli n
care nvarea incremental este important (machine classifier systems -
Holland 1986).
Selecia de tip stare stabil a fost analizat de DeJong i Sarma
(1993).

Scheme de selecie comparaii
Selecia proporional cu fitnessul este utilizat n mod tradiional, fiind
propus iniial de Holland i utilizat n teorema schemelor.
Mecanisme de selecie alternative au artat ns o mbuntire a
convergenei n multe cazuri, realiznd o mai bun echilibrare a explorrii i
exploatrii.
Metodele de selecie proporional cu fitnessul necesit dou iterri
prin populaie: una pentru a calcula valoarea medie a fitnessului i una pentru
a calcula valorile estimate.
Selecia bazat pe rang necesit o sortare a populaiei n funcie de
valorile fitnessului, sortare care este consumatoare de timp.
Selecia turneu este mai eficient din punct de vedere computaional i
se preteaz paralelizrii.
Din punct de vedere al dinamicii cmpurilor de probabilitate seleciile

59
clasice sunt selecii dinamice, valoarea estimat a oricrui cromozom variind
de-a lungul generaiilor; selecia bazat pe rang este o selecie de tip static,
valorile estimte fiind fixe de-a lungul algoritmului.
O caracteristic important a schemelor de selecie este caracterul
extinctiv al acestora. Probabiliti de supravieuire egale cu 0 determin
eliminarea unor indivizi din populaie: atunci cnd sunt eliminai cei mai buni
cromozomi schema are caracter stnga-extinctiv iar daca sunt eliminai cei
mai slabi cromozomi, dreapta-extinctiv. Schemele ne-extinctive folosesc
numai probabiliti diferite de 0, astfel nct oricrui individ i se d anse de
supravieuire.
Schemele care ncurajeaz supravieuirea celor mai buni indivizi sunt
scheme elitiste.

6.3 Modelul insulelor
O modificare menit s mbunteasc procesul de cutare n
algoritmii genetici este mprirea populaiei n grupuri de cromozomi care
evolueaz separat: selecia i operatorii sunt aplicai numai n interiorul
fiecrui astfel de grup din populaie. Din timp n timp, cromozomi migreaz
dintr-un grup n altul cu o anumit probabilitate.
Avantajul unui astfel de model este dat de utilizarea mai multor istorii
ale evoluiei ntr-o singur rulare.

60
Bibliografie
Z. Michalewicz Genetic Algorithms + Data Structures = Evolution
Programs, Springer Verlag, 1996.
M. Mitchell An Introduction to Genetic Algorithms, MIT Press,
1997.
Lance D. Chambers Practical Handbook of Genetic Algorithms,
1999,
Kenneth A. De Jong - Evolutionary Computation. A Unified
Approach, MIT Press, 2006.