P. 1
Modele naturale şi Algoritmi Evolutivi

Modele naturale şi Algoritmi Evolutivi

|Views: 727|Likes:

See more
See less

06/30/2013

pdf

text

original

Modele naturale şi Algoritmi

Evolutivi
Corina Rotar
CUPRINS
1INTRODUCERE.................................................................................................................1
2METAEURISTICI.....................................................................................................................5
2.1.1Căutare locală – Hill Climbing.............................................................................6
2.1.2Căutare TABU.......................................................................................................8
2.1.3Recoacere simulată – Simulated Annealing..........................................................9
4ISTORIC ............................................................................................................................13
5MODELUL NATURAL AL ALGORITMILOR GENETICI......................................................................14
6DESCRIERE ALGORITM GENETIC..............................................................................................15
7FUNCŢIONAREA ALGORITMULUI GENETIC.................................................................................26
8APLICAŢII..........................................................................................................................28
9SELECŢIA...........................................................................................................................29
9.1.1Selecţia proporţională.........................................................................................30
9.1.2Selecţia prin concurs...........................................................................................35
9.1.3Selecţia prin etichetare........................................................................................36
10FUNCŢIA DE EVALUARE......................................................................................................38
11CODIFICARE BINARĂ..........................................................................................................39
11.1.1Codificarea cromozomială binară....................................................................39
11.1.2Teorema schemelor...........................................................................................46
11.1.3Operatori de încrucişare pentru codificarea binară.........................................47
11.1.4Operatorul de mutaţie pentru codificarea binară.............................................56
11.1.5Inversiunea .......................................................................................................61
12CODIFICARE REALĂ - SPECIFICĂ ..........................................................................................62
12.1.1Operatorul de încrucişare pentru codificarea reală.........................................63
12.1.2Operatorul de mutaţie pentru codificarea reală...............................................66
13CONSIDERAŢII PRIVIND OPERATORII GENETICI.........................................................................67
14EXEMPLE DE REZOLVARE A PROBLEMELOR CU ALGORITMI GENETICI...........................................70
14.1.1Exemplu 1 – Optimizare numerică....................................................................70
14.1.2Exemplu 2– Optimizare numerică.....................................................................76
14.1.3Exemplu 3– Optimizare numerică.....................................................................79
15STRATEGII EVOLUTIVE............................................................................................84
16 STRATEGIA EVOLUTIVĂ (1+1)............................................................................................85
16.1.1Reprezentarea indivizilor..................................................................................85
16.1.2Mutaţia..............................................................................................................85
16.1.3Algoritmul strategiei evolutive (1+1)................................................................87
17 STRATEGIA EVOLUTIVĂ (+1)..............................................................................................88
17.1.1Recombinarea ...................................................................................................89
17.1.2Mutaţia..............................................................................................................90
17.1.3Algoritmul strategiei evolutive (+1)..................................................................91
18STRATEGIILE (1,), (1+).....................................................................................................91
19STRATEGIILE EVOLUTIVE (+) ŞI (,).......................................................................................92
19.1.1Reprezentarea individului.................................................................................93
19.1.2Recombinarea....................................................................................................93
ii
19.1.3Mutaţia..............................................................................................................94
19.1.4Selecţia .............................................................................................................96
19.1.5Algoritmul strategiilor evolutive (+) şi (,)........................................................97
20PROGRAMAREA GENETICĂ....................................................................................99
21.1.1Natura indivizilor supuşi evoluţiei..................................................................100
21.1.2Spaţiul de căutare............................................................................................103
21.1.3Funcţia de performanţă...................................................................................104
21.1.4Operatori specifici programării genetice........................................................105
21.1.5Algoritmul programării genetice.....................................................................110
22EXEMPLU DE APLICAŢII PG: REGRESIA SIMBOLICĂ. PROBLEMA 11-MULTIPLEXORULUI BOOLEAN. 111
23PROGRAMAREA EVOLUTIVĂ...............................................................................116
24DESCRIEREA TEHNICII ORIGINALE.......................................................................................118
24.1.1Automate finite – maşina Turing.....................................................................118
24.1.2Reprezentarea indivizilor populaţiei...............................................................120
24.1.3Evaluarea indivizilor.......................................................................................120
24.1.4Operatorii specifici..........................................................................................120
24.1.5Algoritmul programării evolutive – pentru automate finite............................121
25PROGRAMAREA EVOLUTIVĂ CONTEMPORANĂ – OPTIMIZAREA NUMERICĂ...................................122
25.1.1Reprezentarea indivizilor populaţiei...............................................................122
25.1.2Evaluarea indivizilor populaţiei......................................................................123
25.1.3Operatori specifici...........................................................................................123
25.1.4Algoritmul meta-Programării Evolutive.........................................................124
27TEHNICA ANT COLONY OPTIMIZATION .............................................................................127
27.1.1Modelul natural...............................................................................................127
27.1.2Tehnica ACO...................................................................................................131
27.1.3Aplicaţii...........................................................................................................137
28TEHNICA PARTICLE SWARM OPTIMIZATION.........................................................................138
28.1.1Modelul natural ..............................................................................................138
28.1.2Algoritmul PSO...............................................................................................139
28.1.3Aplicaţii...........................................................................................................142
29SISTEME IMUNE ARTIFICIALE.............................................................................143
30 MODELUL BIOLOGIC ......................................................................................................143
30.1.1Anatomia sistemului imun...............................................................................144
30.1.2Celulele imune.................................................................................................144
30.1.3Activitatea sistemului imun.............................................................................145
30.1.4Caracteristicile majore ale sistemului imun...................................................147
31 SISTEME IMUNE ARTIFICIALE............................................................................................147
31.1.1Modele biologice în sistemele imune artificiale..............................................148
32PRINCIPIUL SELECŢIEI CLONALE.........................................................................................149
33 PRINCIPIUL SELECŢIEI NEGATIVE.......................................................................................151
34 TEORIA REŢELEI IMUNE...................................................................................................152
iii
35PRINCIPALELE APLICAŢII ALE SISTEMELOR IMUNE ARTIFICIALE.................................................153
36ALTE TEHNICI NATURAL-EVOLUTIVE..............................................................154
37SISTEME DE CLASIFICARE INSTRUIBILE...............................................................................154
37.1.1LCS .................................................................................................................155
37.1.2ZCS..................................................................................................................157
37.1.3XCS..................................................................................................................160
38ALGORITMI MEMETICI......................................................................................................161
39DIFFERENTIAL EVOLUTION................................................................................................163
40APLICAŢII ÎN OPTIMIZARE...................................................................................167
41ALGORITMI EVOLUTIVI PENTRU OPTIMIZARE UNICRITERIALĂ...................................................167
41.1.1Avantaje şi dezavantaje ale algoritmilor evolutivi pentru rezolvarea
problemelor de optimizare unicriterială...................................................................168
41.1.2Particularităţi ale algoritmilor evolutivi de optimizare unicriterială.............169
41.1.3Explorare versus exploatare...........................................................................170
41.1.4Elitismul...........................................................................................................172
41.1.5Tratarea restricţiilor.......................................................................................172
42OPTIMIZARE MULTIMODALĂ..............................................................................................173
42.1.1Tehnica Sharing..............................................................................................175
42.1.2Tehnica Crowding...........................................................................................177
42.1.3Tehnica Clearing.............................................................................................177
42.1.4Tehnica Speciation..........................................................................................178
42.1.5Funcţii de test..................................................................................................179
43OPTIMIZARE MULTICRITERIALĂ..........................................................................................183
43.1.1Problema generală de optimizare multicriterială...........................................184
43.1.2Avantaje şi dezavantaje ale algoritmilor evolutivi de rezolvarea problemelor
de optimizare multicriterială.....................................................................................187
43.1.3Clasificarea metodelor evolutive de optimizare multicriterială.....................188
43.1.4Tehnici de agregare.........................................................................................188
43.1.5Tehnici non-agregare......................................................................................191
43.1.6Optimizare evolutivă multicriterială versus diversitatea populaţiei...............199
43.1.7Optimizare evolutivă multicriterială versus elitism........................................200
43.1.8Funcţii de test – optimizare multicriterială.....................................................208
44OPTIMIZARE DINAMICĂ.....................................................................................................212
45BIBLIOGRAFIE...........................................................................................................215
iv
CAPITOL I
1 Introducere
Inclus pentru o perioadă de timp în domeniul generos al
Inteligenţei Artificiale, Calculul Evolutiv (Evolutionary Computation)
se detaşează treptat în ultimele decenii de orice încadrare, devenind
un domeniu de sine stătător, acumulând noi paradigme, cercetări
variate şi aplicaţii cu succes într-o mare varietate de probleme
dificile. Ca urmare, studiul tehnicilor evolutive necesită dedicarea
unui spaţiu mai larg pentru a cuprinde panorama întregii cercetări
depuse în sensul construirii acestui domeniu. Cercetările actuale
integrează Calculul Evolutiv, alături de Sistemele Fuzzy şi Calculul
Neuronal, sub titulatura de Calcul Inteligent, într-una dintre cele mai
noi şi prolifice ramuri ale Inteligenţei Artificiale, considerată
succesoarea tehnicilor tradiţionale ale Inteligenţei Artificiale. Un
domeniu mai larg care încorporează tehnicile inspirate de modele
inteligente observabile în natură este denumit Calcul Natural
(Natural Computation). În intersecţia generoasă a Calculului Evolutiv
şi Calculului Natural sunt cuprinse unele dintre cele mai ingenioase
instrumente de rezolvare a problemelor dificile, denumite frecvent
tehnici de inspiraţie naturală.
Informatica cunoaşte prin această noua tendinţă o schimbare
majoră: probleme grele, de complexitate ridicată, pentru care
aplicarea unei metode tradiţionale devine ineficientă sau uneori
imposibilă, pot fi rezolvate cu succes prin abordări din arealul
Calculului Inteligent. Calculul Evolutiv şi Calculul Neuronal, sunt
incluse ca obiect de studiu în universităţi, fapt pentru care ne
permitem să afirmăm că această ramură devine una de importanţă
considerabilă. De asemenea, literatura de specialitate se
îmbogăţeşte într-un ritm rapid, de la an la an, cu noi cercetări
efectuate în această direcţie. Numărul mare al lucrărilor publicate
(articole, cărţi, teze de doctorat) şi a jurnalelor dedicate subiectului
1
cercetătorilor în dezvoltarea aplicaţiilor viabile ale Calculului Evolutiv.
Principalele direcţii ale Calculului Evolutiv sunt: Algoritmii
genetici, Strategiile Evolutive, Programarea Genetică, Programarea
Evolutivă. Acestora li se alătură algoritmi inediţi bazaţi pe paradigme
naturale ca: sistemele imune, coloniile de furnici, etc. Cartea de faţă
îşi propune o introducere în sfera Calculului Evolutiv şi Natural prin
prezentarea celor mai populare tehnici inspirate de natură.
Structura cărţii permite o parcurgere facilă, fiecărui model
natural ce contribuie la dezvoltarea unei clase de tehnici fiindu-i
consacrat un capitol separat, cantitativ proporţional cu importanţa
sau popularitatea subiectului. Capitolul se dedică în exclusivitate
celei mai reprezentative direcţii a calculului Evolutiv, punctul de start
al dezvoltării ulterioare a domeniului: Algoritmii Genetici. În anii în
care genetica şi informatica cunoşteau o dezvoltare accentuată,
preocuparea în aceste ramuri ale ştiinţei fiind extrem de motivată de
progresul tehnologic, la congruenţa celor două ramuri sus
menţionate ia naştere un capitol aparte al informaticii cu rădăcini
puternice în arealul biologiei.
În primele decade ale istoriei Algoritmilor genetici cercetarea se
restrânge în câteva centre universitare, având un început timid.
Cartea lui J. Holland din 1975 [1.1.1.2] este prima lucrare care
prezintă în mod sistematic şi riguros aspecte teoretice ale
subiectului. Nu este un domeniu căruia să i se ofere o importanţă
practică considerabilă de la bun început, fapt care marchează o
uşoară stagnare a cercetării din primii ani. Subiectul cunoaşte o
revenire puternică prin lucrări ulterioare (vezi de exemplu lucrarea lui
D. Goldberg din 1989, [1.1.1.2]), stârnind interesul înspre
dezvoltarea şi identificarea posibilelor aplicaţii ale algoritmilor
genetici.
Algoritmul genetic standard este în esenţă un algoritm de
căutare şi optimizare în spaţiul soluţiilor posibile. O populaţie de
soluţii posibile este generată, ulterior, asupra indivizilor acesteia
aplicându-se operatori specifici inspiraţi de încrucişarea, mutaţia şi
selecţia naturală. Noua generaţie este alcătuită din descendenţii
populaţiei vechi, aceştia din urmă fiind noi soluţii posibile prin care se
2
explorează spaţiul de căutare. De-a lungul evoluţiei se înregistrează
o creştere a performanţelor indivizilor populaţiei curente, fapt care
asigură convergenţa algoritmului înspre soluţiile reale ale problemei
considerate.
Este importantă maniera de calcul a performanţelor indivizilor
(denumiţi în mod uzual cromozomi). Se utilizează în acest sens o
funcţie de evaluare a calităţii soluţiilor posibile. Valorile
performanţelor individuale se folosesc în procesul de selecţie,
favorizându-se încrucişarea şi mutaţia indivizilor performanţi, ceea ce
aduce cu sine o evoluţie pozitivă a populaţiei înspre soluţiile dorite.
Funcţia de evaluare joacă un rol important în cadrul algoritmului
genetic: o alegere inspirată a acesteia poate conduce la soluţii foarte
bune într-un număr mai mic de generaţii. De asemenea, alegerea
operatorilor genetici folosiţi cade în sarcina programatorului, fapt
pentru care cunoaşterea subiectului şi o bună experienţă a celui care
dezvoltă algoritmul constituie un real avantaj. Structura algoritmului
genetic standard este simplă. În schimb, detaliile legate de maniera
de codificare a soluţiilor, tipul operatorilor folosiţi, tehnica de selecţie
aplicată şi alegerea valorilor inspirate pentru parametrii algoritmului
sunt cele care decid în final dacă rezultatele obţinute sunt cele
satisfăcătoare. Putem afirma că dezvoltarea unui algoritm genetic
pentru rezolvarea unei probleme concrete este în fapt un act creativ
care permite programatorului o mare flexibilitate în alegerea
tehnicilor folosite pentru atingerea scopului dorit.
Ulterior apariţiei Algoritmilor Genetici, se conturează paradigma
Strategiilor Evolutive. Acestea din urmă împrumută caracteristici
definitorii ale algoritmilor genetici însă propun operatori specifici
strategiilor şi modele noi de populaţii. În anii 60 , un grup de
cercetători de la Universitatea Tehnică din Berlin, ca un răspuns la
cercetarea americană în algoritmii inspiraţi de evoluţie şi genetică,
dezvoltă şi teoretizează ceea ce astăzi cunoaştem sub titulatura de
strategii evolutive. Pionierii Strategiilor Evolutive sunt recunoscuţi ca
fiind Ingo Rechenberg şi Hans-Paul Schwefel ( [1.1.1.2], [1.1.1.2] ).
Mai târziu, prin lucrări reprezentative sunt constituite strategiile
evolutive contemporane – reprezentând strategii evolutive revizuite
şi generalizate pentru a permite un domeniu mai larg al aplicaţiilor
3
practice şi obţinerea unor rezultate mai bune [1.1.1.2]. Capitolul
este dedicat Strategiilor Evolutive.
În paralel cu dezvoltarea Algoritmilor Genetici, se impune
direcţia Programării Genetice. Deşi structura algoritmului general al
Programării genetice este similară structurii algoritmului genetic
standard, perspectiva din care sunt abordate problemele de rezolvat
este complet diferită: în cazul algoritmilor genetici sunt evoluate
soluţiile problemei, iar programarea genetică evoluează programele
(algoritmii) care rezolvă cu succes problema dată. Paradigma
programării genetice este puţin exploatată în comparaţie cu popularii
algoritmi genetici, însă în anii 90 se înregistrează o puternică
revenire, prin eforturile lui J. Koza [1.1.1.2] de a susţine ramura
programării genetice prin teoretizarea acesteia şi aplicarea
metodelor specifice în probleme diverse. O descriere a paradigmei
programării genetice este oferită în capitolul .
Paradigma Programării Evolutive, cel de-al patrulea pion
important al Calculului Evolutiv, apare în anii 60 şi încorporează
tehnici de generare automată a comportamentul inteligent al unui
sistem. Deşi în multe aspecte, programarea evolutivă este similară
celorlalte tehnici evolutive pomenite (exemplu: evoluţia unei
populaţii de soluţii, aplicarea operatorilor genetici, supravieţuirea
celor mai performanţi indivizi), prin reprezentarea flexibilă a
indivizilor populaţiei, programarea evolutivă îşi câştigă un loc distinct
în scena Calculului Evolutiv. Cel de-al -lea capitol al cărţii de faţă
descrie aspecte importante ale Programării Evolutive.
Imaginaţia cercetătorilor nu are limite, reuşind să descopere
modele inteligente în cele mai neaşteptate aspecte ale naturii. Spre
exemplu, comportamentul colectiv al stolurilor de păsări sau al
coloniilor de furnici ne furnizează una dintre cele mai recente
paradigme ale Calculului Natural: Swarm Intelligence [1.1.1.2] . În
capitolul 6 este detaliată paradigma Swarm Intelligence, punând în
evidenţă două direcţii importante de cercetare a subiectului:
metodele evolutive inspirate de comportamentul furnicilor şi tehnicile
de optimizare Particle Swarm Optimization.
Complexitatea structurală şi funcţională a organismului uman
reprezintă o reală provocare în Inteligenţa Artificială. Precum
4
sistemul nervos oferă o bogată sursă de inspiraţie în ramura
Calculului Neuronal, sistemul imun natural se dovedeşte de
asemenea un puternic model demn de luat în considerare. Lucrări
reprezentative (vezi [1.1.1.2],[1.1.1.2],[1.1.1.2]) conturează o
direcţie nouă încadrată Calculului Evolutiv, denumită în mod sugestiv
Sisteme Imune Artificiale. Prin aplicaţii neaşteptate în sfera securităţii
reţelelor, optimizare sau recunoaşterea formelor, sistemele imune
artificiale câştigă un teren important în cercetarea actuală.
Metodelor evolutive inspirate de modelul sistemului imun le este
consacrat capitolul .
Pentru a întregi panorama, fără a pretinde însă o acoperire
completă a arealului Calculului Evolutiv, sub titlul Alte tehnici
evolutive am selectat în capitolul câteva metode ingenioase
încadrate domeniului abordat. Acestea sunt metode evolutive
importante atât prin originalitatea lor cât şi prin direcţiile noi pe care
le deschid.
Principala aplicabilitate a algoritmilor evolutivi se exprimă în
rezolvarea problemelor de optimizare, fapt pentru care acestui
subiect i-am dedicat un capitol separat. Optimizarea multiobiectiv şi
optimizarea multimodală sunt abordate în capitolul din perspectiva
tehnicilor evolutive. De asemenea sunt evidenţiate dificultăţile
problemelor de optimizare în medii dinamice.
2 Metaeuristici
Contrar progresului tehnologiei informatice, o serie de probleme
dificile nu pot fi rezolvate prin algoritmi tradiţionali care ne-ar
conduce la soluţiile exacte ale acestora. Acest lucru este cauzat fie
de timpul de execuţie prea mare pe care îl necesită metodele
respective, fie de spaţiul de memorie insuficient pentru
reprezentarea şi stocarea soluţiilor. În aceste situaţii, este preferată
determinarea unei aproximări a soluţiei optime într-o manieră mai
eficientă. Euristicele sunt metode generale de aproximare a soluţiilor
problemelor grele, fără a garanta însă corectitudinea rezultatului
obţinut. O supra clasă a acestor metode, denumită metaeuristici,
încorporează frecvent elemente ale unei căutări aleatoare.
Metaeuristicile sunt tehnici generale dedicate rezolvării problemelor
5
de complexitatea combinatorică, care fac uz de euristici într-o
manieră eficientă. Metaeuristicile se disting prin construirea pas cu
pas a soluţiei acceptabile, prin rafinarea unei soluţii posibile pentru
obţinerea unei bune aproximări a optimului, prin iterarea unei
euristici simple, de bază, respectiv, prin exploatarea soluţiilor
obţinute într-o etapă anterioară sau explorarea aleatoare a spaţiului
de căutare. Practic, o astfel de tehnică se poate interpreta ca o
strategie de ghidare a căutării executată de alte euristici. Cele mai
reprezentative metaeuristici sunt: Hill-Climbing, Simulated Annealing,
căutarea Tabu şi algoritmii încadraţi Calculului Evolutiv.
2.1.1 Căutare locală – Hill Climbing
Metaeuristica Căutarea locală cuprinde algoritmi de rezolvare a
problemelor de optimizare. În general, aplicarea acestor algoritmi
este indicată în cazul acelor probleme care pot fi formulate ca
determinarea unei soluţii care maximizează un criteriu dat într-o
mulţime de soluţii posibile. Principiul de funcţionare a unui algoritm
de căutare locală este următorul: în mod iterativ, pornind de la o
soluţie posibilă curentă, se va explora vecinătatea acesteia în
căutarea unei noi soluţii vecine mai bune. Atingerea unui număr
prestabilit de iteraţii poate constitui o condiţie de terminare a
algoritmului. Altă modalitate de încheiere a execuţiei algoritmului
poate fi stabilită prin înregistrarea unei stagnări a căutării (în ultimele
k iteraţii cea mai bună soluţie găsită nu a fost modificată în sensul
creşterii valorii criteriului de optimizare).
Principiul de funcţionare şi condiţia de terminare a unui algoritm
de căutare locală nu garantează determinarea exactă a soluţiei
optime. Cu toate acestea, algoritmii de căutare locală au o
răspândire largă, în mod special în domeniul Inteligenţei Artificiale,
fiind aplicaţi cu succes în rezolvarea a numeroase problemelor de
optimizare dificile.
În cazul în care alegerea soluţiei vecine se face în ideea de a
maximiza local criteriul de optimizare, tehnica de căutare locală este
cunoscută sub denumirea de Hill-Climbing.
6
Un algoritm Hill Climbing explorează mulţimea de soluţii
posibile în sensul creşterii criteriului de optimizare. Pornind de la o
primă soluţie candidat aleasă aleator, algoritmul modifică soluţia
curentă, obţinând o soluţie candidat. Soluţia mai bună dintre cele
două devine soluţie curentă şi procesul se reia până când nu mai
este posibilă o îmbunătăţire a soluţiei curente. Rezultatul algoritmului
este reprezentat de ultima soluţie pe care acesta a prelucrat-o. De
notat faptul că tehnica Hill Climbing nu garantează determinarea
optimului global, însă algoritmii de acest gen sunt alternative
eficiente în situaţia în care o aproximare bună a optimului este
suficientă.
Algoritmul general Hill Climbing este descris în continuare:
Algoritm Hill Climbing este:
Generare aleatoare soluţie posibilă x
Câttimp (condiţie_de_terminare = false)
Fie V(x) – vecinătatea soluţiei x
x’=AlegeBest (V(x))
Dacă x’ este mai bun decât x atunci
x:=x’
sfDacă
SfCâttimp
SfAlgoritm
Denumirea algoritmului provine dintr-o analogie cu situaţia
determinării vârfurilor (maximelor) unei funcţii de două variabile, ale
cărei grafic este o suprafaţă în spaţiul 3-dimensional şi poate fi
comparat cu un relief geografic format din dealuri şi văi.
Coordonatele oricărui punct de pe suprafaţa considerată reprezintă o
posibilă soluţie. Soluţiile cu altitudine mai mare sunt de preferat, fiind
mai apropiate de maximele funcţiei. Pornind de la o soluţie iniţială
aleasă aleator, algoritmul descrie o urcare pas cu pas înspre vârfurile
(hills) suprafeţei.
Datorită manierei în care se actualizează soluţia curentă,
preferând la fiecare pas cea mai bună soluţie vecină, algoritmul Hill
Climbing este un algoritm de tip Greedy. Alegerea “lacomă” (greedy)
a soluţiei vecine poate genera un inconvenient major al procedurii,
respectiv, convergenţa şi blocarea într-un optim local. Există variante
7
ale algoritmului standard prin care se elimină această problemă:
Random-Restart Hill Climbing este un algoritm de căutare locală
care permite execuţia repetată a unei proceduri Hill Climbing având
ca punct de plecare diferite soluţii posibile. Soluţiile rezultate în urma
execuţiilor procedurii Hill Climbing sunt reţinute şi cea mai bună
dintre acestea este soluţia finală a algoritmului.
2.1.2 Căutare TABU
Algoritmii de căutare Tabu sunt o clasă de algoritmii de căutare
locală care fac uz de o memorie în care sunt reţinute soluţiile
verificate. Denumirea acestor algoritmi provine de la cuvântul Taboo
(echivalent Tabu) al cărui multiple sensuri sunt: sacru, interzis,
ascuns, etc.
Un algoritm de căutare Tabu va porni de la o soluţie candidat
aleasă aleator şi va explora în mod iterativ spaţiul soluţiilor posibile.
Fiecare soluţie parcursă va fi marcată ca fiind tabu, prin aceasta
interzicându-se o reverificare ulterioară a sa. În ideea de a marca
soluţiile recent parcurse se va utiliza o listă tabu, având semnificaţia
unei memorii temporare. Vecinătatea soluţiei curente va exclude
acele soluţii care sunt memorate în lista tabu. Alegerea noii soluţii se
face din vecinătatea modificată a soluţiei curente, fapt pentru care
soluţiile recent verificate nu vor putea fi reparcurse. Spre deosebire
de tehnicile Hill Climbing, căutarea tabu implică explorarea spaţiului
de căutare prin mutarea de la o soluţie la cel mai bun vecin, chiar
dacă acest lucru duce la o deteriorare a valorii criteriului de
maximizat. Prin această caracteristică, abordarea permite o
probabilitate mai mare de mutare din optimele locale.
În anumite circumstanţe, algoritmii de căutare Tabu pot fi
suplimentaţi prin proceduri de intensificare a căutării într-o regiune
promiţătoare a spaţiului soluţiilor, respectiv, prin proceduri de
diversificare pentru a stimula căutarea într-o regiune slab explorată.
Componenta de intensificare implică modificarea regulilor de alegere
a noilor soluţii pentru a exploata trăsăturile soluţiilor dovedite a fi
bune în etapele anterioare. Alte strategii de intensificare rezultă prin
reveniri în regiuni promiţătoare ale spaţiului şi explorarea acestora
mai amănunţită. Strategia de diversificare se realizează prin
8
examinarea regiunilor neexplorate şi generarea unor soluţii mult
diferite de cele care au fost deja parcurse.
2.1.3 Recoacere simulată – Simulated Annealing
Algoritmii de recoacere simulată [1.1.1.2] sunt inspiraţi de un
proces termodinamic, acela al încălzirii bruşte a unei bucăţi de metal,
urmată de o răcire lentă (recoacere) a acestuia în scopul atingerii
minimului global al energiei interne şi a dispunerii atomilor într-o
reţea cristalină ordonată. Procesul fizic este deseori utilizat în
metalurgie în scopul obţinerii unor materiale cu defecte minime. În
etapa de încălzire atomii se distribuie într-un mod aleator, iar în
etapa de răcire lentă atomii se reorganizează pentru a se ajunge la
configuraţii de energie mai mică decât cea iniţială.
Analogia dintre procesul termodinamic descris şi algoritmul de
minimizare Simulated Annealing se poate rezuma prin următoarele
echivalenţe:
- energia sistemului = funcţia criteriu (se doreşte minimizarea
valorilor acestora)
- stările sistemului = spaţiul de căutare
- starea curentă a sistemului = soluţia candidat
- modificarea stării sistemului = modificarea soluţiei curente
- temperatura sistemului = parametrul de control T (denumit
sugestiv temperatură)
Inspirat de procesul termodinamic al recoacerii simulate,
algoritmul general Simulated Annealing (prescurtat SA) va permite
înlocuirea soluţiei curente cu o soluţie vecina aleatoare, chiar dacă
performanţa noii soluţii este mai mică. Comparând strategia de
alegere a noii soluţii candidat din algoritmul Hill Climbing, se observă
o diferenţă majoră: algoritmul SA nu va parcurge vecinătatea soluţiei
curente pentru a alege cel mai bun vecin, ci preferă o soluţie
aleatoare. Probabilitatea de acceptare a noii soluţii este dependentă
de performanţa sa şi de parametrul temperatură T. Parametrul de
control T are iniţial o valoare mare şi treptat descreşte, având rolul
de a controla gradul în care este permisă înlocuirea soluţiei curente
cu o soluţie mai slabă. Astfel, valori mari ale temperaturii corespund
9
unei mari probabilităţi de a înlocui soluţia curentă cu una mai slabă,
în timp ce valori mici ale parametrului vor induce o mică probabilitate
de a prefera soluţiile slabe, fapt pentru care comportamentul unu
algoritm SA în ultimele iteraţii este asemănător algoritmului Hill
Climbing.
Pornind de la modelul fizic, fiecărei stări s a sistemului îi este
asociată o probabilitate de apariţie P
T
(s):
)
) (
exp(
) (
1
) (
T k
s E
T Z
s P
B
T
− ·
, unde:
- S –mulţimea stărilor sistemului
- S s ∈ este starea sistemului
- T - temperatura sistemului
- Z(T) –factor de normalizare
- E(s) – energia stării s
-
B
k
- constantă fizică pozitivă (constanta lui Boltzmann)
Pentru a folosi acest model fizic în optimizare ar fi necesară
generarea stărilor-soluţiilor în conformitate cu distribuţia Boltzmann
pentru valori din ce in ce mai mici ale temperaturii T. Acest lucru este
realizabil dacă este posibilă calcularea lui Z(T). Însă, practic,
determinarea lui Z(T) este imposibilă deoarece necesită calcularea
unei sume pentru toate stările posibile ale sistemului:

− ·
S s
B
T k
s E
T Z )
) (
exp( ) (
Pentru a depăşi dificultatea calculului valorii
) (T Z
este
posibilă folosirea algoritmului Metropolis 1953 [1.1.1.2] prin care
stările sistemului sunt generate aleator, în mod independent, şi
probabilitatea de acceptare a unei stări depinde doar de starea
curentă.
Notăm:
- T - temperatura curentă (se consideră constantă în timpul
execuţiei algoritmului Metropolis)
-
init
x
- valoarea iniţială a soluţiei
10
-
max
i
- numărul maxim de iteraţii ale procesului
Algoritmul Metropolis este descris în continuare.
Algoritmul Metropolis(T,
init
x ,
max
i ,
max i
x ) este:
Iniţializare
( )
init
x x · 0 , i:=0
Câttimp (
max
i i <
)
x’:=Perturba(x(i))
Dacă f(x’)<f(x(i)) atunci
x(i+1):=x’ (acceptare nouă soluţie, cu probabilitatea:1)
altfel
(acceptare nouă soluţie cu probabilitatea:
( ) ( )

,
_

¸
¸ −

T
x f x f '
exp )
Generează aleator
1 0 ≤ ≤q
Dacă
( ) ( )

,
_

¸
¸ −
− <
T
x f x f
q
'
exp atunci
x(i+1):=x’
Altfel
x(i+1):=x
SfDacă
SfDacă
i:=i+1
( ) i x x
i
·
max
SfCâttimp
sfAlgoritm
Generarea noii soluţii x’ se face printr-o perturbaţie aplicată
soluţiei curente x(i). În general perturbaţia constă în stabilirea unei
vecinătăţi asociate soluţiei x(i) şi alegerea unei soluţii din vecinătatea
respectivă.
Algoritmul general Simulated Annealing conţine o secvenţă de
subalgoritmi Metropolis pentru valori din ce în ce mai mici ale
parametrului temperatură T:
11
Notăm cu
t
x
, soluţia curentă a problemei, la momentul de timp
t.
Algoritm Simulated_Annealing este
Iniţializare
0
x
Iniţializare temperatura iniţială
0
T T ·
0 · t
Câttimp (
max
t t < ) /*
max
t
- numărul maxim de iteraţii */
Cheamă Metropolis(T,
t
x
,
max
i ,
1 + t
x ) /*se
determină
1 + t
x
*/
( ) t T e Descrester T , ·
1 + ·t t
SfCâttimp
SfAlgoritm
O componentă importantă a unui algoritm SA o constituie
strategia de descreştere a parametrului temperatură. Oferim în
continuare câteva variante de modificare a valorii temperaturii:
1.
t
T
T
+
·
1
0
, t- timpul,
0
T
- temperatura iniţială
2.
t
T
T
ln 1
0
+
·
3. T T ⋅ · α , unde 1 0 < <α (ex. 95 . 0 · α )
Alegerea inspirată a modului de descreştere a temperaturii este
una dintre condiţiile succesului algoritmului SA. Descreşterea
temperaturii corespunde unei căutări controlate în spaţiul stărilor:
iniţial, prin valori mari ale temperaturii este accentuată exploatarea
spaţiului de căutare prin acceptarea cu o mai mare probabilitatea a
stărilor generate indiferent de calitatea acestora, iar, ulterior, valorile
mici ale temperaturii induc exploatarea locală.
12
CAPITOL II
4 Istoric
Primele semnale privind posibilitatea simulării proceselor
evolutive cu ajutorul calculatorului au fost înregistrate în anii 50.
Unul dintre pionierii acestui domeniu, biologul Alex S. Fraser (1923-
2002), prin lucrările sale (ex. "Simulation of genetic systems by
automatic digital computers" – 1957), a reuşit să aducă în atenţia
cercetătorilor ideea simulării selecţiei artificiale a organismelor.
Interesul asupra fenomenelor evoluţiei, privite din perspectivă
computaţională, a crescut în decadele următoare, culminând cu
lucrarea de referinţă a lui John Holland („Adaptation in Natural and
Artificial Systems” ,1975) în care este descris algoritmul genetic
standard. Holland elaborează Teorema schemelor în încercarea de a
explica forţa algoritmilor genetici în rezolvarea problemelor de
căutare şi optimizare. În paralel cu dezvoltarea algoritmilor genetici
se conturează şi celelalte direcţii majore ale Calculului Evolutiv:
strategiile evolutive, programarea genetică, programarea evolutivă.
Cu toate acestea, cea mai prolifică direcţie rămâne cea a algoritmilor
genetici, popularitatea lor fiind justificată de simplitatea şi succesul
înregistrat în rezolvarea multor probleme dificile.
Un alt punct de referinţă în istoria algoritmilor inspiraţi de
fenomene naturale îl constituie lucrările lui David E. Goldberg (vezi
de ex. Genetic Algorithms in Search, Optimization and Machine
13
Learning, 1989 ) în care sunt revăzute şi formulate principiile
algoritmilor genetici, dintr-o perspectivă matură asupra noului
domeniu conturat. Goldberg furnizează o ipoteză interesantă dar
controversată asupra abilităţii algoritmului genetic de a găsi soluţiile
bune a multor probleme. Cu toate că Goldberg afirmă că teorema
schemelor (Holland, 1973) susţine ipoteza blocurilor constructive,
teoria formulată de Goldberg nu se verifică în totalitate şi nu
reuşeşte să explice potenţialul algoritmilor genetici în rezolvarea
problemelor.
Studiul teoretic şi aplicabilitatea algoritmilor genetici în
rezolvarea multor probleme grele se datorează cercetătorilor
amintiţi, astfel încât aceştia sunt recunoscuţi pe drept ca fiind
“părinţii” Algoritmilor Genetici.
5 Modelul natural al algoritmilor genetici
Principala sursă de inspiraţie a algoritmilor genetici este în mod
cert teoria evoluţiei naturale enunţată de Charles Darwin (1809-
1882). Cu toate acestea, descoperirile din genetică au influenţat de
asemenea structura algoritmilor genetici. Teoria Darwinistă
reprezintă un ansamblu de observaţii asupra evoluţiei privită la nivel
macroscopic şi identificarea factorilor responsabili de acest fenomen.
Adaptarea unei populaţii este interpretată prin două principii majore:
selecţia naturală – supravieţuirea celor mai adaptaţi indivizi şi
mutaţia – variaţie a caracteristicilor indivizilor apărută ca răspuns la
mediul înconjurător. Cercetările şi lucrările lui Darwin (ex. Originea
speciilor, 1959) nasc controverse şi astăzi, însă afirmaţiile conform
cărora evoluţia este călăuzită de principiul supravieţuirii celor mai
performanţi indivizi şi a diversificării prin mutaţiile apărute, sunt
fundamentele algoritmilor evolutivi.
Teoria neo-darwinistă, sau teoria eredităţii este un alt punct de
vedere asupra evoluţiei, de data acesta interpretat prin transferul de
material genetic de la părinţi la descendenţi. La sfârşitul secolul al
XIX-lea, un preot şi om de ştiinţă austriac, Gregor Mendel (1822-
1884) descoperă mai mult sau mai puţin accidental teoria eredităţii
prin experimentele efectuate în vederea încrucişării speciilor diferite
de mazăre. Acesta lasă posterităţii câteva însemnări în caietele sale
14
de observaţii şi o lucrare publicată care a fost ignorată la vremea
aceea. Mai târziu, aceste observaţii enunţate de Mendel sunt
recunoscute ca fiind legile eredităţii şi autorul acestora este
considerat părintele geneticii moderne. Multe aspecte ale algoritmilor
genetici sunt împrumutate din genetică. Dintre acestea remarcăm
moştenirea trăsăturilor (genelor) părinţilor de către descendenţi,
codificarea indivizilor prin secvenţe de gene, dar şi caracterul aleator
al aportului trăsăturilor provenite de la părinţi.
Algoritmii genetici nu respectă strict ingredientele celor două
teorii amintite iar terminologia împrumutată nu acoperă semnificaţia
originală; aceştia se formează ca o reţetă practică inspirată de
evoluţie şi ereditate în care factorul uman a strecurat secvenţe de
calcule şi parametri artificiali în scopul obţinerii unor rezultate mai
bune. Privit la nivel superficial, un algoritm genetic simulează
evoluţia unei populaţii, însă, în esenţă, fenomenul evoluţiei artificiale
este ghidat de funcţii matematice şi controlat prin parametrii
suplimentari pentru a genera o soluţie cât mai apropiată de optimul
problemei. Avantajul imediat al algoritmilor genetici constă în gradul
mare de generalitate şi paleta largă a problemelor abordate.
Originalitatea, simplitatea şi sursa inedită de inspiraţie poate justifica
parţial atenţia acordată dezvoltării acestor metaeuristici. Succesul
real înregistrat în probleme de dificultate ridicată este argumentul
forte al algoritmilor genetici.
6 Descriere algoritm genetic
Pe scurt, un algoritm genetic operează cu o mulţime de indivizi
(denumiţi în mod uzual cromozomi) asupra cărora se aplică
operatorii genetici. Fiecare individ reprezintă o soluţie posibilă din
spaţiul de căutare. Maniera de codificare a unei soluţii este binară,
reală sau specifică, în funcţie de opţiunea noastră şi de contextul
problemei. Mulţimea de cromozomi formează o populaţie. Evoluţia
populaţiei este condusă de două elemente: operatorii genetici şi
funcţia de evaluare a calităţii cromozomilor. Selecţia, încrucişarea şi
mutaţia sunt operatorii genetici uzuali, fiind inspiraţi de procesele
naturale care stau la baza evoluţiei.
15
Indiferent de natura problemei considerate se poate construi cel
puţin o funcţie de evaluare a soluţiilor posibile. Prin aceasta, fiecărui
individ al populaţiei i se atribuie o valoare numerică reprezentând
performanţa sa în raport cu cerinţele problemei. Ulterior, măsura
calităţii indivizilor populaţiei curente este folosită în procesul de
selecţie a acelor indivizi, denumiţi părinţi, asupra cărora se aplică
operatorii de încrucişare şi mutaţie pentru obţinerea noii generaţii.
Principiul este simplu: cu cât părinţii selectaţi sunt mai performanţi,
cu atât şansa ca descendenţii obţinuţi să fie calitativ superiori este
mai mare. Procesul se reia având ca populaţie curentă noua
generaţie de cromozomi. Se observă de-a lungul evoluţiei populaţiei
o creştere a calităţii indivizilor săi. După un număr considerabil de
generaţii soluţia globală a problemei poate fi aproximată suficient de
bine printr-un individ al ultimelor generaţii.
Conceperea unui algoritm genetic de rezolvare a unei probleme
concrete presupune evidenţierea următoarelor componente:
1. individul
2. populaţia
3. funcţia de evaluare
4. selecţia
5. operatorii de variaţie (încrucişare şi mutaţie)
6. condiţia de oprire a algoritmului
1) Individul
Analizând specificaţiile problemei, putem identifica spaţiul de
căutare. Orice punct al acestuia constituie o soluţie posibilă. În
funcţie de specificul soluţiei posibile, putem determina o manieră
inspirată de codificare numerică sau nenumerică a acesteia.
Codificarea unei soluţii formează un cromozom şi identifică un
individ al populaţiei curente. Fiecare cromozom este format dintr-un
şir de valori ale unui alfabet dat. Valoarea de pe o poziţie oarecare a
şirului codificării se numeşte genă. Alfabetul A al valorilor genelor
este stabilit în prealabil şi poate fi:
- valori binare:
{ } 1 , 0 · A
- valori reale:
R ⊆ Α

16
- alt alfabet (codificare specifică)
Lungimea şirului de gene din codificarea cromozomului poate fi
constantă sau variabilă şi depinde de numărul de trăsături definitorii
ale unei soluţii posibile a problemei:
Fie c un cromozom oarecare şi A alfabetul genelor din
reprezentarea sa. Cromozomul c se descrie prin vectorul de n
elemente:
( )
n
c α α α ,..., ,
2 1
· ,
unde A
i
∈ α ,
{ } n i ,..., 2 , 1 ∈ ∀ .
În funcţie de alfabetul genelor, codificarea cromozomială se
clasifică în:
- codificare binară,
{ } 1 , 0 · A
- codificare reală,
R ⊆ Α
- codificare specifică – alta decât cea binară sau reală.
2) Populaţia
O mulţime finită de cromozomi alcătuieşte populaţia.
Dimensiunea populaţiei (numărul de indivizi care o formează) este în
general o valoare constantă pe care o stabilim în prealabil şi
reprezintă un parametru important al algoritmului dezvoltat. Într-o
abordare mai flexibilă, dimensiunea populaţiei poate fi variabilă, un
exemplu în acest sens ar fi descreşterea numărului de indivizi de-a
lungul evoluţiei, odată cu creşterea performanţei acestora, fapt care
ar uşura determinarea soluţiilor finale din ultima generaţie produsă.
Nu este exclusă utilizarea mai multor populaţii cooperante (exemplu)
sau a unei populaţii suplimentare cu rol de memorie în care sunt
reţinute soluţii bune găsite în cadrul generaţiilor intermediare (vezi
de ex.). Modelul standard al algoritmului genetic presupune
exploatarea unei unice populaţii de dimensiune constantă. Formal, o
astfel de populaţie se descrie astfel:
{ }
m
c c c P ,..., ,
2 1
· ,
unde:
{ } m j ,..., 2 , 1 ∈ ∀
, j
c
reprezintă un cromozom.
17
Prima generaţie se numeşte populaţie iniţială şi construirea
acesteia se face în principal prin generarea aleatoare a unor soluţii
posibile în domeniul de căutare. Dacă sunt cunoscute zone ale
spaţiului care conţin soluţii bune ale problemei, populaţia iniţială
poate fi îmbogăţită cu indivizi care codifică puncte din aceste zone.
În această manieră se accelerează convergenţa populaţiei, oferindu-
se şansa ca încă de la primele generaţii să fie obţinute soluţii optime
ale problemei. Există puţine situaţii în care procedeul descris mai sus
poate fi aplicat deoarece din specificaţiile problemei rareori putem
deduce zonele promiţătoare ale spaţiului de căutare. Modelul
standard al algoritmului genetic presupune generarea aleatoare a
populaţiei iniţiale.
Cu cât dimensiunea populaţiei este mai mare, cu atât şansa
obţinerii rapide a unei bune aproximări a soluţiilor problemei creşte.
De asemenea, distribuţia indivizilor populaţiei joacă un rol important
în economia construirii algoritmului genetic: o distribuţie echilibrată a
populaţiei iniţiale măreşte substanţial viteza de identificare a zonelor
promiţătoare ale spaţiului de căutare. Acest fapt aduce cu sine o
convergenţă mai bună înspre soluţiile problemei.
În concluzie, o populaţie de dimensiune suficient de mare şi
având un grad de diversitate considerabil reprezintă unul dintre
factorii majori ce conduc la obţinerea soluţiilor dorite.
3) Funcţia de evaluare
Una dintre condiţiile fundamentale ale funcţionării eficiente ale
unui algoritm genetic o reprezintă alegerea inspirată a funcţiei de
evaluare. În cazul unei probleme de optimizare numerică (ex.
determinarea maximului/minimului global al unei funcţii
matematice), funcţia de evaluare se poate alege ca fiind chiar funcţia
criteriu sau o funcţie construită pe baza funcţiei criteriu.
Pentru o mai bună înţelegere prezentăm în continuare un
exemplu:
Fie
R D f → :
,
[ ] π π, − · D
, dată de formula:
( ) ( ) x x f sin ·
18
Se doreşte determinarea maximului funcţiei f.
Criteriul care ghidează căutarea soluţiei globale este
maximizarea funcţiei date, respectiv, determinarea punctului x
pentru care
( ) x sin
este maxim.
Orice valoare reală din intervalul
[ ] π π, −
poate fi reprezentată
în limbaj binar, cu o anumită precizie impusă. Un cromozom al
populaţiei corespunzător unei valori reale x va fi construit ca un
vector de cifre binare ale codificării punctului x. Asupra codificării
binare vom reveni într-un paragraf următor. Se impune observaţia că
o abordare mai flexibilă permite ca reprezentarea cromozomială a
unui punct x al spaţiului de căutare să fie dată de o un vector
particular cu o singură componentă. Unica genă a codificării
reprezintă chiar valoarea reală a punctului corespunzător.
În acest caz particular, funcţia de evaluare este dată de însăşi
funcţia criteriu. Fie cromozomul c reprezentarea (binară sau reală) a
punctului x. Funcţia de evaluare este construită astfel:
( ) ( ) x c a performant sin ·
Valorile calculate ale funcţiei de performanţă califică şi
diferenţiază indivizii populaţiei. Astfel, este posibilă identificarea
indivizilor performanţi ai populaţiei, cei cărora li se oferă ulterior o
mai mare şansă de a produce descendenţi.
Există situaţia în care este dificil de exprimat matematic
criteriul de optimizare al problemei date. În aceste situaţii, utilizatorul
va construi funcţii de evaluare prin care se va încerca calificarea cât
mai coerentă a soluţiilor candidat, fapt pentru care rezultatele oferite
de algoritmul dezvoltat sunt dependente de factorul uman. Mai mult,
probleme de optimizare de dificultate ridicată sunt cele în care se
doreşte determinarea optimelor multiple ale unei funcţii (optimizare
multimodală) sau cele în care se impun anumite restricţii (optimizare
cu restricţii). Pentru rezolvarea acestor probleme, funcţia de
evaluare va fi atent construită pentru a respecta restricţiile impuse,
respectiv, pentru a permite populaţiei să conveargă înspre toate
optimele funcţiei criteriu.
19
Un alt caz în care construirea funcţiei de evaluare necesită un
efort mai mare este cel al problemelor de optimizare multiobiectiv.
Asupra acestor probleme vom reveni într-un capitol ulterior cu o
prezentare detaliată.
În discuţia referitoare la funcţia de evaluare ne-am referit strict
la probleme de optimizare. Justificarea acestui fapt rezidă din
afirmaţia că orice problemă de căutare a soluţiilor în spaţiul soluţiilor
posibile, căutare ghidată de unul sau mai multe criterii, poate fi
reinterpretată ca o problemă de optimizare: din mulţimea soluţiilor
posibile se caută acelea care optimizează cel mai bine criteriile
problemei. Deşi principala aplicabilitate a algoritmilor genetici constă
în rezolvarea problemelor de optimizare, afirmaţia precedentă ne
permite extinderea ariei de aplicabilitate a algoritmilor genetici şi
înspre probleme de alt gen.
4) Selecţia
Am vorbit în rândurile precedente de structura populaţiei şi
calificarea indivizilor săi prin funcţia de evaluare. Evoluţia populaţiei,
obţinerea generaţiilor de indivizi mai performanţi decât predecesorii
lor, este cauzată de operatorul de selecţie şi operatorii de variaţie
(recombinarea şi mutaţia) aplicaţi.
Unul dintre factorii majori ai evoluţiei este selecţia naturală. O
interpretare simplificată a acestui fenomen ne permite înţelegerea
procesului prin care o populaţie poate converge înspre anumite
puncte ale spaţiului de căutare, respectiv, înspre soluţiile unei
probleme date. Pornind de la observaţia acceptată că indivizii
performanţi ai unei specii dau naştere la descendenţi asemănători şi
de performanţe apropiate şi, în schimb, indivizii slab calificaţi produc
indivizi noi ale căror performanţe sunt în general slabe, ne putem
imagina două scenarii:
- în primul scenariu, indivizii unei populaţii suferă încrucişări şi
mutaţii pur aleatoare, fără a se aplica principiul selecţiei
20
- al doilea scenariu implică o selecţie prealabilă a părinţilor noii
generaţii, selecţie făcută pe baza valorilor de performanţă a
indivizilor populaţiei curente
Cele două populaţii ale scenariilor descrise se monitorizează de-
a lungul evoluţiei. Se observă că, dacă în primul caz absenţa selecţiei
induce o stagnare în procesul evoluţiei populaţiei înspre indivizi de
calitate superioară, în a doua situaţie, selecţia favorizează o creştere
accelerată a performanţei medii a generaţiilor produse. Comparând
ultimele generaţii ale ambelor scenarii putem deduce importanţa
selecţiei în evoluţia unei populaţii.
Implementarea operatorului de selecţie se face în variate
maniere. Unul dintre cei mai populari algoritmi de selecţie este cel al
selecţiei proporţionale inspirat de algoritmul ruletei. Selecţia
proporţională presupune alegerea părinţilor noii generaţii în mod
proporţional cu valoarea de performanţă a acestora. Altfel spus,
probabilitatea de selectare a unui individ performant este mai mare
decât a unuia slab calificat, şi această probabilitate este direct
proporţională cu valoarea performanţei individului. Acest procedeu
favorizează o convergenţă rapidă a populaţiei, însă în unele cazuri
prezintă dezavantaje majore, fapt pentru care se optează pentru
implementarea altor variante de selecţie.
Algoritmii detaliaţi ai operatorilor de selecţie vor fi prezentaţi
într-un paragraf dedicat.
5) Operatorii de variaţie (încrucişare şi mutaţie)
Selecţia propriu-zisă nu este suficientă pentru a induce
dinamica unei populaţii. Indivizii selectaţi vor suferi modificări prin
operatorii genetici de variaţie pentru a permite obţinerea unor
descendenţi diferiţi, respectiv pentru a permite o explorare bună a
spaţiului de căutare. Principalii operatori de variaţie sunt încrucişarea
şi mutaţia.
Varianta standard a operatorului de încrucişare se aplică asupra
a doi părinţi selectaţi anterior şi produce unul sau doi descendenţi
care moştenesc trăsăturile părinţilor în proporţii diferite. Prezentăm
21
în continuare un operator de încrucişare aplicabil pentru codificarea
binară. Tipul operatorului este de 2:2, respectiv, din 2 părinţi se
produc 2 descendenţi. Datorită specificului său, operatorul descris
mai jos este cunoscut sub denumirea de încrucişare cu un punct de
tăietură.
Fie
1
c şi
2
c doi indivizi oarecare ai populaţiei curente:
( )
n
c α α α ,..., ,
2 1 1
·
( )
n
,..., β ,β β c
2 1 2
·
Se generează aleator o valoare naturală
{ } n t ,..., 2 , 1 ∈
, având
semnificaţia punctului de tăietură. Ambii părinţi se vor diviza,
obţinându-se secvenţele:
( )
t
c α α α ,..., ,
2 1
1
1
· , ( )
n t t
c α α α ,..., ,
2 1
2
1 + +
·
( )
t
c β β β ,..., ,
2 1
1
2
· , ( )
n t t
c β β β ,..., ,
2 1
2
2 + +
·
Descendenţii
1
d şi
2
d ai părinţilor
1
c şi
2
c se obţin prin
concatenarea secvenţelor obţinute:
2
2
1
1 1
c c d + ·
2
1
1
2 2
c c d + ·
Observaţie: Operatorul + are în această descriere formală
semnificaţia concatenării secvenţelor.
Se obţin astfel noii indivizi:
( )
n t t
d β β α α ,..., , ,...,
1 1 1 +
· şi
( )
n t t
d α α β β ,..., , ,...,
1 1 2 +
·
Prin aplicarea încrucişării, noii indivizi moştenesc genele
părinţilor, fapt pentru care aceştia sunt asemănători indivizilor care îi
produc. Se întâlneşte deseori situaţia în care o anumită soluţie a
spaţiului de căutare nu poate fi obţinută prin aplicarea operatorului
de încrucişare descris. Există de asemenea suficiente argumente în
favoarea aplicării altor tipuri de operatori de încrucişare (exemplu:
22
încrucişarea cu puncte multiple de tăietură). Pentru asigurarea unei
bune explorări a spaţiului de căutare, un alt operator genetic este
introdus: mutaţia. Teoria evoluţiei naturale menţionează faptul că
selecţia nu este unicul factor responsabil al fenomenului evoluţiei.
Mutaţia naturală, definită prin micile modificări la nivelul codificării
cromozomiale, este cea care, în combinaţie cu mecanismul selecţiei,
asigură adaptarea la mediu. Implementarea procesului natural al
mutaţiei se face prin operatorul de mutaţie, care la rândul său
cunoaşte variate forme descrise în lucrări de specialitate.
Prezentăm în continuare o variantă simplă a operatorului de
mutaţie. Acest operator este de tipul 1:1, respectiv, dintr-un părinte
selectat se obţine un unic descendent prin alterarea valorii unei
singure gene. De asemenea, aplicabilitatea operatorului descris este
strict limitată la codificarea cromozomială binară.
Fie c un cromozom al populaţiei curente:
( )
n k
c α α α α ,..., ,..., ,
2 1
·
Se generează aleator o poziţie k din secvenţa binară a
codificării.
Individul mutant ( )
n k
c α β α α ,..., ,..., , '
2 1
· se obţine prin
copierea nealterată a genelor părintelui c, cu excepţia genei de pe
poziţia k. Valoarea genei mutate se obţine prin inversare:
Dacă 1 ·
k
α atunci
0 ←
k
β
Altfel
1 ←
k
β
SfDacă
Alegerea operatorilor folosiţi joacă un rol decisiv în economia
dezvoltării algoritmilor genetici. Utilizatorul optează pentru anumite
forme ale operatorilor genetici pe baza unor criterii care sunt de cele
mai multe ori subiective. Specificaţiile problemei sunt cele care ne
pot oferi informaţiile necesare pentru a decide maniera de codificare
a indivizilor. Odată stabilită forma de codificare (binară, reală,
specifică), paleta operatorilor se restrânge semnificativ. Cu toate
23
acestea, diversitatea procedeelor de încrucişare şi mutaţie,
clasificate pe tipul codificării pre-fixate, fac dificilă alegerea inspirată
a celor mai eficiente variante. Preferinţele se îndreaptă înspre acei
operatori care se dovedesc a fi eficienţi în rezolvarea unor probleme
similare. Lipsa constrângerile legate de implementarea operatorilor
genetici, permite utilizatorului să îşi construiască operatori specifici
problemei sau clasei de probleme pe care le abordează.
6) Condiţia de oprire a algoritmului genetic
Paragrafele anterioare prezintă succint principalele ingrediente
ale unui algoritm genetic. Se conturează astfel structura unui
algoritm de acest tip. În esenţă, algoritmul genetic este o procedură
repetitivă prin care o populaţie de soluţii posibile, prin aplicarea
operatorilor genetici (selecţie, încrucişare, mutaţie) produce noua
generaţie. Procesul se reia pentru noua populaţie obţinută până când
o condiţie de terminare este îndeplinită. Condiţia de terminare a
algoritmului se referă în general la atingerea unui număr maxim
prestabilit de generaţii. Există şi situaţii în care utilizatorul poate să
impună o cu totul altă condiţie de încheiere a evoluţiei, condiţie
independentă de numărul populaţiilor generate. Un exemplu în acest
populaţiei. În situaţia în care indivizii populaţiei devin asemănători
putem considera că diversitatea slabă a populaţiei nu mai permite o
explorare eficientă a spaţiului de căutare. Mai mult, putem
concluziona că indivizii populaţiei s-au stabilit în zona cea mai
promiţătoare, corespunzătoare soluţiei globale. Experimentele arată
că nu întotdeauna această concluzie este adevărată. Populaţia poate
fi atrasă de un punct de optim local, producându-se fenomenul de
convergenţă prematură. Convergenţa prematură este unul dintre
fenomenele nedorite ale unui algoritm genetic şi evitarea acestui
neajuns comportă câteva modificări în structura algoritmului:
alegerea unei alte scheme de selecţie, reiniţializarea aleatoare unei
secţiuni din populaţie sau accentuarea mutaţiilor produse. O altă
soluţie oferită este cea prin care sunt monitorizate ultimele k
generaţii obţinute. Pentru a nu cădea în posibila capcană scăderii
temporare a gradului de diversitate a populaţiei putem considera un
24
număr mai mare de generaţii analizate din punct de vedere al
asemănării indivizilor. În această manieră obiectivitatea deciziei de
terminare a evoluţiei creşte substanţial. Parametrul k reprezintă în
acest caz o valoare numerică naturală prestabilită.
Revenind la condiţia de terminare, ca şi în cazul celorlalte
componente ale algoritmului genetic, alegerea acesteia se face de
către proiectantul algoritmului la o atentă observare a
comportamentului populaţiei de-a lungul generaţiilor. O bună
experienţă a proiectantului cât şi concluziile experimentelor
efectuate sunt factori principali ai construirii unui algoritm genetic
valoros.
Înainte de a furniza schema algoritmului genetic standard, este
important să afirmăm că acest algoritm nu funcţionează ca un şablon
de rezolvare a oricărei probleme. Detalii legate de implementare,
alegerea operatorilor, construirea funcţiei de evaluare, precum şi
stabilirea parametrilor impliciţi reprezintă aspecte care diferenţiază
algoritmii obţinuţi din punct de vedere al aplicabilităţii acestora pe
anumite clase de probleme.
Presupunem că cele 6 elemente enumerate anterior au fost
stabilite. În acest caz putem formula structura algoritmului genetic:
Schema algoritmului genetic standard:
Algoritmul AG_standard este:
Fie
( ) 0 P
- populaţia iniţială;
0 · t ;
Câttimp (NOT condiţie de
terminare)
Evaluare( ( ) t P )
( ) t P
S
=Selecţie (
( ) t P
)
( ) t P
R
=Încrucişare( ( ) t P
S
)
( ) 1 + t P
=Mutaţie ( ( ) t P
R
)
t:=t+1
SfCâttimp
SfAlgoritm
Notăm:
25
t – numărul generaţiei curente.
S
P - mulţimea indivizilor selectaţi
R
P - mulţimea indivizilor obţinuţi prin încrucişare
Soluţia finală a algoritmului genetic este dată de cel mai
performant individ al ultimei generaţii produse. Se impune observaţia
că această variantă de extragere a rezultatului nu este cea mai
eficientă. Ne imaginăm următorul scenariu: un individ performant,
extrem de apropiat de soluţia globală a problemei) este obţinut într-
una dintre generaţiile intermediare. Principiul selecţiei ne conduce la
supoziţia că probabilitatea acestuia de a fi selectat în vederea
aplicării operatorilor de variaţie este mare. Operatorul de încrucişare
nu asigură păstrarea părinţilor performanţi în noua generaţie. Astfel,
individul considerat în scenariul nostru va fi distrus, neavând
certitudinea că descendenţii săi sunt cel puţin la fel de performanţi
ca şi el. Observăm astfel că indivizii calificaţi ai generaţiilor
intermediare pot dispare pe parcursul evoluţiei populaţiei.
Remedierea acestui fenomen poate fi făcută extrem de simplu
prin suplimentarea algoritmului iniţial cu o formă de elitism. Prin
elitism, cel mai bun, sau cei mai buni k indivizi ai generaţiei curente
vor fi copiaţi nemodificaţi în noua generaţie. Se evită în acest mod
pierderea soluţiei globale dacă aceasta este obţinută într-o etapă
intermediară a evoluţiei.
7 Funcţionarea algoritmului genetic
Intuitiv, algoritmul genetic va conduce populaţia de soluţii
posibile înspre soluţiile optime ale problemei de rezolvat. De cele mai
multe ori acest fenomen decurge în mod firesc, fără anomalii, şi
putem spune că algoritmul converge înspre optimele problemei.
Există şi situaţia în care indivizii populaţiei se blochează în zone sub-
optimale ale spaţiului de căutare, evoluţia lor ulterioară fiind
îngreunată sau imposibilă. În aceste situaţii rezultatul oferit de
algoritm este eronat. Cauzele acestui anomalii sunt multiple. Una
dintre cele mai frecvente surse de eşec este alegerea neinspirată a
26
funcţiei de evaluare şi a operatorului de selecţie, rezultând pierderea
diversităţii populaţiei şi incapacitatea de a determina soluţiile
globale. Fenomenul nedorit, descris ca obstrucţionarea explorării
spaţiului de căutare şi blocarea populaţiei în zone corespunzătoare
optimelor locale, este denumit convergenţă prematură.
În esenţă convergenţa prematură este cauzată de pierderea
diversităţii genetice a indivizilor într-o etapă timpurie a evoluţiei, fapt
care generează o stagnare a evoluţiei ulterioare. Probabilitatea ca
indivizii asemănători ai populaţiei curente să genereze descendenţi
diferiţi este redusă, ceea ce induce o rezistenţă sporită la dislocarea
indivizilor din zonele de blocaj.
În scopul evitării convergenţei premature au fost dezvoltate
diferite strategii de menţinere a diversităţii populaţiei. Dintre acestea
enumerăm:
- stabilirea unei dimensiuni mai mari a populaţiei;
- aplicarea unor operatori genetici care s-au dovedit benefici
evoluţiei şi menţinerii diversităţii (ex. încrucişarea
uniformă)
- strategii de împerechere care evită obţinerea de indivizi
similari prin aplicarea încrucişării
- aplicarea mutaţiei cu o mai mare probabilitate
- evitarea folosirii operatorului de selecţie proporţională care
în anumite situaţii va favoriza evoluţia doar a unei mici
fracţiuni de indivizi din populaţie, conducând la
omogenizarea populaţiei
Un alt aspect al funcţionării algoritmului genetic este cel al
elitismului. În multe situaţii, o soluţie bună a problemei (codificată ca
individ al populaţiei) poate să apară într-una dintre generaţiile
intermediare; având o performanţă mare, şansa de a fi selectată în
vederea supunerii acesteia la acţiunea operatorilor de variaţie
(mutaţie şi încrucişare) este mare. Aplicarea operatorilor genetici
poate să distrugă soluţia performantă, fapt pentru care evoluţia
populaţiei este încetinită. Remedierea acestui fenomen constă în
aplicarea unor strategii de salvare a indivizilor performanţi
determinaţi în populaţiile intermediare. În mod sugestiv, aceşti
indivizi cu performanţe ridicate se denumesc elită şi procedeul prin
27
care elita este menţinută de-a lungul populaţiilor se denumeşte
elitism. Cea mai simplă strategie de elitism constă în copierea elitei
în noua generaţie. Acest transfer garantează protejarea soluţiilor
calificate de-a lungul evoluţiei şi o mai bună convergenţă a
algoritmului genetic.
Funcţionarea algoritmului genetic este strâns legată de două
concepte duale: explorarea şi exploatarea spaţiului de căutare.
Primul concept se referă la capacitatea populaţiei de a acoperi
spaţiul soluţiilor posibile prin căutare globală şi este strâns legat de
proprietatea de diversitate a populaţiei. Cel de-al doilea concept se
referă la capacitatea populaţiei de a asigura căutarea locală în zonele
promiţătoare ale spaţiului şi corespunde unei îmbunătăţiri a
indivizilor în vederea obţinerii unei aproximări mai bune a soluţiilor
finale. Cele două fenomene definite de conceptele sus-menţionate
sunt duale în sensul în care, accentuarea unuia conduce în mod
gradual la inhibarea apariţiei celuilalt. Astfel, o explorare asiduă a
spaţiului de căutare, marcată prin menţinerea unei populaţii diverse,
îngreunează procesul de rafinare a soluţiilor bune şi cauzează a
stagnare în evoluţia populaţiei. Contrar, accentuarea exploatării
zonelor promiţătoare conduce la o explorare defectuoasă a spaţiului
de căutare şi poate conduce la fenomenul de convergenţă
prematură. Ambele situaţii descrise trebuie evitate. Pentru buna
funcţionare a algoritmului genetic din perspectiva celor două
concepte, este necesară stabilirea unui echilibru explorare-
exploatare obţinut în principal prin aplicarea unui mecanism de
evaluare şi selecţie bine ales.
8 Aplicaţii
Paleta de aplicaţii ale Algoritmilor genetici este nelimitată.
Concepuţi ca instrumente de optimizare, algoritmii genetici sunt
aplicabili şi în probleme de alt gen, prin reformularea problemelor
respective ca probleme de căutare a soluţiilor optime în spaţiul de
căutare. Identificarea corectă a obiectivelor problemei date,
delimitarea spaţiului soluţiilor posibile, determinarea unei maniere de
reprezentare a soluţiilor, construirea unei funcţii de evaluare
corespunzătoare şi alegerea inspirată a operatorilor de variaţie, sunt
28
câteva dintre ingredientele care asigură aplicabilitatea algoritmilor
genetici. Literatura de specialitate este îmbogăţită periodic cu
cercetări dedicate aplicaţiilor algoritmilor genetici în probleme reale.
Enumerăm mai jos câteva dintre cele mai reprezentative probleme
pentru care algoritmii genetici s-au dovedit eficienţi:
- optimizarea numerică;
- proiectarea şi optimizarea reţelelor neuronale;
- proiectarea automată a sistemelor;
- probleme de control;
- planificarea sarcinilor;
- probleme de transport;
- probleme din domeniul telecomunicaţiilor;
- problema comis-voiajorului;
- etc.
9 Selecţia
Responsabilitatea operatorului de selecţie este aceea de a
avantaja indivizii performanţi ai populaţiei, respectiv de a favoriza
căutarea în apropierea acelor soluţii care s-au dovedit a fi
performante relativ la obiectivele problemei. Efectul operatorului de
selecţie poate fi controlat prin intermediul a doi parametri: presiunea
de selecţie şi timpul de acţiune.
a) Presiunea de selecţie (selection pressure) se defineşte ca
fiind măsura în care indivizii performanţi ai populaţiei produc
descendenţi în noua generaţie. Valoarea mică a presiunii de selecţie
permite fiecărui individ al populaţiei să fie selectat cu o probabilitate
rezonabilă pentru a produce descendenţi. Valorile apropiate ale
probabilităţilor de selecţie induc o slabă exprimare a preferinţei
înspre exploatarea indivizilor performanţi. Contrar, valorile mari ale
presiunii de selecţie favorizează cei mai buni indivizi ai generaţiei
curente, fapt pentru care convergenţa populaţiei este accelerată.
Principalul neajuns al stabilirii unei presiuni mari de selecţie constă în
posibilitatea producerii efectului de convergenţă prematură datorat
pierderii diversităţii populaţiei.
29
b) Timpul de acţiune (takeover time) se defineşte astfel:
- fie un algoritm evolutiv înzestrat doar cu operator de
selecţie
- generaţia iniţială conţine o singură instanţă a unei soluţii
optimale şi dimensiunea populaţiei este constantă.
Timpul de acţiune se exprimă prin numărul de generaţii în care
un algoritmul produce o generaţie alcătuită exclusiv din instanţe ale
soluţiei optimale iniţiale.
Se poate observa că cei doi parametri ai operatorului discutat
sunt duali: creşterea valorii presiunii de selecţie produce
descreşterea valorii timpului de acţiune şi, reciproc, presiunea mare
de selecţie induce un număr mai mare de generaţii în care se
produce o populaţie formată din copii ale soluţiei iniţiale.
Prezentăm în continuare cele mai reprezentative variante ale
operatorului de selecţie.
9.1.1 Selecţia proporţională
Propusă de James E. Baker [1.1.1.2 ], selecţia proporţională este
una dintre cele mai populare tehnici de selecţie. Pe baza principiului
de avantajare a indivizilor calificaţi, mecanismul selecţiei impune
fiecărui individ al generaţiei curente o probabilitate de selectare -
proporţională cu valoarea performanţei sale.
Fie ( ) { }
n
c c c t P ,..., ,
2 1
· - generaţia curentă t.
Fie { }
n
fit fit fit Fit ,..., ,
2 1
· - mulţimea valorilor de performanţă
ale cromozomilor:
{ } n i ,..., 2 , 1 ∈ ∀
, ( )
i i
c fitness fit ·
Notăm cu fitness – funcţia de evaluare a performanţei
cromozomilor.
Performanţa totală a generaţiei curente t se calculează prin
formula:
( )

·
·
n
i
i
fit t Fitness
1
30
Definiţie1: Probabilitatea de selecţie a individului ( ) t P c
i
∈ este
dată de raportul dintre performanţa sa şi performanţa totală a
populaţiei curente:
( ) t Fitness
Fit
p
i i
S
·
.
O variantă a procedurii de selecţie proporţională este aceea în
care sunt extrase elementele populaţiei prin aplicarea de n ori a
algoritmului de bază, n fiind dimensiunea populaţiei, formându-se o
populaţie intermediară asupra căreia se aplică ulterior operatori de
variaţie. Populaţia intermediară este formată din copii ale indivizilor
generaţiei
( ) t P
: unii indivizi vor fi reprezentaţi de mai multe ori şi
alţii nu vor fi selectaţi deloc. Cunoscând dimensiunea populaţiei n şi
probabilităţile de selecţie ale indivizilor se poate determina numărul
mediu de copii ale fiecărui individ.
Definiţie2: Numărul mediu de selecţii ale individului ( ) t P c
i
∈ este
dat de formula:
i i
p n n ⋅ · , respectiv:
( ) ( ) t Fitness
Fit
n
t mediu Fitness
Fit
n
i i
i
⋅ · ·
_
.
Algoritmul selecţiei proporţionale este inspirat de algoritmul
ruletei (Monte Carlo). Ruleta standard este reprezentată de un disc
împărţit în n sectoare de lungimi egale. Probabilităţile de a nimeri
oricare sector al ruletei sunt egale.
Ruleta în varianta modificată este împărţită în n sectoare
corespunzătoare indivizilor populaţiei curente. Lungimile sectoarelor
sunt proporţionale cu valorile
{ } n i p
i
,..., 2 , 1 , ∈ . La o utilizare a ruletei
se selectează individul corespunzător sectorului indicat.
Probabilitatea de a indica un sector oarecare este direct
proporţională cu dimensiunea lui. Utilizarea de n ori a ruletei
modificate conduce la formarea populaţiei intermediare de indivizi
S
P
asupra cărora se aplică ulterior recombinarea sau mutaţia.
Algoritmul Ruletei este
31
Date de intrare: n
Pentru i de la 1 la n

·
·
i
k
k i
p q
1
:
SfPentru
Pentru i de la 1 la n
Generează aleator [ ] 1 , 0 ∈ q
Dacă
1
0 q q < < atunci selectează
1
c
Dacă
k k
q q q < <
−1
atunci
selectează
k
c
SfPentru
SfAlgoritm
Avantajele şi dezavantajele selecţiei proporţionale:
Principalul avantaj al folosirii selecţiei proporţionale într-un
algoritm genetic este capacitatea acesteia de a favoriza exploatarea
indivizilor performanţi ai populaţiei. Aceiaşi manieră de selecţie
poate fi defectuoasă în două situaţii:
- populaţia conţine un număr mic de indivizi cu performanţe
mult mai mari decât performanţele celorlalţi;
- populaţia este relativ omogenă: performanţele indivizilor sunt
apropiate;
Pentru a exemplifica afirmaţiile de mai sus vom construi două
scenarii simple:
1. Scenariul 1. Fie populaţia curentă formată din n indivizi. Dintre
aceştia, primii n-1 au performanţe de ordinul de mărime
m
10

şi al n-lea individ are performanţa de un ordin de mărime
superior
1
10
+ m
. Ruleta imaginară este descrisă în imaginea
următoare:
32
Figura 1 Împărţirea sectoarelor ruletei pentru scenariul 1
Intuitiv, probabilitatea extragerii individului de performanţă
superioară este mare, fapt pentru care numărul de copii ale
acestuia în populaţia intermediară este de asemenea mare.
Consecinţa acestui fenomen este convergenţa rapidă a
populaţiei înspre zona reprezentată de individul performant.
Dacă acest individ corespunde unei soluţii optime locale şi nu
optimului global se produce fenomenul nedorit de
convergenţă prematură.
2. Scenariul 2. Fie populaţia curentă formată din indivizi ale căror
performanţe sunt de valori apropiate. Ruleta este descrisă în
imaginea următoare:
Figura 2 Împărţirea sectoarelor ruletei pentru scenariul 2.
Individ
performant
33
În această situaţie operatorul de selecţie nu reuşeşte să facă o
distincţie clară între indivizii performanţi şi cei slabi.
Probabilităţile de selecţie ale indivizilor au valori apropiate
ceea ce conduce la o convergenţă înceată a populaţiei înspre
optimele problemei.
Pentru depăşirea dezavantajelor întâlnite în scenariile
prezentate anterior, operatorul de selecţie a fost modificat
corespunzător, generând variante noi ale selecţiei proporţionale.
Varianta I. Soluţia oferită de această variantă a operatorului
constă în diminuarea probabilităţii de selecţie a individului selectat
cu o cantitate constantă pozitivă. Prin acest artificiu, practic, cu
fiecare selecţie a sa, şansa individului de a mai fi ales ulterior scade.
Consecinţa acestui procedeu de micşorare a şansei la selecţie este
de a preîntâmpina fenomenul de convergenţă rapidă înspre optimele
locale ale spaţiului de căutare.
Varianta II. Fiecărui individ i se asociază o etichetă având
semnificaţia numărului maxim de selecţii permise. Valoarea etichetei
(rang) unui individ este dată de numărul de ordine a acestuia în şirul
de indivizi ordonaţi crescător după performanţă.
Varianta III. Ruleta imaginară asociată acestei tehnici de
selecţie este formată din n sectoare de lungimi proporţionale cu
probabilităţile de selecţie. Diferenţa constă în înzestrarea ruletei cu n
pointeri echidistanţi astfel încât, la o singură învârtire a ruletei vor fi
extraşi toţi cei n indivizi ai populaţiei intermediare. Prin acest
procedeu se va exclude posibilitatea selecţiei aceluiaşi individ de un
număr foarte mare de ori, în situaţia în care acesta are o
performanţă mult mai mare decât restul populaţiei.
Depăşirea impedimentelor întâlnite la selecţia proporţională se
poate face prin tehnici de scalare a funcţiei de performanţă. Prin
modificarea valorilor funcţiei de performanţă se urmăreşte ca
populaţia curentă să nu conţină indivizi mult mai calificaţi decât
restul, respectiv, gradul de diversitate a performanţelor populaţiei să
fie suficient de ridicat pentru a favoriza căutarea în zonele
promiţătoare. Literatura de specialitate oferă diferite variante de
34
scalare a funcţiei de performanţă (fitness). Scalarea poate fi statică
sau dinamică – în funcţie de independenţa, respectiv, dependenţa de
numărul generaţiei.
Prezentăm în continuare câteva dintre metodele de scalare
utilizate în mod frecvent:
Scalarea liniară
Asupra funcţiei de performanţă se aplică legea:
( ) b y a y S + ⋅ · , unde a şi b sunt parametri prestabiliţi. Astfel,
funcţia transformată de performanţă devine:
( ) ( ) b c fit a c t transforma fit + ⋅ · _
Scalarea prin ridicare la putere
Legea de transformare este formulată astfel: ( )
n
y y S · , unde n
reprezintă un parametru întreg supraunitar.
Funcţia transformată de performanţă devine:
( ) ( )
n
c fit c t transforma fit · _
9.1.2 Selecţia prin concurs
Selecţia prin concurs presupune pregătirea unei submulţimi de
indivizi ai populaţiei curente, indivizi aleşi aleator. Dimensiunea
submulţimii este de minim 2 indivizi. Elementele submulţimii intră în
competiţie directă prin comparaţii ale valorilor de funcţiei de
performanţă. Cel mai bun individ conform funcţiei performanţă va
câştiga concursul, devenind un părinte al generaţiei următoare. La
fiecare aplicare a operatorului de selecţie va fi determinat un singur
părinte. Selecţia se aplică de n ori, n reprezentând dimensiunea
dorită a populaţiei. Indivizii calificaţi ai generaţiei curente vor fi
selectaţi repetat, în schimb, alţii, de performanţe mai slabe, nu vor fi
selectaţi niciodată.
Dimensiunea submulţimii de indivizi care intră în concurs este o
valoare prin care se poate controla presiunea de selecţie. Cu cât
numărul de concurenţi este mai mare, cu atât convergenţa populaţiei
este mai rapidă, fapt pentru care se poate produce efectul de
convergenţă prematură. O variantă acceptabilă a selecţiei prin
concurs este cea în care numărul concurenţilor ar fi în număr de 2.
35
Mai jos este descris algoritmul operatorului de selecţie prin concurs
binar:
Algoritm ConcursBinar este
Fie ( ) { }
n
c c c t P ,..., ,
2 1
· populaţia curentă
Selectează aleator doi cromozomi ai populaţiei curente:
i
c şi j
c
Dacă
( ) ( )
j i
c fit c fit >
atunci
Returnează
i
c
Altfel
Returnează j
c
SfDacă
SfAlgoritm
9.1.3 Selecţia prin etichetare
Principiul selecţiei prin etichetare constă în atribuirea fiecărui
individ al populaţiei a unei valori reprezentând rangul acestuia, în
concordanţă cu valoarea funcţiei fitness şi stabilirea unei probabilităţi
de selecţie dependentă de rangul atribuit. Practic, populaţia va fi
supusă unei proceduri de ordonare descrescătoare după valorile de
performanţă, şi poziţia ocupată de indivizi în mulţimea ordonată este
cea care determină probabilitatea de selecţie.
Se consideră populaţia P formată dintr-un număr de n
cromozomi. Fiecare individ
i
c al populaţiei va fi etichetat printr-un
rang
i
r determinat de poziţia ocupată în populaţia ordonată
descrescător după valorile de performanţă. Valorile etichetelor
i
r

sunt numere naturale din mulţimea
{ } n ,..., 2 , 1
. Astfel cel mai
performant individ al populaţiei va primi rangul n, iar cel mai slab
individ este etichetat cu valoarea 1.
Spre deosebire de procedura de selecţie proporţională, nu
performanţa, ci valoarea etichetei
i
r va influenţa probabilitatea de
selecţie a individului
i
c . Această diferenţă va induce un avantaj
major ale selecţiei prin etichetare faţă de selecţia proporţională cu
36
fitness-ul. Scenariile defectuoase ale selecţiei proporţionale:
populaţia relativ omogenă sau diferenţele mari între performanţele
indivizilor, nu vor mai fi un impediment în cazul selecţiei prin
etichetare. Etichetarea produce o scalare uniformă în cadrul
populaţiei, fapt pentru care situaţiile de stagnare a căutării sau
convergenţa prematură întâlnite la selecţia proporţională sunt
depăşite.
Dependenţa probabilităţii de selecţie poate fi liniară sau
neliniară în funcţie de rangul individului.
Dependenţa liniară a probabilităţii de selecţie
i
p a
cromozomului
i
c poate fi formulată astfel:
( )
1
]
1

¸

,
_

¸
¸

− ⋅ − ⋅ − ·
1
1
1 1 2
1
n
r
Max Max
n
p
i
i
unde: Max – reprezintă numărul mediu de descendenţi aşteptaţi
ai celui mai performant individ.
Probabilitatea de selectare a celui mai performant individ din
populaţie, etichetat cu rangul n este dată de valoarea:
n
Max
p
best
·
Probabilitatea de selecţie a celui mai slab individ este dată de:
n
Max
p
worst

·
2
Numărul mediu de selecţii ale celui mai bun individ se poate
deduce astfel:
best best
p n n ⋅ ·
Max n
best
·
Presiunea de selecţie exprimată ca numărul mediu de
descendenţi ai celui mai performant individ este o constantă a
procedurii de selecţie şi influenţează în mod direct echilibrul dintre
căutarea globală şi exploatarea zonelor promiţătoare. Astfel, o
presiune de selecţie mare va produce o exploatare accentuată a
vecinătăţii celui mai performant individ şi o scădere a diversităţii
globale a populaţiei. Presiunea mică a selecţiei va avea ca efect
menţinerea diversităţii populaţiei şi favorizarea explorării spaţiului de
căutare.
37
O variantă de etichetare neliniară a populaţiei generează
probabilităţi de selecţie formulate astfel:
( )
i
r n
i
a a p

− ⋅ · 1
unde: a – reprezintă un parametru subunitar al procedurii, având
semnificaţia probabilităţii de selecţie a celui mai bun individ din
populaţie.
10 Funcţia de evaluare
Efectul operatorului de selecţie este acela de a ghida populaţia
înspre cele mai promiţătoare regiuni ale spaţiului de căutare. Spre
deosebire de operatorii standard de variaţie, operatorul de selecţie
este strâns legat de valoarea de performanţă a indivizilor. Aceste
valori sunt furnizate de funcţia de evaluare (funcţia fitness).
Proiectarea unei funcţii de evaluare inspirate este în multe situaţii
cheia succesului algoritmilor genetici. Definiţi iniţial ca tehnici de
optimizare a funcţiilor, datorită impactului favorabil pe care l-au
înregistrat în cazul acestui tip de probleme, algoritmii genetici au fost
înzestraţi cu funcţii de evaluare construite pe baza funcţiei criteriu de
optimizat. De asemenea, operatorii de selecţie dezvoltaţi s-au
dovedit eficienţi în optimizarea unicriterială (o singură funcţie
criteriu), unimodală (o singură soluţie optimă). Obstacole
considerabile au apărut în momentul dezvoltării tehnicilor evolutive
dedicate optimizării multimodale, respectiv multicriteriale.
Determinarea multiplelor optime, sau ghidarea căutării de către cel
puţin două criterii de optimizare reprezintă probleme abordate cu
dificultate de către algoritmii genetici. Este aproape imposibil să
furnizăm un şablon de construire a funcţiei de evaluare (fitness).
Specificul problemei, dimensiunea spaţiului de căutare, numărul şi
dispunerea optimelor cât şi numărul de criterii implicate, sunt
elemente esenţiale avute în vedere în procesul de formulare a
funcţiei ce ghidează procesul de optimizare.
În cea mai accesibilă problemă abordată de algoritmii genetici:
maximizarea unei funcţii criteriu, funcţia de evaluare a
performanţelor soluţiilor se alege ca fiind însăşi funcţia criteriu sau o
funcţie dependentă de aceasta. Problemele de minimizare se pot
reformula ca probleme de maximizare printr-un artificiu simplu
38
aplicat funcţiei de performanţă: aceasta se deduce din funcţia
criteriu aplicând o transformare elementară. În schimb, în privinţa
problemelor de optimizare multimodală, optimizare cu restricţii sau
optimizare multicriterială nu putem furniza o reţetă generală de
construire a funcţiei de evaluare. Vom reveni asupra acestui subiect
în capitolul dedicat aplicaţiilor algoritmilor evolutivi în optimizare.
11 Codificare binară
Mulţimea simbolurilor binare formează cel mai scurt alfabet
care generează un limbaj capabil să exprime informaţii variate. Pe
baza acestui considerent este evident de ce algoritmul genetic
standard utilizează codificarea cromozomială binară. Cercetările
iniţiale asupra convergenţei algoritmului genetic se bazează pe acest
tip de codificare (de ex. Teorema schemelor) şi reprezintă până
astăzi un punct major de referinţă în istoria domeniului. Fiecare
cromozom al populaţiei este format de o secvenţă finită de valori
binare. Lungimea cromozomilor poate fi constantă sau variabilă.
Dezvoltarea ulterioară a algoritmilor evolutivi produce o
schimbare importantă la nivelul codificării soluţiilor şi a operatorilor
genetici utilizaţi. Pentru anumite clase de probleme alfabetul binar
devine insuficient pentru a realiza o codificare adecvată, fapt pentru
care s-au introdus alte variante de codificare şi operatori specifici
acestora.
11.1.1 Codificarea cromozomială binară
Cazul I. Spaţiul de căutare real unidimensional.
Fie R D ⊆ – spaţiul de căutare al unei probleme date.
Fie D s ∈ o soluţie posibilă a problemei considerate şi
cromozomul ( ) t P c ∈ reprezentarea binară a soluţiei s. Notăm cu
1
a
şi
1
b limitele inferioară, respectiv, superioară a domeniului D:
[ ]
1 1
, b a D · .
Pentru a obţine secvenţa binară din codificarea cromozomului c
se vor efectua următorii paşi:
39
1. Se aplică o transformare T pentru a translata valoarea s în
intervalul
[ ] 1 , 0
. Fie s’ valoarea subunitară obţinută:
( )
1 1
1
b a
b s
s T

·
;
( ) s T s · '
.
2. Se converteşte s’ în binar, cu precizia w, obţinând şirul de n
valori binare:
( ) { }
n
n
x x x 1 , 0 ,..., ,
2 1
∈ .
Observaţie: Pentru a asigura precizia dorită a codificării sunt
necesare n poziţii binare. Numărul de poziţii binare necesare
se determină din relaţia următoare:
n n
w
a b
2 2
1 1 1
<

<

Exemplu:
Fie
[ ] 6 , 2 · D
şi un punct oarecare a domeniului: s=3,42.
Dorim să construim codificarea binară a punctului s cu precizia
3
10

· w
.
Funcţia de transformare devine:
( )
4
2 −
·
s
s T
Aplicând transformarea T vom obţine valoarea subunitară
355 . 0 ' · s . Numărul de cifre binare ale reprezentării se deduce din
relaţia:
n n
2
10
4
2
3
1
< <

Respectiv:
n n
2 4000 2
1
< <

Rezolvând inegalitatea dublă se obţine n=12.
Aplicând algoritmul conversiei din baza 10 în baza 2 (metoda
înmulţirilor succesive cu 2), valoarea 355 . 0 ' · s reprezentată în
binar este: 0,010110101110. Cromozomul c se formează din cifrele
binare ale părţii fracţionare:
( ) c 0 1 1 1 0 1 0 1 1 0 1 0 ·
.
Primele gene ale cromozomului sunt cifre binare semnificative ale
reprezentării. Alterarea acestora produce modificări majore în
structura cromozomială. Unii operatori de variaţie ţin cont de poziţia
40
genelor pentru a controla amplitudinea modificărilor produse (vezi de
Procedura inversă de determinare a punctului s corespunzător
codificării binare c implică următoarele etape:
1. Se converteşte reprezentarea cromozomială din binar în real.
Rezultatul acestei etape este valoare s’.
2. Se aplică transformarea inversă
( ) ( )
1 1 1
' ' ' a a b s s T + − ⋅ ·
pentru
a obţine [ ]
1 1
, b a s ∈ .
Exemplu (continuare): Fie
( ) 0 1 1 1 0 1 0 1 1 0 1 0 c ·
un cromozom oarecare.
Dorim să determinăm valoarea reală
[ ] 6 , 2 ∈ s
a punctului reprezentat
de c.
Pentru a obţine valoarea s’ se converteşte numărul
0,010110101110 în baza 10. Numărul obţinute este: ... 354980 . 0 ' · s
. Se observă că precizia codificării este cea stabilită
3
10

· w
.
În etapa a doua se aplică transformarea
( ) 2 4 ' ' ' + ⋅ ·s s T

rezultând valoarea aproximativă
4 1 9 9 2 , 3 "· s
a punctului s
considerat iniţial în exemplul nostru.
Aplicabilitate: Codificarea binară descrisă la cazul I se aplică cu
succes în cazul problemelor de optimizare a funcţiilor reale de o
singură variabilă.
Cazul II. Spaţiul de căutare real multidimensional.
Fie
k
R D ⊆ ,
k
D D D D × × × · ...
2 1
– spaţiul de căutare al unei
probleme date.
Notăm cu
i
a
şi
i
b
limitele inferioară, respectiv, superioară a
domeniului
i
D
: [ ]
i i i
b a D , · .
Fie D s ∈ , ( )
k
s s s s ,.. ,
2 1
· o soluţie posibilă a problemei
considerate şi cromozomul ( ) t P c ∈ reprezentarea binară a soluţiei s.
{ } k i ,..., 2 , 1 ∈ ∀
, [ ]
i i i
b a s , ∈
Pentru a obţine secvenţa binară din codificarea cromozomului c
se vor efectua următorii paşi:
41
1. Determină secvenţele binare
k
c c c ,..., ,
2 1
prin care se
reprezintă valorilor reale
k
s s s ,.. ,
2 1
. În această etapă se
recurge la algoritmul de conversie prezentat la cazul I, pentru
fiecare valoare reală
i
s ,
{ } k i ,..., 2 , 1 ∈
.
2. Formează cromozomul c prin concatenarea secvenţelor
obţinute la pasul anterior:
( )
k
c c c c ...
2 1
·
Aplicabilitate: În general, metoda de codificare prezentată la
cazul II se aplică în optimizarea funcţiilor reale de mai multe
variabile.
Cazul III. Marcarea prezenţei trăsăturilor individului prin valori
binare.
În cazul problemelor pentru care o soluţie potenţială este
reprezentată de un ansamblu de trăsături distincte manifestate sau,
din contră, absente, codificarea binară reprezintă o soluţie la
îndemâna proiectantului.
Considerăm un spaţiu de căutare ale cărui elemente sunt
formate de subansambluri de trăsături. Fie m numărul total de
caracteristici ale soluţiilor posibile. Fiecare trăsătură se poate situa
într-una dintre stările ”prezent”, “absent”, marcate cu valorile binare
1 sau 0.
Fiecare trăsătură (caracteristică) este identificată printr-un
număr de ordine i,
{ } ,...,m i 1 ∈
. Reprezentarea elementelor spaţiului
de căutare este dată de o secvenţa de m valori binare:
( )
m
x x x c ,..., ,
2 1
· ,
{ } m i ,..., 2 , 1 ∈ ∀
, { } 1 , 0 ∈
i
x
Semnificaţia genelor este următoarea:
¹
'
¹
·
e absenta tica i est caracteris
a e prezent tica i est caracteris
x
i
, 0
, 1
Implementarea acestui tip de codificare este simplă. Prezentăm
în continuare exemple de aplicabilitate a codificării descrise pentru
două probleme populare: problema damelor şi problema rucsacului
(variantă).
Problema Damelor (generalizare):
42
Reamintim enunţul problemei: Pe o tablă de şah de n n ∗
pătrate (n linii şi n coloane) dorim să poziţionăm n dame astfel
oricare două să nu se afle în conflict.
O soluţie posibilă a problemei este dată de orice aranjare a
pieselor pe tabla de şah. Imaginea bidimensională a unei soluţii
posibile ne conduce la ideea generării unor structuri cromozomiale
de tip matrice de ordinul n (codificare specifică problemei), însă o
analiză atentă a cerinţelor problemei ne conduce la o manieră
simplificată de reprezentare a soluţiilor.
Cunoscând specificul pieselor utilizate se deduce faptul că pe
fiecare linie a tablei de şah suntem nevoiţi să plasăm maxim o damă.
Plasarea mai multor dame pe aceiaşi linie conduce la o stare
conflictuală. Numărul de dame fiind egal cu numărul de linii, rezultă
faptul că fiecare linie va conţine minim o damă.
Pe baza observaţiilor precedente, putem stabili cert că o soluţie
viabilă a problemei implică plasarea fiecărei dame pe câte o linie
diferită a tablei de şah (în mod analog se deduce prezenţa unei
singure dame pe fiecare coloană). O damă va controla o unică linie,
fapt pentru care putem identifica numărul de ordine al damei cu
indicele liniei ocupate. Fixăm astfel prima damă pe linia 1, a doua
damă pe linia 2, ..., a n-a damă pe linia n. Diferenţa dintre soluţiile
posibile este dată de poziţiile ocupate de dame în coloanele tablei.
Fiecare coloană este alcătuită din n pătrate. Stabilim că prezenţa
damei într-o căsuţă este marcată prin valoarea 1, respectiv, absenţa
damei este marcată de valoarea 0.
Pentru clarificare considerăm cazul particular al unei table de
şah cu 4*4 căsuţe pe care dorim să plasăm 4 dame. Cromozomul
următor identifică o posibilă soluţie a problemei:
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1
linia 1, dama
1
linia 2, dama
2
linia 3, dama
3
linia 4, dama
4
Interpretarea codificării soluţiei este următoarea:
- dama 1 este situată pe linia 1, coloana 1
43
- dama 2 este situată pe linia 2, coloana 3
- dama 3 este situată pe linia 3, coloana 2
- dama 4 este situată pe linia 4, coloana 4
Cromozomul
( ) 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 c ·
corespunde
următoarei aranjări a pieselor pe tabla de şah:

General, o soluţie este reprezentată printr-un cromozom de
lungime n*n, format din n subsecvenţe a câte n gene. Pentru ca o
soluţie să fie validă, fiecare subsecvenţă din compunerea
cromozomului conţine o singură valoare 1. În caz contrar individul
conţine ambiguităţi în privinţa plasării damelor pe cele n coloane.
Spre exemplu, pentru cazul particular prezentat anterior (n=4),
fiind dat cromozomul de mai jos, din interpretarea sa ar rezulta că
doua damă este poziţionată pe coloana 3 şi coloana 4 (imposibil):
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1
Menţionăm că prin aplicarea ulterioară a operatorilor de variaţie
regula de codificare poate fi încălcată. Este necesară proiectarea
unor operatori genetici specifici codificării prin care este asigurată
consistenţa soluţiilor generate. Altfel, aplicând operatorii standard,
rata producerii descendenţilor invalizi este foarte mare.
Problema rucsacului (variantă)
Problema rucsacului este studiată în mod neîncetat de câteva
decenii datorită importanţei practice pe care o prezintă cât şi a
complexităţii crescute recunoscute. În general, problema rucsacului
este formulată astfel: fiind dată o mulţime de obiecte caracterizate
fiecare prin profit şi capacitate proprie, şi un rucsac de capacitate
maximă, se cere determinarea submulţimii de obiecte pentru care
suma profiturilor este maximă şi suma capacităţilor acestora nu
44
depăşeşte capacitatea sa. Varianta problemei descrise în aceste
rânduri nu permite divizarea obiectelor date, fiecare dintre acestea
fiind selectat în întregime sau deloc.
Problema rucsacului este formulată astfel:
Fie { }
n
o o o O ,..., ,
2 1
· o mulţime de n obiecte şi W –capacitatea
maximă a rucsacului.
Fiecare obiect
i
o este caracterizat prin profit şi capacitate:
-
i
p : profitul obiectului i,
{ } n i ,..., 2 , 1 ∈
-
i
w
: capacitatea obiectului i,
{ } n i ,..., 2 , 1 ∈
Se doreşte determinarea ansamblului de k obiecte:
{ } { } k I n I I i O o
i
· ∈ ∈ ∈ , ,..., 2 , 1 , | ,
pentru care:

∈I i
i
p
- maximă,
şi
W w
I i
i

.
Soluţiile posibile ale problemei sunt reprezentate de orice
submulţime de obiecte încărcate în rucsac, pentru care suma
capacităţilor individuale nu depăşeşte capacitatea maximă impusă.
Dintre aceste soluţii se urmăreşte determinarea aceleia care
maximizează suma profiturilor. Se impune observaţia că soluţiile
posibile diferă atât prin obiectele selectate cât şi prin numărul
acestora. Numărul variabil de obiecte ce alcătuiesc soluţiile
problemei ne conduce la ideea reprezentării acestora prin cromozomi
de lungime variabilă. În această situaţie, un cromozom ar fi format
de şirul variabil al indicilor obiectelor selectate şi alfabetul codificării
nu este cel binar. Mai mult, acest tip de codificare impune un efort
suplimentar în privinţa alegerii şi implementării operatorilor genetici.
Ar fi util să concepem o manieră de reprezentare binară prin
cromozomi de lungime constantă.
Pornind de la observaţia că starea unui obiect relativ la o soluţie
posibilă oarecare poate avea doar una dintre valorile ”selectat” sau
”neselectat” (marcate prin valorile 1 sau 0), deducem următoarea
manieră de codificare binară:
45
Fie ( ) { }
n
n
x x x c 1 , 0 ,..., ,
2 1
∈ · un cromozom de lungime fixă egală
cu numărul total de obiecte. Semnificaţia genelor este următoarea:
{ } n i ,..., 2 , 1 ∈ ∀
, 1 ·
i
x dacă obiectul
i
o este selectat, şi 0 ·
i
x în
caz contrar.
Soluţia optimă a problemei este reprezentată printr-un
cromozom ( )
n
x x x c ,..., ,
2 1
*
· , pentru care:

·

n
i
i i
p x
1
- maximă
şi
W w x
n
i
i i
≤ ⋅

·1
.
Exemplu: Considerăm numărul de obiecte n=10. Cromozomul
( ) 1 0 1 0 0 0 0 0 1 1 c ·
ne indică faptul că din mulţimea celor 10 obiecte
au fost alese pentru încărcare obiectele ale căror număr de ordine
este 1,2,8 şi 10.
11.1.2 Teorema schemelor
Teorema schemelor [1.1.1.2] reprezintă unul dintre rezultatele
teoretice importante ale Algoritmilor Genetici. Recunoscută ca
teoremă fundamentală, aceasta garantează convergenţa algoritmilor
genetici, prin proliferarea în timp a acelor cromozomi conţinând
secvenţe de gene cu performanţe mari.
Teorema schemelor este oferită pentru algoritmul genetic
canonic, cu reprezentare cromozomială binară de lungime fixă l,
înzestrat cu operatori de selecţie proporţională, încrucişare cu un
singur punct de tăietură şi mutaţie.
Noţiunea centrală a teoremei o reprezintă schema, aceasta fiind
definită astfel:
Schema = secvenţă de caractere peste alfabetul binar extins
{0,1,*}, de lungime l (l reprezintă chiar lungimea reprezentării
cromozomului).
Exemple de scheme de lungime l=8:
s1=100**01* ,
46
s2=***11*00,
s3=111*000*.
Ordinul schemei s, notat o(s) se defineşte ca numărul de apariţii
ale caractere binare 0 sau 1, respectiv, numărul de caractere diferite
de simbolul genetic “*” din compunerea schemei.
Exemplu: o(s1)=5, o(s2)=4, o(s1)=6.
Lungime definitorie a schemei, notată ( ) s δ se determină ca
fiind distanţa (numărul de caractere) de la prima apariţie, până la
ultima apariţie a unui caracter binar 0 sau 1.
Exemplu:
( ) 7 1 · s δ
,
( ) 5 2 · s δ
,
( ) 7 3 · s δ
Performanţa unei scheme, notată ( ) s f - este media
performanţelor cromozomilor populaţiei curente care conţin schema
s.
Prin aplicarea operatorului de încrucişare cu un singur punct de
tăietură (
c
p
- reprezintă probabilitatea de aplicare a încrucişării),
probabilitatea de supravieţuire a schemei s, notată p(s) este dată de
inegalitatea:
( )
( )
1
1

− ≥
l
s
p s p
c
δ
Numărul de apariţii ale schemei s în generaţia t+1 se deduce
pe baza numărului de apariţii ale schemei s în generaţia t:
( ) ( )
( )
mediu
f
s f
t s m t s m ⋅ · + , 1 ,
unde:
mediu
f - este performanţa medie a cromozomilor
populaţiei curente
Expresia următoare exprimă esenţa Teoremei schemelor:
( ) ( )
( ) ( )
( )
,
_

¸
¸
⋅ −

⋅ − ⋅ ⋅ ≥ +
m c
mediu
p s o
l
s
p
f
s f
t s m t s m
1
1 , 1 ,
δ
unde
m
p - reprezintă probabilitatea de mutaţie.
Conform acestei teoreme, numărul de reprezentanţi ai
schemelor favorabile creşte odată cu timpul, fapt care garantează
convergenţa algoritmului genetic.
11.1.3 Operatori de încrucişare pentru codificarea binară
47
Selecţia nu asigură dinamica populaţiei. Practic, prin aplicarea
operatorului de selecţie, fără apelul vreunui operator de variaţie a
structurii cromozomilor populaţiei curente, spaţiul de căutare nu
poate fi explorat. Pentru a provoca migrarea indivizilor înspre zone
favorabile corespunzătoare soluţiilor globale, este necesară
modificarea structurii acestora. Încrucişarea răspunde cu succes
acestui deziderat. Sursa de inspiraţie a acestui operator genetic o
reprezintă încrucişarea intercromozomială naturală. Intuitiv,
operatorul discutat permite transferul de informaţie stocată în
codificarea indivizilor părinţi înspre descendenţii acestora.
Schema algoritmului genetic standard sugerează aplicarea
operatorului de încrucişare asupra unei mulţimi de indivizi selectaţi în
prealabil:
( ) t P
S
. Această mulţime se denumeşte în mod uzual
bazinul de selecţie şi este formată din copii ale cromozomilor
performanţi ai populaţiei curente ( ) t P . În general operatorul de
încrucişare este aplicat asupra a doi indivizi, rezultând unu, doi sau
mai mulţi descendenţi. Stabilirea perechilor de indivizi ai bazinului de
selecţie care se vor recombina se poate face în mod aleator, sau pe
baza unui criteriu de similaritate. De cele mai multe ori împerecherea
aleatoare a părinţilor este o opţiune la îndemână şi nu alterează
convergenţa algoritmului genetic.
Încrucişarea cu un punct de tăietură
Asupra operatorului de încrucişare cu un punct de tăietură ne-
am oprit într-un paragraf anterior (a se vedea ). Algoritmul
corespunzător este prezentat mai jos:
Algoritm Încrucişare_1_Tăietură este:
Fie ( )
n
c α α α ,..., ,
2 1 1
· şi ( )
n
,..., β ,β β c
2 1 2
· părinţii
selectaţi.
Generează valoarea t din mulţimea
{ } n ,..., 2 , 1
.
( )
n t t
d β β α α ,..., , ,..., :
1 1 1 +
·
( )
n t t
d α α β β ,..., , ,..., :
1 1 2 +
·
SfAlgoritm.
Principala critică adusă încrucişării cu un punct de tăietură
constă în incapacitatea sa de a genera anumite secvenţe, fapt pentru
care în anumite situaţii soluţia globală a problemei nu poate fi atinsă
48
doar prin aplicarea acestui operator de variaţie. Următorul exemplu
demonstrează afirmaţia precedentă.
Considerăm că populaţia curentă conţine printre indivizii săi
două scheme performante S1 şi S2, ale căror combinare ar produce
indivizi foarte buni în raport cu funcţia de evaluare stabilită:
S1:
( ) 1 ..0 1......... 1
S2:
( ) ..... ......1011
De asemenea, ne putem imagina că soluţia finală a problemei
conţine cele două secvenţe binare prezente în cadrul populaţiei:
S3:
( ) 1 1..1011..0 1
Se poate observa faptul că aplicarea încrucişării cu o singură
tăietură nu poate produce schema dorită S3. Oricare ar fi punctul de
tăietură t, aplicarea operatorului va distruge cel puţin una dintre cele
două scheme convenabile S1 sau S2.
Dacă este permisă, mutaţia cromozomilor ar putea rezolva
acest impediment. Dar acest lucru este posibil doar în cazurile
favorabile în care părintele ce conţine una dintre scheme (de ex. S2
este conţinută de cromozomul
2
c ), include şi o secvenţă foarte
asemănătoare celeilalte scheme promiţătoare (S1):
1
c =
( ) 1 0 .......... 1......... 1
2
c =
( ) 1 1.......1 .......101
Dacă punctul de tăietură generat este t=3, se obţine
descendentul
1
d :
1
d =
( ) 1 ......1 1....1011. 1
.
Ulterior, mutaţia unei gene a cromozomului
1
d prin inversarea
valorii acesteia permite producerea unui individ performant ce
conţine schema S3. Presupunem generată valoarea n-1 pentru
poziţia genei ce va suferi mutaţie. Parametrul n reprezintă în acest
exemplu lungimea cromozomilor. Individul mutat '
1
d va conţine
schema dorită:
'
1
d =
( ) 1 ......0 1....1011. 1
.
O altă soluţie ar fi aplicarea încrucişării cu cel puţin două puncte
de tăietură.
49
Tipul operatorului descris este fie 2:2 – doi părinţi produc doi
descendenţi, fie 2:1 – doi părinţi produc un singur descendent. În
acest ultim caz, aportul unuia dintre cei doi părinţi poate fi mai mare
prin moştenirea de către descendent a mai multor gene de la acesta.
Încrucişarea cu două puncte de tăietură
Tipul operatorului standard este 2:2 sau 2:1. Descriem în
continuare modul de aplicare al acestuia asupra a doi cromozomi
1
c
şi
2
c de dimensiune constantă n:
( )
n l k
x x x x c ,..., ,..., ,...,
1 1
·
( )
n l k
y y y y c ,..., ,..., ,...,
1 2
·
Se generează aleator două valori k şi l, având semnificaţia
punctelor de tăietură. Fiecare părinte
1
c , respectiv
2
c , va fi divizat
în 3 secvenţe de gene:
( )
k
x x c ,...,
1
1
1
· , ( )
l k
x x c ,...,
1
2
1 +
· , ( )
n l
x x c ,...,
1
3
1 +
·
( )
k
y y c ,...,
1
1
2
· , ( )
l k
y y c ,...,
1
2
2 +
· , ( )
n l
y y c ,...,
1
3
2 +
·
Primul fiu este format prin concatenarea secvenţelor:
1
1
c ,
2
2
c şi
3
1
c :
( )
n l l k k
x x y y x x d ,..., , ,..., , ,...,
1 1 1 1 + +
· .
Al doilea fiu (produs doar dacă tipul operatorului este 2:2) este
construit prin alipirea secvenţelor:
1
2
c ,
2
1
c şi
3
2
c :
( )
n l l k k
y y x x y y d ,..., , ,..., , ,...,
1 1 1 2 + +
· .
Valorile punctelor de tăietură k şi l se generează aleator din
mulţimea valorilor
{ } n ,..., 2 , 1
.
Putem observa că neajunsul ilustrat la operatorul descris
anterior este eliminat în această ultimă variantă de încrucişare.
Schema performantă S3 poate fi obţinută prin aplicarea încrucişării
cu 2 tăieturi asupra indivizilor ce conţin schemele S1 şi S2, fără a mai
fi necesară intervenţia ulterioară a mutaţiei.
Algoritmul Încrucişare_2_Tăieturi este:
Fie ( )
n
x x c ,...,
1 1
· şi ( )
n
y y c ,...,
1 2
· doi părinţi.
Generează aleator k şi l din mulţimea { } n ,..., 2 , 1 .
50
Dacă l<k atunci
Interschimbare(k,l)
SfDacă
( )
n l l k k
x x y y x x d ,..., , ,..., , ,..., :
1 1 1 1 + +
·
( )
n l l k k
y y x x y y d ,..., , ,..., , ,..., :
1 1 1 2 + +
· (doar pentru
varianta 2:2)
SfAlgoritm
Încrucişarea cu multiple puncte de tăietură
Acest operator reprezintă varianta generalizată a operatorului
cu 2 tăieturi. Principiul procedurii este intuitiv: se consideră un număr
arbitrar de puncte de tăietură şi descendenţii se obţin prin
concatenarea secvenţelor rezultate în urma divizării cromozomilor
părinţi. Ordinea secvenţelor ce intră în componenţa reprezentării
unui descendent este stabilită astfel: se alternează o secvenţa de
gene preluate din primul părinte cu secvenţă de gene din cel de-al
doilea părinte. În cazul unui număr mare de tăieturi, inconvenientul
major al procedurii este cauzat de fragmentarea accentuată a
cromozomilor părinţi, fapt care produce cu mare probabilitate
distrugerea unor posibile scheme performante. Experimental se
poate observa că aplicarea acestui operator de încrucişare cu un
număr mare de tăieturi încetineşte convergenţa populaţiei înspre
soluţia globală. În practică este preferată varianta cu 2 tăieturi sau o
variantă a operatorului cu tăieturi multiple în care numărul acestora
este variabil (generat aleator) şi nu prefixat ca un parametru al
algoritmului. Prezentăm în continuare o variantă a algoritmului de
încrucişare cu număr variabil de tăieturi. Menţionăm că numărul
maxim de tăieturi permise este dat de lungimea cromozomilor.
Algoritmul Încrucişare_m_tăieturi este:
Fie ( )
n
x x c ,...,
1 1
· şi ( )
n
y y c ,...,
1 2
· doi părinţi
Fie m din mulţimea
{ } 1 ,..., 2 , 1 − n
, reprezentând numărul de
tăieturi.
Generează şirul de tăieturi
m
t t t ,..., ,
2 1
din mulţimea
{ } n ,..., 2 , 1
.
Ordonează crescător valorile
m
t t t ,..., ,
2 1
Fie ( )
n
z z d ,...,
1 1
· şi ( )
n
w w d ,...,
1 2
· descendenţii
51
Pentru j de la 1 la
1
t
j j
x z ·
; j j
y w ·
SfPentru
Pentru i de la 1 la m-1
Pentru j de la
i
t la
1 + i
t
Dacă i este par
j j
x z ·
; j j
y w ·
Altfel
j j
y z ·
; j j
x w ·
SfDacă
SfPentru
SfPentru
Pentru j de la
m
t la n
Dacă m este par
j j
x z ·
; j j
y w ·
Altfel
j j
y z ·
; j j
x w ·
SfDacă
SfPentru
SfAlgoritm
Prin aplicarea acestui algoritm se obţin descendenţii:
( ) ,..... ,..., , ,..., , ,...,
3
1
2 2
1
1 1
1 1 t t t t t
x x y y x x d
+ +
·
( ) ,..... ,..., , ,..., , ,...,
3
1
2 2
1
1 1
1 2 t t t t t
y y x x y y d
+ +
·
.
Avantajul major al operatorului descris este acela că este
general, permite obţinerea oricărei scheme constructive şi are un
efect pozitiv în privinţa asigurării unei bune diversităţi a populaţiei.
Principala critică constă în fragmentarea puternică a cromozomilor
specializaţi, fapt care ar prejudicia în mod semnificativ căutarea
locală. În raport cu problematica echilibrului explorare-exploatare,
dezavantajul fragmentării accentuate a posibilelor secvenţe
performante –tradus printr-o exploatare ineficientă a zonelor
promiţătoare, este suplinit de un grad mare al diversităţii populaţiei –
interpretat ca un factor important al bunei explorări a spaţiului de
căutare.
Încrucişarea uniformă
Procedeul încrucişării uniforme [1.1.1.2] nu utilizează puncte de
tăietură. Cu toate acestea, efectul este în mare măsură similar
52
încrucişării cu multiple tăieturi. Descendenţii se construiesc genă cu
genă. Fiecare poziţie a unui descendent copiază valoarea genelor
corespondente ale părinţilor. Operatorul introduce un parametru
specific p cu semnificaţia probabilităţii ca o genă să provină din
primul sau al doilea părinte.
Moştenirea unui număr variabil de gene ale părinţilor
consideraţi face ca descendenţii să fie asemănători acestora în grade
diferite. De asemenea, procedeul descris nu exclude posibilitatea ca
o genă oarecare să fie transmisă ambilor fii sau aceasta să nu fie
moştenită de niciunul şi, în consecinţă, să se piardă.
Pentru valoarea
5 . 0 · p
admitem că părinţii au rol simetric în
producerea noilor indivizi.
Algoritmul Încrucişare_Uniformă este
Fie p – parametrul algoritmului, [ ] 1 , 0 ∈ p
Fie ( )
n
x x c ,...,
1 1
· şi ( )
n
y y c ,...,
1 2
· doi
părinţi
Fie ( )
n
z z d ,...,
1 1
· şi ( )
n
w w d ,...,
1 2
·
descendenţii
/*generare primul fiu */
Pentru i de la 1 la n
Generează aleator [ ] 1 , 0 ∈ q
Dacă
p q <
atunci
i i
x z · :
Altfel
i i
y z · :
SfDacă
SfPentru
/*generare al doilea fiu */
Pentru i de la 1 la n
Generează aleator [ ] 1 , 0 ∈ q
Dacă
p q <
atunci
i i
x w · :
Altfel
i i
y w · :
SfDacă
SfPentru
SfAlgoritm
53
Avantajul major al încrucişării uniforme constă în posibilitatea
controlării exploatării locale prin ajustarea corespunzătoare a
parametrului p. Gradul de asemănare a descendenţilor cu primul
părinte creşte în mod proporţional cu valoarea parametrului p.
Valoarea parametrului p ne poate indica în ce măsură se realizează
căutarea locală. Ar fi util să considerăm parametrul p dependent de
vârsta populaţiei. În acest mod, se poate produce o explorare
eficientă a spaţiului la începutul evoluţiei populaţiei şi o accentuare a
exploatării în ultimele generaţii.
Încrucişarea punctuală
Operatorul standard de încrucişare cu tăieturi nu ţine cont de
calitatea punctelor de tăietură. Astfel, probabilitatea distrugerii unor
secvenţe bune este mare. Pentru a depăşi acest inconvenient,
Schaffer şi Morishima [1.1.1.2] propun un mecanism prin care se
estimează valoarea tăieturii; ulterior punctele slabe sunt ignorate şi
cele dovedite bune vor fi incluse în continuare în algoritmul de
încrucişare. Se acceptă afirmaţia că un punct de tăietură este slab
dacă performanţa descendentului obţinut prin aplicarea încrucişării
este mai slabă decât a părinţilor care îl generează. În caz contrar,
punctul de tăietură rămâne valid. Pentru a memora informaţiile
legate de validarea sau invalidarea punctelor de tăietură, codificarea
cromozomială este modificată. Fiecare cromozom al populaţiei este
constituit din secvenţe binare de lungime 1 2 − ⋅ n :
( )
1 1 1
,..., , ,...,

·
n n
t t x x c
Prima secvenţă binară de lungime n are semnificaţia genelor
codificării. Cea de-a doua parte a codificării conţine marcatorii
posibilelor puncte de tăietură:
{ } 1 ,..., 2 , 1 − ∈ ∀ n i , { } 1 , 0 ∈
i
t cu semnificaţia:
¹
'
¹
·
idă ietur ăetur NU este ta i dac ă
taietur ă valid de este punct i dac ă
t
i
- 0,
, 1
Fiind doi părinţi selectaţi, se pune întrebarea care dintre
tăieturile marcate în codificarea acestora vor fi luate în considerare.
Soluţia oferită de autori este de a considera puncte de tăietură
active, toate tăieturile valide ale ambilor părinţi. În această manieră,
tăieturile aflate în conflict, respectiv cele care sunt valide pentru un
54
părinte şi invalide în cel de-al doilea părinte, vor participa de
asemenea la încrucişare. Algoritmul stabilirii tăieturilor aplicate în
cazul încrucişării a doi părinţi este furnizat în continuare:
Algoritm Stabilire_Tăieturi este
Fie ( )
1 1 1
,..., , ,...,

·
n n
t t x x c şi ( )
1 1 1
,..., , ,...,

·
n n
s s y y c
doi părinţi
Fie şirul de tăieturi ce se vor aplica părinţilor consideraţi:
( ) ( ) ) 0 ,..., 0 , 0 : ,...
1 1
·
− n
h h
Fie m – contorul tăieturilor valide:
0 :· m
Pentru i de la 1 la n-1
Dacă ( ) ( ) 1 1 · ∨ ·
i i
s t atunci
1 :·
i
h
1 : + ·m m
SfDacă
SfPentru
SfAlgoritm
Încrucişarea punctuală introduce o formă de adaptare a
tăieturilor aplicate. Prin aceasta, anumite puncte de tăietură care se
dovedesc inutile procesului de căutare devin inactive. Vor supravieţui
doar acelea care produc descendenţi superiori, fapt pentru care
convergenţa populaţiei este îmbunătăţită.
Încrucişarea segmentată
Tehnica încrucişării segmentate, propusă de Eshelman,
Caruana, Schaffer [1.1.1.2], reprezintă o variantă a încrucişării cu
multiple tăieturi. Specificul procedurii constă în numărul variabil de
tăieturi.
Fie n – dimensiunea cromozomilor. Se consideră un parametru
global m având semnificaţia numărului maxim de tăieturi permise.
Acest parametru verifică condiţia: n m< Numărul de tăieturi utilizate
la aplicarea operatorului este o valoare aleatoare generată din
mulţimea:
{ } m ,..., 2 , 1
. Prin acest mecanism se introduce o mai mare
diversitatea în privinţa recombinării cromozomiale. Numărul
fragmentelor de gene în care se divide un cromozom părinte variază
de la valoarea 2 la n.
55
Un posibil algoritm de generare a tăieturilor este descris în
continuare. Considerăm un parametru suplimentar
[ ] 1 , 0 ∈ s
,
reprezentând probabilitatea ca o poziţie din codificarea
cromozomială să fie acceptată ca punct de tăietură.
Algoritm Generare_Tăieturi
Fie [ ] 1 , 0 ∈ s - parametru al
algoritmului
Fie T – mulţimea tăieturilor:
Φ · : T
Pentru i de la 1 la n-1
Generează aleator [ ] 1 , 0 ∈ q
Dacă
s q <
atunci
} { : i T T ∪ ·

SfDacă
SfPentru
SfAlgoritm
Observaţie: Pentru 1 · s încrucişarea segmentată se reduce la
varianta clasică a încrucişării cu număr constant de tăieturi.
Încrucişarea amestecată
Propusă de Caruana, Eshelman, Schaffer [1.1.1.2], încrucişarea
amestecată este mai degrabă un mecanism suplimentar cu care se
înzestrează orice variantă a operatorului de recombinare. Ideea
dezvoltării unei astfel de tehnici provine din necesitatea introducerii
unui grad mare de diversitate a descendenţilor obţinuţi.
Operatorul acţionează în trei etape:
Pasul I: Genele părinţilor
1
c şi
2
c sunt amestecate folosind un
operator de permutare. Fie '
1
c şi '
2
c indivizii rezultaţi.
Pasul II. Aplică asupra cromozomilor '
1
c şi '
2
c un operator de
încrucişare (orice variantă de tipul 2:2) rezultând descendenţii '
1
f
şi '
2
f .
Pasul III. Genele fiilor sunt rearanjate prin aplicarea permutării
inverse rezultând
1
f şi
2
f .
11.1.4 Operatorul de mutaţie pentru codificarea binară
56
Intervenţia operatorului de mutaţie devine extrem de utilă în
cazurile în care încrucişarea nu facilitează obţinerea anumitor
secvenţe de gene sau pentru a combate efectul de convergenţă
prematură a populaţiei. Fie prin aplicarea unei presiuni de selecţie
prea mare, fie prin pierderea diversităţii indivizilor prin aplicarea
neadecvată a altor operatori, ne putem confrunta cu o uniformizare a
populaţiei, fapt pentru care căutarea ulterioară devine deficitară. În
aceste situaţii mutaţia devine factorul principal de revigorare a
populaţiei. Mai mult, probabilitatea ca soluţia globală să fie situată în
imediata apropiere a unui individ performant este mare. Intuitiv, o
uşoară modificare a trăsăturilor acestuia poate conduce la găsirea
soluţiei dorite, ducând la o accelerare remarcabilă a convergenţei
algoritmului.
Mutaţia uniformă puternică
Mutaţia este operatorul unar care acţionează la nivelul
reprezentării cromozomiale a unui individ selectat în prealabil.
Rezultatul procedurii de mutaţie este un nou individ format parţial
din gene moştenite de la părintele său. Gradul de asemănare al
cromozomilor părinte şi fiu este dependent de numărul genelor care
suferă modificări. Pentru a controla această trăsătură a mutaţiei se
consideră un parametru adiţional cu semnificaţia probabilităţii ca o
poziţie din reprezentarea cromozomială să fie alterată. În mod uzual
notăm acest parametru cu
M
p . Cu cât valoarea parametrului
M
p
este mai mare, cu atât asemănarea descendenţilor cu părinţii este
mai puţin evidentă.
Varianta uniformă a operatorului presupune utilizarea unei
valori constante a probabilităţii de mutaţie
M
p pe tot parcursul
evoluţiei populaţiei.
Algoritm Mutaţie_Tare_Uniformă
este
Fie ( )
n
x x c ,...,
1
· - cromozomul
părinte
Fie [ ] 1 , 0 ∈
M
p parametrul
algoritmului
Fie ( )
n
y y d ,...,
1
· -cromozomul
57
fiu
Pentru i de la 1 la n
Generează aleator
[ ] 1 , 0 ∈ q
Dacă
M
p q < atunci
i i
x y − ·1 :
Altfel
i i
x y · :
SfDacă
SfPentru
SfAlgoritm
Observaţie: Dacă
M
p are valoarea 1, operatorul de mutaţie
descris de algoritmul anterior are efectul complementarii genelor
părintelui.
Mutaţia uniformă slabă
O variantă a mutaţiei uniforme este cea în care gena mutantă a
părintelui se poate transmite nemodificată fiului. Numim această
formă a operatorului – mutaţie slabă. Specificul procedurii constă în
stabilirea unei probabilităţi de alterare a genelor selectate, astfel
încât, deşi o genă oarecare este supusă mutaţiei, fiul poate să
moştenească valoarea iniţială din codificarea părintelui. În esenţă,
genele mutante ale fiului nu sunt copiate din părinte, ci se
construiesc prin atribuirea de valori binare
{ } 1 , 0
.Se stabileşte
valoarea subunitară 5 . 0 · r reprezentând probabilitatea de alocare a
valorii 1 pentru gena considerată.
Algoritmul mutaţiei uniforme slabe este descris în continuare:
Algoritm Mutaţie_Slabă_Uniformă
este
Fie ( )
n
x x c ,...,
1
· - cromozomul
părinte
Fie [ ] 1 , 0 ∈
M
p parametrul
algoritmului
Fie 5 . 0 · r
Fie ( )
n
y y d ,...,
1
· -cromozomul fiu
Pentru i de la 1 la n
Generează aleator
[ ] 1 , 0 ∈ q
58
Dacă
M
p q < atunci
Generează aleator
[ ] 1 , 0 ∈ s
Dacă r s < atunci
1 :·
i
y
Altfel
0 :·
i
y
SfDacă
Altfel
i i
x y · :
SfDacă
SfPentru
SfAlgoritm
Mutaţia neuniformă
Se poate intui că o dinamică eficientă a populaţiei este aceea în
care prima etapă a evoluţiei asigură o bună explorare a spaţiului de
căutare, respectiv, ultima etapă realizează o exploatare accentuată a
zonelor promiţătoare. Acest procedeu permite iniţial determinarea
zonelor corespunzătoare optimelor, fapt pentru care exploatarea
ulterioară a acestora garantează o şansă mare de determinare a
soluţiilor globale. Ne putem imagina scenariul în care ordinea celor
două etape enunţate este inversată. În această situaţie, exploatarea
iniţială poate lesne genera efectul de convergenţă prematură, iar
explorarea ulterioară poate produce pierderea soluţiilor calificate
obţinute în etapa precedentă.
Principiul elementar aplicat în stabilirea ordinii celor două faze
ale evoluţiei este cel prin care asigurăm la început căutarea globală,
urmată de faza finală în care soluţiile intermediare obţinute sunt
rafinate. În practică, acest deziderat se poate atinge prin controlarea
probabilităţii de mutaţie
M
p . În acest caz, valoarea parametrului
M
p nu mai este o constantă. Se stabileşte o regulă prin care
probabilitatea de mutaţie descreşte odată cu creşterea indicelui
generaţiei, astfel încât:
- indivizii generaţiilor iniţiale vor fi supuşi mutaţiei cu o
probabilitate mare, asigurând o bună diversitate a
populaţiei; (explorare)
59
- spre sfârşitul evoluţiei, procentul mutaţiilor scade
considerabil, ceea ce permite o căutare locală eficientă.
(exploatare)
Probabilitatea de mutaţie depinde de vârsta populaţiei, notat
) (t
M
p . Proiectantul algoritmului are libertatea de a construi funcţia
care descrie această dependenţă. Descreşterea valorii
) (t
M
p poate fi
liniară, exponenţială, etc., în funcţie de rapiditatea cu care dorim să
se instaleze etapa de rafinare a soluţiilor.
Thomas Back [1.1.1.2] propune formule de variaţie a
probabilităţii de mutaţie în funcţie de indicele generaţiei curente:
Varianta 1.
Legea de modificare a probabilităţii de mutaţie în funcţie de
timp (timpul este exprimat în numărul generaţiilor produse) este
următoarea:
( ) ( )
t
e p t p
β
m m
⋅ −
⋅ · 1
unde:
t – reprezintă indicele generaţiei curente
β
- parametru întreg supraunitar
1 ≥ β
prin care se
gestionează viteza de descreştere a probabilităţii de mutaţie
( ) 1
m
p - probabilitatea de mutaţie la generaţia iniţială (se
stabileşte de către utilizator)
Varianta 2.
Legea de transformare dependentă de timp este exprimată
prin:
( )
t
T
L
t p
m

+
·
max
2
2
1
unde:
t – reprezintă indicele generaţiei curente
T
max
– numărul maxim de generaţii permise
L – lungimea cromozomului (numărul de gene din reprezentarea
cromozomială)
Probabilitatea de mutaţie la prima generaţie este de 0.5. La
ultima generaţie valoarea parametrului scade la
L 1
.
60
O altă formă de variaţie a parametrului
m
p
este printr-o lege
dependentă de valoarea de performanţă a indivizilor:
( )
( ) ( ) L c fitness
c p
m
− + ⋅
·
1 2
1
unde:
c – un individ (cromozom) al populaţiei curente,
( ) t P c ∈
fitness – funcţia de performanţă
L – lungimea cromozomului
Prin această lege de modificare a valorii probabilităţii de
mutaţie este permisă alterarea accentuată a indivizilor de calitate
slabă şi o mutaţie subtilă a indivizilor cu performanţe considerabile.
Principiul acestei forme de adaptare a mutaţiei este intuitiv: o
valoare mare a performanţei unui individ ne sugerează apropierea
acestuia de optimul din spaţiul de căutare, astfel, probabilitatea ca
individul respectiv să sufere mutaţii scade considerabil pentru a nu
produce îndepărtarea de soluţia din zonă.
În codificarea binară poziţia genelor are un rol decisiv. Alterarea
primelor gene induce o amplitudine mult mai mare a mutaţiei în
comparaţie cu modificarea genelor de la sfârşitul cromozomului.
Ţinând cont de poziţia genelor reprezentării, putem controla puterea
operatorului de mutaţie. Astfel, pentru a asigura diversitatea
populaţiei este indicat să producem mutaţii la nivelul genelor
semnificative, efectul acestora fiind generarea unor descendenţi
puţin asemănători părinţilor. De asemenea, accentuarea căutării
locale – generarea indivizilor apropiaţi de părinţi - se va realiza în
condiţiile în care mutaţiile genelor semnificative sunt rare.
Dependenţa parametrului
M
p de locaţia genelor nu este greu de
realizat practic.
În algoritmul operatorului de mutaţie adaptivă valoarea
probabilităţii de mutaţie este condiţionată de poziţia genelor.
11.1.5 Inversiunea
61
Literatura dedicată domeniului abundă în operatori inediţi,
inspiraţi sau nu de procese naturale, aplicabili în rezolvarea unor
probleme specifice sau având un grad mare de generalitate.
Operatorul de inversiune îşi are rădăcinile în procese naturale
întâlnite la nivel cromozomial. Tipul operatorului este 1:1, respectiv
procedeul se aplică asupra unui singur cromozom rezultând un unic
descendent. Principiul inversiunii este simplu: valorile a două gene se
interschimbă. Poziţiile genelor inversate se generează aleator. Altă
variantă a operatorului presupune transcrierea inversă a unei
subsecvenţe de gene a cromozomului
În practică întâlnim foarte rar utilizarea operatorului de
inversiune, preferinţa fiind clară înspre implementarea încrucişării şi
mutaţiei. Inversiunea are mai degrabă un statut istoric decât
funcţional dat fiind faptul că primii operatori genetici sugeraţi sunt
încrucişarea, mutaţia şi inversiunea [1.1.1.2]. Frecvenţa mică de
utilizare a acestui operator îşi are explicaţia logică în faptul că
mutaţia sau recombinarea pot suplini absenţa lui, efectul operatorilor
de variaţie populari fiind în anumite condiţii similar inversiunii.
O posibilă generalizare a operatorului descris este aceea prin
care se inversează secvenţe distincte de gene. Lungimile secvenţelor
sunt egale pentru a nu produce suprapunerea genelor sau depăşirea
lungimii maxime a cromozomilor.
12 Codificare reală - specifică
Într-un exemplu anterior (vezi ) a fost tratată o problemă de
optimizare a unei funcţii reale. Folosind codificarea cromozomială
binară, abordarea descrisă pierde din naturaleţe şi flexibilitate: valori
reale vor fi transformate şi exprimate în secvenţe binare cu o precizie
prestabilită. Funcţia de performanţă, identică cu funcţia criteriu a
problemei are ca parametru o valoare reală. Calcularea
performanţelor indivizilor populaţiei presupune conversia inversă din
binar în real a reprezentării soluţiilor posibile, şi astfel, un cost
suplimentar în procesul de calcul. Soluţia elegantă în cazul
optimizării funcţiilor reale constă în utilizarea unei reprezentări
62
Fie
k
R D ⊆ ,
k
D D D D × × × · ...
2 1
– spaţiul de căutare al unei
probleme date.
Notăm cu
i
a şi
i
b limitele inferioară, respectiv, superioară ale
domeniului
i
D : [ ]
i i i
b a D , · .
Fie D x∈ , ( )
k
x x x x ,.. ,
2 1
· o soluţie posibilă a problemei
considerate şi cromozomul
( ) t P c ∈
reprezentarea reală a soluţiei x.
{ } k i ,..., 2 , 1 ∈ ∀
, [ ]
i i i
b a x , ∈
Cromozomul c, în codificarea reală este exprimat prin secvenţa
de valori reale: ( )
k
x x x c ,..., ,
2 1
· .
Exemplul amintit poate fi rezolvat natural utilizând codificare
cromozomială reală:
Fie
R D f → :
,
[ ] 6 , 2 · D
şi un punct oarecare a domeniului:
s=3,42.
Codificarea reală a soluţiei s este următoarea: ( )
1
x c · , unde
42 , 3
1
· x .
Menţionăm că această formă de reprezentare a soluţiilor
posibile este aplicabilă în toate situaţiile în care un punct al spaţiului
de căutare comportă o exprimare prin valori reale. Optimizarea
funcţiilor reale este doar o clasă de probleme în care codificarea
reală este preferată codificării binare.
Operatorii genetici descrişi în paragrafele dedicate codificării
binare nu pot fi aplicaţi în cazul unei codificări reale a soluţiilor.
Mutaţia, exprimată ca alterare unei gene prin inversarea valorii
iniţiale sau recombinarea utilizând puncte de tăietură devin
nepotrivite în acest context. Corespunzător codificării cromozomiale
reale există operatori specifici de mutaţie şi încrucişare. Secţiunile
următoare prezintă câteva variante populare de operatori genetici
specifici codificării reale.
12.1.1 Operatorul de încrucişare pentru codificarea reală
Încrucişarea discretă
Operatorul de încrucişare discretă este o variantă similară
încrucişării uniforme din secţiunea codificării binare. Ca şi în primul
63
caz, un parametru subunitar exprimă probabilitatea ca genele fiilor
să provină din primul sau al doilea părinte. Notăm cu p parametrul
prin care este modelat rolul părinţilor în transmiterea genelor:
[ ] 1 , 0 ∈ p
. Valoarea p=0.5 anunţă rolul simetric al celor doi părinţi
selectaţi pentru încrucişare.
Algoritmul de încrucişare discretă este descris în cele ce
urmează:
Algoritmul Încrucişare_Discretă este
Fie p – parametrul algoritmului,
[ ] 1 , 0 ∈ p
Fie ( )
n
x x c ,...,
1 1
· şi ( )
n
y y c ,...,
1 2
· doi
părinţi
Fie ( )
n
z z d ,...,
1 1
· şi ( )
n
w w d ,...,
1 2
·
descendenţii
Pentru i de la 1 la n
Generează aleator
[ ] 1 , 0 ∈ q
Dacă
p q <
atunci
i i
x z · :
i i
y w · :
Altfel
i i
y z · :
i i
x w · :
SfDacă
SfPentru
SfAlgoritm
Încrucişarea continuă
Operatorul de încrucişare continuă implică doi părinţi selectaţi
în prealabil. Descendenţii obţinuţi moştenesc o parte a genelor
corespondente ale părinţilor, restul genelor obţinându-se ca medie
aritmetică a genelor provenite din ambii părinţi. Procedeul descris va
produce descendenţi ce conţin secvenţe de trăsături similare. Un
parametru suplimentar va indica raportul dintre genele care se
moştenesc nemodificate şi genele care suferă mutaţii.
Algoritmul Încrucişare_Continuă este
Fie p – parametrul algoritmului,
[ ] 1 , 0 ∈ p
Fie ( )
n
x x c ,...,
1 1
· şi ( )
n
y y c ,...,
1 2
· doi
64
părinţi
Fie ( )
n
z z d ,...,
1 1
· şi ( )
n
w w d ,...,
1 2
·
descendenţii
Pentru i de la 1 la n
Generează aleator
[ ] 1 , 0 ∈ q
Dacă
p q <
atunci
2
:
i i
i
y x
z
+
·
2
:
i i
i
y x
w
+
·
Altfel
i i
x z · :
i i
y w · :
SfDacă
SfPentru
SfAlgoritm
O variantă a operatorului de încrucişare continuă, denumită
încrucişare continuă completă, produce un singur descendent ale
cărui gene sunt obţinute ca medii ale genelor corespondente din
ambii părinţi.
Încrucişarea convexă
Încrucişarea convexă produce descendenţi ale căror gene sunt
combinaţii liniare (convexe) ale genelor părinţilor. Operatorul este
caracterizat printr-un parametru subunitar α prin care se poate
controla importanţa părinţilor în constituirea descendenţilor.
Valoarea 0.5 stabilită parametrului α ne conduce la varianta de
încrucişare continuă completă. Algoritmul este descris în cele ce
urmează.
Algoritmul Încrucişare_Convexă este
Fie α – parametrul algoritmului,
[ ] 1 , 0 ∈ α
Fie ( )
n
x x c ,...,
1 1
· şi ( )
n
y y c ,...,
1 2
· doi
părinţi
Fie ( )
n
z z d ,...,
1 1
· şi ( )
n
w w d ,...,
1 2
·
descendenţii
Pentru i de la 1 la n
( )
i i i
y x z ⋅ − + ⋅ · α α 1 :
65
( )
i i i
x y w ⋅ − + ⋅ · α α 1 :
SfPentru
SfAlgoritm
Parametrul α poate fi o constantă prestabilită de-a lungul
evoluţiei populaţiei. În anumite scheme de încrucişare convexă
parametrul α poate fi variabilă, generată pentru fiecare pereche de
părinţi sau pentru fiecare genă construită a descendenţilor.
Generarea parametrului α pentru fiecare poziţie a descendenţilor
construiţi creează un hibrid între încrucişare şi mutaţie.
12.1.2 Operatorul de mutaţie pentru codificarea reală
Codificarea reală a cromozomilor implică apariţia altor proceduri
de mutaţie specifică. În funcţie de dependenţa de indicele generaţiei
t se disting două clase de operatori de mutaţie: mutaţie
independentă de timp: mutaţia uniformă şi mutaţia dependentă de
generaţie sau neuniformă.
Mutaţia uniformă a cromozomilor în reprezentare reală
presupune ca indiferent de generaţie, cu o probabilitate fixată, să fie
alterată valoarea unei gene prin înlocuirea acesteia cu o nouă
valoare aleator generată din domeniul de definiţie.
Fie ( )
n i
x x x x c ,..., ,..., ,
2 1
· cromozomul supus mutaţiei. În mod
aleator se stabileşte poziţia i a genei ce va fi alterată, urmând ca
această poziţie să fie înlocuită cu o valoare nou generată.
Probabilitatea de mutaţie a genelor este constantă şi are aceiaşi
valoare pentru toate genele.
Procedura de mutaţie neuniformă este construită pe principiul
de a favoriza o explorare eficientă a spaţiului de căutare în primele
generaţii ale evoluţiei şi o exploatare accentuată a soluţiilor
performante în ultimele generaţii. Acest deziderat se realizează prin
implicarea a doi parametrii suplimentari variabili prin care se indică
natura modificării genelor, respectiv, amplitudinea schimbării şi
aplicarea unei legi de alterare inspirată de algoritmul Metropolis de
recoacere simulată. În acest scop se va stabili un indice maxim T al
generaţiei la care amplitudinea mutaţiei devine nulă şi amplitudinea
66
iniţială r a mutaţiilor. Se consideră domeniul de definiţie a valorii
genei
i
x ca fiind intervalul [ ]
i i
b a , şi t reprezintă indicele generaţiei
curente.
Legea de alterare a genei selectate devine:
1. Stabileşte aleator sensul alterării genei
i
x
,
{ } 1 , 1 + − ∈ p
, cu semnificaţia:
p=1 creşterea valorii
p=-1: descreşterea valorii
2. Dacă p=1 atunci
x
i
' =x
i
 b
i
−x
i

[
1−r

1−
t
T

]
Altfel /*(p=-1)*/
1
1
]
1

¸

− − − ·

,
_

¸
¸

T
t
i i i i
r a x x x
1
1 ) ( '
SfDacă
13 Consideraţii privind operatorii genetici
Analizaţi din perspectiva echilibrului explorare-exploatare,
operatorii genetici se împart în două categorii corespunzător acţiunii
exercitate asupra populaţiei:
- operatori care favorizează exploatarea celor mai prolifice
soluţii curente
- operatori care permit extinderea căutării şi în alte zone ale
spaţiului
Din prima categorie fac parte operatorii de selecţie. Rolul
acestora constă în avantajul pe care îl atribuie indivizilor care s-au
dovedit a fi performanţi în conformitate cu funcţia de evaluare. Cea
de-a doua categorie încorporează operatorii de încrucişare şi mutaţie
a căror sarcină constă în modificarea cromozomilor, asigurând
progresul ulterior al populaţiei în ansamblu.
La o parcurgere a descrierii Algoritmului genetic standard (vezi
) se poate observa ordinea acţiunilor asupra populaţiei. În această
organizare, selecţia precede acţiunea operatorilor de variaţie.
Principiul este evident: dintre indivizii populaţiei curente se vor alege
67
cei mai valoroşi pentru a continua căutarea. Indivizii selectaţi
formează o populaţie distinctă de generaţia curentă. În realitate ci
doi operatori de variaţie consideraţi se aplică asupra a două populaţii
distincte. Încrucişarea acţionează asupra părinţilor selectaţi ( ) t P
S
,
iar mutaţia va altera indivizii obţinuţi prin încrucişare ( ) t P
R
. Selecţia
se aplică de două ori: prima dată pentru a delimita părinţii ce vor fi
supuşi încrucişării, şi a doua oară pentru a decide care dintre
descendenţii obţinuţi prin recombinare vor suferi mutaţii. În
dezvoltarea algoritmului genetic nu este obligatorie alegerea
aceleiaşi variante de selecţie pentru încrucişare şi mutaţie.
Algoritmul genetic este puternic parametrizat: dimensiunea
populaţiei şi numărul maxim de generaţii produse sunt parametri
evidenţi ai evoluţiei. Introducerea operatorilor genetici adaugă noi
parametri specifici: probabilitatea de încrucişare, probabilitatea de
mutaţie, etc. În continuare vom descrie şi discuta efectul acestor
parametri asupra dinamicii populaţiei.
1) Probabilitatea de încrucişare
Considerăm o populaţie de dimensiune constantă n. Efectul
selecţiei pentru încrucişare este de a forma o populaţie intermediară
( ) t P
S
de dimensiune n, constituită din copii ale indivizilor generaţiei
curente
( ) t P
. Se poate observa că anumiţi cromozomi ai populaţiei
curente nu se regăsesc în ( ) t P
S
, în timp ce alţii se copiază de mai
multe ori.
Notăm cu
C
p - probabilitatea ca un cromozom al populaţiei
intermediare să fie supus încrucişării. Altfel spus, fiecare individ al
populaţiei ( ) t P
S
poate produce descendenţi cu o probabilitate
C
p .
Exemplu: pentru parametrul stabilit 7 . 0 ·
C
p se înţelege faptul
că 70% dintre cromozomii populaţiei intermediare vor fi supuşi
acţiunii operatorului de încrucişare.
În general valorile probabilităţii de încrucişare se situează în
intervalul [ ] 95 . 0 , 2 . 0 . Admitem că valorile mici a parametrului
provoacă o încetinire a explorării spaţiului de căutare, în schimb,
valorile mari ale acestuia conduc la progresul accelerat al populaţiei.
68
În continuare prezentăm detaliat mecanism de aplicare a
operatorului de încrucişare ţinând cont de parametrul specific
C
p
.
Se consideră populaţia intermediară de n indivizi selectaţi pentru
încrucişare:
( ) t P
S
. Deoarece încrucişarea este un operator ce
acţionează asupra a doi indivizi din
( ) t P
S
este necesară stabilirea
modului în care se face împerecherea acestora. În general perechile
de părinţi supuşi recombinării se stabilesc în mod aleator.
Considerăm
C
p - probabilitatea de încrucişare.
Algoritmul complet de împerechere şi încrucişare este
următorul:
Algoritmul Recombinare este:
/*construirea populaţiei intermediare Q , de dimensiune n*/
Fie
Φ · : Q
Câttimp (
n Q <
)
Pentru fiecare ( ) t P c
S
∈ execută
Generează aleator
[ ] 1 , 0 ∈ q
Dacă
C
p q < atunci
{ } c Q Q ∪ · :
SfDacă
SfPentru
SfCâttimp
/*aplicarea încrucişării asupra perechilor de indivizi stabilite
aleator*/
Fie ( ) Φ · : t P
R
Câttimp (
( ) n t P
R
< )
Generează aleator poziţiile i şi j a doi indivizi din
populaţia Q
Încrucişare(
i
c , j
c
), rezultând descendenţii
1
d şi
2
d
( ) ( ) { }
2 1
, : d d t P t P
R R
∪ ·
SfCâttimp
SfAlgoritm
2) Probabilitatea de mutaţie
69
Acest parametru este caracteristic mutaţiei. În mod uzual se
notează cu
M
p şi semnifică în ce măsură indivizii selectaţi vor fi
supuşi acţiunii operatorului. În general, valoarea parametrului
M
p
este de ordinul
3
10

şi intervalul recomandat de valori este
[ ] 01 . 0 , 001 . 0
.
Considerăm o populaţie intermediară de dimensiune n. Indivizii
sunt reprezentaţi de secvenţe binare de lungime prestabilită k.
Fiecare genă din reprezentarea cromozomială poate fi modificată cu
o probabilitate dată de valoarea lui
M
p . În acest caz numărul mediu
de gene mutate este de
M
p k n ⋅ ⋅ . Cu cât valoarea lui
M
p este mai
mare, cu atât efectul mutaţiei în generaţia produsă este mai evident.
Ne imaginăm un algoritm genetic înzestrat cu operatori de
selecţie şi mutaţie. Se poate deduce clar că pentru valori mici ale
parametrului
M
p , noua generaţie obţinută va fi asemănătoare
populaţiei curente. Accelerarea căutării se poate produce prin
ajustarea în mod corespunzător a parametrilor algoritmului.
Clasificarea operatorilor de mutaţie se face şi în funcţie de
parametrul reprezentativ
M
p . Astfel, mutaţia uniformă presupune o
valoare constantă pentru parametrul
M
p în timpul evoluţiei, iar
mutaţia neuniformă se caracterizează prin dependenţa valorii
parametrului
M
p de numărul generaţiei curente.
14 Exemple de rezolvare a problemelor cu algoritmi
genetici
În scop didactic vom prezenta două probleme simple de
optimizare a unor funcţii reale cu o singură, respectiv, mai multe
variabile.
14.1.1 Exemplu 1 – Optimizare numerică
Fie funcţia
R D f → :
, unde:
[ ] π , 0 · D
şi
( ) ( ) x x f sin ·
Se doreşte determinarea maximului global al funcţiei f în
domeniul D.
70
Pentru rezolvarea problemei de optimizare (maximizare) cu
ajutorul unui algoritm genetic, se vor parcurge etapele următoare:
1. Stabilirea manierei de codificare
2. Stabilirea funcţiei de evaluare
3. Alegerea operatorilor genetici: selecţie, încrucişare,
mutaţie
4. Stabilirea parametrilor de control
5. Alegerea condiţiei de terminare a execuţiei algoritmului
6. Stabilirea formei de elitism aplicate (dacă este cazul)
Vom detalia în continuare componentele principale ale
algoritmului genetic pentru problema dată.
Codificarea soluţiilor
Pornind de la observaţia că funcţia f este o funcţie reală de o
singură variabilă x ale cărei valori fac parte din domeniul continuu
[ ] π , 0 · D
, se pot deduce două variante de codificare a soluţiilor
posibile. Practic, orice valoare reală x din domeniul de căutare D este
o posibilă soluţie a problemei. Aceasta poate fi reprezentată binar,
prin procedeul descris în , sau, mai natural, admite codificarea reală
descrisă în .
Codificarea binară
Fiecare soluţie x din intervalul dat poate fi reprezentată printr-o
secvenţă de n valori binare ( )
n
c c c c ,..., ,
2 1
· , unde n se va stabili în
funcţie de precizia dorită a codificării. Metoda de determinare a
secvenţei binare este descris în paragraful . Subalgoritmul care
realizează acest procedeu este următorul:
Subalgoritm Codificare(Intrare: x, n ; Ieşire: ( )
n
c c c c ,..., ,
2 1
· )
Execută
0
0

·
π
x
xt =>
π
x
xt ·
Pentru i de la 1 la n
2 ⋅ · xt c
i

2 2 ⋅ − ⋅ · xt xt xt
SfPentru
SfSubalgoritm
71
Populaţia de indivizi este notată P şi este formată dintr-un
număr fixat de dimpop secvenţe binare: { }
dimpop
c c c P ,..., ,
2 1
· .
Populaţia iniţială este generată aleator prin procedura următoare:
Subalgoritm Generare(Ieşire: { }
dimpop
c c c P ,..., ,
2 1
· )
Pentru i de la 1 la dimpop
α π ⋅ · x , unde α - este o valoare subunitară
generată aleator
Cheamă Codificare(x,
( )
n
i i i i
c c c c ,..., , 2 1 ·
)
SfPentru
SfSubalgoritm
Funcţia fitness
Alegerea funcţiei de evaluare a performanţelor indivizilor nu
este problematică în cazul acestei probleme. Fiind vorba de o
problemă de maximizare, cu cât valoarea funcţiei f în punctul x este
mai mare cu atât calitatea acestei soluţii este mai bună. Astfel, în
mod natural, funcţia fitness este aleasă ca fiind însăşi funcţia de
optimizat:
) ( ) ( x f x fitness ·
.
Problema care apare în contextul evaluării indivizilor rezidă din
maniera de codificare binară pe care am utilizat-o. Fiecare individ
este o secvenţă binară prin care se reprezintă valoarea reală a
soluţiei x. Înaintea evaluării unui individ este necesară aplicarea
algoritmului invers prin care se determină valoarea reală
corespunzătoare reprezentării binare:
/*transformarea secvenței binare in valoarea reala
echivalenta*/
Subalgoritm Decodificare (Intrare: ( )
n
c c c c ,..., ,
2 1
· , Ieşire: x)

·
− − − −
⋅ · ⋅ + + ⋅ + ⋅ ·
n
i
i
i
n
n
c c c c xt
1
2
2
1
1
2 2 ... 2 2
( ) π π ⋅ · + − ⋅ · xt xt x 0 0
SfSubalgoritm
/*Funcţia de evaluare a calităţii unui individ*/
Subalgoritm Fitness(Intrare: ( )
n
c c c c ,..., ,
2 1
· , Ieşire: fit )
72
Decodificare( ( )
n
c c c c ,..., ,
2 1
· ,x)
( ) x fit sin ·
SfSubalgoritm
Evaluarea populaţiei curente, la momentul t, se realizează prin
determinarea valorilor de performanţă a tuturor elementelor
populaţiei:
Subalgoritm Evaluare(Intrare: ( ) { }
dimpop
c c c t P ,..., ,
2 1
· )
Pentru i de la 1 la dimpop
Cheamă Fitness(
i
c
,
i
fit )
SfPentru
SfSubalgoritm
Operatorii genetici
În exemplul curent am optat pentru următorii operatori genetici:
încrucişarea cu 2 puncte de tăietură de tipul (2:1), mutaţia uniformă
puternică şi selecţia proporţională.
/*procedura de selecţie a unui părinte*/
Subalgoritm Selecţie(Ieşire: ind)
//ind - reprezinta indicele din populaţie al părintelui selectat
sumafit=0
Pentru i de la 1 la dimpop
sumafit=sumafit+fit
i

//unde fit
i
–reprezintă performanta calculată a
individului
i
c
SfPentru
ind=0
r sumafit s ⋅ ·
, unde r - este o valoarea aleatoare subunitară
Câttimp ( 0 ≥ s AND
dimpop ind ≤
)
ind
fit s s − · //unde fit
ind
–reprezintă performanta
individului
ind
c
ind=ind+1
SfCâttimp
SfSubalgoritm
/*procedura de încrucişare*/
73
Subalgoritm Încrucişare(Intrare:
1 ind
c
,
2 ind
c
Ieşire:
( )
n
d d d d ,..., ,
2 1
· )
Fie
1
t şi
2
t
//
2 1
t t < - două valori generate aleator în mulţimea
{ } dimpop ,..., 2 , 1

Pentru i de la 1 la
1
t
1 ind
i i
c d ·
SfPentru
Pentru i de la
1
t +1 la
2
t
2 ind
i i
c d ·
SfPentru
Pentru i de la
2
t +1 la n
1 ind
i i
c d ·
SfPentru
SfSubalgoritm
/* procedura de mutaţie*/
Subalgoritm Mutaţie(Intrare:
ind
c
,
M
p Ieşire: ( )
n
d d d d ,..., ,
2 1
· )
Pentru i de la 1 la n
Generează aleator
[ ] 1 , 0 ∈ q
Dacă
M
p q < atunci
ind
i i
c d − ·1
Altfel
ind
i i
c d ·
SfDacă
SfPentru
SfSubalgoritm
Parametrii de control
Probabilitatea de mutaţie
M
p se stabileşte la valoarea 0.001.
Dimensiunea populaţiei este de 100 de indivizi, iar precizia dorită a
codificării ne conduce la o reprezentare pe 10 · n poziţii binare a
fiecărui cromozom.
74
Condiţia de terminare si elitismul
Algoritmul genetic va fi înzestrat cu o formă de elitism prin care
cel mai performant individ al generaţiei curente se va copia
nemodificat în noua generaţie. Condiţia de terminare se referă la
atingerea unui număr de 100 · Tmax de generaţii produse.
Subalgoritm Elita(Ieşire: best)
poz_best=1
Pentru i de la 1 la dimpop
Dacă
i
fit
>
best poz
fit
_
atunci
poz_best=i
SfDacă
SfPentru
best=
best poz
c
_
// individul de pe poziţia poz_best din populaţia
( ) { }
dimpop
c c c t P ,..., ,
2 1
·
SfSubalgoritm
Algoritmul genetic
Fiind descrişi subalgoritmii care realizează operaţiile principale,
un algoritm genetic care rezolvă problema de optimizare considerată
este următorul:
Algoritm AlgoritmGenetic este
Cheamă Generare(P(0))
0 · t
Câttimp ( Tmax t ≤ )
/*evaluare populaţie curentă*/
Cheamă Evaluare(P(t))
/*reţine best – cel mai bun individ din populaţie*/
Cheamă Elita(best)
/*creare populaţie intermediară
S
P ,
{ }
dimpop
S
s s s P ,..., ,
2 1
· */
Pentru i de la 1 la dimpop
Cheamă Selecţie(ind)
75
ind i
c s ·
SfPentru
/*creare populaţie intermediară
R
P ,
{ }
dimpop
R
r r r P ,..., ,
2 1
· */
Pentru i de la 1 la dimpop
Generează aleator ind1 şi ind2 din mulţimea
{ } dimpop ,..., 2 , 1

Cheamă Încrucişare(
1 ind
s
,
2 ind
s
;
i
r
)
SfPentru
/*formare populaţie nouă ( ) { }
dimpop
c c c t P ,..., , 1
2 1
· +
*/
Pentru i de la 1 la dimpop
Cheamă Mutaţie(
M
i
p r , ;
i
c
)
SfPentru
/*elitism: copiază pe prima poziţie în noua
populaţie cel mai bun individ al generaţiei vechi*/
best c ·
1
t=t+1
SfCâttimp
SfAlgoritm
14.1.2 Exemplu 2– Optimizare numerică
Fie funcţia
R D f → :
, unde:
[ ] π , 0 · D
şi
( ) ( ) x x f sin ·
Se doreşte determinarea maximului global al funcţiei f în
domeniul D.
1. Codificarea indivizilor
Problema enunţată a fost tratată în primul exemplu utilizând
codificarea cromozomială binară. Pornind de la observaţia că
dimensiunea spaţiului de căutare este 1, şi orice valoare din
intervalul [ ] π , 0 · D este o soluţie posibilă a problemei, într-un mod
mai natural, un individ al populaţiei poate fi reprezentat prin valoarea
reală corespunzătoare:
76
( ) x c · ,
[ ] π , 0 ∈ x
Cu excepţia procedurilor specifice care depind de maniera de
codificare a indivizilor (încrucişarea, mutaţia), ceilalţi subalgoritmi
descrişi în exemplul 1 se simplifică semnificativ, nemaifiind necesară
conversia din reprezentare binară în reală, respectiv din valoare reală
în secvenţă binară.
Populaţia iniţială { }
dimpop
c c c P ,..., ,
2 1
· este generată aleator
printr-o procedură elementară:
Subalgoritm Generare(Ieşire: { }
dimpop
c c c P ,..., ,
2 1
· )
Pentru i de la 1 la dimpop
α π ⋅ · x , unde α - este o valoare subunitară
generată aleator
x c ·
SfPentru
SfSubalgoritm
2. Evaluare indivizilor
Funcţia de fitness şi procedura de evaluare a populaţiei curente
devine:
Subalgoritm Fitness(Intrare: x c · , Ieşire: fit )
( ) x fit sin ·
SfSubalgoritm
Subalgoritm Evaluare(Intrare: ( ) { }
dimpop
c c c t P ,..., ,
2 1
· )
Pentru i de la 1 la dimpop
Cheamă Fitness(
i
c
,
i
fit )
SfPentru
SfSubalgoritm
3. Stabilirea operatorilor genetici:
Operatorul de selecţie este cel descris în exemplul precedent,
deoarece selecţia este o procedură care depinde doar de calitatea
indivizilor şi nu şi de maniera de reprezentare a acestora. Operatorii
genetici de încrucişare şi mutaţie sunt aleşi dintre cei specifici
77
codificării reale: încrucişare convexă de tipul (2:1) şi mutaţie
neuniformă.
Subalgoritm Încrucişare (Intrare: ( ) x c
ind
·
1
, ( ) y c
ind
·
2
Ieşire:
( ) z d ·
)
Generează aleator
[ ] 1 , 0 ∈ α
( ) y x z ⋅ − + ⋅ · α α 1 :
SfSubalgoritm
Subalgoritm Mutaţie(Intrare: ( ) x c
ind
· ,
M
p , r, t, T Ieşire:
( ) y d ·
)
Generează aleator
[ ] 1 , 0 ∈ q
Dacă
5 . 0 ≥ q
atunci
1
1
]
1

¸

− − + ·

,
_

¸
¸

T
t
r x x y
1
1 ) (π
Altfel
1
1
]
1

¸

− − − ·

,
_

¸
¸

T
t
r x x y
1
1 ) 0 (
SfDacă
SfSubalgoritm
Faţă de abordarea din exemplul 1, mulţimea parametrilor de
control va fi completată cu parametrii care intervin în subalgoritmii
specifici:
- amplitudinea iniţială a mutaţiilor r
- numărul generaţiei T la care amplitudinea mutaţiilor devine
nulă.
Condiţia de încheiere a execuţiei algoritmului, procedura de
elitism şi structura algoritmului genetic - nu se modifică faţă de
varianta de rezolvare în care se utilizează codificare binară.
Soluţii:
Figurile următoare prezintă populaţia la diferite momente de
timp în evoluţie. Pentru o bună vizualizare am reprezentat punctele
de coordonate ( ) ( ) x f x, corespunzătoare indivizilor populaţiei.
78
0
0
0
0
1
1
1
1
0 0.5 1 1.5 2 2.5 3

0.0
0.2
0.4
0.6
0.8
1.0
1.2
-0.35 0.15 0.65 1.15 1.65 2.15 2.65 3.15

0.00
0.20
0.40
0.60
0.80
1.00
1.20
0 0.5 1 1.5 2 2.5 3
Figura 3 Populaţia la generaţiile 0, 10 şi 100
După un număr de 100 de generaţii, soluţia oferită de
algoritmul genetic –codificată de cel mai performant individ al ultimei
generaţii este: x=1.5707963, f(x)=1.0000000, ceea ce corespunde
unei aproximări foarte bune a maximului funcţiei sin în intervalul
considerat.
14.1.3 Exemplu 3– Optimizare numerică
Fie funcţia
R D f → :
, unde:
( ) ( )

·
· ·
n
i
i
x x x x f x f
1
2
2 2 1
,..., ,
şi 12 . 5 12 . 5 ≤ ≤ −
i
x , n i ,..., 1 · ∀ .
Se doreşte determinarea maximului global al funcţiei f în
domeniul D.
79
Figura 4 graficul funcţiei De Jong 1 pentru cazul particular n=2 (două
variabile)
Această funcţie este cunoscută sub denumirea de funcţia De
Jong 1 şi este o funcţie continuă, convexă şi unimodală, a cărui
optim global (minim) este:
( ) 0
*
· x f , 0
*
·
i
x , n i ,..., 1 · ∀
1. Codificarea indivizilor
Faţă de exemplele precedente, funcţia de optimizat este
scalabilă în privinţa numărului de variabile. Codificarea cromozomială
poate fi stabilită atât codificare binară (vezi de ex. , Cazul II) cât şi
codificare reală. În abordarea curentă am optat pentru reprezentarea
reală a indivizilor fiind mult mai flexibilă:
( )
n
x x x c ,..., ,
2 1
· , unde 12 . 5 12 . 5 ≤ ≤ −
i
x , n i ,..., 1 · ∀
2. Evaluare indivizilor
Fiind vorba de o problemă de minimizare, valoarea de
performanţă a unei soluţii trebuie să fie cu atât mai mare cu cât
valoarea funcţiei f în punctul respectiv este mai mică. Această
observaţie ne conduce la ideea necesităţii găsirii unei transformări de
scală a funcţiei obiectiv.
Pentru exemplul de faţă am considerat următoarea funcţie de
fitness:
( )
( )

·
+
·
+
·
n
i
i
n
x
x x x f
c fitness
1
2
2 1
1
1
,..., , 1
1
80
Subalgoritmul de determinare a performanţei unui individ se
modifică corespunzător:
Subalgoritm Fitness(Intrare:
x c ·
, Ieşire: fit )
Suma=0
Pentru i=1 la n
Suma=Suma+
2
i
x
SfPentru
fit=1/(1+Suma)
SfSubalgoritm
3. Stabilirea operatorilor genetici:
Maniera de codificare şi structura multidimensională a
cromozomilor decide asupra operatorilor de variaţie folosiţi.
Operatorul de selecţie rămâne cel descris în exemplul 1.
/*încrucişare convexă*/
Subalgoritm Încrucişare (Intrare: ( ) x c
ind
·
1
, ( ) y c
ind
·
2
Ieşire:
( ) z d ·
)
Fie ( )
n
x x c ,...,
1 1
· şi ( )
n
y y c ,...,
1 2
· doi părinţi
Fie ( )
n
z z d ,...,
1
· descendentul
Pentru i de la 1 la n
Generează aleator
[ ] 1 , 0 ∈ α
( )
i i i
y x z ⋅ − + ⋅ · α α 1 :
SfPentru
SfSubalgoritm
/*mutaţie neuniformă*/
Subalgoritm Mutaţie(Intrare: ( ) x c
ind
· ,
M
p , r, t, T Ieşire:
( ) y d ·
)
Pentru i =1 la n
Generează aleator
[ ] 1 , 0 ∈ p
Dacă
M
p p ≥ atunci
Generează aleator
[ ] 1 , 0 ∈ q
Dacă
5 . 0 ≥ q
atunci
81
1
1
]
1

¸

− − + ·

,
_

¸
¸

T
t
i i i
r x x y
1
1 ) 12 . 5 (
Altfel
( )
1
1
]
1

¸

− − − − ·

,
_

¸
¸

T
t
i i i
r x x y
1
1 ) 12 . 5 (
SfDacă
SfDacă
SfPentru
SfSubalgoritm
Celelalte aspecte ale rezolvării problemei de optimizare:
parametrii de control, condiţia de terminare, elitismul şi structura
algoritmului genetic, sunt cele definite în exemplele precedente.
Soluţii:
-6
-4
-2
0
2
4
6
-6 -4 -2 0 2 4 6
X1
X
2

-6
-4
-2
0
2
4
6
-6 -4 -2 0 2 4 6
X1
X
2
Figura 5 Distribuţia indivizilor la prim generaţie (stânga) şi generaţia
10 (dreapta), în domeniul de căutare.
Pentru o populaţie de 100 de cromozomi şi un număr de
variabile n=20, algoritmul furnizează în 100 de generaţii o
aproximare bună a minimului global:
Xminim=(0.03668, 0.04366, -0.03351, -0.0164,
0.044645921, 0.03719, 0.037897959, -0.0313,
-0.0276, -0.01, -0.0308, 0.04236, -0.0148,
-0.0401, 0.0406, -0.0369, -0.0011, -0.0403,
-0.0489, 0.04253)
82
-6
-4
-2
0
2
4
6
-6 -4 -2 0 2 4 6
X1
X
2
Figura 6 Distribuţia indivizilor la generaţia 100 în domeniul de căutare.
Populaţie converge înspre minimul global al funcţiei
Populaţia de indivizi este reprezentată în figurile alăturate, fiind
surprinsă la diferite generaţii. Au fost reprezentate punctele ale
căror coordonate sunt date de valorile primelor două variabile
( )
2 1
, x x din reprezentarea cromozomilor.
83
CAPITOL III
15 Strategii Evolutive
Paradigma Strategiilor Evolutive se conturează din anii 1960
când un grup de cercetători de la Universitatea Tehnică din Berlin
lansează un model de algoritm evolutiv care încorporează trăsături
definitorii inspirate de principii observate în natură. Ideea de bază a
Strategilor Evolutive este de a evolua parametrii strategiei în paralel
cu soluţia problemei. Primele aplicaţii ale unei strategii evolutive s-au
încadrat în aria problemelor de hidrodinamică. Dificultatea acestor
probleme cât şi imposibilitatea aplicării unor metode de optimizare
tradiţionale conduc la dezvoltarea unui algoritm prin care atât soluţia
cât şi parametrii de control ai strategiei evoluează în paralel prin
acţiunea operatorului de mutaţie.
Prima variantă a unei strategii evolutive nu include principiul
evoluţiei colective a unor indivizi, grupaţi în aşa numita populaţie.
Strategia (1+1) presupune alterarea unui singur individ (soluţie)
rezultând un unic descendent. Cei doi indivizi, părintele şi
descendentul acestuia sunt ulterior evaluaţi şi comparaţi, urmând ca
cel mai performant să supravieţuiască. Procedeul se repetă până la
îndeplinirea unei condiţii de terminare a algoritmului. Ca şi în cazul
algoritmilor genetici, căutarea în spaţiul soluţiilor posibile este
ghidată de funcţia de evaluare: funcţie prin care se poate ataşa
84
fiecărei soluţii o valoare de performanţă. Operatorul principal al unei
strategii de acest gen este mutaţia.
Deficienţele strategiei (1+1) au fost depăşite ulterior prin
dezvoltarea strategilor bazate pe populaţii: (
µ
+1), (
µ
+λ), (
µ
, λ
).
16 Strategia evolutivă (1+1)
Notaţia prin care este identificat tipul strategiei evolutive ne
indică elementele definitorii ale acesteia: numărul de indivizi ai
generaţiei curente, numărul de descendenţi rezultaţi în urma aplicării
operatorilor de variaţie şi metoda de selecţie a noii generaţii. În cazul
strategiei discutate, notaţia (1+1) se traduce prin acţiunile
următoare: la fiecare etapă a evoluţiei, unicului individ (1) al
generaţiei curente suferă o mutaţie rezultând un singur descendent
(1) şi cei doi (+) intră în competiţie pentru ca cel mai performant
dintre aceştia să supravieţuiască în noua generaţie.
16.1.1 Reprezentarea indivizilor
Codificarea individului este diferită de codificarea cromozomială
din paradigma algoritmilor genetici. Un individ al strategiei evolutive
este codificat prin secvenţa:
( ) σ , x c ·
,
unde
n
R x ∈
,
n
R ∈ σ
.
Vectorul ( )
n
x x x ,...,
1
· este format din componente reale şi
reprezintă o soluţie posibilă a spaţiului de căutare.
Vectorul ( )
n
σ σ σ ,...,
1
· de n componente reale reprezintă
vectorul dispersie şi are semnificaţia perturbaţiilor produse la nivelul
fiecărei componente a vectorului x.
16.1.2 Mutaţia
Operatorul de mutaţie acţionează astfel: fiecare componentă
i
x a vectorului soluţie va fi alterată cu o valoare aleatoare de medie
85
0 si deviaţie standard
i
σ . Deviaţia standard
σ
baza regulii de succes 1/5 pe care o vom discuta ulterior.
Notăm: ( ) ( ) ( ) ( ) t t x t c σ , · individul strategiei evolutive la
generaţia t.
Descendentul acestuia, notat ( ) ( ) ( ) ( ) 1 , 1 1 + + · + t t x t c σ , este
obţinut astfel:
( ) ( ) ( ) t t x t x σ + · +1
, respectiv:
( ) ( ) ( ) t t x t x
i i i
σ + · +1 ,
{ } n i ,..., 2 , 1 ∈ ∀ .
Soluţiile
( ) 1 + t x
şi
( ) t x
sunt comparate urmând ca soluţia mai
bună conform funcţiei de performanţă să supravieţuiască.
Deviaţia standard
σ
, interpretată ca valoare a pasului de
mutaţie, este adaptată de-a lungul evoluţiei pe baza regulii de succes
1/5. Această lege de adaptare a pasului de mutaţie a fost
determinată experimental.
Se consideră că o mutaţie este de succes dacă descendentul
obţinut este mai bun decât părintele acestuia. Valoarea de 1/5 este
sugerată pentru rata mutaţiilor de succes dintre toate mutaţiile
efectuate. Dacă rata mutaţiilor de succes depăşeşte valoarea
indicată, deviaţia standard va fi mărită. Contrar, o rata a mutaţiilor
de succes mai mică decât 1/5 indică necesitatea micşorării deviaţiei
standard.
Utilizarea acestei reguli se explică prin sporirea eficienţei
căutării: intuitiv, o rata mică a mutaţiilor de succes ne conduce la
concluzia că soluţia codificată este depărtată de soluţia globală a
problemei, fapt pentru care mărirea pasului de mutaţie ar putea fi
benefică şi ar accelera convergenţa. De asemenea, o rată mare a
mutaţiilor de succes indică scenariul contrar în care soluţia codificată
se situează în apropierea soluţie globale, fapt pentru care micşorarea
pasului de mutaţie ar accentua căutarea locală.
Rolul regulii de succes 1/5 se poate traduce prin stabilirea
echilibrului între căutarea globală şi căutarea locală. Cu toate
acestea caracterul determinist al ajustării pasului de mutaţie şi
absenţa unei populaţii veritabile constituie un dezavantaj major al
86
strategiei, conducând în anumite situaţii spre eşecul datorat
convergenţei înspre un optim local.
Regula de succes 1/5 ajustează dispersia
σ
la fiecare k
generaţii. Parametrul k se consideră de obicei k=10*n, unde n este
dimensiunea spaţiului de căutare. Notăm cu s(k) numărul
mutaţiilor de succes din ultimele k generaţii şi p(k) frecvenţa
mutaţiilor de succes este dată de formula:
k
k s
k p
) (
) ( ·
16.1.3 Algoritmul strategiei evolutive (1+1)
Algoritmul general al strategiei evolutive (1+1) este descris în
cele ce urmează:
Algoritmul ES(1+1) este:
Iniţializează P(0)={c=(x,σ )}; 0 · t ;
Evaluează individul c prin funcţia de fitness
Câttimp (NOT condiţie de terminare)
Calculează frecvenţa mutaţiilor de succes p(k) .
Aplică mutaţia asupra părintelui c=(x,σ ) obţinând descendentul
c’=(x’,σ ’)
unde:
¹
¹
¹
¹
¹
¹
¹
'
¹
·
< ⋅
> ⋅
·
5
1
) ( ,
5
1
) ( ,
5
1
) ( ,
'
k p daca
k p daca
k p daca
σ
σ β
σ α
σ
şi parametri 1 > α ,
1 < β
.
Dacă fitness(c’)>fitness(c) atunci
87
P(t+1):={c’=(x’,σ ’)}
Altfel
P(t+1):={c=(x,σ )}
SfDacă
t:=t+1
SfCâttimp
SfAlgoritm
Referitor la parametri α şi
β
utilizaţi în procedura de
adaptare a dispersiei, aceştia sunt aleşi în general invers
proporţional:
1 · ⋅ β α
. Schwefel [1.1.1.2] propune o regulă mai
precisă pentru determinarea acestora:
n
λ
α
1
·
,
n
λ β · , şi 817 . 0 · λ
În general, la stabilirea parametrului λ se ţine cont de sugestia
ca acesta să fie încadrat în intervalul:
[ ] 85 . 0 , 82 . 0 ∈ λ
.
17 Strategia evolutivă (
µ
+1)
Unul dintre dezavantajele majore ale strategiei (1+1) decurge
din absenţa unei populaţii care ar permite o mai bună explorare a
spaţiului de căutare. Propunerea strategiei multimembru (
µ
+1) este
un răspuns pozitiv la acuzele aduse strategiei individuale (1+1) şi un
pas semnificativ în dezvoltarea strategiilor evolutive moderne.
Principiul strategiei (
µ
+1) este acela al utilizării unei populaţii
de
µ
părinţi cu aceiaşi rată de împerechere care vor participa la
obţinerea unui unic descendent. Ulterior, părinţii şi descendentul vor
concura pentru a forma noua generaţie. Practic, cel mai slab individ
dintre cei (
µ
+1) ai populaţiei intermediare va fi eliminat. Avantajul
imediat al strategiei descrise decurge din prezenţa unei populaţii de
indivizi care permite căutarea globală şi indirect o mai mică
probabilitate de eşec dată de convergenţa prematură înspre soluţiile
optime locale.
O altă noutate pe care o aduce strategia (
µ
+1) este
posibilitatea exploatării operatorului de recombinare. Dacă în
strategia iniţială (1+1) folosirea operatorului de recombinare nu era
88
posibilă, în cazul strategiilor bazate pe populaţii, prin creşterea
numărului de părinţi la
µ
>1 recombinarea devine viabilă.
17.1.1 Recombinarea
Operatorul de încrucişare folosit în strategia (
µ
+1) este uşor
diferit de operatorul descris în capitolul dedicat Algoritmilor genetici.
O primă diferenţă este dată de paritatea acestuia: dacă în cazul
algoritmilor genetici numărul de descendenţi ai încrucişării este în
general 2 şi doar în câteva cazuri particulare 1, la strategia (
µ
+1),
datorită restricţionării numărului de descendenţi la 1, recombinarea
va genera doar un singur individ.
De asemenea, de cele mai multe ori se aplică un operator de
recombinare de tip panmictic, respectiv numărul de părinţi ce
transmit caracteristici unicului fiu este np,
µ ≤ <np 1
. În general,
alegerea numărului de părinţi ce contribuie la procedura de
recombinare este ales np=2 sau
µ · np
. În situaţia folosirii unui
număr de
µ · np
părinţi ce contribuie la formarea descendentului
vorbim de o recombinare globală.
Principalele proceduri de recombinare utilizate în strategiile
evolutive sunt:
- recombinarea discretă
- recombinarea panmictică discretă
- recombinarea continuă
- recombinarea panmictică continuă
- recombinarea convexă
- recombinarea panmictică convexă
Operatorii de recombinare discretă, continuă şi convexă sunt
cei descrişi în capitolul dedicat Algoritmilor Genetici. Operatorii
panmictici corespunzători se diferenţiază doar prin implicarea unui
număr mai mare de părinţi la transmiterea trăsăturilor către
descendentul produs. Spre exemplu, operatorul de recombinare
discretă panmictică se poate descrie prin algoritmul:
Algoritmul
Încrucişare_Discretă_Panmictică este
89
Fie
np
c c c ,... ,
2 1
părinţii selectaţi, unde:
{ } np k ,..., 2 , 1 ∈ ∀ , ( )
k
k
k
x c σ , · .
Fie ( ) σ , ,...,
1 n
z z d · descendentul produs
Pentru i de la 1 la n
Generează aleator { } np k ,..., 2 , 1 ∈
k
i i
x z ·
SfPentru
SfAlgoritm
Algoritmul descris mai sus ne înfăţişează cazul în care fiecare
genă a descendentului este copie a genei corespondente (de pe
aceiaşi poziţie) a unui individ extras aleator din mulţimea părinţilor
selectaţi.
Structura duală a unui individ ( ) σ , x c · , prin care se codifică
atât soluţia posibilă din spaţiul de căutare x, cât şi parametrii de
control σ , face ca operatorul de recombinare să poată fi aplicat în
două maniere:
1. doar asupra vectorului x
2. atât asupra vectorului x, cât şi asupra vectorului
σ
Se constată o mai bună convergenţă a strategiei în situaţia
descrisă la punctul 2, corespunzătoare extinderii încrucişării şi asupra
parametrilor de control.
17.1.2 Mutaţia
Descendentul obţinut prin aplicarea uneia dintre procedurile de
recombinare enumerate anterior va fi ulterior supus acţiunii
operatorului de mutaţie. Procedura de mutaţie este similară celei
descrise la strategia (1+1) cu menţiunea că folosirea unei populaţii
de părinţi face imposibilă exploatarea regulii de succes 1/5 enunţată
la strategia individuală, respectiv, stabilirea unei alte reguli similare
de control al parametrilor este dificilă. Acest inconvenient major al
strategiei induce o rezervă în ceea ce priveşte aplicarea acesteia în
rezolvarea problemelor.
Importanţa strategiei evolutive (
µ
+1) este mai degrabă una
istorică, fiind prima strategie evolutivă bazată pe conceptul de
90
populaţie şi constituind o reală deschidere înspre dezvoltarea
ulterioară a strategiilor moderne.
17.1.3 Algoritmul strategiei evolutive (
µ
+1)
Algoritmul Strategiei evolutive (
µ
+1) este descris în
continuare, fiind evidenţiate etapele importante în evoluţia populaţiei
şi maniera de construire a noii generaţii:
Algoritmul ES (
µ
+1) este:
1. Iniţializează
{ }
µ
c c c P ,..., , ) 0 (
2 1
·
; 0 :· t
2. Câttimp (NOT condiţie de terminare)
a. Evaluează populaţia
( ) t P
b. Aplică operatorul de recombinare obţinând
descendentul d
c. Aplică operatorul de mutaţie asupra d obţinând d’
d. Selectează primii
µ
indivizi din
( ) { } ' d t P ∪
pentru a
constitui noua generaţie
( ) 1 + t P
e. 1 : + ·t t
În etapa de formare a noii generaţii, atât părinţii cât şi urmaşul
acestora concurează pentru a supravieţui. Regula aplicată este un
elitistă: cel mai slab părinte sau urmaş este eliminat pentru a păstra
dimensiunea constantă a populaţiei.
Obţinerea unui singur descendent la fiecare iteraţie a
algoritmului strategiei (
µ
+1) nu depăşeşte cu totul deficienţele
strategiei individuale (1+1), însă o posibilitate de îmbogăţire
semnificativă a strategiilor este sugerată de strategia (
µ
+1) prin
utilizarea conceptului de populaţiei şi evoluţia colectivă a indivizilor.
Din acest punct de vedere, strategiile moderne (
µ
+λ) şi (
µ
, λ)
sunt cert superioare strategiilor (1+1) şi (
µ
+1).
18 Strategiile (1, λ), (1+λ)
Alte variante de strategii evolutive care exploatează conceptul
de populaţie sunt strategiile (1, λ), (1+λ). Ambele variante au în
comun utilizarea unei populaţii de λ urmaşi, în timp ce numărul
91
părinţilor este de data aceasta limitat la 1. Diferenţa celor două
strategii constă în maniera de elitistă sau ne-elitistă de supravieţuire.
Astfel, strategia ne-elitistă (1, λ) implică înlocuirea părintelui cu cel
mai performant descendent produs, fapt pentru care durata de viaţă
a soluţiei este limitată la o singură generaţie, în timp ce strategia
elitistă (1+λ) permite ca un părinte mai performant decât
descendenţii săi să supravieţuiască în noua populaţie.
Studii aprofundate (vezi de ex. [1.1.1.2]) asupra convergenţei
strategiilor (1, λ), (1+λ) relevă faptul că numărul mai mare de
urmaşi per generaţie aduce o îmbunătăţire semnificativă a vitezei de
convergenţă comparativ cu modelul strategiei (1+1).
În ceea ce priveşte valoarea parametrului λ, s-au stabilit
valorile optime de 5, respectiv 6 descendenţi per generaţie [1.1.1.2].
Aceste valori conduc la o probabilitate de apariţie a urmaşilor de
succes de:
{ }
6
1
,
5
1 1

λ
,
valoare care este apropiată de cea postulată în Regula de succes 1/5.
Operatorul specific al strategiilor discutate este cel al mutaţiei.
Operatorul de recombinare nu se poate aplica datorită lipsei unei
populaţii de părinţi.
19 Strategiile evolutive (
µ
+λ) şi (
µ
, λ)
Cunoscute sub denumirea de strategii evolutive moderne,
aceste strategii reprezintă modele generalizate bazate pe conceptul
de populaţie. Astfel, spre deosebire de strategiile descrise anterior,
atât cei
µ
părinţi cât şi cei λ descendenţi formează populaţii de
indivizi care concurează sau nu la constituirea noii generaţii. Prin
mărirea atât a numărului de părinţi cât şi a numărului de urmaşi
produşi la fiecare generaţie, strategiile moderne sunt în progres faţă
de modelele iniţiale îmbinând avantaje multiple ce ne conduc la
viteze de convergenţă net superioare.
Diferenţa conceptuală între strategiile (
µ
+λ) şi (
µ
, λ)
constă în maniera de constituire a noii generaţii: în strategia (
µ
+λ)
părinţii şi descendenţii intră în competiţie pentru supravieţuire, în
timp ce strategia (
µ
, λ) implică înlocuirea părinţilor cu cei mai
92
performanţi
µ
descendenţi din cei λ produşi (
λ µ< < 1
). Efectele
folosirii uneia dintre procedurile supravieţuire sunt diferite.
19.1.1 Reprezentarea individului
În cazul strategiilor evolutive moderne, fiecare individ al
populaţiei este reprezentat printr-un ansamblu de doi vectori:
vectorul soluţie şi vectorul perturbaţiilor. Reprezentarea extinsă a
unui individ implică o structură formată din 3 componente vectoriale:
( ) α σ, , x c ·
. Vom reveni asupra acestui subiect în paragraful dedicat
mutaţiilor corelate.
19.1.2 Recombinarea
Spre deosebire de Algoritmii genetici, operatorul de
recombinare este unul secundar în paradigma strategiilor evolutive,
mutaţia fiind operatorul principal. Cu toate acestea, o mare varietate
de proceduri de recombinare sunt aplicate şi rolul acestora este
subliniat de cercetători, observându-se o remarcabilă accelerare a
procesului de căutare în cazul utilizării recombinării [1.1.1.2].
În general, operatorii de recombinare descrişi în capitolul
dedicat Algoritmilor Genetici se aplică şi în cazul Strategiilor
evolutive. Diferenţele care pot apărea sunt produse de generalizarea
operatorilor pentru a permite implicarea mai multor părinţi în
transmiterea informaţiei către descendent. Acest tip de recombinare
este cunoscut sub denumirea de recombinare panmictică. O listă a
operatorilor preferaţi în dezvoltarea Strategiilor evolutive a fost
prezentată în paragraful .
Principiul recombinării este următorul: în prima etapă sunt
selectaţi un număr de np părinţi; caracteristicile părinţilor selectaţi
sunt ulterior combinate pentru a crea un singur descendent.
Structura individului este alcătuită din două elemente: vectorul
( )
n
x x x ,...,
1
· - format din componente reale reprezintă o soluţie
posibilă din spaţiului de căutare şi vectorul ( )
n
σ σ σ ,...,
1
· de n
componente reale, reprezentând vectorul dispersie cu semnificaţia
perturbaţiilor produse la nivelul fiecărei componente a vectorului x.
93
Datorită acestui aspect, operatorul de recombinare poate acţiona în
două moduri: doar asupra vectorului x sau asupra ambilor vectori din
structura individului. Varianta ultimă este cea mai utilizată. Mai mult,
se permite aplicarea procedurilor diferite de recombinare asupra
celor două componente ale unui individ.
Literatura de specialitatea sugerează un comportament bun al
strategiilor evolutive care aplică recombinarea discretă pentru
vectorii x şi recombinarea convexă pentru vectorii parametrilor de
control
σ
.
Datorită importanţei acordate acestui tip de recombinare,
prezentăm algoritmul operatorului de recombinare convexă în
varianta generalizată care permite exploatarea trăsăturilor provenite
din mai mult de 2 părinţi. Această procedură este denumită
recombinare convexă globală(panmictică) şi este descrisă în
continuare:
Algoritmul Recombinare_Convexă_Panmictică
este
Fie ( )
n n
z z d σ σ ,..., , ,...,
1 1
· descendentul produs
Pentru i de la 1 la n
Selectează aleator 2 părinţi:
( )
1 1
1 1 1
,..., , ,...,
n n
x x c σ σ · şi
( )
2 2
1 1 2
,..., , ,...,
n n
y y c σ σ ·
Generează aleator [ ] 1 , 0 ∈
i
α şi [ ] 1 , 0 ∈
i
β
( )
i i i i i
y x z ⋅ − + ⋅ · α α 1 şi
( )
2 1
1
i i i i i
σ β σ β σ ⋅ − + ⋅ ·
SfPentru
SfAlgoritm
Algoritmul descris mai sus este o variantă a încrucişării convexe
panmictice care implică alterarea vectorilor variabilelor obiect şi a
vectorilor dispersie
σ
în aceiaşi manieră. Programatorul are
libertatea de a concepe algoritmi de recombinare care implică
tratamentul diferenţiat al celor două componente.
19.1.3 Mutaţia
94
Operatorul de căutare principal, mutaţia, este studiat în două
variante: mutaţia standard şi mutaţia corelată valabilă pentru
reprezentarea extinsă a indivizilor populaţiei.
Mutaţia standard este aplicabilă în cazul reprezentării de bază a
indivizilor:
( ) σ , x c ·
. Ambele componente vectoriale: vectorul
( )
n
x x x ,...
1
· şi vectorul dispersie ( )
n
σ σ σ ,...,
1
· sunt supuse
acţiunii acestui operator. În prima etapă sunt alterate perturbaţiile
( )
n
σ σ ,...,
1
şi ulterior, vectorul poziţiilor ( )
n
x x ,...
1
.
Regula mutaţiei standard aplicată individului
( ) σ , x c ·
,
finalizată cu obţinerea mutantului
( ) ' , ' ' σ x c ·
este următoarea:
{ } n i ,..., 2 , 1 ∈ ∀
, ( ) ( ) ( ) 1 , 0 1 , 0 exp '
0 i i i
N N ⋅ + ⋅ ⋅ · τ τ σ σ
{ } n i ,..., 2 , 1 ∈ ∀
, ( ) 1 , 0 ' '
i i i i
N x x ⋅ + · σ
unde, prin ( ) 1 , 0
i
N s-a notat o realizare a unei variabile
aleatoare de lege normală cu medie 0 şi dispersia 1.
Parametrii
0
τ şi
τ
sunt constante de control:
-
0
τ
controlează în mod global mărimea pasului de mutaţie şi
cantitatea ( ) 1 , 0
0
N ⋅ τ este aceeaşi pentru toate
componentele vectorului
σ
.
-
τ
controleazã schimbările individuale şi cantitatea
( ) 1 , 0
i
N ⋅ τ se calculează pentru fiecare componentã
i
σ a
vectorului dispersie
În [1.1.1.2] este propusă o altă schemă de mutaţie – mutaţia
corelată, valabilă pentru reprezentarea extinsă a individului. Ideea
acestei scheme de mutaţie este aceea de a adapta paşii mutaţiei în
scopul creşterii probabilităţii de a înregistra mutaţii de succes.
Fie c un individ în reprezentarea extinsă:
( ) ( )
k n n
x x x x c α α α σ σ σ α σ ,..., , , ,..., , , ,..., , , ,
2 1 2 1 2 1
· · ,
unde:
( )
2
1 − ⋅
·
n n
k .
Primele două componente sunt cele pe care le regăsim şi în
reprezentarea standard a individului. Cea de-a treia componentă este
alcătuită dintr-un număr de
( ) 2 1 − ⋅ n n
unghiuri de rotaţie
i
α .
95
Aceste unghiuri de rotaţie au rolul de a stabili direcţia căutării în
scopul obţinerii unei convergenţe mai bune.
Mecanismul mutaţiilor corelate constă în parcurgerea a 3 etape:
1. Modificarea valorilor σ :
)) 1 , 0 ( ) 1 , 0 ( exp( '
0 i i i
N N ⋅ + ⋅ ⋅ · τ τ σ σ ,
n 2
1
0
≈ τ
,
n 2
1
≈ τ
2. Modificarea unghiurilor de rotaţie α :
) 1 , 0 ( '
j j j
N ⋅ + · β α α
,
o
5 ≈ β .
3. Modificarea valorilor vectorului soluţie x:
) ' , ' , 0 ( ' α σ
i i i
N x x + · , unde prin N(0,σ ’,α ’) am notat
realizarea unui vector aleator cu o distribuţie normală
n-dimensională, de medie 0, dispersie σ ’ şi unghiuri de
rotaţie α ’.
19.1.4 Selecţia
Procedura de selecţie este una complet deterministă. Indiferent
de natura strategiei (
µ
+λ) sau (
µ
, λ), cei mai performanţi indivizi
din populaţia intermediară de urmaşi (sau urmaşi şi părinţi) se
transferă necondiţionat în noua generaţie. Spre deosebire, alte
mecanisme de selecţie folosite de Algoritmii genetici permit, cu o
anumită probabilitate, ca indivizi mai slabi să fie selectaţi pentru a
forma noua populaţie. Cu toate că selecţia (
µ
+λ) garantează
supravieţuirea celor mai performanţi indivizi şi pare a fi mai eficientă
decât selecţia (
µ
, λ), există situaţii în care acest lucru nu mai este
valabil:
1. în cazul optimizării în mediu dinamic, efectul selecţiei (
µ
+λ)
este de a reţine soluţia/soluţiile curente, fapt pentru care
urmărirea optimului dinamic este îngreunată. Spre deosebire,
selecţia (
µ
, λ) permite abandonarea soluţiilor performante a
populaţiei curente, o mai bună explorare a spaţiului de căutare şi
astfel, convergenţa înspre optimul nestaţionar.
96
2. în cazul optimizării globale a unei funcţii multimodale, strategia (
µ
, λ) permite uitarea soluţiilor performante corespunzătoare
optimelor locale produse în generaţia curentă, fapt pentru care
stagnarea căutării într-o zonă de optim local este puţin probabilă.
În comparaţie, strategia (
µ
+λ), prin caracterul săi elitist, poate
produce efectul nedorit al convergenţei premature înspre soluţii
optime locale.
19.1.5 Algoritmul strategiilor evolutive (
µ
+λ) şi (
µ
, λ)
Algoritmul strategiilor evolutive (
µ
+λ) şi (
µ
, λ) are o
structură asemănătoare algoritmului genetic. Algoritmul standard al
strategiilor evolutive este descris în continuare:
Algoritmul Strategiilor evolutive (
µ
+λ)/(
µ
, λ
) este:
Fie
( ) 0 P
- populaţia iniţială; 0 · t ;
Câttimp (NOT condiţie de terminare)
Evaluare(
( ) t P
)
( ) t P
λ
=Recombinare (
( ) t P
)
( ) t P '
λ
= Mutaţie ( ( ) t P
λ
)
Evaluare( ( ) t P '
λ
)
( ) 1 + t P
=Selecţie( ( ) ( ) t P t P '
λ
∪ ) sau
Selecţie( ( ) t P '
λ
)
t:=t+1
SfCâttimp
SfAlgoritm
Sub denumirea de strategii contemporane [1.1.1.2], [1.1.1.2]
se introduc extinderi ale strategiilor evolutive (
µ
, λ), (
µ
+λ)
notate prin (
µ
,k, λ,p). Această formulare sugerează două aspecte
prin care strategiile contemporane de diferenţiază de strategiile
multipopulaţie discutate:
- durată de viaţă a indivizilor este limitată la un număr de k
iteraţii, 1 ≥ k .
- în procesul de recombinare se implică un număr de p părinţi
Strategiile moderne (
µ
, λ), (
µ
+λ) devin cazuri particulare
ale strategiei generale (
µ
,k, λ,p). Astfel, pentru k stabilit la
97
valoarea 1, strategia contemporană se transformă într-o strategie de
tipul (
µ
, λ), iar pentru ∞ · k , recunoaştem strategia (
µ
+λ).
Folosirea unei selecţii de tip concurs în locul selecţiei (
µ
, λ)
reprezintă de asemenea o particularitate a strategiei generale.
98
CAPITOL IV
20 Programarea Genetică
Pornind de la observaţia că probleme aparent diferite,
provenind din domenii ca inteligenţa artificială, procesarea simbolică
sau maşini instruibile, pot fi interpretate prin prisma cerinţei de
determinare a programului care le rezolvă cu succes, John Koza
[1.1.1.2] dezvoltă o paradigma importantă a Calculului Evolutiv:
Programarea Genetică. În cele din urmă, indiferent de tipul problemei
abordate, scopul este acela de a determina un program care, pornind
de la anumite date de intrare să furnizeze soluţiile corecte ale
problemei. Prin termenul de program ne putem referi la: plan de
acţiune, strategii de control optimal, arbore de decizie, mulţime de
reguli de producţie, sau general, compunerea unor funcţii. Datele de
intrare asupra cărora va opera un astfel de program sunt
reprezentate de variabile independente, atribute, valorile returnate
de senzori, etc. , sau generic, prin argumentele funcţiilor.
O abordare prin care se urmăreşte obţinerea programelor care
rezolvă cu succes o clasă de probleme devine plauzibilă în măsura în
care programele pot fi de dimensiuni, forme şi complexităţi diferite.
De asemenea, aceste programe trebuie să fie capabile să manipuleze
structurile decizionale şi repetitive, recursivitatea, calculele cu
variabile de tipuri diferite, apelul subprogramelor şi utilizarea
valorilor precalculate. În plus, acţiunile efectuate de către programe
să fie ierarhizate.
99
Esenţa Programării Genetice constă în ideea de a evolua
programe şi nu soluţii posibile (ca în cazul Algoritmilor Genetici).
Aplicând proceduri inspirate din evoluţia naturală, scopul unui
algoritm de programare genetică este de a obţine cel mai bun
program care rezolvă problema dată. Rezolvarea unei proleme
oarecare se poate reformula ca fiind procesul de căutare a celui mai
potrivit program din spaţiul programelor posibile, care o rezolvă
corect.
Algoritmul programării genetice are o structură asemănătoarea
algoritmilor genetici pe care i-am pomenit într-un capitol precedent.
O populaţie de indivizi iniţial generată aleator va fi ghidată de o
funcţie fitness şi va evolua prin aplicarea operatori de variaţie, astfel
încât, spre finalul evoluţiei, populaţia va conţine o instanţă a soluţiei
dorite sau cel puţin o aproximare a acesteia. Diferenţa majoră faţă
de AG constă în evoluţia programelor posibile ce pot rezolva
problema şi nu a soluţiilor posibile ale problemei respective. Această
nouă perspectivă de abordare a problemelor necesită evidenţierea
următoarelor elemente definitorii:
- natura indivizilor care evoluează
- spaţiul de căutare
- funcţia de evaluare a indivizilor
- operatorii de variaţie a structurii indivizilor
- criteriul de terminare a algoritmului GP
- identificarea soluţiei finale
- parametrii specifici algoritmului
21.1.1 Natura indivizilor supuşi evoluţiei
Prin individ înţelegem în mod curent un element al populaţiei
care evoluează. Dacă în cazul AG un individ este reprezentat de o
secvenţă liniară de valori binare sau reale, în cazul PG această formă
de codificare devine insuficientă pentru a surprinde dinamica şi
complexitatea unui program. Structurile care evoluează în contextul
programării genetice sunt programe structurate ierarhic, ale căror
100
dimensiune, formă şi complexitate se poate modifica dinamic de-a
lungul procesului evoluţiei.
O structură prin care se reprezintă un program poate fi o funcţie
compusă recursiv din mulţimea de n funcţii date { }
n
f f F ,...,
1
· şi
mulţimea de m simboluri terminale { }
m
t t T ,...,
1
· .
Fiecare funcţie F f
i
∈ are un număr exact de argumente, şi în
funcţie de specificul problemei, funcţiile F f
i
∈ pot fi: operatorii
aritmetici (+ , - , * , / ), operatorii logici (AND, OR, NOT), funcţii
standard matematice (sin, cos, exp, ...), operatorul decizional
(IF...THEN...ELSE) sau cel iterativ (DO...UNTIL), etc.
Terminalii T t
i
∈ pot fi variabile, constante valorice sau logice
sau alte entităţi atomice precum funcţiile fără argumente în cazul în
care rezultatul funcţiei respective nu este evaluabil ci constă în
efecte produse în starea sistemului.
Ne punem întrebarea care ar fi cea mai potrivită manieră de
codificare a unui program, respectiv, ce reprezintă de fapt, în
paradigma GP, un individ. Răspunsul la această întrebare îl
furnizează Koza [1.1.1.2] argumentându-şi afirmaţiile pe baza unor
avantaje imediate oferite de limbajul LISP
1
.
Programele sunt descrise complet în limbaje de programare
precum: Pascal, C, LISP, etc. Toate aceste limbaje oferă facilitatea de
a manipula compunerea funcţiilor. Dintre toate limbajele de descriere
a programelor, Koza identifică limbajul LISP ca fiind cel mai potrivit
scopului programării genetice. Justificarea acestei alegeri se bazează
pe câteva motive subliniate de autor:
- În limbajul LISP programele şi datele au aceiaşi formă, ceea
ce conduce la facilitatea de a modifica un program şi de a-l
executa imediat.
- Forma comună de reprezentare a datelor şi programelor
LISP este echivalentă arborelui de derivare
2
corespunzător
unui program. În faza de compilare a programelor descrise
în orice limbaj de programare, acest arbore de derivare este
generat, însă, cu excepţia limbajului LISP, în celelalte
1
LIPS limbaj de programare conceput de John McCarthy în 1958
2
Arbore de derivare – arbore de reprezentare a structurilor sintactice în concordanţă cu
regulile unei gramatici formale.
101
limbaje arborele de derivare nu este accesibil, fapt pentru
care, modificarea sa prin aplicarea operatorilor de variaţie
genetici este îngreunată.
- LISP permite manipularea structurilor (programelor) de
dimensiuni variabile, neprecizate în avans.
- LISP facilitează manipularea structurilor ierarhice.
Un program LISP este reprezentat de o expresie simbolică (S
expresie) în formă poloneză prefixată. Spre exemplu: (* 2(+ 1 3) este
evaluată la valoarea 8 şi este o expresie obţinută prin compunerea a
două funcţii corespunzătoare operatorilor aritmetici + şi *. Dacă
considerăm următoarea mulţime de funcţii primitive
{ } NOT OR AND F , , ·
şi mulţimea de terminali { }
2 1
, t t T · , simbolurile
terminale pot fi reformulate ca funcţii fără argumente.
Mulţimea reunită de funcţii şi terminali este formată din
elementele: { }
2 1
, , , , t t NOT OR AND T F C · ∪ · . Orice expresie
simbolică (S expresie) corectă formată cu elementele mulţimii C este
reprezentată grafic printr-un arbore în care nodurile sunt etichetate
cu elementele mulţimii C. Rădăcina şi nodurile interne ale unui astfel
de arbore conţin întotdeauna funcţii
F f ∈
şi nodurile frunze ale
arborelui conţin elemente ale mulţimii T. Spre exemplu: expresia
logică ( ) ( ) ( ) ( )
1 0 1 0
t t t t ¬ ∧ ¬ ∧ ∨ , reformulată ca S expresie devine:
( ) ( ) ( ) ( ) ( )
1 0 1 0
NOTt NOTt t ORt AND AND .
Arborele corespunzător este reprezentat în figura următoare:
102
Figura 7 Arborele etichetat corespunzător unei S-expresii
21.1.2 Spaţiul de căutare
Se poate observa că arborele din Figura 3 este echivalent
arborelui de derivare pe care compilatorul îl generează pentru
reprezentarea programelor. Din observaţia precedentă se poate
deduce că spaţiul de căutare este dat de mulţimea tuturor S
expresiilor care pot fi formate cu funcţiile şi terminalii precizaţi prin
mulţimile F şi T, respectiv, spaţiul de căutare este reprezentat de
mulţimea arborilor posibili corespunzători expresiilor simbolice.
Aceşti arbori au nodurile rădăcină şi intermediare etichetate cu
funcţiile disponibile din F şi nodurile terminale sunt etichetate cu
terminalii T.
Populaţia iniţială este generată aleator. Fiecare individ generat
în faza de iniţializare reprezintă un arbore de tipul menţionat
anterior. Pentru a realiza practic acest lucru se urmăresc următorii
paşi:
AND
AND NOT
OR NOT
t0 t1 t0
t1
103
1. Selectarea aleatoare a unei funcţii f din F ca rădăcină a
arborelui. Nivel:=0.
2. Identificarea numărului de argumente a funcţiei f , f
na
3. Numărul de argumente va stabili numărul de noduri de
pe nivelul imediat următor.
4. Nivel:=Nivel+1.
5. Pentru fiecare nod al nivelului curent
 Selectează aleator eticheta c a nodului din
mulţimea T F C ∪ ·
 Dacă
F c ∈
atunci
Salt la pasul 2
Altfel
Stop.
21.1.3 Funcţia de performanţă
Evoluţia indivizilor populaţiei este ghidată de funcţia de
performanţă (fitness). Această funcţie trebuie să califice fiecare
structură arborescentă de tipul descris anterior printr-o valoare
numerică prin care se poate estima performanţa programului
corespunzător. Valorile de performanţă stau la baza procesului de
selecţie. În majoritatea cazurilor este dificil să furnizăm o funcţie de
evaluare pentru structurile arborescente prin care se reprezintă
programele.
În general, funcţia de evaluare se poate defini ca suma
distanţelor dintre rezultatul evaluării S-expresiei şi rezultatul corect
dorit, pentru toate cazurile posibile. Dacă numărul de cazuri este
foarte mare, se va restrânge numărul acestora în vederea calculării
valorii de performanţă. Pentru S-expresia descrisă prin arborele din
Figura 3, numărul de cazuri posibile este de patru, respectiv
combinaţiile posibile ale valorilor variabilelor
2 1
, t t . Performanţa unei
S-expresii logice este dată de numărul de nepotriviri dintre
rezultatele evaluării şi rezultatul dorit.
În situaţia în care S-expresiile au valori numerice, performanţa
individului corespunzător este dată de suma diferenţelor dintre
104
valorile obţinute în urma evaluării expresiei şi rezultatul aşteptat. În
alte cazuri, rezultatul evaluării unei S-expresii nu este luat în
considerare în vederea calculării performanţei. Acest lucru se
întrevede când calitatea unui program exprimat prin S-expresia
respectivă este legată direct de alte valori produse indirect de
program.
21.1.4 Operatori specifici programării genetice
Pentru a fi realizabilă evoluţia unei populaţii de indivizi, alături
de funcţia de performanţă se impune descrierea manierei în care
indivizii se modifică. Paragraful curent este dedicat operatorilor
specifici, care au efect similar operatorilor genetici din paradigma
algoritmilor genetici.
Structura specifică individului în paradigma programării
genetice induce necesitatea dezvoltării unor proceduri noi care
simulează procesele naturale de selecţie, încrucişare, mutaţie.
Operatorii descrişi în capitolul dedicat algoritmilor genetici nu sunt
aplicabili în programarea genetică, din cauza diferenţelor structurale
majore în ceea ce priveşte reprezentarea indivizilor supuşi evoluţiei.
Operatorul de selecţie - reproducere
Principiul selecţiei este modelat prin intermediul operatorului de
reproducere proporţională cu performanţa, operator similar selecţiei
proporţionale despre care am discutat într-un capitol precedent.
Efectul acestuia este de a stimula structurile calificate să se
reproducă şi să supravieţuiască. Practic acest lucru este realizat prin
selecţia, cu o probabilitate proporţională cu performanţa, a indivizilor
populaţiei curente. Astfel, indivizii cu performanţe ridicate vor avea o
mai mare şansă de a se reproduce şi supravieţui decât cei ale căror
performanţe sunt inferioare.
Operatorul de recombinare – încrucişare
Rolul operatorului de încrucişare este acela de a încuraja
diversitatea populaţiei prin crearea descendenţilor care moştenesc
trăsături provenite din părinţi diferiţi. Încrucişarea folosită în
paradigma programării genetice este un operator binar, respectiv,
105
doi părinţi selectaţi vor transmite informaţii cel puţin unui
descendent. Procedeul constă în alegerea unui punct de tăietură
pentru fiecare părinte, astfel încât segmentele obţinute în urma
împărţirii celor 2 părinţi să fie de asemenea S-expresii valide.
Descendentul se va obţine prin concatenarea a două S-expresii
provenite din părinţi diferiţi.

AND
NOT AND
OR NOT
t0 t1 t0
t1
OR
OR
t0 t1
NOT
t1
Figura 8 Structurile arborescente înaintea încrucişării: Părţile obţinute
în urma aplicării tăieturii sunt marcate punctat, respectiv, continuu.
Acestea vor participa obţinerea descendenţilor din figura următoare.
Punctele de tăietură sunt sugerate prin segmente ce intersectează
muchiile arborilor.
Figurile 8 şi 9 prezintă maniera de producere a unui
descendent utilizând o procedură validă de încrucişare. Pentru buna
vizualizare a exemplului prezentat, am optat pentru reprezentarea
arborescentă a programelor.

AND
NOT
t1
OR
t0 t1
OR
NOT
t1
AND
OR NOT
t0 t1 t0
Figura 9 După încrucişare, cei doi indivizi obţinuţi moştenesc din fiecare
părinte câte o parte. Această manieră de încrucişare asigura cerinţa ca
ambii descendenţi să corespundă unor S-expresii valide.
106
În funcţie de poziţia punctului de tăietură, se disting
următoarele cazuri particulare ale operatorului de încrucişare:
1. punctul de tăietură este rădăcina arborelui
i. daca punctul de tăietură este rădăcina în
ambii părinţi, operatorul se reduce la o formă
particulară a operatorului de reproducere
ii. dacă punctul de tăietură este rădăcina unui
singur părinte dintre cei doi implicaţi, un
descendent se obţine prin înlocuirea unei
părţi a părintelui secund cu întreg arborele
corespunzător primului părinte, respectiv, al
doilea descendent este format dintr-un
segment al părintelui secund.
2. punctul de tăietură este un nod terminal:
iii. dacă în ambii părinţi punctele de tăietură
indică noduri terminale, descendenţii se obţin
prin interschimbarea frunzelor terminale
respective ale arborilor părinţi.
iv. Dacă în primul părinte se generează punct de
tăietură corespunzător unui terminal, unui
dintre descendenţi va conţine arborele
părintelui prim cu expandarea nodului
terminal selectat printr-un subarbore al
părintelui secund. Al doilea descendent este
format prin suprimarea unui subarbore al
părintelui secund şi înlocuirea sa cu un
terminalul indicat din părintele prim.
Exemplul descris în figurile anterioare prin arbori reprezentaţi
grafic se poate rescrie prin S-expresiile corespunzătoare:
Părinţii:
AND (AND (OR(t0 t1) NOT (t0)) NOT (t1))
OR (NOT (t1) OR (t0 t1))
Descendenţii:
AND (OR (t0 t1) NOT(t1))
OR (NOT(t1) AND(OR (t0 t1) NOT(t0)))
Operatorul de mutaţie
107
Operatorul de mutaţie este un operator secundar în
Programarea Genetică. Cu toate acestea, precum în paradigma
Algoritmilor Genetici, mutaţia este capabilă să dezvolte structuri noi
pe care operatorul de încrucişare nu le poate produce. Avantajul
utilizării acestui operator este evident: menţinerea diversităţii
populaţiei şi obţinerea de noi structuri imposibil de generat prin alte
procedee de încrucişare.
Mutaţia operează asupra unui singur părinte selectat în
prealabil, rezultând un unic descendent S-expresie. Procedeul constă
în parcurgerea următoarelor etape:
- selectarea aleatoare a unui punct de tăietură în S- expresia
LISP: punctul de tăietură este un nod terminal sau
intermediar al arborelui de reprezentare
- ştergerea subarborelui ce are ca rădăcină nodul selectat
- generarea aleatoare a unui subarbore
- inserarea subarborelui generat în punctul de tăietură
Parametrul principal de control al procedurii este reprezentat de
adâncimea maximă a subarborelui nou prin care se expandează
arborele trunchiat în punctul de tăietură.
Exemplu:
Fie individul reprezentat în figura 10.a). Considerăm ca punct
de trunchiere nodul marcat. Subarborele nou se generează de
adâncime maximă 3 (Figura 10. b)):
a)
Subarborele de
expandare
b)
AND
NOT AND
OR NOT
t0 t1 t0
t1
OR
t0 t1
108
Figura 10 Arborele de reprezentare a individului părinte - a) şi
subarborele nou generat - b). Punctul de tăietură este marcat nodul
marcat.
În urma aplicării operatorului de mutaţie se poate obţine
descendentul reprezentat în Figura 11:
Figura 11 Arborele de reprezentare a individului obţinut prin mutaţie
Un caz particular al mutaţiei descrise mai sus este cel în care
subarborele de expandare este de fapt un terminal solitar, practic un
Operatorul de permutare
Operatorul de permutare este un operator unar şi are efect
similar operatorului de inversiune prezentat la capitolul dedicat
Algoritmilor genetici. Acţiunea operatorului de permutare standard sa
constă în selecţia aleatoare a unui noi terminat – corespunzător unei
funcţii de k argumente, generarea aleatoare unei permutări de k
dintre cele k! permutări posibile şi reordonarea argumentelor funcţiei
selectate conform permutării generate. Practic, procedeul
reordonează argumentele unei funcţii din cadrul S-expresiei
considerate. De observat că în cazul unei funcţii comutative, efectul
imediat al operatorului este nul. Consecinţa operaţiei descrise se
constată doar în urma unei aplicări ulterioare a altor operatori de
variaţie: încrucişare, mutaţie.
Operatorul de editare
Rolul operatorului de editare este acela de a modifica şi
simplifica S-expresiile conţinute în populaţia curentă. Aplicarea
operatorului nu ţine cont de calitatea indivizilor, fiecare dintre noii
AND
NOT
t1
OR
t0 t1
109
indivizi obţinuţi într-o etapă a evoluţiei vor fi supuşi procedurii de
editare. Corespunzător domeniului problemei, acţiunea operatorului
poate consta în:
- Înlocuirea subexpresiilor calculabile imediat cu valoare la
care sunt fost evaluate. Funcţiile ale căror argumente sunt
doar constante atomice, pot fi lesne înlocuite cu valoare
calculată.
- Pentru probleme cu domeniu boolean (1 şi 0), expresii de
forma: ( AND X X ), ( OR X X ), (NOT (NOT ( X))), sunt
înlocuite cu X.
- Pentru probleme cu domeniu numeric, înlocuirea cu
constanta 0 a expresiilor de scădere a două subexpresii
identice, sau, înlocuirea cu 0 a expresiilor de multiplicare cu
0, etc.
Motivul introducerii acestei proceduri este clar: operatorul de
editare simplifică S-expresiile, realizând prin aceasta o gestionare
economică a resurselor calculatorului.
Operatorul de definire a blocurilor constructive
Acest operator este introdus în scopul descoperirii automate a
blocurilor constructive utile şi constă în aplicarea procedurii de
înlocuire a unui subarbore din individul selectat cu o funcţie nouă,
definită în acest scop. Funcţia creată este o funcţie fără parametrii şi
corpul acesteia este reprezentat de subarborele înlocuit. Efectul
pozitiv al acestor înlocuiri constă în evitarea cazurilor în care blocuri
potenţial utile sunt distruse prin aplicarea operatorului de
încrucişare. Subarborii sunt substituiţi de către funcţii indivizibile,
fapt pentru care aceştia vor fi trataţi în continuare ca noduri ale
arborilor de reprezentare a S-expresiilor. Mai mult, blocurile
constructive identificate prin funcţiile corespunzătoare vor avea
şansa de a se propaga în generaţiile următoare.
21.1.5 Algoritmul programării genetice
Algoritmul general al programării genetice este constituit din
următorii paşi:
110
1. Generarea populaţiei iniţiale de compuneri aleatoare a
funcţiilor şi terminalilor identificaţi (generarea aleatoare
a programelor reprezentate prin S-expresii)
2. Câttimp condiţia de continuare a algoritmului este validă
a. Execută fiecare program al populaţiei pentru
determinarea valorii de performanţă
b. Creează noua generaţie prin aplicarea operaţiilor
următoare:
i. Reproducere
ii. Încrucişare
iii. Mutaţia
3. Identifică soluţia finală a problemei (cel mai performant
program obţinut de-a lungul evoluţiei populaţiei)
Sunt enumerate în continuare câteva dintre principalele clase
de probleme care cer determinarea soluţiei văzută ca program de
rezolvare a unei sarcini. Algoritmul de Programare Genetică se
recomandă prin natura sa ca instrument potrivit de rezolvare a
acestor probleme:
- regresie simbolică
- proiectarea reţelelor neuronale
- prelucrarea imaginilor
- probleme de planificare
- rezolvarea ecuaţiilor
- programarea automată – determinarea automată a
programelor care rezolvă problemă data
- recunoaşterea formelor
22 Exemplu de aplicaţii PG: Regresia simbolică.
Problema 11-multiplexorului boolean
Una dintre aplicaţiile cunoscute ale Programării genetice constă
în rezolvarea problemelor de regresie simbolică. Regresia simbolică
se defineşte sumar ca fiind procesul prin care se determină o ecuaţie
pornind de la un număr dat de puncte. Astfel, cunoscând perechi de
valori obţinute prin măsurarea a două mărimi se caută o expresie
care descrie relaţia dintre cele două mărimi considerate. Procedeul
111
regresiei simbolice constă în construirea expresiei dorite pornind de
la elementele atomice: operatori, constante, variabile. Arborele
asociat expresiei are ca noduri terminale – operanzii, iar nodurile
intermediare sunt operatorii. Reprezentarea expresiei dorite prin
arbori induce posibilitatea folosirii Programării genetice în scopul
obţinerii soluţiei dorite.
În scop didactic vom prezenta problema 11-multiplexorului
(descrisă în amănunt în Koza [1.1.1.2]), care de altfel se încadrează
clasei problemelor de regresie simbolică booleană. Problema
multiplexorului boolean este un caz special de regresie simbolică în
care variabilele dependente sau independente au valori Booleene iar
funcţiile ce se compun sunt de asemenea funcţii booleene.
Sarcina unui multiplexor boolean pe 11 biţi este de a decoda
adrese binare pe 3 biţi (a
0
, a
1
, a
2
) şi de a returna valoarea regiştrilor
corespunzători (d
0
, d
1
, d
2
, d
3
, d
4
, d
5
, d
6
, d
7
). Practic, multiplexorul
boolean este o funcţie cu 11 argumente dintre care primele 3
determină adresa şi următoarele 8 reprezintă răspunsul căutat.
Figura următoare descrie un astfel de multiplexor, având intrarea 1
1 0 0 ... 0 şi ieşirea corespunzătoare: 1 .
Figura 12 Multiplexorul boolean cu 11 intrări
În general, pentru o funcţie multiplexor booleană cu N
argumente, intrările sunt reprezentate de k biţi de adresă: a
i
,
i=1,2,...k, şi 2
k
biţi de date: d
j
, j=1,2,... 2
k
, unde 2
k
=N-k. În cazul
particular al multiplexorului descris în figura alăturată, adresele sunt
a
0
1
a
1
1
a
2
0
d
0
0
d
7
0
Output 1
112
reprezentate pe 3 biţi, datele pe 2
3
biţi, respectiv intrarea este
reprezentată de o secvenţă:
(a
0
, a
1
, a
2
d
0
, d
1
, d
2
, d
3
, d
4
, d
5
, d
6
, d
7
).
Pentru aplicarea algoritmului Programării Genetice în
soluţionarea problemei 11- multiplexorului este necesară
parcurgerea următoarelor etape:
1. determinarea mulţimii de terminali
2. determinarea mulţimii de funcţii primitive
3. stabilirea funcţiei de evaluare - fitness
4. stabilirea parametrilor de control
5. stabilirea condiţiei de terminare a execuţiei
algoritmului de PG.
1. Mulţimea de terminali
Mulţimea de simboluri terminale care stau la baza alcătuirii
programelor, respectiv S-expresiilor, se deduce uşor din specificaţiile
problemei. Dat fiind faptul că argumentele funcţiei multiplexor sunt
în număr de 11, biţi de adrese şi date, mulţimea de terminale T este
formată din:
{ }
7 1 0 2 1 0
,..., , , , , d d d a a a T · .
Valorile terminalilor sunt valorile binare 0 sau 1.
2. Mulţimea de funcţii
Mulţimea de funcţii care stau la baza compunerii programelor
(S-expresiilor) ce rezolvă problema considerată este dată de:
{ } IF NOT OR AND F , , , ·
Fiecare dintre cele 4 primitive conţinute de mulţimea F are un
număr de argumente de intrare: 2,2,1, respectiv, 3 argumente.
Mulţimea F este suficientă pentru a se putea compune orice expresie
booleană.
Odată ce mulţimile T şi F au fost stabilite, se poate deduce
dimensiunea spaţiului de căutare. Spaţiul de căutare este constituit
din mulţimea tuturor expresiilor LISP care se pot compune recursiv
pe baza primitivelor conţinute de F, având ca şi argumente terminalii
113
din T. Practic, numărul combinaţiilor de N argumente este de 2
N
,
astfel încât, dimensiunea spaţiului de căutare rezultă ca fiind
N
2
2
.
3. Funcţia fitness
O etapă importantă a dezvoltării tehnicii PG este stabilirea
funcţiei de evaluare a calităţii programelor reprezentate de S-
expresii. De regulă, calitatea unor astfel de programe rezultă în urma
unor examinări repetate ale ieşirilor pentru un număr de cazuri de
test. Această mulţime a cazurilor de test trebuie să fie
reprezentativă, fapt pentru care, în problema analizată, Koza
[1.1.1.2] preferă utilizarea tuturor celor 2048 (2
11
) de combinaţii
posibile ale argumentelor ca şi cazuri de test în vederea evaluării
fitness-ului. Desigur, nu este exclusă limitarea acestor cazuri la un
eşantion mai mic.
Pentru stabilirea funcţiei de performanţă (fitness), se consideră
fitness-ul nerafinat, definit ca numărul de cazuri de test în care
valoarea booleană returnată de S-expresia evaluată pentru un număr
dat de combinaţii de argumente, este corectă. Dat fiind faptul că
numărul maxim de cazuri de test este de 2048, valoarea fitness-ului
nerafinat variază între limitele [0,2048]. Valoare maximă 2048 a
fitness-ului nerafinat se traduce printr-o corectitudine absolută a S-
expresiei evaluate.
Fitness-ul standardizat se construieşte pe baza fitness-ului
nerafinat, în ideea că valorile mici ale fitness-ului corespund
performanţelor mari ale indivizilor, şi reciproc, valori mari denotă
indivizi de calitate slabă. Stabilirea fitness-ului standardizat se poate
face printr-o scalare liniară: din valoarea maximă a fitness-ului
nerafinat (ex. 2048) se va scădea valoarea fitness-ului nerafinat
calculat pentru individul considerat. De asemenea, o variantă
plauzibilă pentru stabilirea fitness-ului ar fi să se calculeze suma
distanţelor Hamming (nepotrivirile) dintre valorile obţinute la
evaluarea S-expresiei şi cele corecte dorite.
4. Parametrii de control
Parametrii majori de control constau în dimensiunea populaţiei
şi numărul de generaţii produse. Valorile acestor parametrii se
114
stabilesc de utilizator, în funcţie şi de dimensiunea spaţiului de
căutare. Spre exemplu, în cazul problemei multiplexorului boolean
(vezi spre exemplu [1.1.1.2]) este recomandată utilizarea unei
populaţii de dimensiune considerabilă: 4000 şi a unui număr maxim
de generaţii produse: 50.
Un aspect important este dat de procentul indivizilor care vor fi
supuşi operatorului de încrucişare, respectiv operatorului de
reproducere proporţională cu performanţa. În [1.1.1.2] este sugerat
raportul de 90-10 a procentelor indivizilor ce vor fi supuşi operatorilor
implicaţi: încrucişare şi reproducere.
5. Condiţia de terminare a execuţiei
Pentru că valoarea de 2048 a fitness-ului nerafinat ne indică
corectitudinea absolută a unui individ, o posibilă condiţie de
terminare a execuţiei algoritmului este dată de obţinerea valorii 0
pentru fitness-ul standardizat prin scalare liniară (vedeţi paragraful 3
din capitolul curent). De asemenea, situaţia tipică de atingere a
numărului prestabilit de generaţii produse este o variantă de validare
a condiţiei de terminare a execuţiei.
115
CAPITOL V
23 Programarea Evolutivă
Programarea evolutivă (evolutionary programming) concepută
iniţial de Fogel [1.1.1.2], încorporează tehnici prin care se generează
automat comportamentul inteligent al unui sistem descris printr-un
automat finit. Comportamentul inteligent al sistemului este
interpretat prin prisma capacităţii acestuia de a se adapta la mediu
informaţional, respectiv prin capacitatea automatului de a prezice
corect simbolul următor, cunoscându-se succesiunea de simboluri de
intrare. Se disting două direcţii în dezvoltarea acestei paradigme:
1. Programarea evolutivă tradiţională aplicată îndeosebi în
machine learning (învăţarea automată), exploatează
structuri modelate prin automate finite deterministe;
2. Programarea evolutivă contemporană aplicată în
rezolvarea problemelor de optimizare numerică,
exploatează structuri asemănătoare indivizilor unei
Paradigma programării evolutive este din câteva puncte de
vedere asemănătoare Algoritmilor Genetici şi Strategiilor Evolutive:
- utilizarea unei populaţii supuse evoluţiei;
- exploatarea operatorilor specifici: selecţie, mutaţie;
- evaluarea elementelor populaţiei printr-o funcţie de
performanţă;
- supravieţuirea celor mai performanţi indivizi ai populaţiei.
116
În contrast cu celelalte două paradigme amintite, Programarea
evolutivă se distinge prin faptul că permite o codificare a elementelor
populaţiei mult mai flexibilă. Astfel, dacă algoritmii genetici folosesc
vectori de valori binare sau reale prin care se reprezintă o posibilă
soluţie a problemei, Programarea Evolutivă permite o codificare mult
mai naturală, evoluând structuri dependente de specificul problemei
de rezolvat.
Există multe similitudini între Strategiile evolutive moderne şi
Programarea evolutivă contemporană incluzând maniera de
reprezentare a elementelor populaţiei şi accentuarea importanţei
operatorului de mutaţie. Diferenţele majore constau în:
1. Programarea evolutivă nu foloseşte aproape deloc
operatorul de recombinare, în schimb strategiile evolutive
moderne fac uz de acest operator.
2. Spre deosebire de strategiile evolutive (
µ
+λ), şi (
µ
, λ),
programarea evolutivă utilizează acelaşi număr de părinţi
şi descendenţi:
µ
=λ.
3. Funcţia fitness F este obţinută din funcţia obiectiv prin
scalare acesteia şi eventual perturbarea aleatoare pentru a
se obţine valori pozitive:
( ) ( ) ( ) v c F G c F + ·
*
,
unde: v- reprezintă un vector prin care se realizează
perturbarea şi G – reprezintă funcţia de scalare.
4. Mecanismul selecţiei reduce mulţimea de 2
µ
părinţi şi
descendenţi la un număr de
µ
indivizi utilizând o formă de
selecţie prin concurs generalizat.
5. În Programarea evolutivă contemporană, mutaţia unui
individ c presupune adăugarea unui vector ale cărui
componente sunt variabile aleatoare cu repartizare
normală, având media 0 şi deviaţia standard
i
σ calculată
ca rădăcina pătrată a unei transformări liniare a valorii
fitness-ului:
z x x
i i i
⋅ + · σ
( )
i i i
x F γ β σ + ⋅ · ,
117
unde
i
β şi
i
γ sunt parametri specifici componentelor şi z
– variabilă aleatoare de lege normală cu media 0 şi
deviaţia standard 1.
6. În varianta autoadaptivă, meta-Programarea evolutivă,
dificultatea alegerii eficiente a parametrilor
i
β şi
i
γ este
depăşită. Astfel, mutaţia unui individ implică alterarea
deviaţiei standard prin formula:
z
i i i
⋅ + · σ ζ σ σ
2 2
,
unde
ζ
reprezintă un parametru de control.
24 Descrierea tehnicii originale
Într-un articol din 1966, Fogel, Owens şi Walsh [1.1.1.2] propun
o nouă metodă evolutivă pe care o denumesc Programare Evolutivă.
În forma originală, abordarea presupune reprezentarea indivizilor
prin automate finite, evaluarea acestora pe baza unei funcţii care
măsoară rata de succes în prezicerea secvenţelor de simboluri,
exploatarea operatorului de mutaţie şi utilizarea unei selecţii
deterministe de tipul (
µ
+
µ
). Ideea principală a acestei abordări
este de a exploata mai degrabă legătura comportamentală decât
legătura genetică – structurală dintre părinţi şi descendenţi.
24.1.1 Automate finite – maşina Turing
Populaţia asupra căreia sunt aplicate principiile evoluţiei este
constituită de elemente modelate prin automate finite. Pentru a
înţelege mecanismul programării evolutive vom oferi definiţia
automatului finit determinist şi modalităţile de reprezentare ale
acestuia.
Definiţie: Prin automat finit determinist înţelegem ansamblul:
{ } F s Q AF , , , ,
0
δ Σ · , unde:
- Q este mulţimea finită a stărilor
- Σ este mulţimea finită a simbolurilor de intrare
-
Q Q → Σ × : δ
este funcţia de tranziţie
-
Q s ∈
0
reprezintă starea iniţială
118
- F este mulţimea finită a stărilor finale
Reprezentarea automatelor finite se realizează în două moduri:
printr-o tabelă de tranziţie sau printr-un graf orientat ale cărui noduri
sunt stările automatului şi arcele reprezintă tranziţiile, fiind sunt
etichetate cu simbolurile de intrare, respective de ieşire
corespunzătoare.
Maşina Turing, al cărui inventator a fost Alan Turing (1912-
1954) este un model teoretic extrem de simplu, similar unui automat
finit, prin care se urmăreşte codificarea algoritmilor, respectiv
simularea logicii unui calculator.
Conceptual, o maşină Turing constă din următoarele elemente:
1. O bandă de memorie infinită, împărţită în celule adiacente.
Fiecare celulă poate conţine un simbol dintr-un alfabet finit
sau simbolul vid dacă nu este ocupată.
2. Un cap de scriere-citire a simbolurilor pe sau de pe bandă,
care se poate deplasa la stânga sau la dreapta
3. O mulţime finită de stări de control.
4. O mulţime finită de simboluri de scriere-citire care se
depun sau se scot de pe banda de memorie.
5. O tabelă de acţiuni (funcţia de tranziţie a automatului) care
spune maşinii ce simbol să scrie, cum să deplaseze capul
de scriere-citire (la stânga sau la dreapta) şi care va fi noua
stare a maşinii, ştiindu-se simbolul citit de pe bandă şi
starea curentă.
6. Condiţia de oprire a maşinii este dată de situaţia în care în
tabela de acţiuni nu există intrare pentru combinaţia
curentă de simbol citit şi stare a sistemului.
Algoritmul Programării evolutive vizează o subcategorie de
maşini Turing – echivalente automatelor finite deterministe, în care
capul de citire-scriere este restricţionat doar la deplasarea spre
dreapta pe banda de memorie.
Dinamica unei maşini Turing se poate rezuma astfel: maşina
Turing transformă o secvenţă de simboluri de intrare într-o secvenţă
de simboluri de ieşire. Simbolurile de ieşire reprezintã predicţia
119
maşinii asupra următoarei stări în care se va situa maşina.
Comportamentul inteligent se traduce astfel prin abilitatea
dispozitivului de a realiza predicţii bune asupra mediului reprezentat
prin secvenţa simbolurilor de intrare. Calitatea unei predicţii poate fi
evaluată prin compararea simbolului de ieşire cu următorul simbol de
intrare. Cu cât distanţa dintre cele două simboluri este mai mare, cu
atât eroarea previziunii este mai mare.
24.1.2 Reprezentarea indivizilor populaţiei
Paradigma programării evolutive originală foloseşte o populaţie
de µ >1 părinţi. Fiecare părinte este un automat finit (maşină
Turing). Reprezentarea automatului finit este posibilă prin diagrama
de tranziţie, respectiv printr-o structură de date specifică grafurilor.
24.1.3 Evaluarea indivizilor
Performanţa unui automat finit se calculează prin simularea
funcţionării acestuia pentru o mulţime de test, măsurând raportul
dintre numărul de simulări încheiate cu succes şi numărul total de
simulări. Un element al populaţiei (automat finit) este cu atât mai
bun cu cât rata de succes calculată este mai mare.
Mulţimea de test este finită şi alegerea ei este de obicei
problematică dat fiind faptul că în foarte puţine situaţii se vor putea
testa toate variantele posibile.
24.1.4 Operatorii specifici
Autorii paradigmei descrise în acest capitol notează faptul că
aplicarea unui operator de recombinare asupra structurilor de
reprezentare a automatelor finite nu prezintă un interes. Aplicarea
unui operator de variaţie asupra unei diagrame de tranziţie trebuie
să producă de asemenea o diagramă de tranziţie. Din aceste
considerente, unicul operator prin care se realizează perturbarea
elementelor populaţiei este cel al mutaţiei.
Mutaţia aplicată asupra reprezentării unui automat finit se va
putea realiza în următoarele situaţii:
- prin schimbarea stării iniţiale
120
- prin ştergerea sau adăugarea unei stări
- schimbarea simbolului de ieşire
- modificarea tranziţiei unei stări
Corespunzător variantelor posibile de alterare a unui element
se pot descrie proceduri specifice de mutaţie. Pentru fiecare individ
supus operatorului de mutaţie se va stabili în mod aleator care dintre
procedurile amintite se aplică. De menţionat faptul că efectul
mutaţiei este dependent de varianta aleasă. Astfel, adăugarea sau
ştergerea unei stări va produce un descendent mult diferit structural
de părintele său în comparaţie cu alterarea structurii prin schimbarea
unui simbolul de ieşire.
24.1.5 Algoritmul programării evolutive – pentru automate
finite
Structura generală a algoritmului de Programare evolutivă
pentru automate finite este descrisă în continuare:
1. Generează aleator populaţia iniţială de
µ
indivizi:
( ) { }
µ
c c c t P ,..., ,
2 1
·
, 0 :· t , unde fiecare individ
i
c codifică
un automat finit (maşină Turing finită). Mulţimea de instruire,
constituită din lista simbolurilor de intrare observate
(verificate) este iniţial vidă.
2. Mulţimea simbolurilor de intrare observate până la acest
moment sunt prezentate maşinilor Turing.
3. Evaluează performanţele fiecărui individ (maşină Turing) al
populaţiei utilizând o funcţie de câştig prin care se calculează
calitatea predicţiilor efectuate de maşina corespunzătoare în
raport cu mulţimea simbolurilor de intrare.
4. Aplică operatorul specific de mutaţie asupra fiecărui părinte
din generaţia curentă, obţinând
µ
descendenţi.
5. Calculează performanţele descendenţilor obţinuţi la pasul 3 în
aceiaşi manieră în care au fost evaluaţi părinţii.
6. Fiecare element c al mulţimii reunite de 2
µ
părinţi şi
descendenţi este etichetat printr-o valoare naturală r
reprezentând numărul de indivizi ai mulţimii respective care
sunt mai puţin performanţi decât c. Primii
µ
indivizi în
121
ordinea descrescătoare a valorilor rangurilor r sunt copiaţi în
noua generaţie
( ) 1 + t P
7. Cea mai bună maşină din generaţia curentă este folosită
pentru a face predicţia noilor simboluri de intrare. Simbolul
asupra căruia s-a făcut predicţia corectă este pus în lista
simbolurilor de intrare observate.
8. Dacă condiţia de terminare este îndeplinită atunci
STOP
Altfel
1 : + ·t t
Salt la pasul 2.
25 Programarea evolutivă contemporană –
optimizarea numerică
Cu toate că ideea Programării Evolutive este originală şi paleta
aplicaţiilor este una bogată, pentru o bună bucată de timp, această
direcţie de cercetare a fost puţin exploatată. Renaşterea programării
evolutive are loc prin studii dedicate extinderii conceptelor sale în
optimizarea numerică. Specificul problemelor de optimizare numerică
induc schimbări majore în privinţa manierei de reprezentare a
elementelor populaţiei.
Programarea evolutivă modernă impune ca un individ să nu mai
fie reprezentat printr-o structură adecvată reprezentării automatelor
finite ci printr-o structură similară reprezentării specifice Strategiilor
evolutive. Dezvoltarea celor două paradigme foarte asemănătoare
este un caz surprinzător în care două comunităţi de cercetători, în
mod independent, ajung la rezultate şi modele similare.
Prezentăm în continuare modulele principale ale meta-
programării evolutive, denumire sub care se regăsesc tehnici
dedicate optimizării, ce încorporează mecanisme de autoadaptare a
parametrilor de control.
25.1.1 Reprezentarea indivizilor populaţiei
Considerăm o problemă de maximizare fără restricţii formulată
astfel:
122
( )
¹
'
¹

n
R x
x f m a x
În dezvoltarea unui algoritm evolutiv care rezolvă problema
dată se impune alegerea manierei de reprezentare a elementelor
populaţiei. În cazul meta-programării evolutive, un individ al
populaţiei este codificat prin secvenţa:
( )
2
,σ x c · , unde
n
R x ∈
,
n
R ∈
2
σ
.
Vectorul ( )
n
x x x ,...,
1
· este format din componente reale şi
reprezintă o soluţie posibilă a spaţiului de căutare.
Vectorul ( )
2 2
1
2
,...,
n
σ σ σ · de n componente reale reprezintă
vectorul dispersie şi are semnificaţia perturbaţiilor produse la nivelul
fiecărei componente a vectorului x.
25.1.2 Evaluarea indivizilor populaţiei
Evaluarea indivizilor populaţiei se face prin funcţia fitness.
Aceasta este obţinută din funcţia obiectiv F, prin scalare acesteia şi
eventual perturbarea aleatoare pentru a se obţine valori pozitive:
( ) ( ) ( ) v c F G c F + ·
*
,
unde: v- reprezintă un vector prin care se realizează perturbarea şi G
– reprezintă funcţia de scalare.
25.1.3 Operatori specifici
Operatorii implicaţi în algoritmul meta-programării evolutive
sunt cel de selecţie şi mutaţia. Selecţia presupune ca fiecare element
c al mulţimii reunite de 2
µ
părinţi şi descendenţi să fie etichetat
printr-o valoare naturală r reprezentând numărul de indivizi ai
mulţimii respective care sunt mai puţin performanţi decât c. Ulterior,
cei mai puternici
µ
indivizi (primii
µ
indivizi din mulţimea ordonată
descrescător după rangul r) supravieţuiesc şi constituie noua
generaţie.
123
Păstrând notaţiile specifice strategiilor evolutive moderne,
selecţia descrisă în acest paragraf poate fi descrisă prescurtat ca
selecţie de tipul (
µ
+
µ
) şi este o formă deterministă a selecţiei.
Fie
ζ
un parametru suplimentar al procedurii de mutaţie şi α
- o notaţie pentru
2
σ
. Operatorul de mutaţie în varianta meta-
programării evolutive presupune alterarea structurii
( ) α , x c ·
şi
producerea individului
( ) ' , ' ' α x c ·
, astfel:
z x x
i i i
⋅ + · α '
z
i i i
⋅ + · ζ α α α ' .
Aşa cum deja am remarcat, algoritmul programării evolutive nu
face uz de procedura de recombinare. În schimb, strategiile evolutive
moderne implică exploatarea acestui operator. Diferenţă majoră a
celor două paradigme s-ar putea justifica pe baza interpretării din
perspective diferite a modelului biologic care stă la baza dezvoltării
acestora. În programarea evolutivă o soluţie este o codificare a unei
specii şi nu a unui individ, precum în strategiile evolutive. Astfel, o
recombinare a indivizilor de specii diferite ar fi departe de modelul
biologic utilizat.
25.1.4 Algoritmul meta-Programării Evolutive
Algoritmul de meta-Programare Evolutivă este schiţat mai jos:
1. Generează aleator populaţia iniţială de
µ
indivizi:
( ) { }
µ
c c c t P ,..., ,
2 1
·
, 0 :· t , unde fiecare individ
i
c
este
reprezentat de structura ( )
i i
i
x c α , · , ( )
i
n
i i
x x x ,...,
1
· ,
( )
i
n
i i
α α α ,...,
1
· . Vectorul
i
x
de n componente codifică o
posibilă soluţie şi vectorul
i
α
2. Evaluează performanţele fiecărui individ al populaţiei curente
pe baza funcţiei fitness stabilită.
3. Pentru fiecare părinte din generaţia curentă:
( ) t P c ∈
,
( ) α , x c ·
determină descendentul
( ) ' , ' ' α x c ·
astfel:
z x x
i i i
⋅ + · α ' ,
124
z
i i i
⋅ + · ζ α α α '
pentru
{ } n i ,..., 2 , 1 ∈ ∀
unde
ζ
este parametru suplimentar al procedurii de mutaţie
şi α - notaţie pentru
2
σ
4. Calculează performanţele descendenţilor obţinuţi la pasul 3.
5. Fiecare element c al mulţimii reunite de 2
µ
părinţi şi
descendenţi este etichetat printr-o valoare naturală r
reprezentând numărul de indivizi ai mulţimii respective care
sunt mai puţin performanţi decât c. Primii
µ
indivizi în
ordinea descrescătoare a valorilor rangurilor r sunt copiaţi în
noua generaţie
( ) 1 + t P
6. Dacă condiţia de terminare este îndeplinită atunci
STOP
Altfel
1 : + ·t t
Salt la pasul 3
Domeniul de aplicabilitate al tehnicilor de programare evolutivă
este larg. Practic, orice problemă rezolvabilă prin algoritmi genetici
sau strategii evolutive poate fi abordată printr-un algoritm de
programare evolutivă. Optimizarea numerică, probleme de
planificare şi control, probleme de transport, proiectarea reţelelor
neuronale sunt doar câteva dintre problemele generale de interes în
care modelele programării evolutive au fost implementate cu succes.
125
CAPITOL VI
Swarm Intelligence – SI (inteligenţa roiurilor) reprezintă una
dintre cele mai noi şi prolifice paradigme naturale în Inteligenţa
Artificială. Încadrată în domeniul Calculului Natural, disciplina SI
cuprinde algoritmi şi metode de rezolvare a problemelor reale,
inspirate de comportamentul colectiv al sistemelor descentralizate,
cu organizare proprie. Principalele surse de inspiraţie a modelului SI
sunt: coloniile de furnici, bancurile de peşti, roiurile de insecte,
stolurile de păsări, etc. Sistemele naturale menţionate prezintă
trăsături interesante: indivizii acestor colectivităţi, în absenţa unui
control supervizat, interacţionează pe baza unor reguli relativ simple,
rezultând un comportament inteligent al grupului.
Structural, un sistem SI este format dintr-o populaţie de indivizi
relativ omogeni. Dinamica unui astfel de sistem este dobândită prin
interacţiuni cu mediul înconjurător şi interacţiuni locale între
elementele populaţiei.
Caracteristicile comportamentale ale acestor sisteme SI sunt
următoarele:
- în absenţa unui control extern sau a unor mecanisme
interne supervizoare, fiecare individ acţionează independent
de acţiunea comună a celorlalţi, însă, în ansamblu, populaţia
acţionează în mod coordonat, rezultând un comportament
inteligent
126
- interacţiunea dintre indivizi se bazează pe reguli
comportamentale simple; fiecare individ reacţionează în
concordanţă cu maniera de percepţie a vecinătăţii sale
- populaţia, deşi necontrolată ca ansamblu, pe baza
interacţiunilor locale ale elementelor sale formează un grup
organizat.
Dintre sistemele naturale cu comportament inteligent care
funcţionează după principiile mai sus enunţate se evidenţiază:
coloniile de furnici şi stolurile de păsări. Corespunzător celor două
modele oferite de natură, s-au dezvoltat, în mod independent, două
clase de metode specifice cu aplicabilitate în rezolvarea problemelor
de optimizare: tehnicile Ant Colony Optimization (ACO) şi tehnicile
Particle Swarm Optimization (PSO).
27 Tehnica Ant Colony Optimization
Ant Colony Optimization, prescurtat ACO, este o direcţie relativ
nouă a Calculului Natural, având ca şi punct de pornire modelul
biologic al coloniilor de furnici. Metaeuristica propusă de M. Dorigo
[1.1.1.2] reprezintă o alternativă viabilă în abordarea problemelor
grele de optimizare combinatorială. De altfel, una dintre cele mai
populare demonstraţii a robusteţii şi eficienţei tehnicii ACO o
constituie aplicarea acesteia în rezolvarea problemei comis-
voiajorului.
În ciuda datării recente a acestei paradigme în Calculul Natural,
un număr mare de algoritmi inspiraţi de comportamentul coloniilor
de furnici au fost identificaţi în literatura de specialitate. Acest volum
impresionant de lucrări demonstrează o reală popularitate a tehnicii
ACO. Depăşind graniţele teoretice, tehnicile ACO au fost aplicate cu
succes într-o mare varietate de probleme considerate dificile:
optimizare combinatorială, rutarea reţelelor de telecomunicaţii,
probleme de planificare a activităţilor, ordonare secvenţială, etc.
27.1.1 Modelul natural
Modelul biologic ce stă la baza dezvoltării tehnicii ACO este
reprezentat de o populaţie de insecte (furnici) care, datorită
127
colaborării prin interacţiuni locale a indivizilor săi, este capabilă să
realizeze diverse sarcini dificile. Comportamentul colectiv al
populaţiei de insecte este unul complex, cu toate că, în parte, fiecare
individ (insectă) realizează sarcini simple.
Unul dintre cele mai interesante aspecte al comportamentului
coloniilor de furnici este cel al găsirii celui mai scurt drum între
muşuroi şi sursa de hrană. Aceste furnici sunt totodată capabile să se
adapteze la schimbările de mediu, precum apariţia unui obstacol şi
modificarea drumului cunoscut între muşuroi şi o sursa de hrană.
Interesant este faptul că acest comportament inteligent al coloniei nu
este susţinut de simţul vizual al furnicilor. Biologii, prin studierea
aspectelor comportamentale şi structurale a coloniilor de furnici, au
arătat faptul că fiecare furnică este aproape oarbă, iar sarcinile
efectuate de aceasta nu pot fi justificate pe baza dovezilor vizuale.
Interacţiunea furnicilor cu mediul şi adaptarea acestora la
schimbările survenite este datorată altor mecanisme specifice.
Furnicile comunică prin intermediul mirosului. Astfel, în timpul
deplasării furnicilor între muşuroi şi sursa de hrană, fiecare furnică va
emite o substanţă chimică denumită feromon. Alegerea drumului pe
care se va deplasa este făcută în mod aleator dacă furnica nu
detectează urme de feromoni. În cazul prezenţei acestei substanţe
chimice, furnica va alege cu o mai mare probabilitate drumul marcat
de feromoni. Mai mult, în cazul existenţei mai multor căi marcate de
feromoni, furnicile preferă acele drumuri care sunt cel mai bine
marcate. Cu cât cantitatea de substanţă chimică depusă este mai
mare, cu atât probabilitatea alegerii drumului respectiv este mai
mare. Feromonii depuşi de furnici au capacitatea de a se evapora în
timp ceea ce permite ca o direcţie nefolosită să nu mai fie luată în
considerare.
Observaţiile biologilor au avut un real impact asupra dezvoltării
tehnicii ACO. Modelul comportamental şi maniera de comunicare a
furnicilor în găsirea drumului optim între hrană şi muşuroi sunt
descrise mai jos:
1. Se consideră scenariul prezentat în Figura 13. Drumul dintre
cele două puncte de interes (muşuroiul şi sursa de hrană) nu
128
este obturat de niciun obstacol. În această situaţie furnicile
urmează în mod firesc calea directă între cele două locaţii.

MUŞUROI HRANĂ
Figura 13 Drumul furnicilor de la muşuroi la hrană în absenţa unui
obstacol
2. Apariţia unui obstacol pe drumul de acces al furnicilor între
cele două locaţii este descrisă în Figura 14. Furnicile situate
înaintea obstacolului nu mai au posibilitatea să urmărească
calea marcată de feromoni, fapt pentru care trebuie să ia o
decizie legată de direcţia în care se vor deplasa: stânga sau
dreapta.
În mod aleator aproximativ jumătate dintre furnici vor alege să
ocolească obstacolul prin dreapta, iar jumătate vor alege să
ocolească obstacolul prin stânga. O situaţie similară se
întâlneşte şi de cealaltă parte a obstacolului.

MUŞUROI HRANĂ
O
B
S
T
A
C
O
L

Drumul A
Drumul B
Figura 14 Apariţia obstacolului în drumul furnicilor produce o împărţire
probabilistică a grupului în cele două variante ocolitoare: stânga şi
dreapta.
3. Cele două drumuri existente după apariţia obstacolului diferă
prin lungimea lor. În figura anterioară se poate observa că
drumul A este mult mai scurt decât drumul B. Furnicile care au
129
ales calea mai scurtă de ocolire a obstacolului vor reconstitui
mai rapid calea de feromoni întreruptă de obstacol decât
furnicile care au ales calea mai lungă. Astfel, pe drumul A se
va depune o cantitate mai mare de feromoni în unitatea de
timp decât pe drumul B. Acest fapt va determina ca un număr
mai mare de furnici să aleagă calea respectivă, ceea ce va
conduce ulterior la creşterea cantităţii de feromoni depusă.
Datorită acestui proces toate furnicile vor alege calea mai
scurtă foarte repede (figura 11).

MUŞUROI HRANĂ
O
B
S
T
A
C
O
L

Drumul A
Drumul B
Figura 15 Configuraţia finală a coloniei de furnici în drumul cel mai
scurt între cele două obiective. Populaţia s-a adaptat rapid la
schimbarea survenită în mediu.
Procesul de găsire a celui mai scurt drum între două obiective
este cauzat în principal de următorii factori:
- furnicile sunt atrase de drumul marcat cu cea mai mare
cantitate de feromoni
- persistenţa feromonilor face ca un drum mai scurt să fie
întotdeauna puternic marcat de feromoni
- datorită procesului de evaporare a feromonilor, în timp, un
drum mai lung va fi uitat de către furnici
Modelului biologic al coloniilor de furnici îi corespunde modelul
artificial conceput de cercetători din domeniul Calculului Natural. În
modelul artificial, furnicile sunt denumite furnici artificiale sau agenţi,
iar comunicarea acestora se realizează prin aşa-numiţii feromoni
artificiali. Tehnicile inspirate de comportamentul biologic descris în
acest paragraf se pretează cel mai bine în aplicaţii de optimizare.
Precum modelul natural realizează un proces de optimizare – găsirea
130
drumului optim, şi tehnicile inspirate din acesta sunt dezvoltate în
ideea aplicabilităţii lor în probleme de optimizare combinatorială.
Ideea principală a tehnicii ACO este cea a căutării paralele
realizată de către o populaţie de agenţi care colaborează, bazându-
se pe datele problemei şi pe o memorie dinamică ce reţine informaţii
utile din rezultatele obţinute anterior. Folosirea informaţiilor despre
calitatea rezultatelor obţinute în prealabil este caracteristica majoră
a algoritmilor ACO.
27.1.2 Tehnica ACO
Denumirea de tehnică ACO defineşte cadrul general al
algoritmilor inspiraţi de paradigma biologică a coloniilor de furnici. În
acest cadru se vor regăsi o varietate de algoritmi ACO aplicaţi în
probleme diverse de optimizare. Primul algoritm ACO, sub denumirea
Ant System, propus în [1.1.1.2], a fost aplicat pentru rezolvarea
problemei comis-voiajorului (TSP - Travelling Salesman Problem).
Contrar dificultăţii algoritmului Ant System de a depăşi performanţele
algoritmilor tradiţionali de rezolvare a problemei considerate,
principiile enunţate au stat la baza dezvoltării şi rafinării ulterioare a
algoritmilor ACO.
În paragraful curent vom furniza structura generală a unui
algoritm ACO, punând în evidenţă aspectele pe care programatorul
va trebui să le urmărească în dezvoltarea şi implementarea unui
algoritm de acest gen pe o problemă concretă.
Definirea problemei
Se consideră următoare problema de optimizare descrisă prin
ansamblul:
( ) Ω , , f S
,
unde:
S- reprezintă mulţimea soluţiilor posibile
f - este funcţia obiectiv care ataşează fiecărei soluţii un cost:
( ) s f
, S s ∈ .

- este mulţimea restricţiilor problemei
Se cere determinarea acelei soluţii
S s ∈
*
, care verifică
restricţiile problemei şi are costul minim.
131
Din perspectiva algoritmilor ACO, abordarea problemei descrise
mai sus implică o reformulare şi identificarea următoarelor elemente:
a. O mulţime finită de componente
{ }
n
c c c C ,..., ,
2 1
·
.
b. Stările problemei sunt definite prin secvenţe de
elemente ale mulţimii C:
( )
ik i i i
c c c c x ,..., , ,
3 2 1
· , unde C c c c c
ik i i i
∈ ,..., , ,
3 2 1
c. Cunoscând mulţimea tuturor secvenţelor de
componente peste mulţimea C:
( ) { } C c c c c c c c c x x X
ik i i i ik i i i
∈ · · ,..., , , , ,..., , , |
3 2 1 3 2 1
şi mulţimea restricţiilor Ω, se poate deduce mulţimea
stărilor posibile ale problemei:
X
, X X ⊆ .
d. Se dă mulţimea de soluţii posibile:
*
S , unde X S ⊆
*
şi
S S ⊆
*
.
e. Funcţia obiectiv f ataşează fiecărei soluţii S s ∈ un cost:
( ) s f
. În anumite cazuri, costurile sunt ataşate stărilor
şi nu soluţiilor.
Elementele enunţate pot fi reprezentate sub forma unui graf
complet
( ) L C G , ·
, unde nodurile sunt elemente din mulţimea C şi L
este mulţimea muchiilor prin care se conectează nodurile. Acest graf
se mai numeşte şi graf de construcţie şi are următoarele
particularităţi:
A. Nodurile grafului sunt componente din mulţimea
{ }
n
c c c C ,..., ,
2 1
·
B. Nodurile
C c
i

şi muchiile
L l
ij

pot fi etichetate cu
valorile
τ
(notate
i
τ pentru noduri şi ij
τ
pentru
muchii), având semnificaţia urmei de feromoni.
C. Stările problemei sunt drumuri în graful G. Stările
posibile, respectiv, drumurile posibile în graful G , sunt
acele stări care verifică restricţiile Ω specifice
problemei.
D. Muchiile
L l
ij

pot fi etichetate cu valorile ij
η
, având
semnificaţia atractivităţii – informaţii despre problemă
sau informaţii determinate prin aplicarea unei euristici,
132
utile în decizia furnicii de a efectua o mutare în spaţiul
stărilor posibile.
Soluţia dorită a problemei este drumul optim în graful G.
Comportamentul furnicii artificiale
Rolul furnicilor artificiale este de a construi soluţia problemei
prin parcurgerea drumurilor în graful complet G . Aceste furnici se
comportă ca o populaţie de agenţi asincroni şi concurenţi care se
mişcă prin mulţimea stărilor problemei. Soluţia finală este construită
de agenţi pas cu pas, prin adăugarea la soluţiile parţiale a acelor
componente care verifică restricţiile impuse.
Dinamica furnicilor se realizează pe baza unei mulţimi de decizii
locale stohastice induse de valorile a doi parametri:
- Urma de feromoni
- Atractivitate.
Determinarea unei soluţii complete este însoţită de actualizarea
urmelor de feromoni, respectiv de actualizarea valorilor
τ
pentru a
putea fi ulterior folosită în căutare de către celelalte furnici. De
asemenea, completarea soluţiei parţiale cu o nouă componentă
i
c
(nod al grafului) poate fi însoţită de o actualizare a valorii asociate
i
τ sau a valorii ij
τ
ataşate conexiunii (muchiei).
Tehnica generală ACO este descrisă de un algoritm repetitiv. La
fiecare iteraţie a algoritmului, fiecare agent – furnică va efectua o
trecere de la starea x la starea y, respectiv, va îmbogăţi o soluţie
parţială x prin adăugarea unei noi componente
C c
i

, producând o
nouă soluţie mai completă y. Decizia prin care o furnică va traversa
spaţiul stărilor se face pe baza informaţiilor furnizate de urmele de
Considerăm că unui agent îi corespunde starea x, reprezentând
secvenţa de componente ( )
ik i i i
c c c c x ,..., , ,
3 2 1
· , un drum posibil în
graful G. Această stare corespunde unei furnici situate în nodul
ik
c
care a efectuat în prealabil o traversare a drumului
ik i i i
c c c c ,..., , ,
3 2 1
.
133
Alegerea nodului
nou
c ce va fi adăugat secvenţei x pentru a
obţine noua stare ( )
nou ik i i i
c c c c c y , ,..., , ,
3 2 1
· se va face din mulţimea
nodurilor vecine nodului curent
ik
c . Dacă există mai multe
posibilităţi, furnica va decide mutarea următoare cu o probabilitate
calculabilă în funcţie de urma de feromoni şi gradul de atractivitate.
În plus faţă de activitatea concurentă a agenţilor, algoritmii ACO
pot fi înzestraţi cu două proceduri importante de control:
- evaporare a feromonilor – activitate efectuată pentru a
imprima populaţiei de furnici trăsătura de “a uita” drumurile
slab marcate; efectul acestui proces constă în evitarea
convergenţei rapide înspre soluţii sub-optimale ale
problemei.
- procedura daemon (efectuată opţional) are scopul apelării
unor activităţi centralizate pe care furnicile în mod individual
nu le-ar putea realiza. Spre exemplu, apelarea unor
proceduri specifice de căutare locală, sau amplificarea
urmelor de feromoni la acele componente care s-au dovedit
utile în construirea celor mai bune soluţii.
Algoritmul Ant System este primul algoritm inspirat de
comportamentul coloniilor de furnici, aplicat în cazul problemei comis
voiajorului (TSP). Acesta nu a reuşit să depăşească performanţele
algoritmilor clasici, însă reprezintă un algoritm de referinţă pentru
cercetarea ulterioară. Vom prezenta în continuare structura originală
a algoritmului Ant System, aplicat pentru rezolvarea problemei TSP.
Problema comis voiajorului (TSP) este formulată astfel:
Se dă:
o un număr de n localităţi: { }
n
c c c C ,..., ,
2 1
·
o un număr de muchii
( ) { } C j i j i l L
ij
∈ · · , | ,
o costurile ataşate muchiilor:
ij
d
,
C j i ∈ ∀,
o localitatea de plecare C c
start

Un comis-voiajor, situat iniţial în localitatea de plecare
start
c
trebuie să parcurgă toate localităţile, o singură dată, revenind în final
în localitatea iniţială.
134
Se cere: determinarea drumului optim parcurs de comis-
voiajor, respectiv determinarea drumului de cost minim.
Algoritmul AS, descris în [1.1.1.2] , consideră m furnici, fiecare
situată aleator într-unul dintre cele n oraşe. Memoria agenţilor reţine
în această primă etapă doar oraşul de plecare. În mod iterativ, cele
m furnicile vor completa soluţia parţială prin mutări succesive dintr-
un oraş în altul. La un pas al procesului, o furnică k situată în
localitatea i va decide oraşul următor j. Mutarea în oraşul j se va face
cu o probabilitate
( ) t p
k
ij
dată de formula:
( )
( )
( )
( )

·
k V l
il il
ij ij k
ij
t
t
t p
β α
β α
η τ
η τ
,
unde:
- ij
τ
are semnificaţia urmei de feromoni între locaţiile i şi j.
- ij
η
- reprezintă atractivitatea deciziei de efectua o mutare
în oraşul j şi este determinată prin formula:
ij
ij
d
1
· η
,
unde
ij
d
este distanţa euclidiană dintre localităţile i şi j.
-
( ) k V
- vecinătatea posibilă a furnicii k, reprezentată oraşele
rămase nevizitate de aceasta.
-
α
,
β
doi parametri suplimentari prin care se controlează
influenţa pe care o vor avea parametrii specifici ij
τ
,
respectiv ij
η
, asupra alegerii oraşului următor: spre
exemplu, valoarea 0 · α va induce un comportament
asemănător tehnicii greedy, oraşul ales j este cu o mare
probabilitate cel mai apropiat de oraşul i. În situaţia în care
0 · β
, alegerea următoarei localităţi se face în mod
independent de distanţe, şi doar în funcţie de intensitatea
urmei de feromoni.
- t – este o variabilă care contorizează numărul de tururi
complete
135
Se consideră că un tur este încheiat când furnicile au parcurs
fiecare câte un drum de lungime dată n. În acest moment intervine
acţiunea procedurii de actualizare a urmelor de feromoni.
Actualizarea urmelor de feromoni se face în două sensuri: prin
evaporarea acestora (multiplicarea valorilor ij
τ
cu un factor
subunitar) şi depozitarea de feromoni pe muchiile drumurilor
parcurse de furnici:
( ) ( ) ( ) ( )

·
∆ + ⋅ − · +
m
k
k
ij ij ij
t t t
1
1 1 τ τ ρ τ
,
unde:
-
ρ
, rata de evaporare, este un factor prin care se controlează
evaporarea feromonilor. Valoarea mică a parametrului
ρ

induce efectul de uitare a drumurilor slabe parcurse deja de
furnici. Uitarea este benefică pentru evitarea deciziilor
dovedite greşite într-un tur anterior.
-
( ) t
k
ij
τ ∆
reprezintă cantitatea de feromoni depusă de furnica k
pe muchia (i,j) şi se determină prin formula:
( )
( )
¹
¹
¹
'
¹
· ∆
altfel
i,j ia rcurs much ica k a pa dacăacă fu
t k L
t
k
ij
0
,
1
) (
τ ,
-
( ) t k L ,
- distanţa parcursă de furnica k în turul t.
Cantitatea de feromoni depusă pe muchiile parcurse este cu
atât mai mare cu cât drumul este mai scurt. Efectul imediat este de a
stimula furnicile să prefere drumurile mai scurte.
Intuitiv procedura descrisă conduce la determinarea soluţiei
optime, însă, în comparaţiile cu algoritmii tradiţionali, algoritmul
original Ant System nu a reuşit să ofere o performanţă mai bună. O
extensie importantă a algoritmului constă în modificarea manierei de
depozitare a feromonilor. Astfel, se reţine cel mai bun drum parcurs
şi acesta se va actualiza după încheierea fiecărui tur. Muchiile care
fac parte din drumul respectiv vor fi preferate, în etapa de depozitare
a feromonilor, oferindu-li-se o pondere suplimentară. Pentru acele
muchii, formula devine:
136
( )
( )
¹
¹
¹
'
¹
· ∆
altfel
ia (i,j) rcurs much ica k a pa dacăacă fu
t k L
e
t
ij
0
,
*
*
τ ,
unde:
-
( ) t k L ,
*
- este lungimea celui mai scurt drum
- e este un întreg pozitiv cu rolul de a accentua urma de
feromoni a muchiilor ce fac parte din drumul cel mai bun.
O altă perfectare a algoritmului AS constă în implicarea doar a
celor mai performante w ( m w≤ < 1 ) furnici în etapa de depozitare a
feromonilor. O furnică este cu atât mai performantă cu cât reuşeşte
să parcurgă un drum mai scurt. Prin aceasta, furnicile care nu au
parcurs drumuri bune nu vor actualiza urmele de feromoni, fapt
pentru care în etapele ulterioare, drumurile slabe vor fi treptat uitate.
Cu cât numărul de furnici performante care vor depozita feromoni
este mai mic, cu atât gradul de elitism al procedurii este mai mare.
Algoritmul Ant Colony System (ACS) [1.1.1.2], conţine un
mecanism suplimentar prin care se realizează un echilibru între
exploatarea informaţiilor provenite din tururile anterioare şi
explorarea spaţiului de căutare. Acest mecanism este format dintr-o
procedură elitistă asemănătoare celei descrise în algoritmul AS
(actualizarea feromonilor doar de către cele mai performante furnici)
şi dintr-o procedură prin care deciziile locale supra viitorului oraş
vizitat se vor lua în mod pseudo-aleator pentru a favoriza explorarea
eficientă a spaţiului de căutare.
27.1.3 Aplicaţii
Algoritmii ACO s-au dovedit nu doar alternative viabile a
tehnicilor tradiţionale, dar şi mai eficienţi decât acestea în câteva
probleme de interes major. Enumerăm câteva dintre problemele
abordate cu algoritmi Ant Colony Optimization:
- problema ordonării secvenţiale (ex. Problema comis
voiajorului descrisă în paragrafele anterioare) este prima
problemă abordată de către o tehnică ACO.
- problema atribuirii cuadratice – se cere atribuirii a unui
număr de m facilităţi unui număr de n locaţii în aşa fel
137
încât costul de atribuire să fie minim; funcţia costului de
- diverse probleme de planificare a activităţilor
- probleme de rutare a vehiculelor
- problema colorării grafurilor
- probleme dinamice în reţele de telecomunicaţii
- probleme de optimizare multiobiectiv
28 Tehnica Particle Swarm Optimization
Tehnica Particle Swarm Optimization este propusă în 1995 de
către Kennedy şi Eberhart [1.1.1.2] şi cuprinde algoritmi dedicaţi
rezolvării unei variate palete de probleme de optimizare. Modelul de
inspiraţie al acestei clase de algoritmi este cel al comportamentului
stolurilor de păsări, respectiv al bancurilor de peşti. Aparent haotice,
aceste sisteme naturale dovedesc un comportament colectiv
inteligent, oferind cercetătorilor din domeniul Calculului Natural idei
surprinzătoare pentru dezvoltarea unei noi metaeuristici.
28.1.1 Modelul natural
Studiul comportamentului social al unor specii este în general
preocuparea biologilor. Cu toate acestea, cercetători din domenii
diferite au furnizat informaţii valoroase privind procesul prin care
ansambluri de organisme (ex. stolurile de păsări, bancurile de peşti),
în mod sincronizat şi imprevizibil realizează mişcări de împrăştiere şi
regrupare rapidă, în absenţa unui mecanism de control centralizat
(vezi de ex. [1.1.1.2]). Scopul examinării acestor sisteme este acela
al identificării şi modelării artificiale a resorturilor prin care grupul de
organisme înzestrate cu o inteligenţă neglijabilă, realizează ca
ansamblu un comportament inteligent.
Numărul mare al tehnicilor inspirate de modele naturale
(creierul uman, evoluţia speciilor, inteligenţa colectivă a roiurilor,
etc.) este justificată de necesitatea dezvoltării unor metode
computaţionale alternative celor tradiţionale, în scopul rezolvării unor
probleme dificile. Modelul comportamental al roiurilor de particule
este analizat şi din perspectiva inteligenţei artificiale, reuşind să
ofere direcţii importante de dezvoltare în Calculul Natural.
138
Comportamentului colectiv al roiului poate fi descris prin
următoarele principii [1.1.1.2]:
- fiecare membru încearcă să se îndepărteze de vecinii săi în
cazul în care aceştia sunt prea apropiaţi – Separarea
- fiecare membru va opera o mişcare înspre poziţia medie a
vecinilor săi - Coeziunea
- fiecare membru se aliniază la direcţia medie a vecinilor săi –
Alinierea.
Aceste trei principii simple sunt completate de Eberhart şi
Kennedy [1.1.1.2] prin introducerea conceptului de cuib. Astfel,
comportamentul colectiv al membrilor populaţiei sugerat de
principiile separării, coeziunii şi alinierii este dublat de: atracţia
membrilor spre locaţia cuibului, memoria locaţiei cuibului şi
partajarea informaţiei despre locaţia cea mai apropiată a cuibului.
Simplificat, tehnica Particle Swarm Optimization se poate defini
ca o procedură de rezolvare a problemelor de optimizare prin
imitarea proceselor naturale observate la nivelul comportamentului
roiurilor de particule.
Evoluţia spectaculoasă şi rapidă a tehnicii PSO este datorată
simplităţii modelului propus şi a rezultatelor bune pe care le oferă. În
paragrafele următoare sunt descrise tehnica originală PSO şi
principalele domenii de aplicabilitate ale acesteia.
28.1.2 Algoritmul PSO
Tehnica PSO presupune existenţa unei populaţii de m indivizi
care realizează în mod colectiv un proces de căutare şi optimizare.
Din acest punct de vedere, PSO şi Algoritmii Genetici prezintă
similitudini evidente. Diferenţele între cele două paradigme se disting
la nivelul reprezentării indivizilor şi a mecanismelor prin care
populaţiile realizează procesul de căutare. Contrar Algoritmilor
Genetici care presupun dispariţia unor indivizi ai populaţiei şi
înlocuirea acestora cu noi descendenţi, populaţia în paradigma PSO
este alcătuită din indivizi - particule care nu mor, însă îşi modifică
atributele (poziţia în spaţiu, viteza de mişcare).
139
Practic, în tehnica PSO, procesul de căutare este realizat de
către o singură generaţie de indivizi, printr-o dinamică condusă de
interacţiunile cu mediul şi interacţiunile locale între membrii.
Algoritmul tehnicii PSO este un algoritm repetitiv în care fiecare
iteraţie t este reprezentată de o mutare colectivă a indivizilor.
Se consideră spaţiul de căutare
d
R
, şi funcţia
multidimensională R R f
d
→ : . Se doreşte determinarea maximelor
funcţiei considerate. În acest scop, funcţia de performanţă (fitness)
prin care se vor califica indivizii populaţiei este funcţia f.
Notăm populaţia de particule la pasul t:
( ) ( ) ( ) ( ) { } t p t p t p t P
m
,..., ,
2 1
· .
Fiecare element ( ) t p
i
ale populaţiei este caracterizat prin
următoarele elemente:
- Un vector ( ) ( ) ( ) ( ) [ ] t x t x t x t X
d
i i i i
,..., ,
2 1
· al poziţiei ocupate în
spaţiul d-dimensional
- Un vector ( ) ( ) ( ) ( ) [ ] t v t v t v t V
d
i i i i
,..., ,
2 1
· , având semnificaţia
vitezei particulei ( ) t p
i
, este vectorul direcţiei în care se va
mişca particula în absenţa altor influenţe
- vectorul ( ) ( ) ( ) ( ) [ ] t z t z t z t X
d
i i i
local
i
,..., ,
2 1
· , memorează cea mai
bună poziţie ocupată de particula
( ) t p
i
în etapele anterioare.
Calificarea unei particule se face pe baza a două valori de
performanţă: performanţa poziţiei ( ) t X
i
ocupate în mod curent de
particulă: ( ) ( ) t X f
i
şi performanţa celei mai bune poziţii ( ) t Z
i

ocupate în etapele precedente: ( ) ( ) t Z f
i
.
Vecinătatea lui ( ) t p
i
este notată prin ( )
i
p N şi reprezintă
mulţimea de particule ( ) t p
k
care sunt apropiate de particula ( ) t p
i
.
Apropierea se poate determina pe baza unei funcţii distanţă dist şi a
unui prag ε prin care se delimitează vecinii. Vecinătatea particulei
i
p se rescrie astfel:
( ) ( ) { } ε ≤ ·
k i k i
p p dist p p N , | .
140
Se notează prin ( ) t p
N
i
- particula care ocupă cea mai bună
poziţie ( ) t X
N
i
din vecinătatea ( )
i
p N a particulei ( ) t p
i
.
Se notează prin
( ) t p
global - particula care ocupă cea mai bună
poziţie ( ) t X
global
din întreaga populaţie
( ) t P
, la pasul t.
Mişcarea unei particule oarecare ( ) t p
i
este influenţată de:
- poziţia celei mai performante particule din populaţie (global
best)
- poziţia celei mai performante particule din vecinătate
(neighborhood best)
- poziţia cea mai bună ocupată de
( ) t p
i
în iteraţiile anterioare
(local best).
Formulele generale de calculare a vitezei şi poziţiei particulei
i
p
în iteraţia t sunt următoarele:
( ) · t V
i
( ) ( ) ( ) ( ) 1 1
1
− − + − t X t X rand c t V
i
local
i i
( ) ( ) ( ) 1
2
− − + t X t X rand c
i
global
i
( ) ( ) ( ) 1
3
− − + t X t X rand c
i
N
i
( ) ( ) ( ) t V t X t X
i i i
+ − · 1
unde:
3 2 1
, , c c c - reprezintă constante pozitive, şi
rand – reprezintă un număr aleator subunitar cu distribuţie
uniformă.
S-a constatat o încetinire semnificativă a convergenţei
algoritmului PSO în cazul în care poziţiile celor mai performante
particule din vecinătate (neighborhood best) afectează viteza
particulelor. În plus, cercetările ulterioare au inclus un factor
suplimentar ω cu semnificaţia inerţiei. Algoritmul standard PSO
exclude contribuţia poziţiilor celor mai buni vecini şi include aportul
inerţiei, astfel, formulele de actualizare a vitezelor şi poziţiilor devin:
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) 1 1 1
2 1
− − + − − + − · t X t X rand c t X t X rand c t V t V
i
global
i i
local
i i i
ω
,
( ) ( ) ( ) t V t X t X
i i i
+ − · 1 ,
141
unde:
- Constantele pozitive
2 1
, c c
au în general valoarea
2 ,
2 1
≈ c c
şi
reprezintă influenţele “cognitivă” şi „socială”, respectiv,
aportul local-individual şi global-social asupra mişcării
particulei.
- Factorul inerţie
ω
are o valoare subunitară (ex. 9 . 0 ≈ ω ).
Etapele unui algoritm PSO sunt următoarele:
1. Generare aleatoare populaţie iniţială
( ) 0 P
, t=0.
2. Câttimp (condiţia_de_terminare=false) execută
2.1. Evaluare populaţie, utilizând funcţia fitness
2.2. Actualizarea poziţiilor performante ( ) t X
global
şi
( ) t X
local
i
2.3. Pentru fiecare particulă i,
m i ,..., 2 , 1 ·
execută
2.3.1. Modifică viteza folosind formula:
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) 1 1 1
2 1
− − + − − + − · t X t X rand c t X t X rand c t V t V
i
global
i i
local
i i i
ω
2.3.2. Modifică poziţia folosind formula:
( ) ( ) ( ) t V t X t X
i i i
+ − · 1
28.1.3 Aplicaţii
Un studiu recent [1.1.1.2] prezintă o investigaţie utilă asupra
progreselor înregistrate de tehnica PSO în aplicaţii variate. Câteva
dintre principalele domenii de aplicabilitate ale algoritmilor PSO sunt
enumerate în continuare:
- rezolvarea problemelor de optimizare numerică
- optimizarea multiobiectiv
- optimizare multimodală
- rezolvarea problemelor de optimizare cu restricţii
- antrenarea reţelelor neuronale
- procesarea imaginilor.
142
CAPITOL VII
29 Sisteme imune artificiale
Paleta modelelor biologice care ar putea constitui baza unor noi
paradigme ale calculului natural este largă. Evoluţia speciilor,
comportamentul coloniilor de furnici şi a roiurilor de particule,
structura şi funcţionarea creierului, sunt doar câteva dintre cele mai
studiate surse de inspiraţie naturală care au generat metode
generale de rezolvare a unor clase de probleme dificile. În ansamblu,
prin noi principii, concepte şi algoritmi eficienţi de inspiraţie naturală,
s-a conturat o direcţie extrem de fertilă a Inteligenţei Artificiale.
Succesele aplicaţiilor practice, studiile teoretice şi ingeniozitatea
subiectului sunt o motivaţie puternică în identificarea altor modele
naturale care ar putea genera noi tehnici. Una dintre cele mai
recente paradigme ale Calcului natural este cea bazată pe principiile
funcţionării sistemelor imune ([1.1.1.2],[1.1.1.2],[1.1.1.2]).
În acest capitol este descris modelul natural al sistemului imun
cât şi modelul artificial propus şi descris în [1.1.1.2], model aplicat cu
succes în rezolvarea problemelor de optimizare multimodală.
30 Modelul biologic
Sistemul imun reprezintă un ansamblu de celule, molecule şi
organe, cu rol în recunoaşterea şi combaterea anumitor disfuncţii
(infecţii) ale organismului. Acest sistem se dovedeşte a fi capabil să
efectueze sarcini complexe ca: recunoaşterea formelor, învăţarea şi
143
memorarea, toleranţa la zgomot, generarea diversităţii sau
optimizarea. Complexitatea acestui sistem este comparabilă cu a
unui creier uman. Din aceste considerente, sistemele imune
constituie un subiect fecund de studiu atât pentru biologi cât şi
pentru matematicienii sau informaticienii interesaţi de dezvoltarea a
noi tehnici computaţionale bazate pe principiile imunologice.
30.1.1 Anatomia sistemului imun
Sistemul imun este alcătuit din următoarele unităţi anatomice:
- vasele limfatice: reţea de vase prin care este transportată
limfa (fluid ce conţine celule imune)
- măduva osoasă: ţesut situat în oase, cu rol în producerea
celulelor imune
- timusul: o parte din celulele generate de măduva osoasă sunt
supuse multiplicării şi maturizării la nivelul acestei glande,
transformându-se ulterior în celule T.
- apendicele: nod limfatic specializat în protejarea activităţii
digestive
- splina: organ la nivelul căruia leucocitele distrug
microorganismele ce au pătruns în sistemul circulator
- nodurile limfatice: locurile de convergenţă a vaselor limfatice;
aici sunt stocate celule imune şi la nivelul acestor noduri se
produc răspunsurile imune.
30.1.2 Celulele imune
Sistemul imun conţine o multitudine de celule imune, variate ca
tip sau ca funcţionalitate. Celulele imune se “nasc” în măduva
osoasă şi pătrund în sistemul circulator sanguinic şi limfatic. O
clasificare a celulelor imune este descrisă in figura alăturată:
Limfocitele: sunt reprezentate de trei categorii importante de
celule imune: celulele B, celulele T şi celulele NK (natural killer).
Celulele B se transformă după activare în celule plasmatice şi
generează anticorpii, ca răspuns la apariţia unor proteine externe ca
viruşii, bacteriile, celulele canceroase, etc.
144
Anticorpii reprezintă de fapt proteine specifice care recunosc şi
se leagă de alte proteine. În această manieră, anticorpii semnalează
altor celule imune să ucidă sau ingereze substanţa de care s-au
legat. Anticorpii constituie un mecanism important de recunoaştere
şi semnalare a variatelor tipuri de disfuncţii ale organismului.
Celulele T au rol în reglarea activităţii altor celule imune şi în
distrugerea prin atac direct a celulelor infectate. Sunt recunoscute
trei subcategorii de celule T (împărţite după modul în care îşi
desfăşoară acţiunea):
- celule T helper (Th) – au rol în activarea altor celule imune,
inducând proliferarea şi diviziunea limfocitelor B.
- celule T citotoxice – elimină invadatorii (microbi, viruşi,
celule canceroase) prin inocularea acestora cu substanţe
nocive provocând ulterior distrugerea lor.
- celule T supresoare (Ts) – inhibă activitatea celulelor imune
pentru ca răspunsul sistemului imun să nu degenereze în
boli autoimune sau reacţii alergice.
Celulele NK se comportă asemănător celulelor T cu excepţia
faptului că acţiunea lor nu este condiţionată de recunoaşterea unui
antigen specific. Aceste celule protejează organismul de variate
infecţii microbiene.
Fagocitele: sunt capabile de ingerarea şi digerarea
microorganismelor şi particulelor antigenice. Cele mai importante
fagocite sunt enumerate în cele ce urmează: monocite, macrofage,
eusinofile, basofile, neutrofile. Macrofagele au rol important la
începutul răspunsului sistemului imun. Ele recunosc antigenele
patogenilor, distrug microorganismele prin fagocitoză şi stimulează
activitatea limfocitelor.
Sistemul complement: este alcătuit din celule plasmatice
care circulă inactive prin organism şi suplinesc funcţionalitatea
anticorpilor; distruge bacteriile prin citoliză.
30.1.3 Activitatea sistemului imun
În cele ce urmează vom descrie maniera în care sistemul imun
va proteja organismul de atacul unui antigen (“invadator”).
145
Mecanismul este extrem de complex, astfel încât ne vom limita la
simularea unui răspuns simplificat al sistemului imun.
Sub denumirea de antigen se disting doua categorii de
elemente care pot fi recunoscute de sistemul imun:
- celulele care fac parte din organismul propriu, fiind
inofensive, sunt recunoscute de sistemul imun şi se
denumesc antigene proprii
- elementele care sunt străine organismului propriu (viruşi,
bacterii, etc.) poartă denumirea de antigene străine.
O corectă funcţionare a sistemului imun natural presupune
distingerea între cele două categorii de antigene (proprii şi străine) în
procesul complex al recunoaşterii antigenelor; în caz contrar ar apare
aşa numitele boli autoimune în care sistemul imun ar „ataca”
substanţe şi ţesuturi ale propriului organism.
Cele doua clase de celule imune, celulele B şi celulele T au rolul
de a realiza procesul de recunoaştere al antigenelor, însă într-o
manieră diferită: celulele B, originate la nivelul măduvei spinării au
rolul de a recunoaşte antigenele libere, în timp ce celulele T sunt
capabile de a recunoaşte antigenele prezente în alte celule
accesoare.
O parte dintre limfocitele B şi T alcătuiesc memoria sistemului
imun, rămânând în sistemul circulator, astfel încât, la o ulterioară
“invazie” cu aceleaşi antigene, sistemul imun este capabil să se
apare cu mai mare eficienţă.
Recunoaşterea antigenelor precede răspunsul imun. Acest
răspuns se poate descrie prin totalitatea acţiunilor pe care le
realizează sistemul imun în scop de apărare a organismului. Absenţa
unui răspuns imun este datorat imunităţii dobândite (rezistenţa
specifică a unui organism fata de infecţia cu un anumit agent
patogen).
Etapele răspunsului imun sunt:
- captarea antigenului de către macrofage;
- fragmentarea si transferul informaţiei antigenice către
sistemul imunologic.
Răspunsul imun poate fi primar (la prima pătrundere a
antigenului) şi secundar (la pătrunderi ulterioare). Răspunsul imun
146
secundar este mai rapid şi mai intens decât cel primar datorită
celulelor cu memorie imunologica (limfocite).
Celulele specializate în prezentarea antigenelor, cum ar fi
macrofagele pe care le-am pomenit anterior, vor recunoaşte şi
fragmenta antigenele producând peptide antigenice. Peptidele se
alătură moleculelor complexului major de histocompatibilitate.
Complexul major de histocompatibilitate (MHC) este reprezentat de o
familie de gene a căror produşi (antigene) sunt exprimate pe
suprafaţa diferitelor celule. Limfocitele T deţin receptori moleculari,
fiind capabile să recunoască diferite combinaţii de peptide din MHC.
Activate prin procesul de recunoaştere, limfocitele T vor genera
semnale chimice care mobilizează alte componente ale sistemului
imun. Datorită receptorilor moleculari pe care îi posedă, limfocitele B
vor răspunde acestor semnale chimice, devenind active. Celulele B
activate se vor divide şi diferenţia în celule plasmatice ce secretă
anticorpii. Legându-se de antigenele găsite, anticorpii pot să le
neutralizeze sau pot provoca distrugerea lor.
30.1.4 Caracteristicile majore ale sistemului imun
- unicitatea: fiecare organism este înzestrat cu propriul său sistem
imun;
- este capabil să recunoască molecule străine organismului de care
aparţine;
- poate detecta patogeni pe care organismul nu i-a mai întâlnit
până în acel moment;
- celulele sistemului sunt distribuite în tot organismul, neexistând
un control centralizat al mecanismelor imune;
- toleranţa la zgomot: sistemul este flexibil, nu este necesară
recunoaşterea cu precizie maximă a patogenilor;
- sistemul poate învăţa structurile patogenilor, astfel încât
răspunsul ulterior la aceiaşi patogeni este mult îmbunătăţit (mai
puternic şi mai rapid).
31 Sisteme imune artificiale
147
Metafora biologică a sistemelor imune stă la baza dezvoltării de
noi tehnici computaţionale şi a construirii de variate sisteme
evolutive numite sisteme imune artificiale.
Pentru definirea şi dezvoltarea unui sistem imun artificial sunt
luate în considerare următoarele aspecte:
- mecanismele imunologice reprezintă sursa de inspiraţie în
vederea construirii algoritmilor şi structurilor implicate;
- modelarea principiilor imunologice pentru descrierea unor
procese complexe ca: optimizarea, învăţarea, recunoaşterea
formelor, etc., rezultând de aici nelimitate aplicaţii potenţiale;
- înţelegerea şi exploatarea unui fenomen natural ca răspunsul
imun al unui organism deschide noi direcţii de cercetare în
scopul obţinerii a noi tehnici computaţionale menite să rezolve
probleme complexe;
Fără a surprinde în întregime complexitatea structurală şi
funcţională a unui sistem imun artificial, o posibilă definiţie a
acestuia este următoarea: Sistemul imun artificial este un sistem
computaţional bazat pe metafora biologică a sistemului imun
natural.
31.1.1 Modele biologice în sistemele imune artificiale
Timusul este un organ mic, situat în cavitatea toracică. Acesta
face parte din sistemul limfatic, ajută la maturarea limfocitelor T,
având rol foarte important in răspunsul imunitar al organismului.
După ce au fost generate celulele T, acestea migrează în timus unde
va avea loc procesul de maturare. În timpul procesului de maturare
sunt eliminate din populaţia de celule T toate celulelor T care au
recunoscut antigene proprii. Procesul acesta este denumit selecţie
negativă.
Celulele B care au recunoscut antigene străine vor prolifera şi
se vor diferenţia în celule memorie şi celule efectuare, proces
denumit selecţie clonală.
O teorie deosebit de interesantă este cea a existenţei unei aşa
numite reţele imune. Conform acestei teorii (Jerne, 1974), sistemul
imun este privit ca o vastă reţea de molecule şi celule care activează
şi se recunosc reciproc şi în absenţa vreunui antigen. Cu toate
148
controversele care le implică teoria sus-menţionată, ea devine un
idee atractivă pentru dezvoltarea unor modele computaţionale.
Cele trei procese descrise succint: selecţia negativă, selecţia
clonală şi reţeaua imună constituie principalele surse de inspiraţie în
dezvoltarea sistemelor imune artificiale.
32 Principiul selecţiei clonale
Principiul selecţiei clonale reprezintă algoritmul aplicat de
sistemul imun pentru a genera un răspuns imun la stimulul antigenic.
Ideea centrală a acestei teorii este că doar celulele care au calitatea
de a recunoaşte antigenele sunt selectate pentru proliferare
(clonare) în defavoarea celorlalte.
Principalele caracteristici ale acestei teorii sunt:
- noile celule imune sunt clone ale celulelor părinţi şi sunt
supuse unui mecanism de mutaţie cu rată mare (hipermutaţie
somatică);
- cele mai noi limfocite diferenţiate ce poartă receptori
autoreactivi sunt eliminate;
- proliferarea (clonarea) şi diferenţierea în celule memorie sau
celule plasmă la contactul celulelor mature cu antigenele;
- persistenţa clonelor interzise, rezistente la eliminarea
timpurie.
Algoritmul selecţiei clonale
De Castro şi Von Zuben (1999) [1.1.1.2] au propus un algoritm
bazat pe principiul selecţiei clonale cu rezultate bune în problemele
de recunoaşterea formelor şi optimizare multimodală. În cele ce
urmează este prezentat algoritmul selecţiei clonale aşa cum a fost
descris de către autorii acestuia.
Principiul selecţiei clonale este succesiunea de acţiuni
(algoritmul) efectuate de către sistemul imun pentru a descrie
răspunsul imun. Ideea de bază este aceea că celulele imune care au
capacitatea de a recunoaşte antigenele vor prolifera.
Algoritmul bazat pe principiul selecţiei clonale are în vedere
următoarele aspecte:
149
- Populaţia este alcătuită din două părţi, o
subpopulaţie P
r
şi o subpopulaţie cu rol de memorie M.
- Cei mai buni indivizi ai populaţiei P sunt
selectaţi în vederea generării unei populaţii intermediare P
n
.
- Indivizii populaţiei P
n
vor fi „clonaţi” – copiaţi în
mod repetat, formând astfel populaţia de clone C.
- Indivizii populaţiei C vor suferi modificări prin
mutaţii şi recombinări pentru a se constitui populaţia C
*
. O
parte a populaţiei C
*
va înlocui memoria M.
- Pentru a creşte gradul de diversitate al
populaţiei, un număr prestabilit de indivizi generaţi aleator
pot intra necondiţionat în populaţia P
r
, înlocuind o parte a
sa. Acest proces de reîmprospătare a populaţiei este
opţional.
- Soluţiile algoritmului se regăsesc în
subpopulaţia memorie M care, pe parcursul algoritmului a
reţinut cei mai performanţi indivizi.
Algoritmul Selecţiei Clonale este schiţat în cele ce urmează:
1. Generarea unei mulţimi P de soluţii candidat,
compusă dintr-o submulţime de celule memorie M şi o
subpopulaţie rămasă P
r
:
P=M ∪ P
r
.
2. Determinarea celor mai buni n indivizi ai
populaţiei P pe baza măsurării performanţei acestora. Fie
aceşti cei mai buni n indivizi reţinuţi în populaţia P
n
.
3. Clonarea indivizilor P
n
rezultând populaţia
intermediară de clone C.
4. Populaţia C este supusă mutaţiei rezultând
astfel o populaţie de clone maturizate C
*
.
5. Sunt re-selectaţi indivizi îmbunătăţiţi ai
populaţiei C
*
pentru a recompune submulţimea memorie M.
Unii indivizi din C
*
pot înlocui câţiva membrii ai populaţiei
P.
150
6. Înlocuirea a d indivizi cu afinităţi scăzute din
populaţia P cu alţi d noi indivizi generaţi, pentru păstrarea
diversităţii în populaţie.
33 Principiul selecţiei negative
În modelul natural al sistemului imun, la nivelul glandei timus,
are loc maturarea celulelor T. Procesul de maturare are ca rezultat
eliminarea din populaţia de celule T a acelora care au recunoscut
elemente proprii ale organismului. Practic toate celulele T care
părăsesc timusul vor intra în sistemul circulator având proprietatea
de a tolera elementele proprii organismului.
Principiul selecţiei negative reprezintă a paradigmă viabilă
pentru recunoaşterea formelor, prin memorarea informaţiilor despre
mulţimea complementară (elemente străine) a formelor de
recunoscut (elemente proprii).
Se consideră P – mulţimea de elemente proprii care se pot
recunoaşte şi vor fi protejate sau monitorizate (antigenele proprii).
Mulţimea M reprezintă mulţimea de detectori având scopul de a
identifica toate antigenele care nu aparţin mulţimii P, respectiv
antigenele străine.
Algoritmul selecţiei negative acţionează în două etape:
Etapa I. Generarea mulţimii de detectori M
1. Generează aleator mulţimea de candidaţi C
2. Compară elementele din C cu cele din mulţimea P.
a. Dacă un element P a∈ se potriveşte (este
recunoscut) cu un element din C, atunci
{ } a C C \ ·
şi
{ } a M M ∪ · .
Rezultatul acestei faze este mulţimea de detectori M.
Etapa II. Monitorizarea elementelor străine
Fie P’ – o mulţime de elemente de monitorizat.
1. Pentru toate elementele din mulţimea de detectori M d ∈
a. Dacă d recunoaşte elementul ' P a ∈ , acest
lucru se traduce printr-o detecţie a unor antigene
151
străine, datorită faptului că în etapa premergătoare
ne-am asigurat că mulţimea M NU recunoaşte
elementele proprii ale colecţiei de elemente
protejate. În acest caz se va apela o procedură
specifică.
Procedura care va fi apelată la o posibilă detectare a
antigenelor străine depinde de natura problemei de rezolvat şi nu
poate fi detaliată în această fază.
O altă aplicabilitate a principiului selecţiei negative o regăsim în
studii de specialitate dedicate detecţiei intruşilor în reţele de
calculatoare. Modelul biologic al sistemului imun oferă câteva
similitudini structurale şi funcţionale cu cele ale unui sistem
informatic prin care se asigură securitatea unei reţele de
calculatoare. Ambele sisteme monitorizează activitatea organismului,
respectiv a reţelei de calculatoare, şi prin acţiuni specifice resping
atacurile potenţialilor intruşi. Atât sistemul imun cât şi sistemul de
detecţie a intruşilor au capacitatea de a recunoaşte şi de a face
distincţia între cele două categorii de elemente: proprii (celulele
organismului, respectiv, activitatea reţelei de calculatoare) şi străine
(antigenele, respectiv, potenţialele atacuri informatice).
Primele studii dedicate implementării unui sistem de detecţie a
intruşilor inspirat de paradigma sistemului imun natural au apărut de
la sfârşitul anilor 90. Algoritmul central al sistemului propus este cel
al selecţiei negative.
34 Teoria reţelei imune
Ideea de bază a teoriei reţelei imune [1.1.1.2] este aceea
conform căreia sistemul imun natural are un comportament dinamic
şi în afara vreunui atac extern. Acest comportament este argumentat
de principiul interconectării moleculelor şi celulelor imune şi
capacităţii acestora de a se recunoaşte reciproc. Deşi teoria reţelei
imune este combătută de imunologi, cercetătorii din arealul
inteligenţei artificiale devin interesaţi de aceasta, considerând-o ca
fiind o importantă sursă de inspiraţie în dezvoltarea sistemelor imune
artificiale.
152
Printre încercările de dezvoltare a unei reţele imune artificiale
având ca sursă de inspiraţie teoria lui Jerne [1.1.1.2] se numără şi
propunerea prin care se urmăreşte obţinerea unui instrument
computaţional eficient în rezolvarea unor problemele de optimizare,
de clasificare sau de analiză a datelor. Reţeaua aiNET descrisă în
[1.1.1.2] şi sistemul imun artificial: RLAIS propus în [1.1.1.2] sunt
două dintre cele mai reprezentative modelări artificiale ale sistemelor
imune din perspectiva teoriei reţelei imune.
35 Principalele aplicaţii ale sistemelor imune
artificiale
Pentru mai multe informaţii privind aplicabilitatea sistemelor
imune artificiale a se vedea [1.1.1.2], [1.1.1.2]. Cele mai
reprezentative aplicaţii ale sistemelor imune artificiale sunt
enumerate în continuare:
- Recunoaşterea formelor;
- Aproximarea funcţiilor;
- Optimizare numerică;
- Analiza şi clasificarea datelor;
- Învăţarea automată;
- Detectarea anomaliilor;
- Securitatea calculatoarelor şi a reţelelor de
calculatoare;
- Control şi planificare.
153
CAPITOL VIII
36 Alte tehnici natural-evolutive
Fără a micşora din importanţa metodelor evolutive prezentate
în paragrafele următoare, am considerat oportună gruparea acestora
într-un singur capitol. Popularitatea celorlalte tehnici prezentate în
această carte pare că umbreşte interesul pentru dezvoltarea
metodelor descrise în capitolul curent; acest fapt este demonstrabil
printr-o parcurgere a bibliografiei dedicate subiectelor, care relevă un
decalaj cantitativ al materialelor dedicate primelor categorii, în
defavoarea tehnicilor enumerate în continuare.
37 Sisteme de Clasificare Instruibile
Sistemele de clasificare instruibile (LCS) au fost introduse de
Holland [1.1.1.2], cel care este de altfel şi unul dintre principalii
creatori ai Algoritmilor Genetici. În definiţia originală un sistem de
clasificare este un sistem bazat pe reguli, înzestrat cu mecanisme
prin care regulile sunt testate şi procesate în mod paralel în scopul
generării de noi reguli mai bune. Un astfel de sistem este capabil să
înveţe să efectueze cele mai bune acţiuni în funcţie de informaţiile
de intrare.
Sub titulatura de Learning Classifier System sunt grupate
tehnici de învăţare automată care combină algoritmi evolutivi,
proceduri de învăţare prin interacţiune (reinforcement learning) şi
diverse alte euristici pentru generarea unor sisteme adaptive.
154
Algoritmii evolutivi şi principiile ce stau la baza construirii lor au fost
descrişi pe larg în acest volum. Învăţarea prin interacţiune [1.1.1.2]
reprezintă o formă de învăţare computaţională în care un agent este
proiectat în scopul maximizării unor recompense pe care le
dobândeşte prin interacţiunea cu mediul.
Literatura dedicată subiectului cuprinde două variante
importante ale sistemelor de clasificare instruibile descrise de
Holland. Diferenţa majoră a celor două constă în maniera în care se
defineşte funcţia de performanţă (fitness):
- ZCS - strength-based classifier system
- XCS - accuracy-based classifier system
Vom prezenta în continuare structura standard a unui sisteme
de clasificare: LCS, aşa cum a fost descris original de inventatorul
acestora, dar şi cele două variante derivate din acesta: ZCS şi XCS.
37.1.1 LCS
Noţiunea de sistem de clasificare a fost introdus de Holland şi
Reitman (1978) [1.1.1.2] şi defineşte o clasă de sisteme de reguli,
compuse din:
- mulţimea de clasificatori: un clasificator este în esenţă o
regulă de tipul IF...THEN....
- procedură de evaluare a performanţelor care se dirijează
acţiunile sistemului în mediu dat
- un algoritm de învăţare utilizat în scopul urmăririi
succeselor înregistrate de clasificatori
- un algoritm genetic prin care mulţimea de reguli
evoluează în sensul obţinerii unor reguli mai bune.
Ulterior, în studiile lui Holland, sistemele de clasificare au fost
înzestrate cu mecanisme de învăţare prin interacţiune, devenind
sisteme de clasificare instruibile.
Modelul descris de Holland în 1986 [1.1.1.2] presupune
receptarea unor date de intrare codificate binar, pe baza cărora
sistemul generează răspunsul potrivit şi efectuează acţiuni de
modificare a stării mediului.
Intrările sistemului sunt reţinute într-o zonă de memorie
denumită sugestiv lista de mesaje. O populaţie de n clasificatori
155
{ }
n
r r P ,...,
1
· este iniţial generată aleator şi ulterior evolută printr-
un algoritm genetic. Fiecare clasificator
i
r are semnificaţia unei
reguli de tipul: IF condiţie Then acţiune şi codifică condiţia şi acţiunea
în format binar. Alfabetul binar
} 1 , 0 {
simbolului generic # care poate înlocui atât simbolul 1, cât şi
simbolul 0. În anumite situaţii, condiţiile şi acţiunile regulilor sunt
secvenţe de simboluri ale alfabetului ternar
} # , 1 , 0 {
.
La apariţia unui mesaj de intrare, reprezentat printr-o secvenţă
binară, populaţia de reguli (clasificatori) este scanată în vederea
determinării acelor reguli ale căror condiţii se potrivesc intrării
curente. Mesajul de intrare şi condiţia regulii sunt secvenţe de
lungime egală k.
Un mesaj ( )
k
m m m ,...,
1
· ,
{ } k i ,..., 2 , 1 ∈ ∀
,
{ } # , 1 , 0 ∈
i
m se
potriveşte condiţiei ( )
k
c c c ,...,
1
· , { } k i ,..., 2 , 1 ∈ ∀ , { } 1 , 0 ∈
i
c dacă
{ } k i ,..., 2 , 1 ∈ ∀ , ' # ' · ∨ ·
i i i
c c m
Submulţimea de reguli care „recunosc” secvenţa de intrare
formează mulţimea de potrivire M (match-set). Din mulţimea M se va
alege regula câştigătoare, a cărei acţiune devine activă. Mesajul de
intrare curent este eliminat şi secvenţa de codificare a acţiunii regulii
selectate va fi rescrisă în lista de mesaje în vederea pregătirii
următoarei iteraţii. De asemenea, lista de mesaje poate fi completată
cu acţiunile altor reguli selectate din mulţimea de potrivire.
Fiecare regulă r din mulţimea de potrivire M, la momentul t,
este calificată printr-o valoare λ calculată prin formula:
( ) ( ) ( ) t r fitness t r spec t r , , , ⋅ ⋅ ·β λ
,
unde:
-
β
este o constantă subunitară
- spec(r,t) are semnificaţia relevanţei regulii r şi reprezintă
numărul de simboluri din condiţia regulii diferite de
simbolul neutru #
- fitness(r,t) reprezintă performanţa regulii r la momentul t
Valoare
( ) t r, λ
este denumită în mod sugestiv licitaţie, având
semnificaţia unei oferte plasate de clasificatorul r la momentul t.
156
Procedura de alegere a regulilor active care vor furniza acţiunea
sistemului este o procedură de selecţie proporţională cu valorile λ.
Cele mai bune reguli vor fi răsplătite în mai mare măsură în timp ce
regulile slabe vor fi penalizate. Un clasificator este cu atât mai bun cu
cât are capacitatea de a propune acţiuni eficiente în situaţiile
corespunzătoare. Eficienţa este estimată printr-un algoritm de
învăţare prin instruire, propus de Holland sub denumirea de Bucket
Recompensa primită de clasificatorii selectaţi este media
valorilor λ înregistrate de cei mai buni clasificatori (regulile
câştigătoare). Mecanismul de instruire se realizează printr-o
procedură simplă de partajare a performanţelor regulilor
câştigătoare.
Mulţimea de clasificatori P este evoluată printr-un Algoritm
Genetic. Fiecare individ al populaţiei este reprezentarea unei reguli,
respectiv, codificarea binară a cele două părţi: condiţie şi acţiune.
Operatorii genetici de încrucişare şi mutaţie vor genera noi reguli pe
baza celor mai performante reguli ale mulţimii curente. Selecţia
părinţilor noii populaţii se face proporţional cu valoarea
performanţelor. Probabilitatea de selecţie a unui clasificator
i
r
, în
vederea aplicării ulterioare a operatorilor genetici, este dată de
formula:
( )
( )
( )

·
P r
i
i
S
t r fitness
t r fitness
t r p
,
,
,
În cazul unui sistem LCS, rezultatul Algoritmului Genetic este
interpretat în mod diferit faţă de situaţia clasică a optimizării: nu se
doreşte determinarea celui mai performant clasificator, ci obţinerea
unei mulţimi de reguli care împreună realizează comportamentul
dorit.
Fiecărui clasificator îi este ataşată o valoare fitness prin care se
estimează utilitatea clasificatorului în colectarea recompensei
externe. Două direcţii importante se disting în dezvoltarea sistemelor
de clasificare instruibile: abordările ZCS şi XCS, ale cărei diferenţă
majoră constă în procedura de estimare a valorilor fitness.
37.1.2 ZCS
157
Abordarea ZCS (Zeroth Level Classifier System) a fost introdusă
de Wilson în 1994 [1.1.1.2]. Sistemul descris de Wilson păstrează o
mare parte din structura originală al sistemelor LCS propuse de
teoretic dar totodată se doreşte o îmbunătăţire a performanţelor
sistemelor de clasificare instruibile.
Spre deosebire de modelul descris de Holland, sistemul ZCS:
- nu utilizează lista de mesaje
- nu utilizează valori de licitaţie ale clasificatorilor
- nu face uz de simbolul neutru # în reprezentarea acţiunilor
regulilor
- alegerea regulilor care vor furniza acţiunea sistemului se
face din mulţimea de potrivire, strict pe baza valorilor de
performanţă.
Mulţimea de potrivire M se determină în mod analog abordării
originale LCS. Regulile care recunosc mesajul de intrare vor forma
mulţimea M. Din mulţimea M, cea mai performantă regulă, conform
funcţiei fitness, devine activă. Această regulă, împreună cu toţi
membrii mulţimii M care furnizează acţiuni identice regulii
câştigătoare, vor constitui mulţimea regulilor active A (mulţimea
regulilor ce vor forma acţiunea sistemului). Toţi membrii mulţimii A,
vor contribui cu o fracţiune fixă (
1 0 ≤ <β
) din performanţă la
construirea unei valori comune:
( )

⋅ ·
A a
t a fitness B , β .
Fitness-ul fiecărui membru al populaţiei A va fi micşorat cu
cantitatea corespunzătoare reţinută în valoarea comună B.
( ) ( ) ( ) t a fitness t a fitness t a fitness , , , ⋅ − · β
(1)
Dacă prin efectuarea acţiunii unui clasificator a, A ∈ a sistemul
obţine o recompensă imediată w, atunci performanţa fiecărui
clasificator din mulţimea A va fi mărită cu o cantitate:
A
w ⋅ β
:
( ) ( )
A
w
t a fitness t a fitness

+ ·
β
, ,
(2)
Mulţimea A’ este formată din regulile active identificate în
etapa anterioară. Dacă Φ ≠ A' atunci performanţele acelor
158
clasificatori a’ reţinuţi în mulţimea A’ vor fi mărite cu o cantitate
A'
B ⋅ γ
, unde
1 0 ≤ <γ
:
( ) ( )
A'
B
t a fitness t a fitness

+ ·
γ
, ' , '
(3)
Mulţimea A va înlocui mulţimea A’ şi valoarea B va fi fixată la 0.
De asemenea, pentru a încuraja exploatarea clasificatorilor
performanţi, elementele mulţimii M care nu fac parte din mulţimea
activă A pot fi penalizate: performanţele clasificatorilor care recunosc
mesajul de intrare dar în schimb furnizează altă acţiune decât cea
activă, vor fi micşorate cu o fracţiune
τ
,
β τ ≅
.
Actualizarea mulţimii active A implică o recalculare a valorilor
fitness urmând etapele descrise anterior.
Un algoritmul genetic are scopul de a produce noi clasificatori.
La fiecare iteraţie t, cu o probabilitate prestabilită, algoritmul genetic
va fi apelat. Acţiunea acestuia constă în selectarea părinţilor pe baza
valorii de performanţă, aplicarea operatorilor specifici (recombinare,
mutaţie) şi înlocuirea populaţiei vechi cu noii descendenţi obţinuţi.
Fiecare părinte va transmite jumătate din valoarea fitness unui
descendent propriu. În această manieră, fitness-ul total al părinţilor şi
descendenţilor se conservă.
Există situaţia în care mulţimea de potrivire M este vidă sau nu
conţine clasificatori ale căror valoare totală de performanţă să
depăşească o fracţiune predefinită
ϕ
a mediei performanţei
populaţiei P. În acest caz o procedură suplimentară covering este
apelată în scopul completării acţiunii algoritmului genetic. Rolul
acesteia este de a produce noi clasificatori ale căror condiţii se
potrivesc mesajului de intrare şi conţin un număr aleator de simboluri
neutre #. Acţiunile clasificatorilor generaţi de procedura covering
sunt secvenţe aleatore de simbolurile binare. Unii membrii ai
populaţiei P vor fi înlocuiţi de noii indivizi produşi şi algoritmul
general al sistemului va fi reluat din etapa de determinare a mulţimii
de potrivire M. Procedura covering nu utilizează informaţiile
populaţiei P, precum algoritmul genetic, însă se dovedeşte benefică
din moment ce situaţia nerecunoaşterii mesajului de intrare de către
clasificatorii din P este posibilă şi nu poate fi evitată.
159
37.1.3 XCS
Sistemele XCS propuse de Wilson [1.1.1.2] diferă de sistemele
de clasificare ZCS şi LCS prin maniera în care este calculată
performanţa clasificatorilor, dar şi prin câteva aspecte ale
algoritmului genetic utilizat.
Prin predicţie se înţelege măsura cantitativă a recompensei
aşteptate de clasificator în situaţia executării acţiunii acestuia. În
sistemele XCS , performanţa unei reguli este estimată pe baza
acurateţii predicţiei pe care o efectuează şi nu pe baza recompensei
primite. Astfel, algoritmul genetic aplicat populaţiei de clasificatori va
favoriza supravieţuirea acelor clasificatori care au realizat o estimare
bună a recompensei (fie aceasta mare sau mică) în defavoarea
acelora care prezic recompense mari.
Fiecare clasificator va fi însoţit de următorii trei parametri:
- predicţia p, având semnificaţia recompensei aşteptate
- eroarea e a predicţiei
- fitness-ul clasificatorului F
Calcularea valorii de fitness a unui clasificator oarecare se
realizează prin parcurgerea următoarelor etape:
1. Actualizarea predicţiei p:
( ) p r p p − + · β
,
unde prin r s-a notat valoarea recompensei primate,
β
- constantă subunitară.
2. Actualizarea erorii predicţiei:
( ) e p r e e − − + · β
3. Determinarea acurateţii predicţiei:
¹
¹
¹
'
¹

,
_

¸
¸
<
·

altfel
e
e
e e daca
k
v
0
0
1
α

, unde 0 > v .
4. Determinarea acurateţii relative a predicţiei, calculată în
funcţie de valorile acurateţii celorlalţi clasificatori din
mulţimea regulilor active A.
160

·
A x
x
k
k
k'
5. Actualizarea fitness-ului:
( ) F k F F − + · ' β
Apariţia noilor clasificatori este datorată unui algoritmul genetic
AG şi a procedurii covering (similară celei descrise la sistemele ZCS).
Algoritmul genetic este aplicat la fiecare
AG
t
iteraţii asupra mulţimii
active A, şi nu asupra populaţiei P. Părinţii noii generaţii de
clasificatori sunt selectaţi din mulţimea A în manieră proporţională cu
fitness-ul. Deoarece populaţia globală este considerată de
dimensiune constantă, adăugarea noilor clasificatori obţinuţi prin
operatori genetici implică ştergerea unor clasificatori ai generaţiei
curente. Selectarea indivizilor ce vor fi şterşi se face pe baza
estimării dimensiunii mulţimii active A din care fac parte, în mod
proporţional cu valoarea estimată.
Ne rezumăm la a enumera în continuare principalele aplicaţii
ale sistemelor de clasificare:
- data minning
- optimizare
- modelare
- probleme de control
38 Algoritmi memetici
Algoritmii memetici reprezintă o altă direcţie importantă în
Calculul Evolutiv. Ideea de bază al acestei clase de tehnici este de a
combina principiile căutării globale cu cele ale exploatării locale în
cadrul unei populaţii evoluate printr-un algoritm evolutiv. Modelul
natural este evident: evoluţia unei populaţii este însoţită de învăţarea
individuală a membrilor săi de-a lungul duratei de viaţă. Practic un
algoritm memetic este un algoritm evolutiv care accentuează
rafinarea indivizilor printr-un proces separat de căutare locală.
Datorită combinării algoritmului evolutiv cu procedurile de
căutare locală (spre exemplu Hill Climbing), algoritmii memetici mai
sunt cunoscuţi sub denumirea de algoritmi evolutivi hibrizi.
161
Denumirea algoritmilor memetici este inspirată din noţiunea de
meme introdusă de Dawkins în 1976 [1.1.1.2] . Acesta defineşte
conceptul de meme ca genă culturală, respectiv, acea trăsătură
individuală care este supusă adaptării înainte de a fi transmisă
generaţiei următoare. Precum gena este definită ca unitate
informaţională, purtătoare de caracteristici biologice, structurale şi
interactive ale individului, meme este definită ca o unitate
informaţională ipotetică, purtătoare de informaţie culturală.
Structura generală a unui algoritm memetic este descrisă în
continuare:
Algoritmul AM este:
Fie
( ) 0 P
- populaţia iniţială; 0 · t ;
LocalSearch(
( ) 0 P
)
Evaluare( ( ) t P )
Câttimp (NOT condiţie de terminare)
( ) t P
S
=Selecţie (
( ) t P
)
( ) t P
M
=Mutaţie( ( ) t P
S
)
CăutareLocală( ( ) t P
M
)
Evaluare( ( ) t P
M
)
( ) ( ) ( ) t P Generatie CreareNoua t P
M
· +1
t:=t+1
SfCâttimp
SfAlgoritm
Procedura de căutare locală este utilizată în scopul creşterii
valorilor de performanţă ale indivizilor generaţiei curente. În acest
sens se pot alegere euristici variate prin care un individ înregistrează
un progres local. O procedură simplă de căutare locală este descrisă
mai jos:
Procedura Local(curent) este:
Repeta
Generează în vecinătatea individului curent un nou
individ: vecin
Dacă fitness(vecin)>fitness(curent) atunci
curent=vecin
SfDacă
Pânăcând (condiţie de terminare)
162
SfProcedură
Efectul procedurii de căutare locală este găsirea unui individ mai
performant din vecinătatea celui curent care să-l înlocuiască pe
acesta în evoluţia ulterioară. Algoritmul memetic poate cuprinde o
procedură de rafinare locală a tuturor membrilor populaţiei sau doar
a unei submulţimi a acesteia, selectate pe baza unor condiţii
specifice.
39 Differential evolution
Differential Evolution [1.1.1.2] este o metodă de rezolvare a
problemelor de optimizare, care împrumută caracteristici ale
Strategiilor Evolutive. În general, Differential Evolution este asociată
cu optimizarea funcţiilor multidimensionale. Tehnica este valoroasă şi
în cazul optimizării multimodale, fiind capabilă să determine multiple
optime ale problemei de rezolvat. O succintă caracterizare a metodei
DE se deduce din următoarele afirmaţii:
- DE este o metodă de căutare bazată pe populaţie;
- DE utilizează codificare reală a soluţiilor candidat;
- DE foloseşte un procedeu specific de mutaţie;
- Algoritmii DE sunt comprehensibili şi simplu de
implementat, oferind soluţii bune;
Structura generală a unui algoritm DE nu diferă semnificativ de
structura algoritmului evolutiv standard. Se parcurg aceleaşi etape:
iniţializare populaţie, construire nouă generaţie prin aplicarea
operatorilor de selecţie, mutaţie, recombinare, repetarea procesului
până la validarea unei condiţii de terminare. Esenţa metodei este
dată de operatorul de mutaţie specific: differential mutation.
Se consideră o problemă de minimizare a unei funcţii
R D f → :
,
n
R D ⊆ . Fiecare individ ( ) t x
i
al populaţiei P la generaţia t
este un vector n-dimensional reprezentând o soluţie posibilă a
spaţiului de căutare D:
( ) ( ) ( ) ( ) ( ) t x t x t x t x
n
i i i i
,..., ,
2 1
·
Populaţia P la fiecare generaţie t este constituită dintr-un număr
de minim 4 elemente:
163
( ) ( ) ( ) ( ) { } t x t x t x t P
m
,..., ,
2 1
· , unde 4 ≥ m
Iniţializarea populaţie constă în definirea limitelor inferioară şi
superioară pentru fiecare parametru al vectorilor soluţie şi generarea
aleatoare cu o distribuţie uniformă în intervalul definit, a valorilor
parametrilor:
{ } m i ,..., 2 , 1 ∈ ∀ ,
{ } n j ,..., 2 , 1 ∈ ∀ , [ ]
j j j
i
x x x
sup inf
, ∈ .
Pentru un număr de Tmax generaţii, sau cât timp o condiţie
prestabilită este validă, populaţia va fi supusă operatorilor de:
mutaţie, recombinare şi selecţie. Dintre aceşti operatori ne vom opri
asupra operatorului de mutaţie prin care se aduce principala
diferenţă a metodei DE faţă de ceilalţi algoritmi evolutivi.
Mutaţia presupune crearea unui nou vector mutant obţinut
printr-o combinare a trei vectori distincţi ai populaţiei curente,
selectaţi în mod aleator. În această etapă, părintele (individul curent)
nu contribuie la formarea noului vector:
1. Fie
i
x
- individul curent.
2. Generează aleator 3 valori distincte
{ } m i i i ,..., 2 , 1
3 2 1
∈ ≠ ≠
,
reprezentând indici din populaţia curentă a trei vectori:
1 i
x ,
2 i
x ,
3 i
x .
3. Vectorul mutant
i
y
este format, aplicând regula:
( )
3 2 1 i i i i
x x F x y − ⋅ + · , unde:
F – se numeşte factor de mutaţie şi are valori cuprinse
în intervalul: [0,2]
Vectorul rezultat
i
y se numeşte vector donor
Recombinarea se aplică imediat asupra vectorului părinte şi
asupra vectorului donor producând un nou individ de încercare care
moşteneşte atât trăsături ale părintelui cât şi trăsături noi, obţinute
din vectorul donor. Dacă notăm noul vector rezultat
i
z , atunci:
4. Fie
i
x
- individul curent şi
i
y
- vectorul donor obţinut la
punctul 3
5. Vectorul ( )
n
i i i i
z z z z ,..., ,
2 1
· se obţine astfel:
164
{ } n j ,..., 2 , 1 ∈ ∀
,
¹
'
¹
· ≤
≠ >
·
Ind CR sau j d dacădacă v
Ind CR şR ş dacăacă r x
z
j
i
j
i j
i
Unde:
- Ind este un număr natural selectat aleator din
mulţimea indicilor
{ } n ,..., 2 , 1
, utilizat în formula de
determinare a vectorului
i
z în scopul obţinerii unui
vector
i
z diferit de vectorul donor
i
y
- CR – reprezintă o valoare subunitară cu semnificaţia
probabilităţii de a accepta trăsături din vectorul
donor
- Rand este o valoare generată aleator în intervalul
[0,1]
Selecţia constă în compararea valorilor de performanţă a
vectorului părinte şi a vectorului de încercare şi supravieţuirea în
noua generaţie a celui care este mai performant:
6. Dacă performanţa(
i
x
)>performanţa(
i
z
) atunci
i
x supravieţuieşte în noua generaţie
Altfel
i
z îl înlocuieşte pe
i
x în noua generaţie
SfDacă
Paşii 1,2,...,6 descrişi mai sus se execută în mod repetat până la
îndeplinirea unei condiţii de terminare a algoritmului. Această
condiţie se poate referi la atingerea unui număr maxim prestabilit de
generaţii.
Aparent similară algoritmilor evolutivi (strategii evolutive,
algoritmi genetici), prin maniera specifică de creare a noilor indivizi,
metoda DE oferă rezultate surprinzător mai bune decât aceştia în
multe probleme de optimizare. Mai mult, s-a demonstrat
superioritatea metodei DE faţă de metoda Simulated Annealing,
pentru o bogată paletă de probleme de optimizare (vezi de ex.
[1.1.1.2]) .
Crowding Differential Evolution [1.1.1.2] este un algoritm
Differential Evolution îmbunătăţit cu un mecanism de menţinere a
diversităţii populaţiei. Ideea de bază a algoritmului constă în
165
înlocuirea de către descendenţi a celor mai apropiaţi – similari
părinţi din vecinătate. Algoritmul CrowdingDE se aplică cu succes în
optimizarea multimodală, reuşind să menţină în cadrul populaţiei
multiplele optime ale problemelor considerate.
166
CAPITOL IX
40 Aplicaţii în optimizare
Prin definiţia lor, algoritmii evolutivi sunt dedicaţi rezolvării
problemelor de optimizare. Capitolul curent prezintă modul în care
algoritmii evolutivi abordează această clasă de probleme, evidenţiind
particularităţile, avantajele şi dezavantajele utilizării tehnicilor
evolutive, cât şi principalele rezultate obţinute în domeniu.
41 Algoritmi evolutivi pentru optimizare unicriterială
Primele aplicaţii de succes ale algoritmilor evolutivi (genetici)
constau în rezolvarea problemelor de optimizare unicriterială.
Succesul înregistrat în această primă etapă a dezvoltării direcţiei
Algoritmilor Evolutivi a generat o accentuare a cercetării pe această
traiectorie neconvenţională, implicit, conducând la popularizarea
tehnicilor evolutive dezvoltate.
Paragrafele următoare prezintă elementele specifice acestui
subiect.
Problema generală de optimizare unicriterială
Problema generală de optimizare unicriterială fără restricţii este
formulată astfel:
Fie f o funcţie
R D f → :
,
n
R D ⊆ .
167
P:
( )
¹
'
¹

D x
x f min
Funcţia f se numeşte criteriu sau funcţia obiectiv.
Pentru a rezolva această problemă de optimizare (minimizare)
suntem interesaţi să determinăm vectorul D x ∈
*
de variabile decizie
care satisface definiţia de optim (minim) global:
Definiţie 1: (minim global) Fie
R D f → :
,
n
R D⊆ . Spunem că
D x ∈
*
este punct de minim global al funcţiei f dacă:
( ) ( ) x f x f D x ≤ ∈ ∀
*
, .
În anumite situaţii, contextul problemei nu permite
determinarea optimului global, sau impune ca soluţia să satisfacă
doar definiţia optimului local:
Definiţie 2: (minim local) Fie
R D f → :
,
n
R D ⊆ . Spunem că
D x ∈
*
este punct de minim local al funcţiei f dacă:
( ) ( ) ( ) ( ) D x V x , x f x a.î. f x V
* * *
∩ ∈ ∀ ≤ ∃ ,
unde prin ( )
*
x V am notat vecinătatea lui
*
x .
41.1.1 Avantaje şi dezavantaje ale algoritmilor evolutivi
pentru rezolvarea problemelor de optimizare
unicriterială
Particularităţile problemelor de optimizare unicriterială,
respectiv complexitatea acestora, susţin utilizarea metodelor
evolutive în rezolvarea acestei clase de probleme. Obiectivele
problemelor în cauză sunt traduse prin funcţii ale căror valori optime
suntem interesaţi să le determinăm. În general, tehnicile tradiţionale
non-evolutive pretind funcţiei - funcţiilor de optimizat îndeplinirea
unor condiţii suplimentare de genul: derivabilitate, continuitate,
convexitate, etc. Abordarea evolutivă elimină acest neajuns, forma
funcţiei şi caracteristicile acesteia nealterând maniera de rezolvare a
problemei de optimizat. În plus, în situaţia problemelor de optimizare
168
unicriterială reală, evaluarea performanţelor soluţiilor candidat se
face în general prin intermediul funcţiei obiectiv.
Un alt argument în favoarea exploatării tehnicilor evolutive
constă în simplitatea implementării unor astfel de algoritmi.
În situaţia în care o aproximare a soluţiei nu este de ajuns,
există suficiente argumente ce pledează în favoarea utilizării
tehnicilor clasice de rezolvare. Algoritmul evolutiv nu oferă în general
decât o soluţie aproximativă, astfel încât, nevoia de determinare a
soluţiei exacte elimină în multe situaţii folosirea acestor metode,
recomandând metodele clasice. În anumite probleme considerate
grele, cu un înalt grad de dificultate şi complexitate, ineficienţa
tehnicilor clasice conduce la optarea pentru algoritmii evolutivi, pe
principiul: o soluţie aproximativă, mulţumitoare, este de preferat unei
rezolvări ineficiente.
Algoritmii evolutivi s-au dovedit a fi instrumente bune de
rezolvare a problemelor de optimizare. De asemenea, în multe
situaţii aceştia au reuşit să furnizeze soluţii mai bune decât metodele
tradiţionale de optimizare. Aceştia sunt folosiţi cu succes în cazul
problemelor considerate “grele”, cu un grad mare de complexitate,
precum optimizarea multimodală, problemele de optim nestaţionar,
optimizarea multicriterială, etc.
41.1.2 Particularităţi ale algoritmilor evolutivi de
optimizare unicriterială
Fiind dată o problemă generală de optimizare reală unicriterială
P, pentru a aplica un algoritm evolutiv A de rezolvare a acesteia, este
necesară în prealabil evidenţierea câtorva elemente definitorii ale
acestuia: modalitatea de codificare a soluţiilor, dimensiunea
populaţiei, operatorii genetici utilizaţi, tehnica de selecţie şi nu în
ultimul rând funcţia de performanţă – funcţia prin intermediul căreia
se evaluează calitatea fiecărui individ al populaţiei.
În general, în cazul optimizării reale unicriteriale, funcţia de
performanţă coincide sau derivă din funcţia obiectiv. Presupunând că
se doreşte determinarea maximului funcţiei obiectiv f din domeniul
D, unde:
R D f → :
şi
n
R D ⊆ , este natural să considerăm o
169
codificare reală a soluţiilor posibile şi să definim ca funcţie de
evaluare însăşi funcţia de maximizat.
Astfel, fiecare cromozom al populaţiei reprezintă chiar un punct
din spaţiul de căutare:
( ) D x x x x
n
∈ · ,..., ,
2 1
Operatorii genetici folosiţi sunt aleşi dintre cei specifici
codificării reale. De asemenea, tehnica de selecţie este aleasă în
concordanţă cu contextul problemei. Posibile variante de operatori
genetici şi tehnici de selecţie sunt descrise pe larg în lucrări
reprezentative ale literaturii încadrate domeniului abordat (vezi de
ex. [1.1.1.2], [1.1.1.2]).
Un alt aspect al implementării unui algoritm evolutiv în cazul unei
probleme de optimizare unicriterială reală îl reprezintă condiţia de
oprire. În ce situaţii algoritmul poate fi considerat încheiat şi ne poate
furniza soluţia finală? Sunt precizate în continuare trei posibile
mijloace de a considera încheiat procesul de optimizare:
- atingerea unui număr oarecare de generaţii;
- uniformizarea populaţiei: atingerea unui grad
oarecare prestabilit al diversităţii populaţiei;
- încetinirea procesului de căutare, spre exemplu:
dacă în ultimele k generaţii ale algoritmului
populaţia nu şi-a modificat în esenţă conţinutul,
algoritmul se poate considera încheiat;
- obţinerea unei soluţii de calitatea dorită.
Pentru a nu se pierde soluţii bune prin trecerea de la o
generaţie la alta, algoritmul poate fi suplimentat printr-o formă de
elitism. Cea mai simplă manieră de implementare a elitismului este
aceea de a transfera nemodificat cel mai bun individ (sau cei mai
buni m indivizi) al generaţiei curente în noua generaţie.
41.1.3 Explorare versus exploatare
Comportamentul algoritmului evolutiv pentru rezolvarea
problemelor de optimizare în general şi în particular a problemelor de
optimizare unicriterială este strâns legat de conceptele de exploatare
şi explorare a spaţiului de căutare. Mai mult, se poate aprecia, că un
bun echilibru între cele două aspecte ale căutării ar putea constitui
170
cheia succesului unui algoritm evolutiv. Pentru început, vom descrie
cele două concepte discutate în acest paragraf, urmând a justifica
afirmaţia precedentă şi a analiza legătura dintre acestea şi efectul de
convergenţă prematură.
Explorarea spaţiului de căutare ar putea fi cuantificată prin
gradul de acoperire a spaţiului soluţiilor posibile din care se doreşte
extragerea soluţiei optime globale, în dinamica procesului de
căutare. O explorare ineficientă a spaţiului de căutare poate conduce
la capcana convergenţei premature înspre un punct de optim local.
Exploatarea spaţiului de căutare se defineşte printr-o
accentuare a căutării în zonele care se dovedesc promiţătoare. În
absenţa acestui fenomen, în ciuda unei explorări eficiente,
apropierea de optimul global este îngreunată. Referindu-ne strict la
optimizarea globală, o exploatare prea intensă a spaţiului de căutare
ar putea fi sursa unei convergenţe premature înspre un optim local,
perceput greşit ca soluţia globală a problemei.
Cele două aspecte ale căutării conturate mai sus sunt legate
datorită faptului că un grad ridicat de explorare a spaţiului de
căutare poate reduce gradul de exploatare a zonelor promiţătoare,
respectiv capacitatea algoritmului de a converge înspre punctele de
optim; reciproc, exploatarea accentuată a zonelor promiţătoare
reduce substanţial capacitatea de explorare eficientă a spaţiului
soluţiilor posibile, respectiv, capacitatea algoritmului de a descoperi
şi alte zone promiţătoare.
O altă interpretare a echilibrului explorare-exploatare poate fi
furnizată prin prisma a două concepte specifice problematicii
algoritmilor evolutivi, respectiv convergenţa şi diversitatea
populaţiei. Dacă explorarea eficientă a spaţiului de căutare este
intensă a teritoriilor promiţătoare - privilegiate ale spaţiului de
căutare - este tradusă prin convergenţa populaţiei înspre soluţiile de
optim.
Intuitiv, un bun echilibru între aceste două aspecte ale căutării
se dovedeşte a fi una dintre cerinţele esenţiale în dezvoltarea unui
algoritm evolutiv. Parametrizarea algoritmilor evolutivi permite
factorului uman ajustarea echilibrului explorare-exploatare pe o
problemă concretă. Cu toate acestea, stabilirea unui echilibru
171
explorare-exploatare rămâne o notă problematică în economia
dezvoltării şi aplicării algoritmilor evolutivi în optimizare.
41.1.4 Elitismul
Elitismul a reprezentat întotdeauna un subiect major de discuţie
în arealul Calculului Evolutiv. În procesul evoluţiei populaţiei, indivizi
performanţi din generaţiile intermediare ar putea fi pierduţi în urma
aplicării operatorilor genetici specifici (recombinare, mutaţie,
inversiune). Acest fenomen nu este de dorit, dat fiind faptul că
procesul de convergenţă a populaţiei înspre soluţia optimă este
încetinit. Din aceste considerente s-au căutat variate mecanisme de
supravieţuire a indivizilor performanţi de la o generaţie la alta, în
scopul accelerării convergenţei algoritmului evolutiv. Literatura de
specialitate recomandă şi validează abordări evolutive elitiste, pe
care ne propunem să le enumerăm în cele ce urmează.
Pentru a nu se pierde soluţii bune prin trecerea de la o
generaţie la alta, algoritmul poate fi suplimentat printr-o formă de
elitism. Cea mai simplă manieră de implementare a elitismului este
aceea de a transfera nemodificaţi cei mai buni n indivizi al generaţiei
curente în noua generaţie.
O altă formă de elitism o reprezintă aceea prin care nu se
permite ca părinţi performanţi să fie înlocuiţi în noua generaţie de
către descendenţi proprii mai slabi. Deşi prin implementarea acestei
forme de elitism, gradul de explorare a spaţiului de căutare are de
suferit, avantajul cert rezidă din faptul că nu este permisă
îndepărtarea populaţiei curente de zonele dovedite deja a fi
promiţătoare.
Un alt mecanism de elitism, utilizat cu precădere în probleme
de optimizare multicriterială, constă în utilizarea, în mod explicit, a
unei populaţii suplimentară de “elite” – denumită arhivă sau
memorie externă.
41.1.5 Tratarea restricţiilor
Fiind date funcţiile:
R R h ,..., h , g ,..., g f,
n
k 1 m 1
→ :
172
să se determine punctele de minim ale funcţiei f relative la
mulţimea:
( ) ( ) { } k 1, j 0, x ,h m 1, i 0, x g : R x F
j i
n
· ≥ · · ∈ ·
Formal o astfel de problemă se notează (vezi notaţia (1) ).
( )
( )
( ) ¹
¹
¹
¹
¹
'
¹
· ≥
· ·

,...,k , ,j x
j
h
,...,m , ,i x
i
g
ctiile sub restri
x f
2 1 0
2 1 0
min
(1)
Funcţiile:
m 1,2,..., i g
i
· ,
p 1,2,..., i h
i
· ,
din formula (1) reprezintă restricţiile de egalitate, respectiv,
restricţiile de inegalitate.
Cea mai populară metodă de tratare a restricţiilor este metoda
funcţiilor de penalizare. Funcţia criteriu este modificată prin
adăugarea unor termeni suplimentari modelând restricţiile. Astfel,
dacă o soluţie x violează o restricţie g
i
atunci, funcţia criteriu va fi
amendată (penalizată) cu un factor proporţional cu
( )
2
) ( x g
i
.
Pentru a trata restricţiile inegalităţii se va considera o funcţie:
R R t → : :
( )
.

¹
'
¹

<
·
0 , 0
0 ,
a
a a
a t
(2)
Problemei de minim îi vom ataşa următoarea funcţie de
penalizare:
( ) ( ) ( ) ( ) ( ) ( ) [ ] .
2
1 1
2
∑ ∑
· ·
+ + ·
k
j
j
m
i
i
x h t x g x f x P
(3)
Problema de optimizare cu restricţii se va reduce astfel la o
problemă clasică de optimizare, respectiv minimizarea funcţiei P sau
maximizarea funcţiei:
P
P
+
·
1
1
'
(4)
42 Optimizare multimodală
173
De cele mai multe ori determinarea optimului global al unei
funcţii nu este suficientă în contextul problemei considerate. De
aceea s-au căutat metode care să ne furnizeze toate optimele
funcţiei obiectiv. Problemele de optimizare în care este formulată
explicit cerinţa determinării multiplelor optime ale unei funcţii (şi nu
doar a optimului global) se numesc probleme de optimizare
multimodală.
Problemele reale au în majoritatea cazurilor ca rezultat mai
multe soluţii. Acestea pot fi soluţii optime sau doar soluţii bune
(aproape optimale). Un avantaj al determinării soluţiilor multiple
pentru o problemă dată constă în posibilitatea alegerii finale a uneia
dintre acestea în concordanţă cu necesităţile date de context.
În majoritatea situaţiilor reale, funcţiile ce modelează
matematic un fenomen sau o stare au, de obicei, mai multe puncte
de optim (maxim sau minim). Metodele evolutive au fost dezvoltate
şi în acest sens, pentru a permite obţinerea multiplelor optime ale
obiectivului de optimizat.
Revenind la sus-amintitul echilibru explorare-exploatare, în
cazul problemelor de optimizare multimodală acest echilibru devine o
cerinţă fundamentală. Pe de o parte, populaţia trebuie să conţină
indivizi reprezentanţi pentru multiplele zone promiţătoare ale
spaţiului de căutare, corespunzătoare optimelor problemei. Pe de
alta parte, zonele promiţătoare trebuie sa fie exploatate eficient
pentru a furniza soluţii bune.
Principalul neajuns al algoritmilor evolutivi standard constă în
pierderea diversităţii populaţiei fapt care suprimă posibilitatea
determinării multiplelor optime. Paragraful următor descrie câteva
metode de eliminare a acestui inconvenient.
Diversitatea populaţiei reprezintă un factor important in
economia dezvoltării şi aplicării algoritmilor evolutivi în probleme de
optimizare multimodală. Algoritmul evolutiv clasic se confruntă cu
următoarea dificultate majoră: gradul redus al diversităţii populaţiei
sau convergenţa rapidă înspre optimul global sau un optim local din
spaţiul de căutare nu permite captarea multiplelor optime ale
problemei de rezolvat. Din aceste considerente, cercetarea înscrisă
arealului calculului evolutiv se focalizează şi pe acestă direcţie:
căutarea de noi metode evolutive capabile să trateze cu succes
174
problema optimizarii multimodale. Paragrafele următoare descriu
cele mai cunoscute metode de menţinerea diversităţii populaţiei din
literatura de specialitate.
42.1.1 Tehnica Sharing
Tehnica Sharing este o procedură care însoţeşte algoritmul
evolutiv în problemele de optimizare multimodală. Propusă de
Goldberg, această tehnică este inspirată de conceptele naturale de
nişă ecologică şi de evaluare partajată a resurselor.
Într-un spaţiu în care coexistă mai multe puncte de optim,
tehnica algoritmului genetic standard va provoca de cele mai multe
ori convergenţa populaţiei înspre un punct de optim, ignorându-le pe
celelalte. Pentru a permite populaţiei să evolueze înspre multiplele
optime, algoritmul genetic trebuie îmbogăţit cu un mecanism prin
care în populaţie vor coexista subpopulaţii corespunzătoare tuturor
punctelor de optim. Această partiţionare a populaţiei este sugerată
de conceptul biologic al nişelor ecologice. Fiecare subpopulaţie tinde
să ocupe o anumită zonă a spaţiului de căutare, respectiv, converge
înspre un punct de optim.
Fenomenul natural de coexistenţă şi evoluţie a mai multor
specii în aceiaşi zonă (nişă ecologică) este explicat prin partajarea
resurselor existente în acea zonă. Într-o manieră identică, indivizii
populaţiei care sunt situaţi în aceiaşi nişă vor partaja resursele
acesteia. Partajarea resurselor între indivizii unei nişe este modelată
matematic printr-o modificare a funcţiei de performanţă
corespunzătoare acestora.
Se consideră o populaţie de n indivizi: { }
n
x x x P ,..., ,
2 1
· . Între
oricare indivizi ai populaţiei se poate stabili un grad de împărţire a
resurselor. Acesta se cuantifică printr-o funcţie
[ ] 1 0 R , s: →
, numită
funcţie de partajare, ce verifică următoarele axiome:
- s este descrescătoare
- s(0) =1
-
0 ) ( lim ·
∞ →
d s
d
Pentru a stabili gradul de partajare dintre oricare doi indivizi se
va defini în prealabil o funcţie distanţă. Aceasta poate fi după caz:
175
distanţa Euclidiană, distanţa Hamming, distanţa Levenstein, etc. Fie
acestă distanţă d. Cele trei axiome prezentate mai sus pot fi
explicate după cum urmează: cu cât distanţa dintre indivizi este mai
mică cu atât gradul de partajare este mai mare, şi reciproc; indivizii
apropiaţi împart în mare măsură resursele zonei ocupate în timp ce
indivizii depărtaţi au practic un grad de partajare aproape nul.
O funcţie de partajare ce verifică axiomele cerute este
următoarea:
¹
¹
¹
'
¹

< −
·
a dacă ,
a ă d d, dac
a
s(d)
0
1
1
(5)
Parametru a se numeşte diametrul nişei şi semnifică distanţa
maximă dintre doi indivizi pentru care aceştia nu mai sunt
consideraţi ca apartenenţi ai aceleiaşi nişe.
Funcţia de evaluare se va modifică după formula:
i
i
i
m
x f
x f
) (
) (
*
·
(6)
în care cantitatea
i
m semnifică valoarea nişei şi se calculează după
formula:

·
·
n
j
j i i
x x d s m
1
)) , ( (
(7)
Funcţia de evaluare astfel modificată se va numi funcţie de
evaluare partajată.
Pentru a evidenţia maniera în care sunt menţinute în populaţie
soluţiile optimale se consideră cazul următor:
Vecinătatea V a unei soluţii optimale este relativ săracă în
indivizi. Prin calcularea funcţiei de evaluare partajată vor fi favorizaţi
indivizii acestei zone. Valoarea nişei
i
m corespunzătoare unui individ
oarecare din vecinătatea V este mică în raport cu valoarea nişei
corespunzătoare unui individ dintr-o zonă aglomerată, acest lucru
explicându-se prin faptul că aportul gradelor ne-nule la valoarea nişei
este relativ mic. Astfel, valoarea funcţiei de evaluare partajată,
respectiv, probabilitatea de selectare a indivizilor dintr-o vecinătate
săracă devine mai mare.
Reciproc, pentru a se evita convergenţa prematură spre puncte
de optim corespunzătoare unor zone aglomerate, probabilitatea de
176
selecţie a indivizilor din aceste zone este mai mică prin modificarea
adusă funcţiei de evaluare. Se stabileşte astfel un echilibru între cele
două concepte: explorarea, respectiv exploatarea spaţiului soluţiilor
posibile.
În populaţie va fi menţinută diversitatea prin favorizarea
selecţiei indivizilor din zone pe cale de dispariţie. Este evidentă
împiedicarea zonelor aglomerate de a se dezvolta, provocând în
acest mod o convergenţă prematură.
42.1.2 Tehnica Crowding
Tehnicile de aglomerare (crowding) au fost propuse de De Jong
[1.1.1.2]. Scopul acestei tehnici este de a provoca indivizii populaţiei
să se stabilească în jurul celor mai promiţătoare regiuni ale spaţiului
de căutare, corespunzătoare multiplelor puncte de optim.
Fiecare regiune optimă imprimă indivizilor apartenenţi o
anumită probabilitate de selecţie pentru încrucişare. Numărul de
indivizi concentraţi în jurul unui punct de optim este proporţional cu
puterea de atracţie a acelui punct.
Diversitatea populaţiei este menţinută printr-un mecanism de
înlocuire a indivizilor asemănatori. Gradul de asemănare dintre
oricare doi indivizi se măsoară printr-o funcţie distanţă stabilită în
concordanţă cu contextul problemei respective.
Simplificat, ideea de bază a tehnicii Crowding este aceea prin
care un nou descendent nu îl va înlocui pe părintele său, ci va înlocui
cel mai asemănător individ dintr-un grup de alţi indivizi ai populaţiei.
Grupul de indivizi este stabilit în mod aleator şi dimensiunea grupului
este un parametru specific tehnicii: factorul de aglomerare.
42.1.3 Tehnica Clearing
Tehnica Clearing [1.1.1.2] este inspirată de acelaşi principiu al
partajării resurselor în cadrul unei nişe ecologice. Din acest punct de
vedere există similitudini evidente între tehnica clearing şi sharing.
Spre deosebire de sharing, tehnica clearing stabileşte un învingător
al fiecărei subpopulaţii (cel mai performant individ din subpopulaţie)
care va prelua toate resursele existente ale nişei, fapt pentru care
celorlalţi indivizi ai subpopulaţiei li se vor atribui performanţe nule. O
177
formă de generalizare a tehnicii Clearing implică acceptarea mai
multor câştigători în fiecare subpopulaţie.
Nişele sunt stabilite pe baza unei funcţii de măsurare a distanţei
între indivizi şi a unui parametru suplimentar: diametrul clearing ,
având o semnificaţie similară diametrului nişei definit în procedura
sharing.
Mecanismul de Clearing se aplică între etapele de evaluare şi
selecţie ale algoritmului genetic. Folosind o măsură a similarităţii
(distanţa Hamming, distanţa Euclidiană, etc.) se vor stabili
subpopulaţiile populaţiei curente şi ulterior, indivizii câştigători ai
fiecărei subpopulaţii. Performanţele indivizilor dominanţi se
păstrează în timp ce performanţele celorlalţi indivizi vor fi resetate la
valoarea 0. Prin aceasta, se consideră că fiecare individ dominant a
preluat în întregime resursele nişei sale.
42.1.4 Tehnica Speciation
Tehnica Speciation reprezintă de asemenea o procedură de tip
niching, inspirată de fenomenul natural al apariţiilor speciilor. În
natură, procesul de speciation apare în cazul organismelor similare,
cu capacitate de reproducere, care evoluează şi devin prea diferite
pentru a mai putea partaja informaţia genetică. Evoluţia şi
diferenţierea speciilor are loc în perioade mari de timp. Protejarea
naturală a trăsăturilor specifice unei specii este datorată
imposibilităţii combinării materialului genetic provenit de la specii
diferite.
Spre exemplu, algoritmul SCGA (Species Conserving Genetic
Algorithm) [1.1.1.2] este un algoritm evolutiv înzestrat cu un
mecanism suplimentar în scopul menţinerii multiplelor subpopulaţii
corespunzătoare optimelor problemei, exploatând conceptul de
specie. Principiul algoritmului este de a partiţiona populaţia în mai
multe subpopulaţii de indivizi pe baza unei măsuri a similarităţii
acestora. Fiecare dintre aceste subpopulaţii are semnificaţia unei
specii şi este construită în jurul unui individ dominant: sămânţa
speciei. Toţi indivizii dominanţi ai speciilor vor fi conservaţi prin
copierea nealterată a acestora în noua generaţie, în scopul menţinerii
multiplelor zone de interes a spaţiului de căutare.
178
Fiecare specie se defineşte ca o mulţime de indivizi cu aceleaşi
caracteristici. Pentru identificarea speciilor este necesară definirea
unei funcţii de măsurare a distanţei şi a unui parametru suplimentar
(distanţa speciei) indicând valoarea maximă a distanţei între oricare
doi indivizi pentru a mai fi consideraţi similari. Practic, fiecare specie
este o subpopulaţie a populaţiei curente pentru care distanţa dintre
oricare doi indivizi este mai mică decât distanţa speciei. Acest
parametru este stabilit de către factorul uman şi valoarea sa
influenţează în mod semnificativ rezultatul algoritmului. Unul dintre
principalele dezavantaje ale tehnicii decurge din dificultatea alegerii
unor valori potrivite ale distanţei speciilor.
42.1.5 Funcţii de test
Dezvoltarea unui algoritm evolutiv de optimizare numerică
necesită o testare a performanţei acestuia şi stabilirea specificului
problemelor pe care le rezolvă cu succes. Din aceste considerente, se
practică o evaluare a comportamentului algoritmului dezvoltat pentru
probleme de test cunoscute, pentru care se cunosc dificultăţile cu
care se confruntă algoritmul.
În optimizarea multimodală, literatura de specialitate oferă
funcţii de test construite în scopul confruntării algoritmilor evolutivi
cu variate obstacole. Câteva dintre cele mai populare funcţii
multimodale sunt prezentate în continuare:
Funcţia Himmelblau
( ) ( ) ( )
2
2
2 1
2
2
2
1 2 1
7 11 , − + + − + · x x x x x x f
Domeniul de căutare: 5 5 ≤ ≤ −
i
x , i=1,2.
Această funcţie are 4 minime globale în domeniul considerat şi
poziţia acestora este cunoscută:
f(3,2) = 0
f(-3.78, -3.28) = 0.0054
f(-2.81, 3.13) = 0.0085
f(3.58, -1.85) = 0.0011
Funcţia Ratsrigin
( ) ( ) ( )
2 1
2
2
2
1 2 1
2 cos 10 2 cos 10 20 , x x x x x x f ⋅ ⋅ ⋅ − ⋅ ⋅ ⋅ − + + · π π
179
Domeniul de căutare: 12 . 5 12 . 5 ≤ ≤ −
i
x , i=1,2.
Această funcţie de test are 120 de minime locale şi un optim
global, distribuite echidistant în domeniul de căutare.

Figura 16 Graficul funcţiei Rastrigin pe domeniul [ ] [ ] 2 , 2 2 , 2 − × −
Funcţia Griewank
( ) ( )
( )
1
100
100
4000
1
,..., ,
1 1
2
2 1
+

− − ⋅ ·
∏ ∑
· ·
n
i
i
n
i
i n
i
x
x x x x f
Domeniul de căutare: 500 500 ≤ ≤ −
i
x , i=1,...,n.
Figura 17 Graficul funcţiei Griewank, pentru două variabile, pe
domeniul [-10,10]x[-10,10]
Funcţia Schwefel
( ) ( ) ( )

·
⋅ − + ⋅ ·
n
i
i i n
x x n x x x f
1
2 1
sin 9829 . 418 ,..., ,
Domeniul de căutare: 500 500 ≤ ≤ −
i
x , i=1,...,n.
180
Figura 18 Graficul funcţiei Schwefel pentru două variabile, pe domeniul
[-500,500]x[-500,500]
Exemplu: Comportamentul unui algoritm genetic în cazul unei
probleme de optimizare multimodală.
Am considerat următoarea problemă de maximizare:
Maximizează
( ) ( ) x x f ⋅ ⋅ · π 6 sin
unde:
[ ] 1 , 0 ∈ x
Funcţia f prezintă 3 puncte de maxim în domeniul prestabilit.
Cazul 1. Figurile următoare înfăţişează populaţia de indivizi la
diferite intervale de timp, evoluată printr-un algoritm genetic
standard, neînzestrat cu mecanisme de menţinere a diversităţii (de
ex. sharing) . În acest prim caz, populaţia converge înspre un singur
optim al problemei, ignorând celelalte soluţii (Figurile 19,20,21).
Figura 19 Populaţia iniţială generată aleator.
181
Figura 20 Populaţia după 50 de generaţii. Algoritm Genetic fără sharing
-1.5
-1
-0.5
0
0.5
1
1.5
0 0.2 0.4 0.6 0.8 1
Figura 21 Populaţia după 100 de generaţii determină un singur punct
de optim.
Cazul 2: Figurile următoare prezintă comportamentul unei
populaţii evoluate printr-un algoritm genetic înzestrat cu mecanism
suplimentar de menţinerea diversităţii (sharing). Se observă că după
50 de generaţii, se formează subpopulaţii corespunzătoare zonelor
de interes din spaţiul de căutare, iar, după 100 de generaţii,
populaţia se stabilizează în multiplele optime ale funcţiei.
182
Figura 22 Populaţia iniţială
Figura 23 Populaţia după 50 de generaţii
Figura 24 Populaţia după 100 de generaţii
43 Optimizare multicriterială
Algoritmii Evolutivi pentru optimizarea multicriterială, datorită
avantajelor multiple pe care le dovedesc, reprezintă una dintre cele
183
mai puternice direcţii actuale de cercetare. Secţiunile următoare
definesc conceptele principale ale Optimizării evolutive multicriteriale
şi enumără elemente specifice ale acestui subiect.
43.1.1 Problema generală de optimizare multicriterială
Optimizarea multicriterială (denumită şi optimizare multi-
obiectiv sau optimizare vectorială) poate fi definită ca o problemă de
căutare a unui vector funcţie ale cărui elemente reprezintă funcţiile
criteriu (obiective).
Fiecare funcţie obiectiv reprezintă descrierea matematică a
criteriilor de performanţă care sunt în multe situaţii în conflict. Astfel,
termenul de optimizare este folosit în sensul determinării unei soluţii
care ar da valori acceptabile tuturor funcţiilor obiectiv.
Problema generală de optimizare multicriterială este formulată
mai jos:
Fie k funcţii obiectiv:
R D f
l
→ : ,
n
R D ⊆ , l=1,2,...,k (8)
şi restricţiile
( ) 0 ≥ x g
i
, ,m , , i  2 1 · (9)
( ) 0 · x h
i
,
,p , , i  2 1 · (10)
Considerăm problema de minimizare P cu următoarele cerinţele
(problema de maximizare se formulează analog):
Să se determine vectorul:

,
_

¸
¸
·
*
*
2
*
1
*
n
x
x
x
x

(11)
care satisface restricţiile (9),(10) şi minimizează funcţia vector:
( )
( )
( )
( )

,
_

¸
¸
·
x f
x f
x f
x f
k

2
1
(12)
unde x reprezintă vectorul de variabile decizie.
184
Problema de minimizare (P) se formulează astfel:
( )
( ) { }
( ) { }
¹
¹
¹
¹
¹
'
¹
∈ ·
∈ ≥

p 1,2,..., j , x h
m 1,2,..., i , x g
D x
x f
j
i
0
0
min
Cu alte cuvinte, suntem interesaţi în determinarea din
mulţimea, notată F, a valorilor ce satisfac constrângerile (9) şi (10),
valorile particulare
*
1
x ,
*
2
x , … ,
*
n
x ce produc valorile optime ale
funcţiilor obiectiv
l
f , l=1,2,...,k.
Condiţiile (9) şi (10) delimitează regiunea soluţiilor posibile F.
Problema care apare este aceea că noţiunea de optim nu este clar
conturată în acest context, din moment ce rar întâlnim situaţia
următoare:
F x ∈ ∀
,
( ) ( ) x f x f
i i

*
,
k , 1,2, i  · (13)
În situaţia descrisă prin relaţia (13), soluţia dorită ar fi
*
x
, dar
practic situaţii de acest tip se întâlnesc foarte rar, încât toate ( ) x f
l

să aibă minim în F într-un punct comun
*
x
.
Datorită acestui neajuns, trebuie stabilit o normă clară pentru a
determina ce ar putea fi considerată soluţie “optimală”.
1.1.1.1 Optim Pareto
Cea mai populară noţiune de optimalitate a fost introdusă de
Vilfredo Pareto la sfârşitul secolului XIX.
Se consideră problema de minimizare P cu k obiective.
Definiţie 3: Spunem că un vector
F x ∈
*
de variabile decizie
este Pareto optimal dacă nu există un alt vector F x ∈ astfel încât:
( ) ( )
*
x f x f
i i
≤ , pentru fiecare k , 1,2, i  ·
şi
k 1,2,..., j · ∃
, astfel încât ( ) ( )
*
x f x f
j j
< .
185
Această definiţie formală exprimă faptul că vectorul
*
x
este
Pareto optimal dacă nu există nici un vector posibil de variabile
decizie F x ∈ , care ar descreşte unele criterii fără să cauzeze o
creştere simultană a cel puţin unui criteriu.
Acest concept introdus ne va furniza, nu o soluţie ci o mulţime
de soluţii numită mulţime optimală Pareto.
Vectorii
*
x
ce corespund soluţiilor incluse în mulţimea Pareto
se numesc nedominaţi. Vectorii nedominaţi, determinaţi de soluţiile
optimale Pareto formează frontul Pareto.
Definiţie 4: (condiţia de slabă nedominare) Spunem că un
vector
F x ∈
*
de variabile decizie este slab nedominat Pareto dacă
nu există un alt vector F x ∈ astfel încât:
( ) ( )
*
i i
x f x f < , pentru fiecare ,k , , i  2 1 · .
Figura 25 Exemplu: Optimizare multicriterială. Se doreşte minimizarea
celor două criterii. Din mulţimea de vectori reprezentaţi, doar vectorii
(2,3) şi (4,1) sunt nedominaţi în sens Pareto, deoarece nu există alţi
vectori care să fie mai buni decât aceştia în ambele criterii implicate.
1.1.1.2Vector ideal
Fie F - mulţimea valorilor ce satisfac constrângerile (9) şi (10):
( ) { } ( ) { } { } p 1,2,..., j , x h m 1,2,..., i , x g D x F
j i
∈ · ∈ ≥ ∈ · 0 , 0 :
Presupunem problema de minimizare cu k obiective descrisă în
formula (14):
186
¹
'
¹
∈ ·
− ·
. ) , , , (
min )) ( , ), ( ), ( ( ) (
: ) (
2 1
2 1
F x x x x unde
x f x f x f x f
P
n
k

(14)
Pentru fiecare obiectiv separat
i
f , ,k , , i  2 1 · se consideră că
s-a determinat minimul:
( ) ( ) ( ) ( )
[ ]
T
i
n
i i i
x x x x
0 0
2
0
1
0
,..., , ·
( )
( ) ( ) x x
i
i 0
i
0
i
f
min
F x
f : f

· ·
Se notează cu
[ ]
T
k
f f f f
0 0
2
0
1
0
,..., , ·
- vectorul ideal.
43.1.2 Avantaje şi dezavantaje ale algoritmilor evolutivi de
rezolvarea problemelor de optimizare multicriterială
Specificul problemelor de optimizare multicriterială,
complexitatea ridicată a multor probleme reale multiobiectiv,
conduc, în mod implicit, înspre dezvoltarea unor metode
nedeterministe apte să ofere soluţii aproximative. Algoritmii Evolutivi
se dovedesc a fi eficienţi în rezolvarea problemelor de acest gen,
oferind în majoritatea cazurilor o aproximare bună a frontului Pareto.
În general Algoritmii evolutivi au o aplicabilitate bună în
optimizare. Aceştia s-au dovedit a fi utili în optimizarea unicriterială
şi optimizarea multimodală. Din aceste considerente, dezvoltarea
tehnicilor evolutive este direcţionată şi înspre optimizarea
multicriterială.
Algoritmii evolutivi oferă soluţii multiple pentru problema
considerată fapt care constituie un argument favorabil exploatării
acestor tehnici în optimizarea multicriterială, unde soluţia dorită este
în fapt o mulţime de soluţii optimale de compromis.
Algoritmii evolutivi nu pretind funcţiilor obiectiv îndeplinirea
unor condiţii suplimentare fapt care extinde aplicabilitatea acestor
tehnici înspre variate tipuri de probleme de optimizare multicriterială.
Un astfel de algoritm oferă soluţiile problemelor considerate
indiferent de forma frontului Pareto: convex, concav, discontinuu,
etc.
Un algoritm evolutiv, la o singură rulare conduce populaţia de
soluţii posibile înspre frontul Pareto, reuşind astfel să ofere nu doar o
187
singură soluţie aşa cum tehnicile tradiţionale o fac, ci o mulţime de
soluţii optimale prin care este aproximat frontul real Pareto.
Inconvenientele Algoritmilor evolutivi multicriteriali decurg în
principal din gradul de aproximare a frontului real Pareto, grad ce ar
putea fi considerat insuficient în anumite contexte. De asemenea, în
anumite cazuri, timpul de execuţie al acestor algoritmi este mai
mare, aspect constituind un alt dezavantaj al utilizării algoritmilor
evolutivi.
Algoritmi evolutivi sunt parametrizaţi. Dimensiunea populaţiei,
numărul maxim de generaţii produse, probabilitatea de mutaţie,
probabilitatea de recombinare sau presiunea de selecţie sunt doar
câţiva dintre parametrii cu care este înzestrat un algoritm de acest
gen. Rezultatelor obţinute prin utilizarea tehnicilor evolutive sunt
puternic dependente de parametrii menţionaţi, această situaţie
reprezentând un dezavantaj major.
43.1.3 Clasificarea metodelor evolutive de optimizare
multicriterială
Cel mai popular concept de optimalitate în cazul problemelor de
optimizare multicriterială, respectiv, conceptul de optimalitate
Pareto, stă la baza clasificării tehnicilor evolutive multicriteriale în
două categorii:
- Tehnici Pareto – sune acele tehnici evolutive destinate
optimizării multicriteriale care fac uz, în mod explicit, de
conceptul de optimalitate în sens Pareto pentru evaluarea
performanţelor infivizilor populaţiei curente.
- Metodele non-Pareto – sunt metode evolutive care nu
folosesc conceptul de optimalitate Pareto în evaluarea
calităţii indivizilor populaţiei curente.
43.1.4 Tehnici de agregare
Tehnica de combinare a funcţiilor obiectiv într-o singură funcţie
este denumită în mod curent metoda agregării funcţiilor şi este
aplicată cu un relativ succes în probleme în care comportamentul
funcţiilor obiectiv este mai mult sau mai puţin cunoscut. În cele ce
188
urmează sunt prezentate câteva dintre cele mai populare tehnici de
agregare.
Metoda ponderilor
Metoda ponderilor (vezi de ex. [1.1.1.2]) constă în ataşarea
fiecărui criteriu
i
f
a unei valori subunitare, pozitive,
i
w
numită
pondere. Problema de optimizare multicriterială se transformă într-o
problemă de optimizare unicriterială ce va fi rezolvată folosind
metode specifice acestei clase de probleme. Convenind că este
impusă determinarea minimului, problema se poate formaliza astfel:
( )

·
k
i
i i
x f w
1
min
(1
)
1 0 ≤ ≤
i
w
(2
)
De obicei se consideră,
1
1
·

·
k
i
i
w
(3
)
Ponderile
i
w
reprezentă importanţa relativă a obiectivelor.
Această metodă a fost prima tehnică dezvoltată pentru
generarea soluţiilor în optimizarea multicriterială. Este o metodă
eficientă computaţional şi generează soluţia puternic non-dominată.
Unul dintre neajunsuri ar fi acela al modului de determinare a
valorilor ponderilor în cazul în care nu avem suficiente informaţii
despre problemă.
Dacă mulţimea soluţiilor posibile este convexă, atunci poate fi
găsită o mulţime completă de soluţii Pareto. În caz contrar această
metodă nu garantează obţinerea întregii mulţimi de soluţii Pareto.
Metoda programării scopului
În această abordare [1.1.1.2], fiecărei funcţii obiectiv îi este
atribuită o valoare “scop” ce trebuie atinsă. Aceste valorile sunt
încorporate în problemă sub forma unor restricţii adiţionale. Funcţia
obiectiv va încerca să minimizeze deviaţiile absolute ale obiectivelor
189
de la scop. Cea mai simplă formalizare a acestei tehnici este
următoarea:
( )

·

k
i
i i
T x f
1
min
F x ∈
(4
)
Criteriul este acela de a minimiza suma valorilor absolute a
diferenţelor dintre valorile “ţintă” impuse şi valorile obţinute.
Inconvenientul principal este acela al determinării eficiente a
valorilor “ţintă”
i
T în situaţia în care contextul problemei nu ne
oferă suficiente informaţii în acest sens.
Metoda atingerii scopului
Principiul de bază al acestei metode este de a considera doi
vectori: un vector de ponderi
k
w w w ,..., ,
2 1
şi un vector scop
k
b b b ,..., ,
2 1
pentru funcţiile obiectiv
k
f f f ,..., ,
2 1
, urmând ca cea
mai bună soluţie de compromis
*
x
să se determine rezolvând
problema următoare:
Minimizează
α
(5)
( ) 0 ≤ x g
j
,
m 1,2,..., j ·
(restricţiile inegalităţii) (6)
( )
i i i
w b x f ⋅ + ≤ α , k 1,2,..., i · (7)
unde:
α
reprezintă o variabilă scalară ne-restricţionată de semn şi
ponderile îndeplinesc condiţia:
1
1
·

·
k
i
i
w .
Dacă anumite ponderi sunt nule, 0 ·
i
w , k 1,2,..., i · , atunci
limita maximă a obiectivului
i
f devine chiar
i
b .
Metoda ε-restricţiilor
Metoda ε-restricţiilor [1.1.1.2] constă în optimizarea (ex.
minimizarea) unei funcţii obiectiv (de regulă, cea mai preferată sau
cea considerată principală), considerând celelalte funcţii ca restricţii
legate de anumite praguri permise
i
ε , k 1,2,..., i · . Nivelele
i
ε sunt
190
apoi alterate pentru a genera întreaga mulţime optimală Pareto.
Metoda este descrisă astfel:
A. Determină minimul celei de-a r-a funcţie obiectiv, respectiv
determină
*
x
astfel încât:
( ) ( ) x f x f
r
F x
r

· min
*
(8
)
( )
i i
x f ε ≤
,
k 1,2,..., i ·
,
r i ≠
.
(9
)
Cu
i
ε
se notează valorile presupuse pentru fiecare funcţie
obiectiv, valori pe care nu dorim să le depăşească acestea.
B. Se repetă pasul A pentru diferite valori ale pragurilor
i
ε
până când
se găseşte o soluţie satisfăcătoare.
Observaţie: Este uneori necesar să se repete procedura de mai sus
pentru diferite valori ale indicelui r.
Pentru determinarea valorilor pragurilor
i
ε se procedează astfel:
pentru fiecare funcţie obiectiv
i
f , k 1,2,..., i · , se determină
vectorul optim
*
i
x , astfel încât ( )
*
i i
x f este minim. Se consideră apoi
că limita inferioară a valorii pragului
i
ε
este dată de ( )
*
i i
x f şi cea
superioară, de ( )
*
r i
x f , pentru k 1,2,..., i · , r i ≠ :
( ) ( )
* *
r i i i i
x f x f ≤ ≤ ε
,
k 1,2,..., i ·
,
r i ≠
.
(10
)
Metoda evolutivă descrisă foloseşte ca funcţie de evaluare a
calităţii soluţiilor posibile, funcţia criteriu principală. Celelalte funcţii
criteriu sunt considerate restricţii cu o valoare fixă. Algoritmul va fi
rulat în mod repetat pentru diferite valori ale restricţiilor, astfel încât,
problema de optimizare multicriterială se reduce la o problemă de
optimizare unicriterială cu restricţii.
43.1.5 Tehnici non-agregare
Pentru a depăşi dificultăţile invocate în metodele bazate pe
agregarea funcţiilor obiectiv, multe lucrări consacrate domeniului au
urmărit dezvoltarea unor metode alternative. Aceste metode sunt
191
bazate pe proceduri imprimând o anume dinamică a populaţie sau
proceduri ce tratează în mod diferit obiectivele implicate.
Câteva dintre cele mai populare metode de acest gen sunt
prezentate în cele ce urmează.
Metoda VEGA
Abordarea lui Schaffer, denumită VEGA (Vector Evaluated
Genetic Algorithm), a fost propusă în [1.1.1.2]. Principiul acestei
metode este acela că fiecare componentă a vectorului funcţie
(fiecare funcţie obiectiv) corespunde unei sub-populaţii specifice
populaţiei curente de indivizi. În aceste condiţii, fiecare sub-populaţie
va converge către optimul corespunzător funcţiei obiectiv ataşate.
Toate sub-populaţiile au aceiaşi dimensiune şi mecanismul de
selecţie este independent pentru fiecare sub-populaţie în
concordanţă cu funcţia obiectiv corespondentă. Operatorul de
încrucişare nu ţine cont de limitele sub-populaţiilor.
Avantajul major al metodei propuse de Schaffer constă în
simplitatea sa. Însă, după cum a observat şi autorul metodei, soluţiile
generate aplicând metoda VEGA sunt doar local non-dominate şi nu
în mod necesar global non-dominate. Acest impediment este cauzat
de metoda de selecţie aleasă, prin care, indivizii sunt selectaţi în
funcţie de un singur criteriu.
De altfel, în populaţie ar putea să apară soluţii de performanţă
medie şi aceste soluţii se pot dovedi folositoare pentru soluţia de
compromis căutată, însă sub schema de selecţie propusă, şansele de
supravieţuire a acestor soluţii sunt reduse. Tehnica de selecţie
aplicată va prefera doar soluţiile ce se remarcă în raport cu un
criteriu.
În pofida acestui dezavantaj major precizat mai sus, abordarea
lui Schaffer este folosită cu succes şi se dovedeşte a fi simplu de
implementat.
Metoda optimizării ierarhice (ordonarea lexicografică)
Metoda optimizării ierarhice (vezi de ex. [1.1.1.2]) consideră
obiectivele ordonate în raport cu importanţa dată acestora. Soluţia
optimă
*
x
este apoi obţinută prin minimizarea funcţiilor obiectiv
192
începând cu cea mai importantă şi continuând progresiv în
concordanţă cu ordinea fixată.
Convenim că indicele funcţiilor obiectiv
i
f , ,...,k , i 2 1 ·
reprezintă atât numărul obiectivului cât şi eticheta de ordine
(importanţa obiectivului). Astfel, ( ) x f
1
şi ( ) x f
k
reprezintă cel mai
important, respectiv, cel mai puţin important criteriu.
Prima problemă este formulată astfel:
Minimizează ( ) x f
1
(11
)
( ) 0 ≤ x g
j
,
m 1,2,..., j · (12
)
Fie
*
1
x soluţia primei probleme şi ( )
*
1 1
*
1
x f f · .
A doua problemă este formulată:
Minimizează ( ) x f
2
(13
)
( ) 0 ≤ x g
j
,
m 1,2,..., j · (14
)
( )
*
1 1
f x f ·
(15
)
Fie
*
2
x soluţia problemei şi ( )
*
2 2
*
2
x f f · .
A i-a problemă este formulată:
Minimizează ( ) x f
i
(16
)
( ) 0 ≤ x g
j
,
m 1,2,..., j · (17
)
( )
*
h h
f x f · , unde 1 - i 1,2,..., h ·
(18
)
Fie
*
i
x soluţia problemei i.
193
Soluţia finală
*
k
x , reprezentată de soluţia ultimei probleme
(problema a k-a), este considerată soluţia dorită a problemei
generale,
*
x
.
Folosirea genului pentru identificarea obiectivelor
Este o abordare asemănătoare tehnicii VEGA, dar în care
conceptul de gen este folosit pentru a face distincţia între cele două
obiective ale unei probleme de optimizare bi-criterială. În această
abordare este permisă doar reproducerea indivizilor de genuri
diferite, unde genul este stabilit prin “naştere”. În populaţia iniţială,
numărul indivizilor de primul gen este egal cu numărul indivizilor de
genul al doilea, însă pe parcurs acest echilibru nu se va păstra
datorită aplicării operatorilor genetici. La fiecare generaţie cel mai
slab individ corespunzător unui gen este eliminat şi înlocuit din
populaţie cu un altul, generat aleator, de acelaşi gen. Metoda
foloseşte strategii evolutive pentru anumite forme de atracţie
sexuală care ar modifica ulterior maniera de reproducere a indivizilor
populaţiei. Ideea este de a modela atracţia sexuală observabilă în
natură, pentru a determina o reproducere nu atât de aleatoare.
Ulterior s-a incorporat conceptul de gen/sex în algoritmul
genetic, dar într-un mod mai general. În această situaţie, numărul de
sexe (genuri) nu este limitat la două, problema de optimizare
extinzându-se la o problemă cu mai mult de două obiective (numărul
de obiective este egal cu numărul de genuri considerate). O noutate
a acestei metode este aceea că permite încrucişarea generalizată a
mai multor părinţi.
Reproducerea multi-părinţi constă în a selecta câte un părinte
din fiecare gen şi de a genera un unic descendent pentru care fiecare
părinte îşi aduce contribuţia genetică într-o mai mare sau mai mică
măsură. Genul noului individ este transmis de către părintele al cărui
aport genetic transferat a fost cel mai mare.
Indivizii sunt evaluaţi folosindu-se mai multe funcţii de
performanţă corespunzătoare genurilor existente.
De-a lungul procesului iterativ descris de algoritmul genetic se
va reţine şi actualiza periodic o listă de soluţii ne-dominate. La final,
această listă conţine soluţiile optimale Pareto.
194
Tehnica genurilor pentru identificarea obiectivelor este în mare
o variantă a abordării VEGA, diferind modul în care sunt definite sub-
populaţiile corespunzătoare multiplelor obiective. Diferenţa majoră
constă în folosirea încrucişării “panmitice” care impune anumite
restricţii de încrucişare, evitând încrucişările aleatoare între indivizii
sub-populaţiilor diferite permisă de abordarea lui Schaffer.
Abordarea Ponderală Min-Max
Abordarea ponderală Min-Max (vezi de ex. [1.1.1.2]) este
prezentată în continuare. Se consideră vectorul de funcţii criteriu:
( )
( )
( )
( )

,
_

¸
¸
·
x f
x f
x f
x f
k

2
1
, F x ∈ ∀ .
şi notăm
{ } k 1,2,..., I ·
.
Fie
0
i
f valorile optime ale funcţiilor criteriu determinate în mod
individual pentru fiecare criteriu. Pentru fiecare I i ∈ se vor
determina valorile:
( )
( )
0
0
1
i
i i
i
f
f x f
x z

·
(19
)
( )
( )
( ) x f
f x f
x z
i
i i
i
0
2

·
(20
)
cu observaţia că F x ∈ ∀ , ( ) 0 ≠ x f
i
.
Dacă problema este de minimizare a tuturor criteriilor, atunci
valorile (21) şi (20) reprezintă incrementele relative ale funcţiilor
obiectiv.
Se defineşte următorul vector:
( ) ( ) ( ) ( ) [ ]
T
k 2 1
x z ,..., x z , x z x z ·
(21
)
I i ∈ ∀
:
( ) ( ) ( ) { } x z x z x z
i i i
2 1
, max ·
(22
)
195
Optimul min-max se defineşte astfel:
Definiţie: Spunem că
F x ∈
*
este optimal min-max dacă F x ∈ ∀ are
loc următoarea recurenţă:
1)
( ) ( ) { } x z
I i

F x
x v
i
∈ ∈
· max min
*
1

{ }
1 1
i I · unde
1
i reprezintă indicele pentru care ( ) x z
i
este maximal
la pasul 1).
Dacă există o mulţime F X ⊂
1
, astfel încât
1
X x ∈ ∀ satisface pasul
1) atunci:
2)
( ) ( ) { } x z
I I i

X x
x v
i
1 1
*
2
\
m a x m i n
∈ ∈
·

{ }
2 1 2
,i i I · unde
2
i reprezintă indicele pentru care
( ) x z
i
este maximal la pasul 2).

Dacă există o mulţime F X
r

−1
, astfel încât
1 −
∈ ∀
r
X x
satisface pasul (r-1) atunci:
r)
( ) ( ) { } x z
I I i

X x
x v
i
r 1 - r
r
1
*
\
m a x m i n

∈ ∈
·

{ }
r r r
i I I ∪ ·
−1
unde
r
i reprezintă indicele pentru care
( ) x z
i
este maximal la pasul r).

Dacă există o mulţime F X
k

−1
, astfel încât
1 −
∈ ∀
k
X x satisface pasul (k-1) atunci:
k)
( ) ( ) { } x z
I I i

X x
x v
i
k 1 - k
k
1
*
\
m a x m i n

∈ ∈
·
.
196
unde ( )
*
1
x v , ( )
*
2
x v , …, ( )
*
x v
k
reprezintă mulţimea valorilor
optimale ale deviaţiilor, în ordine descrescător.
De notat faptul că, deşi această definiţie recurentă conţine
ecuaţii complicate, în multe modele de optimizare primul pas este
suficient pentru a determina optimul.
Semnificaţia optimului descris anterior este aceea că,
presupunând cunoscute extremele fiecărei funcţii obiectiv, soluţia
dorită este cea care dă cele mai mici valori pentru incrementele
relative la toate funcţiile obiectiv.
Punctul F x ∈
*
ce satisface ecuaţiile paşilor 1) şi 2) poate fi numit
cea mai bună soluţie de compromis dacă considerăm criteriile
simultan cu acelaşi grad de importanţă.
Folosirea ponderilor generate aleator şi a elitismului.
Un algoritm similar cu tehnica Min-Max este descris în [1.1.1.2],
însă în acest caz, ponderile sunt generate în mod diferit şi mulţimea
de soluţii ne-dominate (în sens Pareto) produse la fiecare generaţie
este păstrat separat de populaţia curentă.
Algoritmul este descris mai jos:
1. Se generează aleator o populaţie iniţială de M indivizi.
2. Câttimp (condiţia) execută:
2.1 Pentru fiecare individ al populaţiei sunt calculate valorile
celor k funcţii obiectiv; sunt determinate soluţiile ne-
dominate şi sunt introduse într-o populaţie distinctă de
populaţia curentă (
curent
P ) notată:
non
P . Fie N numărul de
soluţii ne-dominate existente în populaţia
non
P şi M –
dimensiunea populaţiei curente
curent
P .
2.2 Se selectează din
curent
P un număr de (M-N) perechi de
părinţi după cum urmează:
2.2.a. Se generează aleator k valori subunitare:
[ ] 1 , 0 ,..., ,
2 1

k
r r r .
197
2.2.b. Pentru fiecare individ
x
al populaţiei se calculează
performanţa acestuia după formula:
( ) ( )

·
⋅ ·
k
i
i i
x f w x f
1

unde: k – reprezintă numărul de obiective

·
·
k
i
k
i
i
r
r
w
1
, k 1,2,..., i · ∀ .
Obs: Se poate observa că k 1,2,..., i · ∀ , 0 ≥
i
w şi 1
1
·

·
k
i
i
w .
2.2.c. Probabilitatea de selectare a unui părinte oarecare x
este:
( )
( ) ( )
( ) ( ) { }

·
curent
curent
curent
P x
P f x f
P f x f
x p
min
min

unde: ( )
curent
P f
min
- cea mai mică performanţă
înregistrată în populaţia
curent
P .
2.2.d. Se aplică operatorul de încrucişare asupra celor (M-
N) perechi de părinţi. Apoi, se aplică operatorul de mutaţie
asupra noilor soluţii generate.
2.2.e. Un număr de E soluţii din populaţia curentă
curent
P
sunt selectate aleator şi sunt adăugate la cele (M-N)
soluţii obţinute în pasul anterior pentru a putea construi
noua populaţie de M indivizi.
Deoarece scopul autorilor este acela de a aplica algoritmul
genetic asupra problemelor de optimizare combinatorială, aceştia
propun folosirea unei proceduri de căutare locală conform căreia,
pentru fiecare individ sunt examinate soluţiile dintr-o vecinătate
oarecare a acestuia.
198
Dacă una dintre posibilele soluţii din vecinătatea considerată
este mai performantă decât individul, atunci aceasta îl va înlocui.
Căutarea locală este aplicată asupra celor M indivizi din populaţia
curent
P .
43.1.6 Optimizare evolutivă multicriterială versus
diversitatea populaţiei
Algoritmul genetic standard are tendinţa de a converge spre o
singură soluţie. Acest lucru este de cele mai multe ori dorit; spre
exemplu, în cazul problemelor de optimizare unicriterială globală
(unimodală). Există însă situaţii în care acest fenomen de
convergenţă înspre o unică zonă a spaţiului de căutare este nedorit.
Problemele de optimizare multimodală cât şi problemele de
optimizare multicriterială reprezintă situaţii în care convergenţa
prematură a algoritmului standard spre o soluţie unică împiedică
determinarea optimelor multiple (optimizare multimodală) sau a
mulţimii optimale Pareto (optimizare multicriterială). Eliminarea
acestui neajuns se face prin îmbogăţirea algoritmul evolutiv/genetic
standard cu un mecanism suplimentar ce permite obţinerea, în final,
a mai multor soluţii din spaţiul de căutare. Acest aspect este strâns
legat de gradul de diversitate a populaţiei. Astfel, principiul este
următorul: cu cât populaţia de indivizi este mai diversă, cu atât şansa
de supravieţuire a soluţiilor multiple este mai mare. Reciproc, un
obţinere simultană a mai multor soluţii.
Concluzia este că diversitatea populaţiei este de o necesitate
crucială în rezolvarea problemelor de optimizare multicriterială.
Încă din anii de pionierat ai algoritmilor genetici, cercetătorii au
semnalat un fenomen nedorit, congergenţa prematură, pe care l-au
regăsit, de asemenea şi în natură (genetic drift). Tot natura a fost
cea care a furnizat soluţia la acest inconvenient. Astfel, inspiraţi de
procese naturale, cercetătorii au găsit căi de depăşire a fenomenului
de convergenţă prematură a populaţiei. Vom pomeni aici câteva
dintre tehnicile evolutive care reuşesc evitarea fenomenul menţionat:
tehnica de aglomerare, conceptul de nişă ecologică, modelul insular,
sisteme imune, cromodinamica genetică.
199
43.1.7 Optimizare evolutivă multicriterială versus
elitism
Elitismul poate fi înţeles ca fenomenul prin care nu este permisă
distrugerea indivizilor “elită” din populaţia activă în favoarea altora
mai slabi. Formal, o definite a acestui concept este dată de către
Laumanns, Zitzler, Thiele, în [1.1.1.2]:
Definiţie: (Elitism) Fie P(t) populaţia curentă la generaţia t.
Notăm cu p
t
(x) probabilitatea individului x din P(t) de a fi selectat
pentru reproducere la generaţia t. Se spune că algoritmul evolutiv
utilizat este elitist, dacă şi numai dacă, oricare ar fi relaţia de
“preferinţă” dată de contextul problemei, are loc următoarea
condiţie:
( ) 0 : :
1 *
> ∈ ∃ ∈ ∀
+
x p P x N t
t t
,
unde: { } x x P x P x P
k t k t t
: :
*
∈ ∃ ∈ · - reprezintă toţi indivizii
nedominaţi din P
t
şi
( )
t w
t
w P P

·
- reprezintă mulţimea tuturor
indivizilor produşi până la generaţia t.
Elitismul a reprezentat întotdeauna un subiect major de discuţie
în arealul Calculului Evolutiv. Spre deosebire de optimizarea
unicriterială, problema elitismului în optimizarea multicriterială
devine mult mai complicată. În acest caz, soluţiile candidat nu sunt
total ordonate şi mai mult, pot fi incomparabile. Cu toate acestea,
abordările evolutive recurg la diferite forme de elitism şi această
trăsătură suplimentară a tehnicilor evolutive de optimizare
multiobiectiv se dovedeşte a fi avantajoasă.
Multe din abordările elitiste fac uz de o a doua populaţie
suplimentară de “elite”. În legătură cu populaţia elitistă se pot
formula mai multe întrebări:
- Care soluţii sunt selectate pentru a alcătui elita şi pentru
cât timp?
- Cum este actualizată populaţia elitistă?
- Cum afectează elita performanţele populaţiei curente şi
invers?
- Cum se implică populaţia de elite în producerea de
descendenţi?
200
- Când şi în ce condiţii membrii populaţiei de elite sunt
reinseraţi în populaţia curentă?
Tehnici evolutive Pareto
În continuare sunt prezentate cele mai populare tehnici de
optimizare evolutivă Pareto.
Abordările evolutive Pareto îşi au originea în propunerea lui
Goldberg de a folosi ierarhizarea pe clase de soluţii nedominate a
populaţiei curente şi selecţia corespunzătoare pentru determinarea
frontului Pareto al problemei de optimizare multicriterială. Procesul
se poate descrie astfel: se determină soluţiile nedominate din
populaţia curentă, se etichetează cu 1 şi se elimină temporar din
populaţie. Populaţia rămasă se supune unui proces asemănător
rezultând astfel clasa indivizilor de rang 2. Procesul se încheie în
momentul în care toţi indivizii populaţiei au fost etichetaţi.
O altă sugestie a lui Goldberg este aceea de a se utiliza în
aceste rezolvări tehnici de menţinerea diversităţii populaţiei (ex.
mecanism de nişă) pentru a împiedica populaţia să conveargă spre
un singur punct al frontului de soluţii optimale Pareto.
MOGA
O abordare prin care este urmată propunerea lui Goldberg este
cea prezentată în [1.1.1.2] şi cunoscută sub denumirea de MOGA.
Această tehnică utilizează de asemenea o formă de etichetare a
indivizilor populaţiei însă după o schemă diferită.
Astfel, fie c un individ oarecare al populaţiei, rangul acestuia se
calculează după formula:
t
c
p c rang + ·1 ) ( (1)
unde:
t
c
p - reprezintă numărul de indivizi din populaţia P la generaţia
t care domină individul c.
Performanţele indivizilor populaţiei la generaţia t sunt calculate
după următoarea procedură:
201
1. Indivizii populaţiei sunt etichetaţi după schema anterioară şi
populaţia este ordonată în raport cu rangurile atribuite
indivizilor săi.
2. Atribuirea valorilor de performanţă printr-o tehnică de
interpolare în concordanţă cu o anumită funcţie, în general
liniară.
3. Medierea performanţelor indivizilor cu acelaşi rang.
Punctul 3 se poate interpreta ca o manieră de blocare a
performanţelor pentru producerea unei mari presiuni de selecţie.
Acest lucru ar putea conduce la o convergenţă prematură.
Ca şi cazul metodei descrise de către Goldberg, autorii metodei
MOGA propun o metodă de nişă pentru evitarea inconvenientului
precizat, cu deosebirea că partajarea se face în spaţiul valorilor
funcţiei obiectiv şi nu a valorilor parametrilor. Această schemă de
partajare împiedică existenţa simultană în populaţie a doi vectori
diferiţi şi cu aceleaşi valori ale obiectivelor.
NSGA-I (Nondominated Sorting genetic Algorithm -I)
Această abordare este propusă în 1993 de către Deb şi Srinivas
[1.1.1.2]. Principiul acestei metode constă în evidenţierea claselor de
indivizi ai populaţiei curente pe baza conceptului de nedominare.
Indivizii nedominaţi ai populaţiei curente sunt grupaţi într-o clasă,
atribuindu-le o valoare falsă de performanţă, proporţională însă cu
dimensiunea populaţiei. Diversitatea populaţiei este menţinută prin
partajarea valorilor false de performanţă a indivizilor clasificaţi.
Această primă clasă de indivizi evaluaţi este eliminată temporar din
populaţia curentă şi procesul se reia pentru populaţia rămasă până
când toţi indivizii generaţiei respective au fost clasificaţi.
Abordarea foloseşte selecţia proporţională astfel încât indivizii
primei clase, având valori maxime ale funcţiei de performanţă, vor
furniza mai multe copii în vederea generării descendenţilor decât
ceilalţi indivizi ai populaţiei. Pe de o parte, selecţia proporţională va
grăbi convergenţa populaţiei spre regiunea soluţiilor nedominate iar
pe de altă parte, partajarea în spaţiul valorilor parametrilor, permite
buna distribuire a populaţiei de-a lungul frontului de soluţii Pareto.
202
S-a afirmat că abordarea NSGA-I nu este mai eficientă nici
computaţional, şi nici în ceea ce priveşte calitatea frontului Pareto
produs decât abordarea MOGA..
NSGA-II (Nondominated Sorting genetic Algorithm -II)
NSGA-II [1.1.1.2] reprezintă o variantă îmbunătăţită a
precedentei NSGA-I. Dezavantajele semnalate ale primei versiuni au
fost în principal:
- complexitatea mărită a sortării pe baza non-dominanţei:
O(mN3), unde N este dimensiunea populaţiei şi m –
numărul de obiective;
- lipsa elitismului (s-a verificat faptul că tehnicile elitiste sunt
superioare celor ne-elitiste);
- impedimentul necesităţii specificării valorii parametrului de
partajare, valoare de care eficienţa algoritmului este strâns
legată.
Deb, Agrawal, Pratap, Meyarivan, autorii acestui algoritm,
încearcă să depăşească inconvenientele observate, dezvoltând un
algoritm rapid, elitist şi independent de parametrul de partajare.
Algoritmul dezvoltat (NSGA II) devine rapid un algoritm de referinţă
în literatura de specialitate.
Structura generală a algoritmului NSGA II este descrisă în cele
ce urmează.
Algoritm Nondominated Sorting Genetic Algorithm II
1. Generare populaţie iniţială P
0
de dimensiune N; t:=0;
2. Generare populaţie Q
0
de N descendenţi ai populaţiei P
0
(prin
aplicarea operatorilor genetici: selecţie, recombinare, mutaţie)
3. câttimp (condiţie de terminare=fals) execută
a. R
t
=P
t
Q
t
;
b. Sortează populaţie R
t
în concordanţă cu relaţia de
nedominare

rezultând fronturile: { } ,.... F , F F
2 1
· .
c. Construieşte populaţia P
t+1
fronturile ,.... F , F
2 1
în ordinea dată de indicii
fronturilor până când se depăşeşte dimensiunea N.
d. Sortează descrescător soluţiile din P
t+1
pe baza valorilor
de estimare a gradului de aglomerare.
203
e. Trunchiază populaţia P
t+1
rezultînd populaţia P
t+1
de
dimensiune N. (se aleg primii N indivizi ai populaţiei
sortate).
f. Generare populaţie Q
t+1
prin aplicarea operatorilor
genetici asupra populaţiei P
t+1
.
g. t:=t+1;
Autorii algoritmului NSGA II propun un mecanism ingenios de
estimare a gradului de aglomerare a soluţiilor. Fiind dat un element
al populaţiei, se determină cel mai mare cuboid care îl conţine pe
acesta şi nu conţine un alt element al subpopulaţiei de care aparţine,
determinate în prealabil prin procedeul de sortare pe baza
nondominării. Dimensiunea acestui cuboid se utilizează pentru a se
face discriminarea între punctele situate pe acelaşi nivel de
nondominare.
Principiul este următorul: dintre oricare două puncte cu ranguri
diferite se preferă acela cu un rang mai mic, şi dintre oricare doi
indivizi situaţi pe acelaşi nivel de nedominare (acelaşi rang) se va
favoriza selecţia aceluia care este situat într-o zona mai săracă în
indivizi, respectiv individul situat în cuboidul cu dimensiunea mai
mare.
NPGA (Niched Pareto Genetic Algorithm)
Algoritmul NPGA propus de Horn şi Nafpliotis [1.1.1.2]
introduce, în esenţă, un nou tip de selecţie, capabilă să conducă
populaţia înspre mai multe soluţii ale problemei, soluţii care aparţin
frontului Pareto.
Algoritmul de selecţie folosit de NPGA este bazat pe schema
selecţiei prin concurs, în care intervine şi conceptul de dominanţă
Pareto. Modificările aduse schemei de selecţie constau în sugerarea
unei dimensiuni apropiate de valoarea 10 a setului de comparaţie şi
maniera de rezolvare a situaţiilor de “egalitate”. Astfel, cei doi
indivizi candidat sunt comparaţi cu toţi indivizii setului de comparaţie
pentru a stabili dominanţa. În situaţiile de egalitate, când fie ambii
indivizi sunt dominaţi, fie sunt ambii ne-dominaţi, decizia se ia în
conformitate cu funcţia de evaluare partajată. Principiul este de a
avantaja indivizii aflaţi în nişe sărace, fapt care contribuie la
menţinerii diversităţii populaţiei.
204
NPGA s-a dovedit a fi o tehnică rapidă şi eficientă în
determinarea frontului Pareto. Principala critică adusă acesteia este
faptul că performanţa algoritmului este strâns legată atât de
valoarea factorului de partajare cât şi de dimensiunea prestabilită a
setului de comparaţie.
SPEA I (Strength Pareto Evolutionary Algorithm - I)
Există cîteva caracteristici ale algoritmului SPEA pe care le
putem regăsi la alte metode evolutive de optimizare multicriterială
dezvoltate. Aceste trăsături comune sunt:
- algoritmul foloseşte conceptul de dominanţă Pareto în
evaluarea indivizilor populaţiei curente;
- utilizează o memorie externă pentru păstrarea soluţiilor
nedominate găsite pînă la momentul respectiv;
- algoritmul este suplimentat printr-un mecanism de
clasificare pentru a reduce numărul soluţiilor nedominate
memorate.
Unicitatea sa provine din maniera de evaluare a indivizilor şi
tehnica de nişă pe care o încorporează:
- fitnessul unui individ se calculează relativ la soluţiilor
nedominate memorate;
- soluţiile din arhivă participă la selecţie;
- este oferită o tehnică de nişă pentru păstrarea diversităţii
populaţiei, tehnică ce nu face apel la parametrii de tipul
distanţei ci doar la conceptul de optimalitate Pareto.
Algoritmul SPEA [1.1.1.2] reprezintă unul dintre cele mai
populare tehnici de optimizare multicriterială din literatură.
SPEA 2 (Strength Pareto Evolutionary Algorithm 2)
Algoritmul SPEA 2 este dezvoltat de Zitzler, Laumanns, Thiele
[1.1.1.2] şi reprezintă o variantă îmbunătăţită a predecesorului SPEA.
Testele autorilor au demonstrat faptul că această SPEA 2 oferă soluţii
care depăşesc rezultatele SPEA în diferite probleme de test pe care
le-au considerat.
Algoritmul SPEA 2
0. Iniţializare populaţia curentă P
0

205
1. Iniţializare arhiva
φ ·
0
Q
, t=0.
2. Câttimp (nu s-a atins numărul maxim de generaţii admis: T≥ t)
2.2 Evaluarea indivizilor populaţiei curente pe baza schemei
modificate de asignare a performanţei.
2.3 Toţi indivizii nedominaţi din P
t
şi Q
t
intră în P
t+1
. Un
procedeu de trunchiere este aplicat.
2.4 Selecţie prin concurs.
2.5 Aplicarea operatorilor de variaţie.
2.6 t = t+1;
Diferenţele majore faţă de tehnica SPEA constau în:
- determinarea performanţelor indivizilor se face după o
schemă modificată, luându-se în considerare pentru fiecare
individ i de evaluat atât indivizii populaţiei curente pe care
acesta îi domină, cât şi indivizii care îl domină.
- estimarea densităţii se face pe baza unui procedeu ce ia în
considerare cel mai apropiat al k-lea individ din generaţie,
unde k reprezintă un parametru al algoritmului.
- nouă metodă de trunchiere a arhivei este propusă
Rezultate algoritmului se identifică prin soluţiile nedominate din
ultima generaţie. Evaluarea fiecărui individ (notat i) din populaţia
curentă (P
t
) se face în maniera următoare:
Fitness(i)=R(i)+D(i)
unde:
( ) ( )
t t
Q P j j S i R ∪ ∈ ·

, , j domină i şi S(i) este numărul de
indivizi din
t t
Q P ∪ pe care individul i îi domină.
( )
( ) i k p
i D
, 2
1
+
·
, unde p(k,i) – reprezintă distanţa faţă de cel
mai apropiat al k-lea individ din generaţie.
PAES (Pareto Archived Evolutionary Strategy )
Algoritmul PAES este propus de Knowles şi Corne [1.1.1.2] şi
reprezintă în esenţă o strategie evolutivă de tipul (1+1). Algoritmul
206
presupune menţinerea unei populaţii arhive de soluţii nedominate.
Această arhivă are două scopuri: primul de a memora soluţii
nedominate generate şi al doilea de a controla presiunea de selecţie
pentru a se găsi soluţii mai bune.
Algoritmul PAES
1. Generarea unei soluţii curente iniţiale.
2. Evaluarea soluţiei curente şi adăugarea acesteia la arhivă
3. Cât timp (condiţie de oprire = falsă)
a. Mutează soluţia curentă pentru a genera soluţia
candidat
b. Evaluează soluţia candidat
c. Dacă soluţia candidat nu este dominată de soluţia
curentă atunci
i. compară soluţia candidat cu membrii arhivei
ii. actualizează arhiva
iii. selectează o nouă soluţie curentă dintre soluţia
curentă precedentă şi soluţia candidat.
PESA
Algoritmul PESA este propus de Corne, Knowles, şi Oates
[1.1.1.2]. Principiul de bază al tehnicii PESA constă în controlarea
selecţiei şi păstrarea diversităţii printr-o schemă bazată pe divizarea
spaţiului în hiper-pătrate. PESA încorporează idei din SPEA şi PAES.
Ca şi algoritmul SPEA, algoritmul PESA foloseşte două populaţii: o
populaţie internă ce evoluează şi o populaţie externă de dimensiune
mai mare ce constituie arhiva de soluţii nedominate generate până la
momentul respectiv.
Într-o manieră asemănătoare algoritmului PAES, algoritmul
PESA menţine o divizare prin hiper-grilă a spaţiului ce permite să se
păstreze o imagine a gradului de aglomerare din diferite regiuni ale
arhivei. Spre deosebire de ambele tehnici mai sus menţionate, PESA
foloseşte o selecţie bazată pe măsura aglomerării.
Algoritmul PESA
1. Iniţializarea populaţiei interne PI(0) şi evaluarea indivizilor
acesteia. Iniţializarea populaţiei externe PE(0) = φ ; t=0.
2. Incorporează soluţiile nedominate din PI(t) în PE(t).
207
3. Dacă (condiţia de terminare = fals) atunci
Generează PI(t+1) prin operatorii de variaţie: recombinare şi
mutaţie
Altfel
Întoarce PE(t). STOP.
4. Salt la pasul 2.
La pasul 2, un individ al populaţiei curente PI(t) intră în arhiva
PE(t) doar dacă este atât nedominat de către ceilalţi indivizi ai
generaţiei sale cât şi nedominat de către nici un individ al arhivei.
Selecţia părinţilor pentru aplicarea operatorilor de variaţie
(recombinare şi mutaţie) se face pe baza gradului de aglomerare.
Gradul de aglomerare al unui individ oarecare este proporţional cu
numărul de indivizi din hipercubul individului respectiv.
43.1.8 Funcţii de test – optimizare multicriterială
Testarea performanţelor algoritmilor evolutivi de optimizare
multicriterială implică probleme de test şi metrici de evaluare special
concepute pentru a determina avantajele, limitările, dar şi o ierarhie
obiectivă a metodelor evolutive dedicate acestui segment de
probleme.
Una dintre cele mai populare suite de probleme de test este cea
propusă în [1.1.1.2], avantajul major al problemelor descrise
constând în testarea abilităţii algoritmului de a face faţă mai multor
dificultăţi dar şi numărul scalabil de variabile şi obiective. Suita
cunoscută sub denumirea de DTLZ, este formată din 7 probleme care
implică un număr de M obiective de minimizat şi n variabile:
DTLZ1:
Minimizează ( ) ( ) ( )
M M
x g x x x x f + ·

1 ...
2
1
1 2 1 1
Minimizează ( ) ( ) ( ) ( )
M M
x g x x x x f + − ·

1 1 ...
2
1
1 2 1 2

208
( ) ( ) ( ) ( )
M M
x g x x f + − ·

1 1
2
1
1 1
Minimizează
( ) ( ) ( ) ( )

,
_

¸
¸
− − − + ·

M
X
i
x
i i M M
x x X x g 5 . 0 20 cos 5 . 0 100
2
π
[ ] 1 , 0 ∈
i
x , n 1,2,..., · i
Sunt sugerate următoarele valori:
5 · ·
M
X k
, 1 − + · k M n .
Dificultatea determinării soluţiilor acestei probleme constă în
capacitatea populaţiei de a converge spre un hiperplan. Există 11
k
-1
fronturi Pareto optimale locale care pot atrage algoritmul.
Soluţiile optimale Pareto corespund lui 5 . 0 * ·
i
x ,
M i
X x ∈ * .
Frontul Pareto este format de hiperplanul liniar:
5 . 0
1
·

·
M
i
i
f
DTLZ2:
Minimizează ( ) ( ) ( ) ( ) ( ) π π ⋅ ⋅ ⋅ ⋅ + ·
−1 1 1
5 . 0 cos ... 5 . 0 cos 1
M M
x x X g x f
Minimizează ( ) ( ) ( ) ( ) ( ) π π ⋅ ⋅ ⋅ ⋅ + ·
−1 1 2
5 . 0 sin ... 5 . 0 cos 1
M M
x x X g x f

Minimizează ( ) ( ) ( ) ( ) π ⋅ ⋅ + ·
1
5 . 0 sin 1 x X g x f
M M
( ) ( )

− ·
M i
X x
i M
x X g
2
5 . 0
[ ] 1 , 0 ∈
i
x , n 1,2,..., i ·
Cea de-a doua funcţie DTLZ are un front Pareto real sferic.
Soluţiile optimale Pareto corespund lui 5 . 0 * ·
i
x ,
M i
X x ∈ * ,
Frontul Pareto este format de:
209
1
1
2
·

·
M
i
i
f
.
Se sugerează utilizarea următoarelor valori pentru parametrii:
10 · ·
M
X k
, 1 − + · k M n .
DTLZ3:
Minimizează ( ) ( ) ( ) ( ) ( ) π π ⋅ ⋅ ⋅ ⋅ + ·
−1 1 1
5 . 0 cos ... 5 . 0 cos 1
M M
x x X g x f
Minimizează ( ) ( ) ( ) ( ) ( ) π π ⋅ ⋅ ⋅ ⋅ + ·
−1 1 2
5 . 0 sin ... 5 . 0 cos 1
M M
x x X g x f

Minimizează ( ) ( ) ( ) ( ) π ⋅ ⋅ + ·
1
5 . 0 sin 1 x X g x f
M M
( ) ( ) ( ) ( )

,
_

¸
¸
− − − + ·

M
X
i
x
i i M M
x x X x g 5 . 0 20 cos 5 . 0 100
2
π
[ ] 1 , 0 ∈
i
x , n 1,2,..., · i
Această problemă introduce multiple fronturi locale optimale
Pareto, care pot atrage populaţia evaluată prin algoritmul testat.
Frontul Pareto global este format de:
1
1
2
·

·
M
i
i
f
DTLZ4:
Minimizează
( ) ( ) ( ) ( ) ( ) π π ⋅ ⋅ ⋅ ⋅ + ·

a
M
a
M
x x X g x f
1 1 1
5 . 0 cos ... 5 . 0 cos 1
Minimizează
( ) ( ) ( ) ( ) ( ) π π ⋅ ⋅ ⋅ ⋅ + ·

a
M
a
M
x x X g x f
1 1 2
5 . 0 sin ... 5 . 0 cos 1

Minimizează
( ) ( ) ( ) ( ) π ⋅ ⋅ + ·
a
M M
x X g x f
1
5 . 0 sin 1
( ) ( )

− ·
M
X
i
x
a
i M
x X g
2
5 . 0
210
[ ] 1 , 0 ∈
i
x , n 1,2,..., · i
Forma funcţiei DTLZ4 este asemănătoare funcţiei DTLZ2;
singura modificare constă în înlocuirea variabilei
i
x cu
a
i
x .
Autorii sugerează folosirea parametrului 100 · a .
DTLZ5:
Minimizează ( ) ( ) ( )
,
_

¸
¸

,
_

¸
¸
⋅ + ·

2
cos ...
2
cos 1
1 1 1
π
θ
π
θ
M M
X g x f
Minimizează
( ) ( ) ( )

,
_

¸
¸

,
_

¸
¸

,
_

¸
¸
⋅ + ·
− −
2
sin .
2
cos .. .
2
cos 1
1 2 1 2
π
θ
π
θ
π
θ
M M M
X g x f

Minimizează ( ) ( ) ( )

,
_

¸
¸
⋅ + ·
2
sin 1
1
π
θ
M M
X g x f
( ) ( )

− ·
M
X
i
x
i M
x X g
2
5 . 0
şi
( ) ( )
( ) ( )
i M
M
i
x x g
x g
2 1
1 4
+
+
·
π
θ
[ ] 1 , 0 ∈
i
x , n 1,2,..., · i
Problema DTLZ5 testează abilitatea algoritmului de a converge
înspre frontul Pareto reprezentat prin curba de ecuaţie:
1
1
2
·

·
M
i
i
f
,
pentru valorile 5 . 0 ·
i
x , n i ,..., 2 , 1 · ∀ .
DTLZ6:
Minimizează ( )
1 1
x x f ·

Minimizează ( )
1 1 − −
·
M M
x x f
Minimizează ( ) ( ) ( ) ( ) g f f f h X g x f
M M M
, ,..., , 1
1 2 1 −
+ ·
211
( )

+ ·
M
X
i
x
i
M
M
x
X
x g
9
1
( ) ( )

·
1
]
1

¸

+
+
− ·
1
1
3 sin 1
1
M
i
i
i
f
g
f
M h π
[ ] 1 , 0 ∈
i
x , n 1,2,..., · i
Funcţia DTLZ6 are front Pareto este discontinuu, existând 2
M-1
regiuni optimale.
Se sugerează utilizarea următoarelor valori pentru parametrii:
20 · ·
M
X k
, 1 − + · k M n .
Problema testează abilitatea unui algoritm evolutiv multicriterial
de a menţine multiple subpopulaţii corespunzătoare zonelor
optimale.
DTLZ7:
Minimizează
( )
[ ]
( ) [ ]
[ ]

− ·
·
M
n
j
M
n
j i
j
i
x
M
n
x f
1

1
,
M j ,..., 2 , 1 ·
unde:
( ) ( ) ( ) 0 1 4 ≥ − − · x f x f x g
i M j ,
1 ,..., 2 , 1 − · M j
( ) ( ) ( ) ( ) [ ] 0 1 min 2
1
1 ,
≥ − + + ·

·
x f x f x f x g
j i
M
j i M M
[ ] 1 , 0 ∈
i
x , n 1,2,..., · i
Problema DTLZ7 este dificilă datorită formei frontului Pareto
(acesta este format dintr-o dreaptă şi un hiperplan) dar şi datorită
celor M-1 restricţii impuse.
44 Optimizare dinamică
Sub titulatura de optimizare dinamică sunt cuprinse diferite
clase de probleme. Din perspectiva algoritmilor evolutivi, problema
de optimizare dinamică constă în determinarea optimelor funcţiei
criteriu, când aceasta îşi modifică forma în timp, fapt care generează
poziţii variabile ale punctelor de optim la momente de timp diferite.
212
Această problemă este recunoscută şi sub denumirea sugestivă de
optimizare în mediu dinamic. Stadiul cercetării actuale în această
direcţie este relativ incipient. Principalul inconvenient al algoritmilor
evolutivi folosiţi în optimizarea în mediu dinamic rezidă din pierderea
diversităţii populaţiei în urma convergenţei spre optimele curente ale
problemei, ceea ce provoacă incapacitatea populaţiei de a explora
ulterior spaţiul de căutare şi de a se adapta la schimbările survenite.
Tehnicile de evitare a acestui neajuns sunt clasificate în trei
categorii [1.1.1.2]:
1. Algoritmii evolutivi sunt lăsaţi să evolueze în sensul clasic,
însă la detectarea unei schimbări în mediu se execută
acţiuni explicite de amplificare a gradului de diversitate a
populaţiei, spre exemplu, reiniţializarea populaţiei sau
creşterea ratei de mutaţie pentru câteva generaţii
succesive. Dezavantajul acestei tehnici rezidă din
necesitatea menţinerii unui mecanism suplimentar prin care
se verifică apariţia schimbărilor.
2. Algoritmii evolutivi sunt înzestraţi cu mecanisme de evitare
a convergenţei în speranţa că o bună diversitate a populaţiei
ar putea conduce la o adaptare mai rapidă a acesteia la
schimbările survenite.
3. Algoritmii evolutivi sunt suplimentaţi printr-o memorie-
arhivă la care se poate apela pentru informaţii utile din
generaţiile anterioare. Aceste abordări sunt potrivite în
situaţiile în care optimul revine în locaţiile anterioare.
Funcţii de test pentru optimizarea dinamică evolutivă
Moving Peak Benchmark este o problemă de optimizare special
concepută pentru testarea abilităţii algoritmului evolutiv de a
determina soluţiile optime în mediu dinamic. De asemenea, aceasta
testează şi capacitatea algoritmului de a găsi şi menţine multiplele
optime care se modifică în timp. Precum se deduce din denumirea
problemei, se doreşte determinarea vârfurilor funcţiei date în
contextul în care, periodic, acestea îşi modifică poziţiile şi
caracteristicile.
Fiecare vârf (optim) este caracterizat prin:
înălţimea
i
h , amplitudinea
i
w şi locaţia ( )
i
n
i i
p p p ,..., ,
2 1
.
213
Funcţia de optimizat este de următoarea formă:
( ) ( )
n i
k i
n
x x x f x x x f ,..., , max ,..., ,
2 1
, 1
2 1
·
·
( )
( )

·
− ⋅ +
·
n
j
i
j j i
i
n i
p x w
h
x x x f
1
2
2 1
1
,..., ,
,
unde:
n- reprezintă numărul de variabile
k- reprezintă numărul de vârfuri
Vârfurile se modifică atât la locaţie, cât şi ca înălţime şi
amplitudine. În general, se consideră vârfurile de formă conică,
amplitudinea fiind în acest caz diametrul bazei conului respectiv.
Această problemă populară (MBP) testează abilitatea unui algoritm
evolutiv de a determina optimul, respectiv, optimele corespunzătoare
vârfurilor dinamice.
Dezvoltarea algoritmilor evolutivi care fac faţă cerinţelor
problemei de optimizare în mediu dinamic este necesară. În
problemele reale de optimizare deseori se întâlneşte situaţia ca
optimul să difere în timp. Un caz particular îl reprezintă problema
dinamică a comis voiajorului pentru care se doreşte determinarea
drumului optim în condiţiile în care, la anumite intervale de timp, pot
să dispară sau să apară oraşe pe harta corespunzătoare. O abordare
interesantă este tehnica Ant Colony Optimization, care reuşeşte cu
succes să furnizeze soluţiile problemei dinamice a comis voiajorului.
J. Branke [1.1.1.2] oferă o investigaţie deosebit de utilă a
problematicii optimizării în medii dinamice din perspectiva
algoritmilor evolutivi. Lucrarea intitulată “Evolutionary Optimization
in Dynamic Environments” prezintă principalele aplicaţii ale
algoritmilor evolutivi în probleme de optimizare dinamică, un sumar
al metodelor evolutive dedicate subiectului şi tendinţele cercetării
actuale.
214
45 Bibliografie
1. Kirkpatrick S., Gelatt C. D., Vecchi M. P., Optimization by
Simulated Annealing, Science, Vol 220, Numar 4598, p. 671-680,
1983.
2. Goldberg, David. Genetic Algorithms in Search, Optimization, and
3. Holland, J. H., Adaptation in Natural and Artificial Systems. Univ.
of Michigan Press: Ann Arbor. 1975.
4. Rechenberg, I., Evolutionsstrategie '94. Frommann-Holzboog
Verlag, Stuttgart, 1994.
5. Schwefel, H.-P., Evolution and Optimum Seeking. Wiley, New York,
NY, 1995.
6. Schwefel, H.-P., Rudolph G., Contemporary Evolution Strategies,
p. 893-907 in F. Morana et al. (eds.): Advances in Artificial Life.
Berlin: Springer 1995.
7. Koza, J.R., Genetic Programming: On the Programming of
Computers by Means of Natural Selection, MIT Press, 1992.
8. Eberhart R., Shi Y., Kennedy J., Swarm intelligence, Morgan
Kaufmann, 2001.
9. de Castro, L. N., Von Zuben, F. J., "Artificial Immune Systems: Part
I – Basic Theory and Applications " , Technical Report – RT DCA
01/99, 1999.
10. de Castro, L. N., Timmis, J. I., "Artificial Immune Systems: A Novel
Paradigm to Pattern Recognition", in Artificial Neural Networks in
Pattern Recognition , J. M. Corchado, L. Alonso, C. Fyfe (eds.),
SOCO-2002, University of Paisley, UK, pp. 67-84, 2002.
11. Hofmeyr S. A., Forrest S., “Architecture for an Artificial Immune
System”, Evolutionary Computation 8(4): p. 443-473, 2000.
215
12. Metropolis N. , Rosenbluth A. W., Rosenbluth M. N., Teller A. H.,
Teller E., “Equation of State Calculations by Fast Computing
Machines”, J. Chem. Phys., 21, 1953.
13. Baker, J. E., “Reducing Bias and Inefficiency in the Selection
Algorithm”, in Proceedings of the Second International
Conference on Genetic Algorithms - ICGA , p. 14-21, 1987.
14. Schaffer, J.D., Morishima, A., "An adaptive crossover distribution
mechanism for genetic algorithms", Genetic Algorithms and their
Applications, in Proceedings of the Second International
Conference on Genetic Algorithms - ICGA, p.36-40, 1987.
15. Eshelman L. J., Caruana R., Schaffer J. D., “Biases in the
Crossover Landscape”, in Proceedings of the 3rd International
Conference on Genetic Algorithms - ICGA, p. 10-19, 1989.
16. Schwefel, H. “Numerical Optimization of Computer Models”,
Wiley, Chichester, 1981.
17. Koza J. R., “Genetic programming: on the programming of
computers by means of natural selection”, MIT Press, Cambridge,
MA, 1992.
18. Koza, J.R., “Genetic Programming: A Paradigm for Genetically
Breeding Populations of Computer Programs to Solve Problems”,
Stanford University Computer Science Department, Technical
Report STAN-CS-90-1314, 1990.
19. Caruana R., Eshelman L. J., Schaffer J. D., “Representation and
Hidden Bias II: Eliminating Defining Length Bias in Genetic Search
via Shuffle Crossover”, in Proceddings of IJCAI, Vol I, p. 750-755,
Morgan Kaufmann, 1989.
20. Sywerda G., Uniform crossover in genetic algorithms, in
Proceedings of the Third International Conference on Genetic
Algorithms, J. D. Schaffer, Ed. Morgan Kaufmann Publishers, 1989.
21. Oyman A. I., Beyer H.-G., Schwefel H.-P., "Convergence Behavior
of the (1 +, lambda) Evolution Strategy on the Ridge Functions."
Technical Report SyS-1/98, University of Dortmund, Department
of Computer Science, Systems Analysis Research Group, 1998.
22. Schwefel, H. P. , Bäck, T., “Evolution Strategies II. Theoretical
aspects”, Genetic Algorithms in Engineering and Computer
Science, John Wiley, Chichester, 1995.
216
23. Dorigo M., Stützle T., Ant Colony Optimization, MIT Press, 2004.
24. Dorigo M., Maniezzo V., Colorni A., “Ant System: Optimization by
a colony of cooperating agents”. IEEE Transactions on Systems,
Man, and Cybernetics-Part B, 26(1):29-41,1996.
25. Dorigo M., Gambardella L.M., “Ant Colony System: A Cooperative
Learning Approach to the Traveling Salesman Problem”, IEEE
Transactions on Evolutionary Computation, Vol. 1,p.53-66, 1997.
26. Kennedy J., Eberhart R., „Particle swarm optimization”, in Proc. of
the IEEE Int. Conf. on Neural Networks, Piscataway, NJ, p. 1942–
1948, 1995.
27. Reynolds C. W., “Flocks, herds, and schools: A distributed
behavioral model”, ACM Computer Graphics, 21(4), p. 25–34,
1987.
28. Rudolph G., “An Evolutionary Algorithm for Integer
Programming”, in Y. Davidor, H.-P. Schwefel, and R. Männer
(editori): Parallel Problem Solving From Nature, 3, Berlin:
Springer, 1994.
29. De Castro L. N., Von Zuben F. J., “Artificial Immune Systems”,
Tehnical Report, TR – DCA 01/99 December, 1999.
30. Banks A., Vincent J., Anyakoha C., “A review of particle swarm
optimization. Part II: hybridisation, combinatorial, multicriteria
and constrained optimization, and indicative applications”,
Natural Computing, Vol 7., No.1, p. 109-124, 2008.
31. Jerne, N. K. (1974), “Towards a Network Theory of the Immune
System”, Ann. Immunol. (Inst. Pasteur) 125C, pp. 373-389.
32. De Castro, L. N., & Von Zuben, F. J., “aiNet: An Artificial Immune
Network for Data Analysis”, In Data Mining: A Heuristic Approach,
H. A. Abbass, R. A. Sarker, and C. S. Newton (editori), Idea Group
Publishing, USA, Chapter XII, p. 231-259, 2001.
33. Timmis, J, Neal, M., “A resource limited artificial immune
system”, Knowledge Based Systems, 14(3-4), p 121-130, 2001.
34. Sutton, R., Barto, A., “Reinforcement Learning”. MIT Press, 1998.
35. Holland, J.H., Reitman, J.H. “Cognitive Systems Based in Adaptive
Algorithms”, In Waterman, Hayes-Roth (editori) Pattern-directed
217
36. Holland, J.H., “A Mathematical Framework for Studying Learning
in Classifier Systems”, Physica D 2(1-3): 307-317, 1986.
37. Wilson, S.W., “ZCS: A Zeroth-level Classifier System”,
Evolutionary Computation 2(1):1-18, 1994.
38. Wilson, S.W., “Classifier Fitness Based on Accuracy”,
Evolutionary Computation 3(2): 149-76, 1995.
39. De Castro, L. N. , Von Zuben, F. J., “Artificial Immune Systems:
Part I – Basic Theory and Applications”, Technical Report – RT DCA
01/99, 1999.
40. De Castro, L. N. , Von Zuben, F. J., “Artificial Immune Systems:
Part II – A Survey Of Applications”, Technical Report – RT DCA
02/00, 2000.
41. Dawkins R., Gena Egoistă, Editura Tehnică, 2006.
42. Li J-P, Balazs M. E., Parks G. T., Clarkson P. J., A species
conserving genetic algorithm for multimodal function
optimization, Evolutionary Computation, Vol. 10, No.3, p.207-234,
2002.
43. Storn R., Price K., “Differential Evolution - A Simple and Efficient
Heuristic for Global Optimization over Continuous Spaces”, Journal
of Global Optimization, 11, p. 341–359, 1997.
44. Jurgen Branke, “Evolutionary Approach to Dynamic Optimization
Problems- Updated Survey”, GECCO Workshop on evolutionary
Algorithms for Dynamic Optimization Problems, p 27 –30, 2001.
45. Deb K., Thiele L., Laumanns M, Zitzler E., “Scalable Test
Problems for Evolutionary Multi-Objective Optimization”, In A.
Abraham, L. Jain, R. Goldberg, (editori), Evolutionary
Multiobjective Optimization, p 105-145. London: Springer-Verlag,
2005.
46. Thomsen, R., “Multimodal Optimization Using Crowding-Based
Differential Evolution”, in Proceedings of the 2004 IEEE Congress
on Evolutionary Computation, IEEE Press, 2004.
47. De Jong K. A., “An analysis of the behavior of a class of genetic
adaptive systems”. PhD thesis, Univ. Michigan, Ann Arbor, 1975.
48. Petrowski A., “A Clearing Procedure as a Niching Method for
Genetic Algorithms”, IEEE International Conference on
Evolutionary Computation (ICEC'96), Nagoya, 1996.
218
49. Branke J., Evolutionary Optimization in Dynamic Environments,
50. Bäck T., Evolutionary Algorithms in Theory and Practice, Oxford
University Press, 1996.
51. Fogel L.J., Owens A.J., Walsh M.J., Artificial Intelligence through
Simulated Evolution, John Wiley, NY, 1966.
52. Zadeh L.A., "Optimality and non-scalar valued performance
criteria," IEEE Trans. Automatic Control, vol. 8, pp. 59-60, 1963.
53. Charnes A, Cooper W.W, Ferguson R, “Optimal estimation of
executive compensation by linear programming”, Management
Science, 1, 138-151, 1955.
54. Ritzel B. J., Eheart J. W., Ranjithan S., “Using genetic algorithms
to solve a multiple objective groundwater pollution containment
problem”. Water Resources Research, 30(5):1589-1603, 1994.
55. Schaffer J. D. “Multiple Objective Optimization with Vector
Evaluated Genetic Algorithms”. In Genetic Algorithms and their
Applications: Proceedings of the First International Conference on
Genetic Algorithms, p. 93-100. Lawrence Erlbaum, 1985.
56. Coello C. A.. C., An Updated Survey of Evolutionary Multiobjective
Optimization Techniques : State of the Art and Future Trends , In
1999 Congress on Evolutionary Computation, Washington, D.C.,
1999.
57. Laumanns M., Zitzler E, Thiele L.. A Unified Model for Multi-
Objective Evolutionary Algorithms with Elitism, în 2000 Congress
on Evolutionary Computation, volume 1, p. 46-53, Piscataway,
New Jersey, July 2000. IEEE Service Center, 2000.
58. Fonseca, C.M., Fleming, P.J., Multiobjective Optimization and
Multiple Constraint Handling with Evolutionary Algorithms I: A
Unified Formula, Research Report no. 564, Sheffield, United
Kingdom, 1995.
59. Srinivas N., Deb K.. Multiobjective Optimization Using
Nondominated Sorting in Genetic Algorithms. Evolutionary
Computation 2(3): 221-248 (1994).
60. Deb, K., Agrawal, S., Pratap, A., Meyarian, T., A Fast Elitist Non-
dominated Sorting Genetic Algorithm for Multiobjective
219
Optimization NSGA II, in Proceedings of the Parallel Solving from
Nature VI Conference, 2000.
61. Horn, J., Napfliotis, N., Multiobjective Optimization Using Niched
Pareto Genetic Algorithm, Illigal Report 93005, Illinois
Evolutionary Algorithms Labopratory, University of Illinois, Urbana
Champaingn, 1993.
62. Zitzler, E., Deb, K., Thiele, L, Comparison of Multiobjective
Evolutionary Algorithms: Empirical Results, Evolutionary
Computation, vol. 8, no. 2, 2000.
63. Zitzler, E., Laumanns, M., Thiele, L., SPEA 2: Improving the
Strenth Pareto Evolutionary Algorithm for Multiobjective
Optimization, 2000.
64. Corne, D., Knowles, J., Oates, M., The Pareto Envelope-based
Selection Algorithm for Multiobjecive Optimization in Proceedings
of the Parallel Solving from Nature VI Conference, 2000.
65. Knowles, J., Corne, D., The Pareto Archived Evolution Strategy: A
New Baseline Algorithm for Multiobjecive Optimization. In
Proceedings of the 1999 Congress on Evolutionary Computation
(CEC'99), Volume 1, p. 98-105, 1999.
220

CUPRINS 1INTRODUCERE.................................................................................................................1 2METAEURISTICI.....................................................................................................................5 2.1.1Căutare locală – Hill Climbing.............................................................................6 2.1.2Căutare TABU.......................................................................................................8 2.1.3Recoacere simulată – Simulated Annealing..........................................................9 3PARADIGMA ALGORITMILOR GENETICI.............................................................13 4ISTORIC ............................................................................................................................13 5MODELUL NATURAL AL ALGORITMILOR GENETICI......................................................................14 6DESCRIERE ALGORITM GENETIC..............................................................................................15 7FUNCŢIONAREA ALGORITMULUI GENETIC.................................................................................26 8APLICAŢII..........................................................................................................................28 9SELECŢIA...........................................................................................................................29 9.1.1Selecţia proporţională.........................................................................................30 9.1.2Selecţia prin concurs...........................................................................................35 9.1.3Selecţia prin etichetare........................................................................................36 10FUNCŢIA DE EVALUARE......................................................................................................38 11CODIFICARE BINARĂ..........................................................................................................39 11.1.1Codificarea cromozomială binară....................................................................39 11.1.2Teorema schemelor...........................................................................................46 11.1.3Operatori de încrucişare pentru codificarea binară.........................................47 11.1.4Operatorul de mutaţie pentru codificarea binară.............................................56 11.1.5Inversiunea .......................................................................................................61 12CODIFICARE REALĂ - SPECIFICĂ ..........................................................................................62 12.1.1Operatorul de încrucişare pentru codificarea reală.........................................63 12.1.2Operatorul de mutaţie pentru codificarea reală...............................................66 13CONSIDERAŢII PRIVIND OPERATORII GENETICI.........................................................................67 14EXEMPLE DE REZOLVARE A PROBLEMELOR CU ALGORITMI GENETICI...........................................70 14.1.1Exemplu 1 – Optimizare numerică....................................................................70 14.1.2Exemplu 2– Optimizare numerică.....................................................................76 14.1.3Exemplu 3– Optimizare numerică.....................................................................79 15STRATEGII EVOLUTIVE............................................................................................84 16 STRATEGIA EVOLUTIVĂ (1+1)............................................................................................85 16.1.1Reprezentarea indivizilor..................................................................................85 16.1.2Mutaţia..............................................................................................................85 16.1.3Algoritmul strategiei evolutive (1+1)................................................................87 17 STRATEGIA EVOLUTIVĂ (+1)..............................................................................................88 17.1.1Recombinarea ...................................................................................................89 17.1.2Mutaţia..............................................................................................................90 17.1.3Algoritmul strategiei evolutive (+1)..................................................................91 18STRATEGIILE (1,), (1+).....................................................................................................91 19STRATEGIILE EVOLUTIVE (+) ŞI (,).......................................................................................92 19.1.1Reprezentarea individului.................................................................................93 19.1.2Recombinarea....................................................................................................93

ii

19.1.3Mutaţia..............................................................................................................94 19.1.4Selecţia .............................................................................................................96 19.1.5Algoritmul strategiilor evolutive (+) şi (,)........................................................97 20PROGRAMAREA GENETICĂ....................................................................................99 21DESCRIEREA PARADIGMEI GP...........................................................................................100 21.1.1Natura indivizilor supuşi evoluţiei..................................................................100 21.1.2Spaţiul de căutare............................................................................................103 21.1.3Funcţia de performanţă...................................................................................104 21.1.4Operatori specifici programării genetice........................................................105 21.1.5Algoritmul programării genetice.....................................................................110 22EXEMPLU DE APLICAŢII PG: REGRESIA SIMBOLICĂ. PROBLEMA 11-MULTIPLEXORULUI BOOLEAN.111 23PROGRAMAREA EVOLUTIVĂ...............................................................................116 24DESCRIEREA TEHNICII ORIGINALE.......................................................................................118 24.1.1Automate finite – maşina Turing.....................................................................118 24.1.2Reprezentarea indivizilor populaţiei...............................................................120 24.1.3Evaluarea indivizilor.......................................................................................120 24.1.4Operatorii specifici..........................................................................................120 24.1.5Algoritmul programării evolutive – pentru automate finite............................121 25PROGRAMAREA EVOLUTIVĂ CONTEMPORANĂ – OPTIMIZAREA NUMERICĂ...................................122 25.1.1Reprezentarea indivizilor populaţiei...............................................................122 25.1.2Evaluarea indivizilor populaţiei......................................................................123 25.1.3Operatori specifici...........................................................................................123 25.1.4Algoritmul meta-Programării Evolutive.........................................................124 26PARADIGMA SWARM INTELLIGENCE...............................................................126 27TEHNICA ANT COLONY OPTIMIZATION .............................................................................127 27.1.1Modelul natural...............................................................................................127 27.1.2Tehnica ACO...................................................................................................131 27.1.3Aplicaţii...........................................................................................................137 28TEHNICA PARTICLE SWARM OPTIMIZATION.........................................................................138 28.1.1Modelul natural ..............................................................................................138 28.1.2Algoritmul PSO...............................................................................................139 28.1.3Aplicaţii...........................................................................................................142 29SISTEME IMUNE ARTIFICIALE.............................................................................143 30 MODELUL BIOLOGIC ......................................................................................................143 30.1.1Anatomia sistemului imun...............................................................................144 30.1.2Celulele imune.................................................................................................144 30.1.3Activitatea sistemului imun.............................................................................145 30.1.4Caracteristicile majore ale sistemului imun...................................................147 31 SISTEME IMUNE ARTIFICIALE............................................................................................147 31.1.1Modele biologice în sistemele imune artificiale..............................................148 32PRINCIPIUL SELECŢIEI CLONALE.........................................................................................149 33 PRINCIPIUL SELECŢIEI NEGATIVE.......................................................................................151 34 TEORIA REŢELEI IMUNE...................................................................................................152

iii

35PRINCIPALELE APLICAŢII ALE SISTEMELOR IMUNE ARTIFICIALE.................................................153 36ALTE TEHNICI NATURAL-EVOLUTIVE..............................................................154 37SISTEME DE CLASIFICARE INSTRUIBILE...............................................................................154 37.1.1LCS .................................................................................................................155 37.1.2ZCS..................................................................................................................157 37.1.3XCS..................................................................................................................160 38ALGORITMI MEMETICI......................................................................................................161 39DIFFERENTIAL EVOLUTION................................................................................................163 40APLICAŢII ÎN OPTIMIZARE...................................................................................167 41ALGORITMI EVOLUTIVI PENTRU OPTIMIZARE UNICRITERIALĂ...................................................167 41.1.1Avantaje şi dezavantaje ale algoritmilor evolutivi pentru rezolvarea problemelor de optimizare unicriterială...................................................................168 41.1.2Particularităţi ale algoritmilor evolutivi de optimizare unicriterială.............169 41.1.3Explorare versus exploatare...........................................................................170 41.1.4Elitismul...........................................................................................................172 41.1.5Tratarea restricţiilor.......................................................................................172 42OPTIMIZARE MULTIMODALĂ..............................................................................................173 42.1.1Tehnica Sharing..............................................................................................175 42.1.2Tehnica Crowding...........................................................................................177 42.1.3Tehnica Clearing.............................................................................................177 42.1.4Tehnica Speciation..........................................................................................178 42.1.5Funcţii de test..................................................................................................179 43OPTIMIZARE MULTICRITERIALĂ..........................................................................................183 43.1.1Problema generală de optimizare multicriterială...........................................184 43.1.2Avantaje şi dezavantaje ale algoritmilor evolutivi de rezolvarea problemelor de optimizare multicriterială.....................................................................................187 43.1.3Clasificarea metodelor evolutive de optimizare multicriterială.....................188 43.1.4Tehnici de agregare.........................................................................................188 43.1.5Tehnici non-agregare......................................................................................191 43.1.6Optimizare evolutivă multicriterială versus diversitatea populaţiei...............199 43.1.7Optimizare evolutivă multicriterială versus elitism........................................200 43.1.8Funcţii de test – optimizare multicriterială.....................................................208 44OPTIMIZARE DINAMICĂ.....................................................................................................212 45BIBLIOGRAFIE...........................................................................................................215

iv

devenind un domeniu de sine stătător. studiul tehnicilor evolutive necesită dedicarea unui spaţiu mai larg pentru a cuprinde panorama întregii cercetări depuse în sensul construirii acestui domeniu. Ca urmare. cărţi. denumite frecvent tehnici de inspiraţie naturală. fapt pentru care ne permitem să afirmăm că această ramură devine una de importanţă considerabilă. pot fi rezolvate cu succes prin abordări din arealul Calculului Inteligent. De asemenea. alături de Sistemele Fuzzy şi Calculul Neuronal. într-una dintre cele mai noi şi prolifice ramuri ale Inteligenţei Artificiale. sub titulatura de Calcul Inteligent. teze de doctorat) şi a jurnalelor dedicate subiectului 1 . considerată succesoarea tehnicilor tradiţionale ale Inteligenţei Artificiale. Informatica cunoaşte prin această noua tendinţă o schimbare majoră: probleme grele. Un domeniu mai larg care încorporează tehnicile inspirate de modele inteligente observabile în natură este denumit Calcul Natural (Natural Computation). Numărul mare al lucrărilor publicate (articole. Calculul Evolutiv şi Calculul Neuronal. sunt incluse ca obiect de studiu în universităţi. În intersecţia generoasă a Calculului Evolutiv şi Calculului Natural sunt cuprinse unele dintre cele mai ingenioase instrumente de rezolvare a problemelor dificile. Calculul Evolutiv (Evolutionary Computation) se detaşează treptat în ultimele decenii de orice încadrare. de la an la an. cercetări variate şi aplicaţii cu succes într-o mare varietate de probleme dificile. literatura de specialitate se îmbogăţeşte într-un ritm rapid.CAPITOL I 1 Introducere Inclus pentru o perioadă de timp în domeniul generos al Inteligenţei Artificiale. Cercetările actuale integrează Calculul Evolutiv. cu noi cercetări efectuate în această direcţie. acumulând noi paradigme. de complexitate ridicată. pentru care aplicarea unei metode tradiţionale devine ineficientă sau uneori imposibilă.

Noua generaţie este alcătuită din descendenţii populaţiei vechi.1. punctul de start al dezvoltării ulterioare a domeniului: Algoritmii Genetici. cantitativ proporţional cu importanţa sau popularitatea subiectului. Acestora li se alătură algoritmi inediţi bazaţi pe paradigme naturale ca: sistemele imune. mutaţia şi selecţia naturală.2]). Structura cărţii permite o parcurgere facilă. Programarea Evolutivă. În anii în care genetica şi informatica cunoşteau o dezvoltare accentuată. având un început timid.1. Subiectul cunoaşte o revenire puternică prin lucrări ulterioare (vezi de exemplu lucrarea lui D. Algoritmul genetic standard este în esenţă un algoritm de căutare şi optimizare în spaţiul soluţiilor posibile. aceştia din urmă fiind noi soluţii posibile prin care se 2 . preocuparea în aceste ramuri ale ştiinţei fiind extrem de motivată de progresul tehnologic. stârnind interesul înspre dezvoltarea şi identificarea posibilelor aplicaţii ale algoritmilor genetici. fapt care marchează o uşoară stagnare a cercetării din primii ani. asupra indivizilor acesteia aplicându-se operatori specifici inspiraţi de încrucişarea. coloniile de furnici. Nu este un domeniu căruia să i se ofere o importanţă practică considerabilă de la bun început. Goldberg din 1989. Strategiile Evolutive.2] este prima lucrare care prezintă în mod sistematic şi riguros aspecte teoretice ale subiectului. [1. Principalele direcţii ale Calculului Evolutiv sunt: Algoritmii genetici. O populaţie de soluţii posibile este generată. Cartea lui J. la congruenţa celor două ramuri sus menţionate ia naştere un capitol aparte al informaticii cu rădăcini puternice în arealul biologiei. Cartea de faţă îşi propune o introducere în sfera Calculului Evolutiv şi Natural prin prezentarea celor mai populare tehnici inspirate de natură.aduc o dovadă suplimentară a interesului crescut al comunităţii cercetătorilor în dezvoltarea aplicaţiilor viabile ale Calculului Evolutiv. Capitolul se dedică în exclusivitate celei mai reprezentative direcţii a calculului Evolutiv.1. fiecărui model natural ce contribuie la dezvoltarea unei clase de tehnici fiindu-i consacrat un capitol separat. Programarea Genetică. În primele decade ale istoriei Algoritmilor genetici cercetarea se restrânge în câteva centre universitare.1. Holland din 1975 [1. etc. ulterior.

Este importantă maniera de calcul a performanţelor indivizilor (denumiţi în mod uzual cromozomi). Funcţia de evaluare joacă un rol important în cadrul algoritmului genetic: o alegere inspirată a acesteia poate conduce la soluţii foarte bune într-un număr mai mic de generaţii. fapt pentru care cunoaşterea subiectului şi o bună experienţă a celui care dezvoltă algoritmul constituie un real avantaj. fapt care asigură convergenţa algoritmului înspre soluţiile reale ale problemei considerate. se conturează paradigma Strategiilor Evolutive. De asemenea. tipul operatorilor folosiţi. prin lucrări reprezentative sunt constituite strategiile evolutive contemporane – reprezentând strategii evolutive revizuite şi generalizate pentru a permite un domeniu mai larg al aplicaţiilor 3 . Se utilizează în acest sens o funcţie de evaluare a calităţii soluţiilor posibile. dezvoltă şi teoretizează ceea ce astăzi cunoaştem sub titulatura de strategii evolutive. Ulterior apariţiei Algoritmilor Genetici. detaliile legate de maniera de codificare a soluţiilor.1. În schimb. Pionierii Strategiilor Evolutive sunt recunoscuţi ca fiind Ingo Rechenberg şi Hans-Paul Schwefel ( [1. Valorile performanţelor individuale se folosesc în procesul de selecţie. Putem afirma că dezvoltarea unui algoritm genetic pentru rezolvarea unei probleme concrete este în fapt un act creativ care permite programatorului o mare flexibilitate în alegerea tehnicilor folosite pentru atingerea scopului dorit. alegerea operatorilor genetici folosiţi cade în sarcina programatorului.1.explorează spaţiul de căutare. Structura algoritmului genetic standard este simplă. tehnica de selecţie aplicată şi alegerea valorilor inspirate pentru parametrii algoritmului sunt cele care decid în final dacă rezultatele obţinute sunt cele satisfăcătoare.1. Acestea din urmă împrumută caracteristici definitorii ale algoritmilor genetici însă propun operatori specifici strategiilor şi modele noi de populaţii. favorizându-se încrucişarea şi mutaţia indivizilor performanţi. ceea ce aduce cu sine o evoluţie pozitivă a populaţiei înspre soluţiile dorite.1.2] ). un grup de cercetători de la Universitatea Tehnică din Berlin.2]. Mai târziu. De-a lungul evoluţiei se înregistrează o creştere a performanţelor indivizilor populaţiei curente. [1. ca un răspuns la cercetarea americană în algoritmii inspiraţi de evoluţie şi genetică. În anii 60 .

prin eforturile lui J. prin reprezentarea flexibilă a indivizilor populaţiei. Capitolul este dedicat Strategiilor Evolutive. Koza [1. Spre exemplu. În paralel cu dezvoltarea Algoritmilor Genetici. reuşind să descopere modele inteligente în cele mai neaşteptate aspecte ale naturii. programarea evolutivă este similară celorlalte tehnici evolutive pomenite (exemplu: evoluţia unei populaţii de soluţii. Paradigma programării genetice este puţin exploatată în comparaţie cu popularii algoritmi genetici.2] de a susţine ramura programării genetice prin teoretizarea acesteia şi aplicarea metodelor specifice în probleme diverse. În capitolul 6 este detaliată paradigma Swarm Intelligence. cel de-al patrulea pion important al Calculului Evolutiv. punând în evidenţă două direcţii importante de cercetare a subiectului: metodele evolutive inspirate de comportamentul furnicilor şi tehnicile de optimizare Particle Swarm Optimization.1. iar programarea genetică evoluează programele (algoritmii) care rezolvă cu succes problema dată. O descriere a paradigmei programării genetice este oferită în capitolul .1. se impune direcţia Programării Genetice. Paradigma Programării Evolutive. perspectiva din care sunt abordate problemele de rezolvat este complet diferită: în cazul algoritmilor genetici sunt evoluate soluţiile problemei.1.1. Precum 4 .practice şi obţinerea unor rezultate mai bune [1. aplicarea operatorilor genetici. Imaginaţia cercetătorilor nu are limite. programarea evolutivă îşi câştigă un loc distinct în scena Calculului Evolutiv. Complexitatea structurală şi funcţională a organismului uman reprezintă o reală provocare în Inteligenţa Artificială. apare în anii 60 şi încorporează tehnici de generare automată a comportamentul inteligent al unui sistem. supravieţuirea celor mai performanţi indivizi).1.1.2] . comportamentul colectiv al stolurilor de păsări sau al coloniilor de furnici ne furnizează una dintre cele mai recente paradigme ale Calculului Natural: Swarm Intelligence [1.2]. Deşi structura algoritmului general al Programării genetice este similară structurii algoritmului genetic standard. Deşi în multe aspecte. Cel de-al -lea capitol al cărţii de faţă descrie aspecte importante ale Programării Evolutive. însă în anii 90 se înregistrează o puternică revenire.

Lucrări reprezentative (vezi [1. fie de spaţiul de memorie insuficient pentru reprezentarea şi stocarea soluţiilor.1. Principala aplicabilitate a algoritmilor evolutivi se exprimă în rezolvarea problemelor de optimizare. este preferată determinarea unei aproximări a soluţiei optime într-o manieră mai eficientă. De asemenea sunt evidenţiate dificultăţile problemelor de optimizare în medii dinamice. denumită metaeuristici. Prin aplicaţii neaşteptate în sfera securităţii reţelelor.1. fără a garanta însă corectitudinea rezultatului obţinut.2]. Pentru a întregi panorama. Euristicele sunt metode generale de aproximare a soluţiilor problemelor grele. Metaeuristicile sunt tehnici generale dedicate rezolvării problemelor 5 .[1.sistemul nervos oferă o bogată sursă de inspiraţie în ramura Calculului Neuronal. sistemele imune artificiale câştigă un teren important în cercetarea actuală. Metodelor evolutive inspirate de modelul sistemului imun le este consacrat capitolul . denumită în mod sugestiv Sisteme Imune Artificiale. fapt pentru care acestui subiect i-am dedicat un capitol separat.[1.2]. sistemul imun natural se dovedeşte de asemenea un puternic model demn de luat în considerare. Optimizarea multiobiectiv şi optimizarea multimodală sunt abordate în capitolul din perspectiva tehnicilor evolutive.1. 2 Metaeuristici Contrar progresului tehnologiei informatice. O supra clasă a acestor metode. În aceste situaţii. Acestea sunt metode evolutive importante atât prin originalitatea lor cât şi prin direcţiile noi pe care le deschid.1.1. o serie de probleme dificile nu pot fi rezolvate prin algoritmi tradiţionali care ne-ar conduce la soluţiile exacte ale acestora. încorporează frecvent elemente ale unei căutări aleatoare.2]) conturează o direcţie nouă încadrată Calculului Evolutiv. sub titlul Alte tehnici evolutive am selectat în capitolul câteva metode ingenioase încadrate domeniului abordat. Acest lucru este cauzat fie de timpul de execuţie prea mare pe care îl necesită metodele respective. fără a pretinde însă o acoperire completă a arealului Calculului Evolutiv. optimizare sau recunoaşterea formelor.1.

Practic. în mod special în domeniul Inteligenţei Artificiale. o astfel de tehnică se poate interpreta ca o strategie de ghidare a căutării executată de alte euristici. Principiul de funcţionare şi condiţia de terminare a unui algoritm de căutare locală nu garantează determinarea exactă a soluţiei optime.1 Căutare locală – Hill Climbing Metaeuristica Căutarea locală cuprinde algoritmi de rezolvare a problemelor de optimizare. prin iterarea unei euristici simple. Simulated Annealing. de bază. respectiv. Metaeuristicile se disting prin construirea pas cu pas a soluţiei acceptabile. Principiul de funcţionare a unui algoritm de căutare locală este următorul: în mod iterativ. Cele mai reprezentative metaeuristici sunt: Hill-Climbing. fiind aplicaţi cu succes în rezolvarea a numeroase problemelor de optimizare dificile. În cazul în care alegerea soluţiei vecine se face în ideea de a maximiza local criteriul de optimizare. 2. pornind de la o soluţie posibilă curentă.de complexitatea combinatorică. prin exploatarea soluţiilor obţinute într-o etapă anterioară sau explorarea aleatoare a spaţiului de căutare. algoritmii de căutare locală au o răspândire largă.1. aplicarea acestor algoritmi este indicată în cazul acelor probleme care pot fi formulate ca determinarea unei soluţii care maximizează un criteriu dat într-o mulţime de soluţii posibile. prin rafinarea unei soluţii posibile pentru obţinerea unei bune aproximări a optimului. Atingerea unui număr prestabilit de iteraţii poate constitui o condiţie de terminare a algoritmului. căutarea Tabu şi algoritmii încadraţi Calculului Evolutiv. În general. Cu toate acestea. 6 . Altă modalitate de încheiere a execuţiei algoritmului poate fi stabilită prin înregistrarea unei stagnări a căutării (în ultimele k iteraţii cea mai bună soluţie găsită nu a fost modificată în sensul creşterii valorii criteriului de optimizare). care fac uz de euristici într-o manieră eficientă. tehnica de căutare locală este cunoscută sub denumirea de Hill-Climbing. se va explora vecinătatea acesteia în căutarea unei noi soluţii vecine mai bune.

Datorită manierei în care se actualizează soluţia curentă. algoritmul descrie o urcare pas cu pas înspre vârfurile (hills) suprafeţei. Coordonatele oricărui punct de pe suprafaţa considerată reprezintă o posibilă soluţie. algoritmul modifică soluţia curentă. Există variante 7 . Algoritmul general Hill Climbing este descris în continuare: Algoritm Hill Climbing este: Generare aleatoare soluţie posibilă x Câttimp (condiţie_de_terminare = false) Fie V(x) – vecinătatea soluţiei x x’=AlegeBest (V(x)) Dacă x’ este mai bun decât x atunci x:=x’ sfDacă SfCâttimp SfAlgoritm Denumirea algoritmului provine dintr-o analogie cu situaţia determinării vârfurilor (maximelor) unei funcţii de două variabile. preferând la fiecare pas cea mai bună soluţie vecină.Un algoritm Hill Climbing explorează mulţimea de soluţii posibile în sensul creşterii criteriului de optimizare. ale cărei grafic este o suprafaţă în spaţiul 3-dimensional şi poate fi comparat cu un relief geografic format din dealuri şi văi. Pornind de la o primă soluţie candidat aleasă aleator. Soluţia mai bună dintre cele două devine soluţie curentă şi procesul se reia până când nu mai este posibilă o îmbunătăţire a soluţiei curente. Rezultatul algoritmului este reprezentat de ultima soluţie pe care acesta a prelucrat-o. Soluţiile cu altitudine mai mare sunt de preferat. Pornind de la o soluţie iniţială aleasă aleator. De notat faptul că tehnica Hill Climbing nu garantează determinarea optimului global. obţinând o soluţie candidat. respectiv. algoritmul Hill Climbing este un algoritm de tip Greedy. însă algoritmii de acest gen sunt alternative eficiente în situaţia în care o aproximare bună a optimului este suficientă. fiind mai apropiate de maximele funcţiei. Alegerea “lacomă” (greedy) a soluţiei vecine poate genera un inconvenient major al procedurii. convergenţa şi blocarea într-un optim local.

Prin această caracteristică. Denumirea acestor algoritmi provine de la cuvântul Taboo (echivalent Tabu) al cărui multiple sensuri sunt: sacru. respectiv. În ideea de a marca soluţiile recent parcurse se va utiliza o listă tabu.ale algoritmului standard prin care se elimină această problemă: Random-Restart Hill Climbing este un algoritm de căutare locală care permite execuţia repetată a unei proceduri Hill Climbing având ca punct de plecare diferite soluţii posibile. algoritmii de căutare Tabu pot fi suplimentaţi prin proceduri de intensificare a căutării într-o regiune promiţătoare a spaţiului soluţiilor. Spre deosebire de tehnicile Hill Climbing. În anumite circumstanţe. prin proceduri de diversificare pentru a stimula căutarea într-o regiune slab explorată. Componenta de intensificare implică modificarea regulilor de alegere a noilor soluţii pentru a exploata trăsăturile soluţiilor dovedite a fi bune în etapele anterioare. Fiecare soluţie parcursă va fi marcată ca fiind tabu. chiar dacă acest lucru duce la o deteriorare a valorii criteriului de maximizat. căutarea tabu implică explorarea spaţiului de căutare prin mutarea de la o soluţie la cel mai bun vecin. Alte strategii de intensificare rezultă prin reveniri în regiuni promiţătoare ale spaţiului şi explorarea acestora mai amănunţită. Alegerea noii soluţii se face din vecinătatea modificată a soluţiei curente. prin aceasta interzicându-se o reverificare ulterioară a sa. interzis. Un algoritm de căutare Tabu va porni de la o soluţie candidat aleasă aleator şi va explora în mod iterativ spaţiul soluţiilor posibile. etc. ascuns. 2. Strategia de diversificare se realizează prin 8 . Soluţiile rezultate în urma execuţiilor procedurii Hill Climbing sunt reţinute şi cea mai bună dintre acestea este soluţia finală a algoritmului.1. Vecinătatea soluţiei curente va exclude acele soluţii care sunt memorate în lista tabu. având semnificaţia unei memorii temporare.2 Căutare TABU Algoritmii de căutare Tabu sunt o clasă de algoritmii de căutare locală care fac uz de o memorie în care sunt reţinute soluţiile verificate. abordarea permite o probabilitate mai mare de mutare din optimele locale. fapt pentru care soluţiile recent verificate nu vor putea fi reparcurse.

se observă o diferenţă majoră: algoritmul SA nu va parcurge vecinătatea soluţiei curente pentru a alege cel mai bun vecin. algoritmul general Simulated Annealing (prescurtat SA) va permite înlocuirea soluţiei curente cu o soluţie vecina aleatoare. iar în etapa de răcire lentă atomii se reorganizează pentru a se ajunge la configuraţii de energie mai mică decât cea iniţială. În etapa de încălzire atomii se distribuie într-un mod aleator.3 Recoacere simulată – Simulated Annealing Algoritmii de recoacere simulată [1. având rolul de a controla gradul în care este permisă înlocuirea soluţiei curente cu o soluţie mai slabă.examinarea regiunilor neexplorate şi generarea unor soluţii mult diferite de cele care au fost deja parcurse. Astfel.1. valori mari ale temperaturii corespund 9 . acela al încălzirii bruşte a unei bucăţi de metal.2] sunt inspiraţi de un proces termodinamic. ci preferă o soluţie aleatoare. Parametrul de control T are iniţial o valoare mare şi treptat descreşte. Probabilitatea de acceptare a noii soluţii este dependentă de performanţa sa şi de parametrul temperatură T. Comparând strategia de alegere a noii soluţii candidat din algoritmul Hill Climbing. Analogia dintre procesul termodinamic descris şi algoritmul de minimizare Simulated Annealing se poate rezuma prin următoarele echivalenţe: - energia sistemului = funcţia criteriu (se doreşte minimizarea valorilor acestora) stările sistemului = spaţiul de căutare starea curentă a sistemului = soluţia candidat modificarea stării sistemului = modificarea soluţiei curente temperatura sistemului = parametrul de control T (denumit sugestiv temperatură) - Inspirat de procesul termodinamic al recoacerii simulate.1. Procesul fizic este deseori utilizat în metalurgie în scopul obţinerii unor materiale cu defecte minime. urmată de o răcire lentă (recoacere) a acestuia în scopul atingerii minimului global al energiei interne şi a dispunerii atomilor într-o reţea cristalină ordonată. 2. chiar dacă performanţa noii soluţii este mai mică.1.

în mod independent. unde: Z (T ) k BT - S –mulţimea stărilor sistemului s ∈ S este starea sistemului T . Notăm: - T . şi probabilitatea de acceptare a unei stări depinde doar de starea curentă. Acest lucru este realizabil dacă este posibilă calcularea lui Z(T).2] prin care stările sistemului sunt generate aleator.temperatura sistemului Z(T) –factor de normalizare E(s) – energia stării s k B .1.valoarea iniţială a soluţiei 10 .temperatura curentă (se consideră constantă în timpul execuţiei algoritmului Metropolis) xinit . Însă. fapt pentru care comportamentul unu algoritm SA în ultimele iteraţii este asemănător algoritmului Hill Climbing. în timp ce valori mici ale parametrului vor induce o mică probabilitate de a prefera soluţiile slabe. practic. determinarea lui Z(T) este imposibilă deoarece necesită calcularea unei sume pentru toate stările posibile ale sistemului: Z (T ) = ∑exp( − s∈ S E ( s) ) k BT Pentru a depăşi dificultatea calculului valorii Z (T ) este posibilă folosirea algoritmului Metropolis 1953 [1. fiecărei stări s a sistemului îi este asociată o probabilitate de apariţie PT(s): P ( s) = T 1 E (s) exp( − ) .unei mari probabilităţi de a înlocui soluţia curentă cu una mai slabă.constantă fizică pozitivă (constanta lui Boltzmann) Pentru a folosi acest model fizic în optimizare ar fi necesară generarea stărilor-soluţiilor în conformitate cu distribuţia Boltzmann pentru valori din ce in ce mai mici ale temperaturii T. Pornind de la modelul fizic.1.

- i m x . x i max ) este: Iniţializare x( 0 ) = xinit . Algoritmul general Simulated Annealing conţine o secvenţă de subalgoritmi Metropolis pentru valori din ce în ce mai mici ale parametrului temperatură T: 11 . xinit . În general perturbaţia constă în stabilirea unei vecinătăţi asociate soluţiei x(i) şi alegerea unei soluţii din vecinătatea respectivă. i max . cu probabilitatea:1) altfel (acceptare nouă soluţie cu probabilitatea:  f ( x ') − f ( x )  exp  −  ) T   Generează aleator 0 ≤ q ≤ 1 Dacă q < exp  − x(i+1):=x’ Altfel x(i+1):=x SfDacă SfDacă i:=i+1   f ( x ') − f ( x )   atunci T  xi max = x( i ) SfCâttimp sfAlgoritm Generarea noii soluţii x’ se face printr-o perturbaţie aplicată soluţiei curente x(i).numărul maxim de iteraţii ale procesului a Algoritmul Metropolis este descris în continuare. i:=0 Câttimp ( i < imax ) x’:=Perturba(x(i)) Dacă f(x’)<f(x(i)) atunci x(i+1):=x’ (acceptare nouă soluţie. Algoritmul Metropolis(T.

Descreşterea temperaturii corespunde unei căutări controlate în spaţiul stărilor: iniţial.95 ) 1. 12 .timpul. unde 0 < α < 1 (ex. T = Alegerea inspirată a modului de descreştere a temperaturii este una dintre condiţiile succesului algoritmului SA.Notăm cu xt . prin valori mari ale temperaturii este accentuată exploatarea spaţiului de căutare prin acceptarea cu o mai mare probabilitatea a stărilor generate indiferent de calitatea acestora. xt + ) 1 /*se T = Descrester e (T . i max . α = 0. T0 . Oferim în continuare câteva variante de modificare a valorii temperaturii: T0 . soluţia curentă a problemei. ulterior. T = α ⋅ T . t ) t = t +1 SfCâttimp SfAlgoritm O componentă importantă a unui algoritm SA o constituie strategia de descreştere a parametrului temperatură. la momentul de timp t. iar. T = 1 + ln t 3.temperatura iniţială 1+t T0 2. xt . valorile mici ale temperaturii induc exploatarea locală.numărul maxim de iteraţii */ ax Cheamă determină x t + */ 1 Metropolis(T. t. Algoritm Simulated_Annealing este Iniţializare x0 Iniţializare temperatura iniţială T =T0 t =0 Câttimp ( t < t max ) /* t m .

programarea evolutivă. Unul dintre pionierii acestui domeniu. prin lucrările sale (ex. cea mai prolifică direcţie rămâne cea a algoritmilor genetici.1975) în care este descris algoritmul genetic standard. Interesul asupra fenomenelor evoluţiei. Fraser (19232002). Genetic Algorithms in Search. "Simulation of genetic systems by automatic digital computers" – 1957). Optimization and Machine 13 . Un alt punct de referinţă în istoria algoritmilor inspiraţi de fenomene naturale îl constituie lucrările lui David E. Goldberg (vezi de ex.CAPITOL II 3 Paradigma Algoritmilor Genetici 4 Istoric Primele semnale privind posibilitatea simulării proceselor evolutive cu ajutorul calculatorului au fost înregistrate în anii 50. a crescut în decadele următoare. privite din perspectivă computaţională. culminând cu lucrarea de referinţă a lui John Holland („Adaptation in Natural and Artificial Systems” . programarea genetică. Cu toate acestea. popularitatea lor fiind justificată de simplitatea şi succesul înregistrat în rezolvarea multor probleme dificile. Holland elaborează Teorema schemelor în încercarea de a explica forţa algoritmilor genetici în rezolvarea problemelor de căutare şi optimizare. În paralel cu dezvoltarea algoritmilor genetici se conturează şi celelalte direcţii majore ale Calculului Evolutiv: strategiile evolutive. biologul Alex S. a reuşit să aducă în atenţia cercetătorilor ideea simulării selecţiei artificiale a organismelor.

Learning. însă afirmaţiile conform cărora evoluţia este călăuzită de principiul supravieţuirii celor mai performanţi indivizi şi a diversificării prin mutaţiile apărute. sau teoria eredităţii este un alt punct de vedere asupra evoluţiei. 1973) susţine ipoteza blocurilor constructive. Acesta lasă posterităţii câteva însemnări în caietele sale 14 . astfel încât aceştia sunt recunoscuţi pe drept ca fiind “părinţii” Algoritmilor Genetici. dintr-o perspectivă matură asupra noului domeniu conturat. Cercetările şi lucrările lui Darwin (ex. 1989 ) în care sunt revăzute şi formulate principiile algoritmilor genetici. un preot şi om de ştiinţă austriac. Gregor Mendel (18221884) descoperă mai mult sau mai puţin accidental teoria eredităţii prin experimentele efectuate în vederea încrucişării speciilor diferite de mazăre. Teoria neo-darwinistă. Adaptarea unei populaţii este interpretată prin două principii majore: selecţia naturală – supravieţuirea celor mai adaptaţi indivizi şi mutaţia – variaţie a caracteristicilor indivizilor apărută ca răspuns la mediul înconjurător. La sfârşitul secolul al XIX-lea. Teoria Darwinistă reprezintă un ansamblu de observaţii asupra evoluţiei privită la nivel macroscopic şi identificarea factorilor responsabili de acest fenomen. teoria formulată de Goldberg nu se verifică în totalitate şi nu reuşeşte să explice potenţialul algoritmilor genetici în rezolvarea problemelor. Goldberg furnizează o ipoteză interesantă dar controversată asupra abilităţii algoritmului genetic de a găsi soluţiile bune a multor probleme. Originea speciilor. Cu toate acestea. sunt fundamentele algoritmilor evolutivi. Cu toate că Goldberg afirmă că teorema schemelor (Holland. 5 Modelul natural al algoritmilor genetici Principala sursă de inspiraţie a algoritmilor genetici este în mod cert teoria evoluţiei naturale enunţată de Charles Darwin (18091882). de data acesta interpretat prin transferul de material genetic de la părinţi la descendenţi. descoperirile din genetică au influenţat de asemenea structura algoritmilor genetici. 1959) nasc controverse şi astăzi. Studiul teoretic şi aplicabilitatea algoritmilor genetici în rezolvarea multor probleme grele se datorează cercetătorilor amintiţi.

aceste observaţii enunţate de Mendel sunt recunoscute ca fiind legile eredităţii şi autorul acestora este considerat părintele geneticii moderne. Succesul real înregistrat în probleme de dificultate ridicată este argumentul forte al algoritmilor genetici. Multe aspecte ale algoritmilor genetici sunt împrumutate din genetică. Mai târziu. Evoluţia populaţiei este condusă de două elemente: operatorii genetici şi funcţia de evaluare a calităţii cromozomilor. fiind inspiraţi de procesele naturale care stau la baza evoluţiei. un algoritm genetic operează cu o mulţime de indivizi (denumiţi în mod uzual cromozomi) asupra cărora se aplică operatorii genetici. în funcţie de opţiunea noastră şi de contextul problemei. însă. Algoritmii genetici nu respectă strict ingredientele celor două teorii amintite iar terminologia împrumutată nu acoperă semnificaţia originală. Privit la nivel superficial. încrucişarea şi mutaţia sunt operatorii genetici uzuali. Selecţia.de observaţii şi o lucrare publicată care a fost ignorată la vremea aceea. Mulţimea de cromozomi formează o populaţie. fenomenul evoluţiei artificiale este ghidat de funcţii matematice şi controlat prin parametrii suplimentari pentru a genera o soluţie cât mai apropiată de optimul problemei. reală sau specifică. Avantajul imediat al algoritmilor genetici constă în gradul mare de generalitate şi paleta largă a problemelor abordate. un algoritm genetic simulează evoluţia unei populaţii. Fiecare individ reprezintă o soluţie posibilă din spaţiul de căutare. aceştia se formează ca o reţetă practică inspirată de evoluţie şi ereditate în care factorul uman a strecurat secvenţe de calcule şi parametri artificiali în scopul obţinerii unor rezultate mai bune. 6 Descriere algoritm genetic Pe scurt. codificarea indivizilor prin secvenţe de gene. simplitatea şi sursa inedită de inspiraţie poate justifica parţial atenţia acordată dezvoltării acestor metaeuristici. Dintre acestea remarcăm moştenirea trăsăturilor (genelor) părinţilor de către descendenţi. în esenţă. dar şi caracterul aleator al aportului trăsăturilor provenite de la părinţi. 15 . Originalitatea. Maniera de codificare a unei soluţii este binară.

Ulterior. Prin aceasta. 6. 3. putem determina o manieră inspirată de codificare numerică sau nenumerică a acesteia. populaţia funcţia de evaluare selecţia operatorii de variaţie (încrucişare şi mutaţie) condiţia de oprire a algoritmului 1) Individul Analizând specificaţiile problemei. Valoarea de pe o poziţie oarecare a şirului codificării se numeşte genă. putem identifica spaţiul de căutare. Fiecare cromozom este format dintr-un şir de valori ale unui alfabet dat. Procesul se reia având ca populaţie curentă noua generaţie de cromozomi. individul 2. cu atât şansa ca descendenţii obţinuţi să fie calitativ superiori este mai mare. Conceperea unui algoritm genetic de rezolvare a unei probleme concrete presupune evidenţierea următoarelor componente: 1.Indiferent de natura problemei considerate se poate construi cel puţin o funcţie de evaluare a soluţiilor posibile. asupra cărora se aplică operatorii de încrucişare şi mutaţie pentru obţinerea noii generaţii. Alfabetul A al valorilor genelor este stabilit în prealabil şi poate fi: - valori binare: A = {0. În funcţie de specificul soluţiei posibile. denumiţi părinţi. 4. 5. Se observă de-a lungul evoluţiei populaţiei o creştere a calităţii indivizilor săi. fiecărui individ al populaţiei i se atribuie o valoare numerică reprezentând performanţa sa în raport cu cerinţele problemei. După un număr considerabil de generaţii soluţia globală a problemei poate fi aproximată suficient de bine printr-un individ al ultimelor generaţii. Orice punct al acestuia constituie o soluţie posibilă. măsura calităţii indivizilor populaţiei curente este folosită în procesul de selecţie a acelor indivizi. Codificarea unei soluţii formează un cromozom şi identifică un individ al populaţiei curente.1} valori reale: Α ⊆ R 16 . Principiul este simplu: cu cât părinţii selectaţi sunt mai performanţi.

un exemplu în acest sens ar fi descreşterea numărului de indivizi de-a lungul evoluţiei. codificarea cromozomială se clasifică în: - codificare binară.. Formal. o astfel de populaţie se descrie astfel: P = { c1 . odată cu creşterea performanţei acestora. Nu este exclusă utilizarea mai multor populaţii cooperante (exemplu) sau a unei populaţii suplimentare cu rol de memorie în care sunt reţinute soluţii bune găsite în cadrul generaţiilor intermediare (vezi de ex.1} codificare reală. fapt care ar uşura determinarea soluţiilor finale din ultima generaţie produsă.. 2) Populaţia O mulţime finită de cromozomi alcătuieşte populaţia. m} . Dimensiunea populaţiei (numărul de indivizi care o formează) este în general o valoare constantă pe care o stabilim în prealabil şi reprezintă un parametru important al algoritmului dezvoltat. Cromozomul c se descrie prin vectorul de n elemente: c = (α1 . În funcţie de alfabetul genelor. ∀ ∈{1..2. A = {0.... Α ⊆ R codificare specifică – alta decât cea binară sau reală. c 2 . α n ) . dimensiunea populaţiei poate fi variabilă.... c j reprezintă un cromozom. Modelul standard al algoritmului genetic presupune exploatarea unei unice populaţii de dimensiune constantă.. i unde α i ∈ A .).. Într-o abordare mai flexibilă. j { unde: ∀ ∈ 1.. α 2 .- alt alfabet (codificare specifică) Lungimea şirului de gene din codificarea cromozomului poate fi constantă sau variabilă şi depinde de numărul de trăsături definitorii ale unei soluţii posibile a problemei: Fie c un cromozom oarecare şi A alfabetul genelor din reprezentarea sa. c m } . n} .. 17 .2....

În concluzie. În cazul unei probleme de optimizare numerică (ex. Pentru o mai bună înţelegere prezentăm în continuare un exemplu: Fie f : D → R . În această manieră se accelerează convergenţa populaţiei. distribuţia indivizilor populaţiei joacă un rol important în economia construirii algoritmului genetic: o distribuţie echilibrată a populaţiei iniţiale măreşte substanţial viteza de identificare a zonelor promiţătoare ale spaţiului de căutare. Cu cât dimensiunea populaţiei este mai mare. oferinduse şansa ca încă de la primele generaţii să fie obţinute soluţii optime ale problemei. populaţia iniţială poate fi îmbogăţită cu indivizi care codifică puncte din aceste zone. Există puţine situaţii în care procedeul descris mai sus poate fi aplicat deoarece din specificaţiile problemei rareori putem deduce zonele promiţătoare ale spaţiului de căutare. o populaţie de dimensiune suficient de mare şi având un grad de diversitate considerabil reprezintă unul dintre factorii majori ce conduc la obţinerea soluţiilor dorite. 3) Funcţia de evaluare Una dintre condiţiile fundamentale ale funcţionării eficiente ale unui algoritm genetic o reprezintă alegerea inspirată a funcţiei de evaluare. dată de formula: f ( x ) = sin ( x ) 18 . cu atât şansa obţinerii rapide a unei bune aproximări a soluţiilor problemei creşte. De asemenea. funcţia de evaluare se poate alege ca fiind chiar funcţia criteriu sau o funcţie construită pe baza funcţiei criteriu. Acest fapt aduce cu sine o convergenţă mai bună înspre soluţiile problemei. D = [ −π.Prima generaţie se numeşte populaţie iniţială şi construirea acesteia se face în principal prin generarea aleatoare a unor soluţii posibile în domeniul de căutare. Dacă sunt cunoscute zone ale spaţiului care conţin soluţii bune ale problemei. π ] . Modelul standard al algoritmului genetic presupune generarea aleatoare a populaţiei iniţiale. determinarea maximului/minimului global al unei funcţii matematice).

Orice valoare reală din intervalul [−π. este posibilă identificarea indivizilor performanţi ai populaţiei. respectiv. Un cromozom al populaţiei corespunzător unei valori reale x va fi construit ca un vector de cifre binare ale codificării punctului x. În acest caz particular. Mai mult. Asupra codificării binare vom reveni într-un paragraf următor. Funcţia de evaluare este construită astfel: performant a ( c ) = sin ( x ) Valorile calculate ale funcţiei de performanţă califică şi diferenţiază indivizii populaţiei. Unica genă a codificării reprezintă chiar valoarea reală a punctului corespunzător. utilizatorul va construi funcţii de evaluare prin care se va încerca calificarea cât mai coerentă a soluţiilor candidat. funcţia de evaluare este dată de însăşi funcţia criteriu. Fie cromozomul c reprezentarea (binară sau reală) a punctului x. Criteriul care ghidează căutarea soluţiei globale este maximizarea funcţiei date. În aceste situaţii. Există situaţia în care este dificil de exprimat matematic criteriul de optimizare al problemei date. respectiv. Pentru rezolvarea acestor probleme. 19 . pentru a permite populaţiei să conveargă înspre toate optimele funcţiei criteriu. cu o anumită precizie impusă. probleme de optimizare de dificultate ridicată sunt cele în care se doreşte determinarea optimelor multiple ale unei funcţii (optimizare multimodală) sau cele în care se impun anumite restricţii (optimizare cu restricţii). Se impune observaţia că o abordare mai flexibilă permite ca reprezentarea cromozomială a unui punct x al spaţiului de căutare să fie dată de o un vector particular cu o singură componentă. fapt pentru care rezultatele oferite de algoritmul dezvoltat sunt dependente de factorul uman.Se doreşte determinarea maximului funcţiei f. cei cărora li se oferă ulterior o mai mare şansă de a produce descendenţi. π] poate fi reprezentată în limbaj binar. funcţia de evaluare va fi atent construită pentru a respecta restricţiile impuse. determinarea punctului x pentru care sin ( x ) este maxim. Astfel.

Evoluţia populaţiei.Un alt caz în care construirea funcţiei de evaluare necesită un efort mai mare este cel al problemelor de optimizare multiobiectiv. în schimb. obţinerea generaţiilor de indivizi mai performanţi decât predecesorii lor. respectiv. Justificarea acestui fapt rezidă din afirmaţia că orice problemă de căutare a soluţiilor în spaţiul soluţiilor posibile. poate fi reinterpretată ca o problemă de optimizare: din mulţimea soluţiilor posibile se caută acelea care optimizează cel mai bine criteriile problemei. înspre soluţiile unei probleme date. indivizii slab calificaţi produc indivizi noi ale căror performanţe sunt în general slabe. Asupra acestor probleme vom reveni într-un capitol ulterior cu o prezentare detaliată. căutare ghidată de unul sau mai multe criterii. este cauzată de operatorul de selecţie şi operatorii de variaţie (recombinarea şi mutaţia) aplicaţi. 4) Selecţia Am vorbit în rândurile precedente de structura populaţiei şi calificarea indivizilor săi prin funcţia de evaluare. fără a se aplica principiul selecţiei 20 . Unul dintre factorii majori ai evoluţiei este selecţia naturală. indivizii unei populaţii suferă încrucişări şi mutaţii pur aleatoare. În discuţia referitoare la funcţia de evaluare ne-am referit strict la probleme de optimizare. O interpretare simplificată a acestui fenomen ne permite înţelegerea procesului prin care o populaţie poate converge înspre anumite puncte ale spaţiului de căutare. afirmaţia precedentă ne permite extinderea ariei de aplicabilitate a algoritmilor genetici şi înspre probleme de alt gen. ne putem imagina două scenarii: - în primul scenariu. Deşi principala aplicabilitate a algoritmilor genetici constă în rezolvarea problemelor de optimizare. Pornind de la observaţia acceptată că indivizii performanţi ai unei specii dau naştere la descendenţi asemănători şi de performanţe apropiate şi.

dacă în primul caz absenţa selecţiei induce o stagnare în procesul evoluţiei populaţiei înspre indivizi de calitate superioară. Algoritmii detaliaţi ai operatorilor de selecţie vor fi prezentaţi într-un paragraf dedicat. Acest procedeu favorizează o convergenţă rapidă a populaţiei. selecţia favorizează o creştere accelerată a performanţei medii a generaţiilor produse. în a doua situaţie. Altfel spus. însă în unele cazuri prezintă dezavantaje majore. Unul dintre cei mai populari algoritmi de selecţie este cel al selecţiei proporţionale inspirat de algoritmul ruletei. 5) Operatorii de variaţie (încrucişare şi mutaţie) Selecţia propriu-zisă nu este suficientă pentru a induce dinamica unei populaţii. probabilitatea de selectare a unui individ performant este mai mare decât a unuia slab calificat. Indivizii selectaţi vor suferi modificări prin operatorii genetici de variaţie pentru a permite obţinerea unor descendenţi diferiţi. fapt pentru care se optează pentru implementarea altor variante de selecţie. Se observă că. şi această probabilitate este direct proporţională cu valoarea performanţei individului. Principalii operatori de variaţie sunt încrucişarea şi mutaţia. Selecţia proporţională presupune alegerea părinţilor noii generaţii în mod proporţional cu valoarea de performanţă a acestora. selecţie făcută pe baza valorilor de performanţă a indivizilor populaţiei curente Cele două populaţii ale scenariilor descrise se monitorizează dea lungul evoluţiei. Varianta standard a operatorului de încrucişare se aplică asupra a doi părinţi selectaţi anterior şi produce unul sau doi descendenţi care moştenesc trăsăturile părinţilor în proporţii diferite. Comparând ultimele generaţii ale ambelor scenarii putem deduce importanţa selecţiei în evoluţia unei populaţii. respectiv pentru a permite o explorare bună a spaţiului de căutare.- al doilea scenariu implică o selecţie prealabilă a părinţilor noii generaţii. Prezentăm 21 . Implementarea operatorului de selecţie se face în variate maniere.

αn ) 2 c1 = ( β1 . βt ) ..α t +2 ..... α t +1 ... fapt pentru care aceştia sunt asemănători indivizilor care îi produc... respectiv. Se întâlneşte deseori situaţia în care o anumită soluţie a spaţiului de căutare nu poate fi obţinută prin aplicarea operatorului de încrucişare descris...α 2 .în continuare un operator de încrucişare aplicabil pentru codificarea binară. β n ) şi d 2 = ( β1 . α t ... având semnificaţia punctului de tăietură. c1 = (αt +1 .. α n ) c 2 = ( β1 ...... Ambii părinţi se vor diviza... Tipul operatorului este de 2:2. β t +2 . αt ) ...... operatorul descris mai jos este cunoscut sub denumirea de încrucişare cu un punct de tăietură..β 2 ... obţinându-se secvenţele: 1 2 c1 = (α1 . βn ) 2 Descendenţii d 1 şi d 2 ai părinţilor c1 şi c 2 se obţin prin concatenarea secvenţelor obţinute: 1 2 d1 = c1 + c 2 d 2 = c1 + c12 2 Observaţie: Operatorul + are în această descriere formală semnificaţia concatenării secvenţelor.α 2 .. β t +1 .... noii indivizi moştenesc genele părinţilor.. Se obţin astfel noii indivizi: d1 = (α1 . α n ) Prin aplicarea încrucişării... din 2 părinţi se produc 2 descendenţi.β 2 .2.. c 2 = ( βt +1 . Datorită specificului său.β n ) Se generează aleator o valoare naturală t ∈{1.. Există de asemenea suficiente argumente în favoarea aplicării altor tipuri de operatori de încrucişare (exemplu: 22 . Fie c1 şi c 2 doi indivizi oarecare ai populaţiei curente: c1 = (α1 . n} .. β t ......

Mutaţia naturală.. Specificaţiile problemei sunt cele care ne pot oferi informaţiile necesare pentru a decide maniera de codificare a indivizilor.... Teoria evoluţiei naturale menţionează faptul că selecţia nu este unicul factor responsabil al fenomenului evoluţiei. cu excepţia genei de pe poziţia k. este cea care. reală. un alt operator genetic este introdus: mutaţia.. De asemenea. Cu toate 23 . α k . definită prin micile modificări la nivelul codificării cromozomiale. respectiv. α 2 . care la rândul său cunoaşte variate forme descrise în lucrări de specialitate. Valoarea genei mutate se obţine prin inversare: Dacă αk = 1 atunci βk ← 0 Altfel βk ←1 SfDacă Alegerea operatorilor folosiţi joacă un rol decisiv în economia dezvoltării algoritmilor genetici. asigură adaptarea la mediu. Pentru asigurarea unei bune explorări a spaţiului de căutare. paleta operatorilor se restrânge semnificativ... α 2 .. specifică).. α n ) se obţine prin copierea nealterată a genelor părintelui c. dintr-un părinte selectat se obţine un unic descendent prin alterarea valorii unei singure gene... Acest operator este de tipul 1:1.. Implementarea procesului natural al mutaţiei se face prin operatorul de mutaţie.. Individul mutant c ' = (α1 . Fie c un cromozom al populaţiei curente: c = (α1 .. Utilizatorul optează pentru anumite forme ale operatorilor genetici pe baza unor criterii care sunt de cele mai multe ori subiective.. βk . aplicabilitatea operatorului descris este strict limitată la codificarea cromozomială binară.încrucişarea cu puncte multiple de tăietură). în combinaţie cu mecanismul selecţiei. α n ) Se generează aleator o poziţie k din secvenţa binară a codificării.. Odată stabilită forma de codificare (binară. Prezentăm în continuare o variantă simplă a operatorului de mutaţie.

Populaţia poate fi atrasă de un punct de optim local. Convergenţa prematură este unul dintre fenomenele nedorite ale unui algoritm genetic şi evitarea acestui neajuns comportă câteva modificări în structura algoritmului: alegerea unei alte scheme de selecţie. producându-se fenomenul de convergenţă prematură. reiniţializarea aleatoare unei secţiuni din populaţie sau accentuarea mutaţiilor produse. Procesul se reia pentru noua populaţie obţinută până când o condiţie de terminare este îndeplinită. putem concluziona că indivizii populaţiei s-au stabilit în zona cea mai promiţătoare. Un exemplu în acest sens ar fi înregistrarea unui anumit grad de uniformitate în cadrul populaţiei. prin aplicarea operatorilor genetici (selecţie. Pentru a nu cădea în posibila capcană scăderii temporare a gradului de diversitate a populaţiei putem considera un 24 . Preferinţele se îndreaptă înspre acei operatori care se dovedesc a fi eficienţi în rezolvarea unor probleme similare. Condiţia de terminare a algoritmului se referă în general la atingerea unui număr maxim prestabilit de generaţii. corespunzătoare soluţiei globale. Lipsa constrângerile legate de implementarea operatorilor genetici. diversitatea procedeelor de încrucişare şi mutaţie. Există şi situaţii în care utilizatorul poate să impună o cu totul altă condiţie de încheiere a evoluţiei. În situaţia în care indivizii populaţiei devin asemănători putem considera că diversitatea slabă a populaţiei nu mai permite o explorare eficientă a spaţiului de căutare. O altă soluţie oferită este cea prin care sunt monitorizate ultimele k generaţii obţinute. mutaţie) produce noua generaţie.acestea. algoritmul genetic este o procedură repetitivă prin care o populaţie de soluţii posibile. condiţie independentă de numărul populaţiilor generate. permite utilizatorului să îşi construiască operatori specifici problemei sau clasei de probleme pe care le abordează. Se conturează astfel structura unui algoritm de acest tip. Mai mult. clasificate pe tipul codificării pre-fixate. Experimentele arată că nu întotdeauna această concluzie este adevărată. fac dificilă alegerea inspirată a celor mai eficiente variante. 6) Condiţia de oprire a algoritmului genetic Paragrafele anterioare prezintă succint principalele ingrediente ale unui algoritm genetic. încrucişare. În esenţă.

În această manieră obiectivitatea deciziei de terminare a evoluţiei creşte substanţial.număr mai mare de generaţii analizate din punct de vedere al asemănării indivizilor. Revenind la condiţia de terminare. t =0. precum şi stabilirea parametrilor impliciţi reprezintă aspecte care diferenţiază algoritmii obţinuţi din punct de vedere al aplicabilităţii acestora pe anumite clase de probleme. Câttimp (NOT condiţie de terminare) Evaluare( P (t ) ) PS ( t ) =Selecţie ( P (t ) ) PR ( t ) =Încrucişare( PS ( t ) ) P (t +1) =Mutaţie ( PR ( t ) ) t:=t+1 SfCâttimp SfAlgoritm Notăm: 25 . este important să afirmăm că acest algoritm nu funcţionează ca un şablon de rezolvare a oricărei probleme. O bună experienţă a proiectantului cât şi concluziile experimentelor efectuate sunt factori principali ai construirii unui algoritm genetic valoros. Detalii legate de implementare. În acest caz putem formula structura algoritmului genetic: Schema algoritmului genetic standard: Algoritmul AG_standard este: Fie P ( 0 ) . Înainte de a furniza schema algoritmului genetic standard. ca şi în cazul celorlalte componente ale algoritmului genetic. alegerea operatorilor. Parametrul k reprezintă în acest caz o valoare numerică naturală prestabilită. alegerea acesteia se face de către proiectantul algoritmului la o atentă observare a comportamentului populaţiei de-a lungul generaţiilor. Presupunem că cele 6 elemente enumerate anterior au fost stabilite.populaţia iniţială. construirea funcţiei de evaluare.

Se impune observaţia că această variantă de extragere a rezultatului nu este cea mai eficientă. De cele mai multe ori acest fenomen decurge în mod firesc.t – numărul generaţiei curente. şi putem spune că algoritmul converge înspre optimele problemei. 7 Funcţionarea algoritmului genetic Intuitiv. Există şi situaţia în care indivizii populaţiei se blochează în zone suboptimale ale spaţiului de căutare. În aceste situaţii rezultatul oferit de algoritm este eronat. sau cei mai buni k indivizi ai generaţiei curente vor fi copiaţi nemodificaţi în noua generaţie. Ne imaginăm următorul scenariu: un individ performant. fără anomalii. Operatorul de încrucişare nu asigură păstrarea părinţilor performanţi în noua generaţie. Se evită în acest mod pierderea soluţiei globale dacă aceasta este obţinută într-o etapă intermediară a evoluţiei. individul considerat în scenariul nostru va fi distrus. Observăm astfel că indivizii calificaţi ai generaţiilor intermediare pot dispare pe parcursul evoluţiei populaţiei. Principiul selecţiei ne conduce la supoziţia că probabilitatea acestuia de a fi selectat în vederea aplicării operatorilor de variaţie este mare. Remedierea acestui fenomen poate fi făcută extrem de simplu prin suplimentarea algoritmului iniţial cu o formă de elitism. Astfel. algoritmul genetic va conduce populaţia de soluţii posibile înspre soluţiile optime ale problemei de rezolvat.mulţimea indivizilor obţinuţi prin încrucişare Soluţia finală a algoritmului genetic este dată de cel mai performant individ al ultimei generaţii produse. evoluţia lor ulterioară fiind îngreunată sau imposibilă. PS .mulţimea indivizilor selectaţi PR . Una dintre cele mai frecvente surse de eşec este alegerea neinspirată a 26 . Cauzele acestui anomalii sunt multiple. neavând certitudinea că descendenţii săi sunt cel puţin la fel de performanţi ca şi el. cel mai bun. extrem de apropiat de soluţia globală a problemei) este obţinut întruna dintre generaţiile intermediare. Prin elitism.

Probabilitatea ca indivizii asemănători ai populaţiei curente să genereze descendenţi diferiţi este redusă. aplicarea unor operatori genetici care s-au dovedit benefici evoluţiei şi menţinerii diversităţii (ex. aceşti indivizi cu performanţe ridicate se denumesc elită şi procedeul prin 27 . Remedierea acestui fenomen constă în aplicarea unor strategii de salvare a indivizilor performanţi determinaţi în populaţiile intermediare. o soluţie bună a problemei (codificată ca individ al populaţiei) poate să apară într-una dintre generaţiile intermediare. descris ca obstrucţionarea explorării spaţiului de căutare şi blocarea populaţiei în zone corespunzătoare optimelor locale. În scopul evitării convergenţei premature au fost dezvoltate diferite strategii de menţinere a diversităţii populaţiei.funcţiei de evaluare şi a operatorului de selecţie. fapt care generează o stagnare a evoluţiei ulterioare. Dintre acestea enumerăm: stabilirea unei dimensiuni mai mari a populaţiei. încrucişarea uniformă) strategii de împerechere care evită obţinerea de indivizi similari prin aplicarea încrucişării aplicarea mutaţiei cu o mai mare probabilitate evitarea folosirii operatorului de selecţie proporţională care în anumite situaţii va favoriza evoluţia doar a unei mici fracţiuni de indivizi din populaţie. ceea ce induce o rezistenţă sporită la dislocarea indivizilor din zonele de blocaj. şansa de a fi selectată în vederea supunerii acesteia la acţiunea operatorilor de variaţie (mutaţie şi încrucişare) este mare. În esenţă convergenţa prematură este cauzată de pierderea diversităţii genetice a indivizilor într-o etapă timpurie a evoluţiei. În mod sugestiv. rezultând pierderea diversităţii populaţiei şi incapacitatea de a determina soluţiile globale. Aplicarea operatorilor genetici poate să distrugă soluţia performantă. Fenomenul nedorit. având o performanţă mare. fapt pentru care evoluţia populaţiei este încetinită. În multe situaţii. conducând la omogenizarea populaţiei - Un alt aspect al funcţionării algoritmului genetic este cel al elitismului. este denumit convergenţă prematură.

Ambele situaţii descrise trebuie evitate. îngreunează procesul de rafinare a soluţiilor bune şi cauzează a stagnare în evoluţia populaţiei. este necesară stabilirea unui echilibru explorareexploatare obţinut în principal prin aplicarea unui mecanism de evaluare şi selecţie bine ales. construirea unei funcţii de evaluare corespunzătoare şi alegerea inspirată a operatorilor de variaţie.care elita este menţinută de-a lungul populaţiilor se denumeşte elitism. algoritmii genetici sunt aplicabili şi în probleme de alt gen. Pentru buna funcţionare a algoritmului genetic din perspectiva celor două concepte. accentuarea exploatării zonelor promiţătoare conduce la o explorare defectuoasă a spaţiului de căutare şi poate conduce la fenomenul de convergenţă prematură. Identificarea corectă a obiectivelor problemei date. Primul concept se referă la capacitatea populaţiei de a acoperi spaţiul soluţiilor posibile prin căutare globală şi este strâns legat de proprietatea de diversitate a populaţiei. Concepuţi ca instrumente de optimizare. Contrar. delimitarea spaţiului soluţiilor posibile. prin reformularea problemelor respective ca probleme de căutare a soluţiilor optime în spaţiul de căutare. sunt 28 . Cea mai simplă strategie de elitism constă în copierea elitei în noua generaţie. Astfel. accentuarea unuia conduce în mod gradual la inhibarea apariţiei celuilalt. o explorare asiduă a spaţiului de căutare. marcată prin menţinerea unei populaţii diverse. Cele două fenomene definite de conceptele sus-menţionate sunt duale în sensul în care. Cel de-al doilea concept se referă la capacitatea populaţiei de a asigura căutarea locală în zonele promiţătoare ale spaţiului şi corespunde unei îmbunătăţiri a indivizilor în vederea obţinerii unei aproximări mai bune a soluţiilor finale. Funcţionarea algoritmului genetic este strâns legată de două concepte duale: explorarea şi exploatarea spaţiului de căutare. 8 Aplicaţii Paleta de aplicaţii ale Algoritmilor genetici este nelimitată. determinarea unei maniere de reprezentare a soluţiilor. Acest transfer garantează protejarea soluţiilor calificate de-a lungul evoluţiei şi o mai bună convergenţă a algoritmului genetic.

Literatura de specialitate este îmbogăţită periodic cu cercetări dedicate aplicaţiilor algoritmilor genetici în probleme reale. probleme de control. etc. probleme de transport. respectiv de a favoriza căutarea în apropierea acelor soluţii care s-au dovedit a fi performante relativ la obiectivele problemei. Valoarea mică a presiunii de selecţie permite fiecărui individ al populaţiei să fie selectat cu o probabilitate rezonabilă pentru a produce descendenţi. planificarea sarcinilor. Contrar.câteva dintre ingredientele care asigură aplicabilitatea algoritmilor genetici. valorile mari ale presiunii de selecţie favorizează cei mai buni indivizi ai generaţiei curente. Principalul neajuns al stabilirii unei presiuni mari de selecţie constă în posibilitatea producerii efectului de convergenţă prematură datorat pierderii diversităţii populaţiei. 29 . 9 Selecţia Responsabilitatea operatorului de selecţie este aceea de a avantaja indivizii performanţi ai populaţiei. problema comis-voiajorului. proiectarea automată a sistemelor. Efectul operatorului de selecţie poate fi controlat prin intermediul a doi parametri: presiunea de selecţie şi timpul de acţiune. fapt pentru care convergenţa populaţiei este accelerată. proiectarea şi optimizarea reţelelor neuronale. Valorile apropiate ale probabilităţilor de selecţie induc o slabă exprimare a preferinţei înspre exploatarea indivizilor performanţi. probleme din domeniul telecomunicaţiilor. a) Presiunea de selecţie (selection pressure) se defineşte ca fiind măsura în care indivizii performanţi ai populaţiei produc descendenţi în noua generaţie. Enumerăm mai jos câteva dintre cele mai reprezentative probleme pentru care algoritmii genetici s-au dovedit eficienţi: - optimizarea numerică.

1.generaţia curentă t. Fie P ( t ) = { c1 . Prezentăm în continuare cele mai reprezentative variante ale operatorului de selecţie. 9. presiunea mare de selecţie induce un număr mai mare de generaţii în care se produce o populaţie formată din copii ale soluţiei iniţiale. Fie Fit = { fit 1 . mecanismul selecţiei impune fiecărui individ al generaţiei curente o probabilitate de selectare proporţională cu valoarea performanţei sale... c n } . Baker [1.. Timpul de acţiune se exprimă prin numărul de generaţii în care un algoritmul produce o generaţie alcătuită exclusiv din instanţe ale soluţiei optimale iniţiale. fit 2 ....1 Selecţia proporţională Propusă de James E. Pe baza principiului de avantajare a indivizilor calificaţi. reciproc.b) Timpul de acţiune (takeover time) se defineşte astfel: - fie un algoritm evolutiv înzestrat doar cu operator de selecţie generaţia iniţială conţine o singură instanţă a unei soluţii optimale şi dimensiunea populaţiei este constantă.mulţimea valorilor de performanţă ale cromozomilor: ∀ ∈ 1. fit n } ..... c 2 .2 ]. i { fit i = fitness( c i ) Notăm cu fitness – funcţia de evaluare a performanţei cromozomilor. Performanţa totală a generaţiei curente t se calculează prin formula: Fitness ( t ) = ∑ fit i i =1 n 30 .2.1. Se poate observa că cei doi parametri ai operatorului discutat sunt duali: creşterea valorii presiunii de selecţie produce descreşterea valorii timpului de acţiune şi... n} .1. selecţia proporţională este una dintre cele mai populare tehnici de selecţie.

Probabilitatea de a indica un sector oarecare este direct proporţională cu dimensiunea lui. formându-se o populaţie intermediară asupra căreia se aplică ulterior operatori de variaţie. n fiind dimensiunea populaţiei.2. Fitness ( t ) O variantă a procedurii de selecţie proporţională este aceea în care sunt extrase elementele populaţiei prin aplicarea de n ori a algoritmului de bază. Utilizarea de n ori a ruletei modificate conduce la formarea populaţiei intermediare de indivizi P asupra cărora se aplică ulterior recombinarea sau mutaţia. Probabilităţile de a nimeri oricare sector al ruletei sunt egale.Definiţie1: Probabilitatea de selecţie a individului ci ∈ P ( t ) este dată de raportul dintre performanţa sa şi performanţa totală a populaţiei curente: i pS = Fit i . respectiv: ni = Fiti Fiti = n⋅ . Definiţie2: Numărul mediu de selecţii ale individului ci ∈ P ( t ) este dat de formula: ni = n ⋅ pi . Ruleta standard este reprezentată de un disc împărţit în n sectoare de lungimi egale. ( ( Fitness_ mediut ) Fitnesst ) Algoritmul selecţiei proporţionale este inspirat de algoritmul ruletei (Monte Carlo).. i ∈{1... La o utilizare a ruletei se selectează individul corespunzător sectorului indicat. Ruleta în varianta modificată este împărţită în n sectoare corespunzătoare indivizilor populaţiei curente. S Algoritmul Ruletei este 31 . Cunoscând dimensiunea populaţiei n şi probabilităţile de selecţie ale indivizilor se poate determina numărul mediu de copii ale fiecărui individ. Populaţia intermediară este formată din copii ale indivizilor generaţiei P (t ) : unii indivizi vor fi reprezentaţi de mai multe ori şi alţii nu vor fi selectaţi deloc.. Lungimile sectoarelor sunt proporţionale cu valorile pi . n} .

Pentru a exemplifica afirmaţiile de mai sus vom construi două scenarii simple: 1. populaţia este relativ omogenă: performanţele indivizilor sunt apropiate. Ruleta imaginară este descrisă în imaginea 0 1 următoare: 32 . Aceiaşi manieră de selecţie poate fi defectuoasă în două situaţii: qk −1 < q < qk atunci - populaţia conţine un număr mic de indivizi cu performanţe mult mai mari decât performanţele celorlalţi. primii n-1 au performanţe de ordinul de mărime 10 m şi al n-lea individ are performanţa de un ordin de mărime superior 1 m + .1] Dacă 0 < q < q1 atunci selectează c1 Dacă selectează ck SfPentru SfAlgoritm Avantajele şi dezavantajele selecţiei proporţionale: Principalul avantaj al folosirii selecţiei proporţionale într-un algoritm genetic este capacitatea acesteia de a favoriza exploatarea indivizilor performanţi ai populaţiei. Fie populaţia curentă formată din n indivizi. Scenariul 1.Date de intrare: n Pentru i de la 1 la n qi := ∑ pk k =1 i SfPentru Pentru i de la 1 la n Generează aleator q ∈[0. Dintre aceştia.

Dacă acest individ corespunde unei soluţii optime locale şi nu optimului global se produce fenomenul nedorit de convergenţă prematură. probabilitatea extragerii individului de performanţă superioară este mare. Ruleta este descrisă în imaginea următoare: Figura 2 Împărţirea sectoarelor ruletei pentru scenariul 2. 33 . Fie populaţia curentă formată din indivizi ale căror performanţe sunt de valori apropiate. 2. fapt pentru care numărul de copii ale acestuia în populaţia intermediară este de asemenea mare. Scenariul 2.Individ performant Figura 1 Împărţirea sectoarelor ruletei pentru scenariul 1 Intuitiv. Consecinţa acestui fenomen este convergenţa rapidă a populaţiei înspre zona reprezentată de individul performant.

Diferenţa constă în înzestrarea ruletei cu n pointeri echidistanţi astfel încât. Depăşirea impedimentelor întâlnite la selecţia proporţională se poate face prin tehnici de scalare a funcţiei de performanţă. şansa individului de a mai fi ales ulterior scade. Valoarea etichetei (rang) unui individ este dată de numărul de ordine a acestuia în şirul de indivizi ordonaţi crescător după performanţă. în situaţia în care acesta are o performanţă mult mai mare decât restul populaţiei. Fiecărui individ i se asociază o etichetă având semnificaţia numărului maxim de selecţii permise. Prin acest artificiu. la o singură învârtire a ruletei vor fi extraşi toţi cei n indivizi ai populaţiei intermediare. Prin modificarea valorilor funcţiei de performanţă se urmăreşte ca populaţia curentă să nu conţină indivizi mult mai calificaţi decât restul. Pentru depăşirea dezavantajelor întâlnite în scenariile prezentate anterior. practic. operatorul de selecţie a fost modificat corespunzător. Probabilităţile de selecţie ale indivizilor au valori apropiate ceea ce conduce la o convergenţă înceată a populaţiei înspre optimele problemei. Varianta II. Literatura de specialitate oferă diferite variante de 34 . Varianta I. cu fiecare selecţie a sa. respectiv. Varianta III. gradul de diversitate a performanţelor populaţiei să fie suficient de ridicat pentru a favoriza căutarea în zonele promiţătoare. generând variante noi ale selecţiei proporţionale.În această situaţie operatorul de selecţie nu reuşeşte să facă o distincţie clară între indivizii performanţi şi cei slabi. Prin acest procedeu se va exclude posibilitatea selecţiei aceluiaşi individ de un număr foarte mare de ori. Ruleta imaginară asociată acestei tehnici de selecţie este formată din n sectoare de lungimi proporţionale cu probabilităţile de selecţie. Soluţia oferită de această variantă a operatorului constă în diminuarea probabilităţii de selecţie a individului selectat cu o cantitate constantă pozitivă. Consecinţa acestui procedeu de micşorare a şansei la selecţie este de a preîntâmpina fenomenul de convergenţă rapidă înspre optimele locale ale spaţiului de căutare.

indivizi aleşi aleator. unde n reprezintă un parametru întreg supraunitar. unde a şi b sunt parametri prestabiliţi. Scalarea poate fi statică sau dinamică – în funcţie de independenţa. nu vor fi selectaţi niciodată. Selecţia se aplică de n ori. funcţia transformată de performanţă devine: Scalarea prin ridicare la putere fit _ transformac ) = a ⋅ fit( c ) + b t( Legea de transformare este formulată astfel: S ( y ) = y n .1. Astfel. Dimensiunea submulţimii de indivizi care intră în concurs este o valoare prin care se poate controla presiunea de selecţie. Indivizii calificaţi ai generaţiei curente vor fi selectaţi repetat. alţii. Dimensiunea submulţimii este de minim 2 indivizi. La fiecare aplicare a operatorului de selecţie va fi determinat un singur părinte. Cu cât numărul de concurenţi este mai mare. devenind un părinte al generaţiei următoare. cu atât convergenţa populaţiei este mai rapidă.scalare a funcţiei de performanţă (fitness). fapt pentru care se poate produce efectul de convergenţă prematură. respectiv. Elementele submulţimii intră în competiţie directă prin comparaţii ale valorilor de funcţiei de performanţă. Prezentăm în continuare câteva dintre metodele de scalare utilizate în mod frecvent: Scalarea liniară Asupra funcţiei de performanţă se aplică legea: S ( y ) = a ⋅ y + b . dependenţa de numărul generaţiei. Funcţia transformată de performanţă devine: fit _ transform (a ) = fit( c ) tc 9. de performanţe mai slabe. O variantă acceptabilă a selecţiei prin concurs este cea în care numărul concurenţilor ar fi în număr de 2.2 Selecţia prin concurs n Selecţia prin concurs presupune pregătirea unei submulţimi de indivizi ai populaţiei curente. Cel mai bun individ conform funcţiei performanţă va câştiga concursul. n reprezentând dimensiunea dorită a populaţiei. 35 . în schimb.

.. şi poziţia ocupată de indivizi în mulţimea ordonată este cea care determină probabilitatea de selecţie. Astfel cel mai performant individ al populaţiei va primi rangul n...2. Spre deosebire de procedura de selecţie proporţională.. c 2 .. iar cel mai slab individ este etichetat cu valoarea 1. nu performanţa.3 Selecţia prin etichetare Principiul selecţiei prin etichetare constă în atribuirea fiecărui individ al populaţiei a unei valori reprezentând rangul acestuia. n} . Fiecare individ ci al populaţiei va fi etichetat printr-un rang ri determinat de poziţia ocupată în populaţia ordonată descrescător după valorile de performanţă.1... Practic. Această diferenţă va induce un avantaj major ale selecţiei prin etichetare faţă de selecţia proporţională cu 36 . c n } populaţia curentă Selectează aleator doi cromozomi ai populaţiei curente: ci şi c j Dacă fit ( c i ) > fit (c j ) atunci Returnează ci Altfel Returnează c j SfDacă SfAlgoritm 9. în concordanţă cu valoarea funcţiei fitness şi stabilirea unei probabilităţi de selecţie dependentă de rangul atribuit.Mai jos este descris algoritmul operatorului de selecţie prin concurs binar: Algoritm ConcursBinar este Fie P ( t ) = { c1 . Valorile etichetelor ri sunt numere naturale din mulţimea {1. ci valoarea etichetei ri va influenţa probabilitatea de selecţie a individului ci . populaţia va fi supusă unei proceduri de ordonare descrescătoare după valorile de performanţă. Se consideră populaţia P formată dintr-un număr de n cromozomi.

Astfel. Probabilitatea de selectare a celui mai performant individ din populaţie. nu vor mai fi un impediment în cazul selecţiei prin etichetare. Scenariile defectuoase ale selecţiei proporţionale: populaţia relativ omogenă sau diferenţele mari între performanţele indivizilor. o presiune de selecţie mare va produce o exploatare accentuată a vecinătăţii celui mai performant individ şi o scădere a diversităţii globale a populaţiei. Dependenţa probabilităţii de selecţie poate fi liniară sau neliniară în funcţie de rangul individului. Presiunea mică a selecţiei va avea ca efect menţinerea diversităţii populaţiei şi favorizarea explorării spaţiului de căutare. Etichetarea produce o scalare uniformă în cadrul populaţiei.fitness-ul. fapt pentru care situaţiile de stagnare a căutării sau convergenţa prematură întâlnite la selecţia proporţională sunt depăşite. adică nbest = Max p best = Presiunea de selecţie exprimată ca numărul mediu de descendenţi ai celui mai performant individ este o constantă a procedurii de selecţie şi influenţează în mod direct echilibrul dintre căutarea globală şi exploatarea zonelor promiţătoare. Dependenţa liniară a probabilităţii de selecţie pi a cromozomului ci poate fi formulată astfel: pi = 1  ri − 1     Max − 2 ⋅ ( Max − 1) ⋅ 1 − n n − 1   unde: Max – reprezintă numărul mediu de descendenţi aşteptaţi ai celui mai performant individ. etichetat cu rangul n este dată de valoarea: Max n Probabilitatea de selecţie a celui mai slab individ este dată de: 2 − Max p worst = n Numărul mediu de selecţii ale celui mai bun individ se poate deduce astfel: nbest = n ⋅ pbest . 37 .

sunt elemente esenţiale avute în vedere în procesul de formulare a funcţiei ce ghidează procesul de optimizare. 10 Funcţia de evaluare Efectul operatorului de selecţie este acela de a ghida populaţia înspre cele mai promiţătoare regiuni ale spaţiului de căutare. Determinarea multiplelor optime. algoritmii genetici au fost înzestraţi cu funcţii de evaluare construite pe baza funcţiei criteriu de optimizat.O variantă de etichetare neliniară a populaţiei generează probabilităţi de selecţie formulate astfel: p i = a ⋅ (1 − a ) n − ri unde: a – reprezintă un parametru subunitar al procedurii. datorită impactului favorabil pe care l-au înregistrat în cazul acestui tip de probleme. respectiv multicriteriale. Definiţi iniţial ca tehnici de optimizare a funcţiilor. Aceste valori sunt furnizate de funcţia de evaluare (funcţia fitness). unimodală (o singură soluţie optimă). Specificul problemei. sau ghidarea căutării de către cel puţin două criterii de optimizare reprezintă probleme abordate cu dificultate de către algoritmii genetici. având semnificaţia probabilităţii de selecţie a celui mai bun individ din populaţie. operatorii de selecţie dezvoltaţi s-au dovedit eficienţi în optimizarea unicriterială (o singură funcţie criteriu). Spre deosebire de operatorii standard de variaţie. dimensiunea spaţiului de căutare. Proiectarea unei funcţii de evaluare inspirate este în multe situaţii cheia succesului algoritmilor genetici. Este aproape imposibil să furnizăm un şablon de construire a funcţiei de evaluare (fitness). funcţia de evaluare a performanţelor soluţiilor se alege ca fiind însăşi funcţia criteriu sau o funcţie dependentă de aceasta. numărul şi dispunerea optimelor cât şi numărul de criterii implicate. În cea mai accesibilă problemă abordată de algoritmii genetici: maximizarea unei funcţii criteriu. Obstacole considerabile au apărut în momentul dezvoltării tehnicilor evolutive dedicate optimizării multimodale. operatorul de selecţie este strâns legat de valoarea de performanţă a indivizilor. Problemele de minimizare se pot reformula ca probleme de maximizare printr-un artificiu simplu 38 . De asemenea.

Cercetările iniţiale asupra convergenţei algoritmului genetic se bazează pe acest tip de codificare (de ex.1 Codificarea cromozomială binară Cazul I. Pe baza acestui considerent este evident de ce algoritmul genetic standard utilizează codificarea cromozomială binară. respectiv. Pentru a obţine secvenţa binară din codificarea cromozomului c se vor efectua următorii paşi: 39 . În schimb. superioară a domeniului D: D = [ a1 . Fiecare cromozom al populaţiei este format de o secvenţă finită de valori binare. Pentru anumite clase de probleme alfabetul binar devine insuficient pentru a realiza o codificare adecvată. în privinţa problemelor de optimizare multimodală. Notăm cu a1 şi b1 limitele inferioară. Spaţiul de căutare real unidimensional. optimizare cu restricţii sau optimizare multicriterială nu putem furniza o reţetă generală de construire a funcţiei de evaluare.1. Dezvoltarea ulterioară a algoritmilor evolutivi produce o schimbare importantă la nivelul codificării soluţiilor şi a operatorilor genetici utilizaţi.b1 ] . Vom reveni asupra acestui subiect în capitolul dedicat aplicaţiilor algoritmilor evolutivi în optimizare. Fie s ∈ D o soluţie posibilă a problemei considerate şi cromozomul c ∈P ( t ) reprezentarea binară a soluţiei s. 11 Codificare binară Mulţimea simbolurilor binare formează cel mai scurt alfabet care generează un limbaj capabil să exprime informaţii variate.aplicat funcţiei de performanţă: aceasta se deduce din funcţia criteriu aplicând o transformare elementară. Teorema schemelor) şi reprezintă până astăzi un punct major de referinţă în istoria domeniului. Fie D ⊆ R – spaţiul de căutare al unei probleme date. 11. fapt pentru care s-au introdus alte variante de codificare şi operatori specifici acestora. Lungimea cromozomilor poate fi constantă sau variabilă.

Funcţia de transformare devine: s −2 4 Aplicând transformarea T vom obţine valoarea subunitară s ' = 0. valoarea s ' = 0. cu precizia w.6] şi un punct oarecare a domeniului: s=3.355 reprezentată în binar este: 0. Dorim să construim codificarea binară a punctului s cu precizia w = 10 −3 . x n ) ∈{0.1] . Se converteşte s’ în binar...42. x 2 . Unii operatori de variaţie ţin cont de poziţia 40 .1} n .010110101110. a1 − b1 2. Fie s’ valoarea subunitară obţinută: T ( s) = s − b1 . Aplicând algoritmul conversiei din baza 10 în baza 2 (metoda înmulţirilor succesive cu 2).355 . Numărul de cifre binare ale reprezentării se deduce din relaţia: T ( s) = 2 n −1 < Respectiv: 4 < 2n −3 10 2 n −1 < 4000 < 2 n Rezolvând inegalitatea dublă se obţine n=12. Observaţie: Pentru a asigura precizia dorită a codificării sunt necesare n poziţii binare. obţinând şirul de n valori binare: ( x1 .. Primele gene ale cromozomului sunt cifre binare semnificative ale reprezentării. Se aplică o transformare T pentru a translata valoarea s în intervalul [0.1. Numărul de poziţii binare necesare se determină din relaţia următoare: 2 n −1 < b1 − a1 < 2n w Exemplu: Fie D = [ 2. Cromozomul c se formează din cifrele binare ale părţii fracţionare: c =( 0 1 0 1 1 0 1 0 1 1 1 0 ) .. s ' =T ( s ) . Alterarea acestora produce modificări majore în structura cromozomială.

Aplicabilitate: Codificarea binară descrisă la cazul I se aplică cu succes în cazul problemelor de optimizare a funcţiilor reale de o singură variabilă. Cazul II. 2.. Fie s ∈D . s 2 . Rezultatul acestei etape este valoare s’. Spaţiul de căutare real multidimensional. Numărul obţinute este: s ' = 0. bi ] . Pentru a obţine valoarea s’ se converteşte numărul 0.genelor pentru a controla amplitudinea modificărilor produse (vezi de ex. Se observă că precizia codificării este cea stabilită w = 10 −3 . ∀ ∈ 1. bi i { [ ] Pentru a obţine secvenţa binară din codificarea cromozomului c se vor efectua următorii paşi: 41 . Mutaţia adaptivă). Procedura inversă de determinare a punctului s corespunzător codificării binare c implică următoarele etape: 1. respectiv. Notăm cu ai şi bi limitele inferioară.. b1 ] . .010110101110 în baza 10. s = ( s1 . Se aplică transformarea inversă T ' ( s ') = s '⋅( b1 − a1 ) + a1 pentru a obţine s ∈ [ a1 . Exemplu (continuare): c =( 0 1 0 1 1 0 1 0 1 1 1 0 ) un cromozom Fie oarecare..354980 ... k } .6] a punctului reprezentat de c.. D = D1 × D2 × . 2...s k ) o soluţie posibilă a problemei considerate şi cromozomul c ∈P ( t ) reprezentarea binară a soluţiei s. s i ∈ ai . Fie D ⊆ R k . Dorim să determinăm valoarea reală s ∈[ 2.4 1 9 9 2a punctului s considerat iniţial în exemplul nostru.. × Dk – spaţiul de căutare al unei probleme date. În etapa a doua se aplică transformarea T ' ( s ') = s '⋅4 +2 rezultând valoarea aproximativă s"= 3. superioară a domeniului Di : Di = [ ai . Se converteşte reprezentarea cromozomială din binar în real..

Formează cromozomul c prin concatenarea secvenţelor obţinute la pasul anterior: c = ( c1c 2 .. i ∈{1. din contră. 2. “absent”. În cazul problemelor pentru care o soluţie potenţială este reprezentată de un ansamblu de trăsături distincte manifestate sau.2..c k ) Aplicabilitate: În general. Considerăm un spaţiu de căutare ale cărui elemente sunt formate de subansambluri de trăsături... s k .. Fie m numărul total de caracteristici ale soluţiilor posibile... c 2 ..1} Semnificaţia genelor este următoarea: 1  . metoda de codificare prezentată la cazul II se aplică în optimizarea funcţiilor reale de mai multe variabile.... xm ) ..2.. Marcarea prezenţei trăsăturilor individului prin valori binare...... În această etapă se recurge la algoritmul de conversie prezentat la cazul I. k } . s 2 . Reprezentarea elementelor spaţiului de căutare este dată de o secvenţa de m valori binare: i { c = ( x1 . Determină secvenţele binare reprezintă valorilor reale c1 .. Fiecare trăsătură (caracteristică) este identificată printr-un { număr de ordine i. marcate cu valorile binare 1 sau 0.. Fiecare trăsătură se poate situa într-una dintre stările ”prezent”.. caracteris tica i est e absenta Implementarea acestui tip de codificare este simplă. pentru fiecare valoare reală si . absente. x2 . ∀ ∈ 1. Cazul III. codificarea binară reprezintă o soluţie la îndemâna proiectantului. Problema Damelor (generalizare): 42 .. c k prin care se s1 .m } .. xi ∈{ 0..1. Prezentăm în continuare exemple de aplicabilitate a codificării descrise pentru două probleme populare: problema damelor şi problema rucsacului (variantă). caracteris tica i est e prezent a xi =  0. i ∈ 1. m} .

absenţa damei este marcată de valoarea 0. Cunoscând specificul pieselor utilizate se deduce faptul că pe fiecare linie a tablei de şah suntem nevoiţi să plasăm maxim o damă. Pe baza observaţiilor precedente. dama 1 linia 2. Imaginea bidimensională a unei soluţii posibile ne conduce la ideea generării unor structuri cromozomiale de tip matrice de ordinul n (codificare specifică problemei)..Reamintim enunţul problemei: Pe o tablă de şah de n ∗ n pătrate (n linii şi n coloane) dorim să poziţionăm n dame astfel oricare două să nu se afle în conflict. respectiv. rezultă faptul că fiecare linie va conţine minim o damă. a n-a damă pe linia n. O damă va controla o unică linie. Cromozomul următor identifică o posibilă soluţie a problemei: 1 1 2 0 3 0 4 0 1 0 2 0 3 1 4 0 1 0 2 1 3 0 4 0 1 0 2 0 3 0 4 1 linia 1. Numărul de dame fiind egal cu numărul de linii. dama 2 linia 3. O soluţie posibilă a problemei este dată de orice aranjare a pieselor pe tabla de şah. Fiecare coloană este alcătuită din n pătrate.. dama 3 linia 4.. fapt pentru care putem identifica numărul de ordine al damei cu indicele liniei ocupate. . însă o analiză atentă a cerinţelor problemei ne conduce la o manieră simplificată de reprezentare a soluţiilor. Fixăm astfel prima damă pe linia 1. Stabilim că prezenţa damei într-o căsuţă este marcată prin valoarea 1. dama 4 Interpretarea codificării soluţiei este următoarea: - dama 1 este situată pe linia 1. a doua damă pe linia 2. Pentru clarificare considerăm cazul particular al unei table de şah cu 4*4 căsuţe pe care dorim să plasăm 4 dame. putem stabili cert că o soluţie viabilă a problemei implică plasarea fiecărei dame pe câte o linie diferită a tablei de şah (în mod analog se deduce prezenţa unei singure dame pe fiecare coloană). coloana 1 43 . Diferenţa dintre soluţiile posibile este dată de poziţiile ocupate de dame în coloanele tablei. Plasarea mai multor dame pe aceiaşi linie conduce la o stare conflictuală.

fiind dat cromozomul de mai jos. fiecare subsecvenţă din compunerea cromozomului conţine o singură valoare 1. În caz contrar individul conţine ambiguităţi în privinţa plasării damelor pe cele n coloane. se cere determinarea submulţimii de obiecte pentru care suma profiturilor este maximă şi suma capacităţilor acestora nu 44 . Altfel. Spre exemplu. aplicând operatorii standard. o soluţie este reprezentată printr-un cromozom de lungime n*n. Problema rucsacului (variantă) Problema rucsacului este studiată în mod neîncetat de câteva decenii datorită importanţei practice pe care o prezintă cât şi a complexităţii crescute recunoscute. format din n subsecvenţe a câte n gene. pentru cazul particular prezentat anterior (n=4). şi un rucsac de capacitate maximă. Pentru ca o soluţie să fie validă. coloana 4 c = (1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 ) Cromozomul următoarei aranjări a pieselor pe tabla de şah:     corespunde General. din interpretarea sa ar rezulta că doua damă este poziţionată pe coloana 3 şi coloana 4 (imposibil): 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 4 1 Menţionăm că prin aplicarea ulterioară a operatorilor de variaţie regula de codificare poate fi încălcată. problema rucsacului este formulată astfel: fiind dată o mulţime de obiecte caracterizate fiecare prin profit şi capacitate proprie. coloana 3 dama 3 este situată pe linia 3. În general. coloana 2 dama 4 este situată pe linia 4.dama 2 este situată pe linia 2. rata producerii descendenţilor invalizi este foarte mare. Este necesară proiectarea unor operatori genetici specifici codificării prin care este asigurată consistenţa soluţiilor generate.

i ∈{1.wi : capacitatea obiectului i.2. Dintre aceste soluţii se urmăreşte determinarea aceleia care maximizează suma profiturilor.. I ∈{1. şi i∈I ∑wi ≤W . n} Se doreşte determinarea ansamblului de k obiecte: maximă a rucsacului. on } o mulţime de n obiecte şi W –capacitatea Fiecare obiect oi este caracterizat prin profit şi capacitate: .2..... Ar fi util să concepem o manieră de reprezentare binară prin cromozomi de lungime constantă. I = k } . Soluţiile posibile ale problemei sunt reprezentate de orice submulţime de obiecte încărcate în rucsac. Pornind de la observaţia că starea unui obiect relativ la o soluţie posibilă oarecare poate avea doar una dintre valorile ”selectat” sau ”neselectat” (marcate prin valorile 1 sau 0). Se impune observaţia că soluţiile posibile diferă atât prin obiectele selectate cât şi prin numărul acestora.. Problema rucsacului este formulată astfel: Fie O = { o1 . Numărul variabil de obiecte ce alcătuiesc soluţiile problemei ne conduce la ideea reprezentării acestora prin cromozomi de lungime variabilă.. pentru care suma capacităţilor individuale nu depăşeşte capacitatea maximă impusă.depăşeşte capacitatea sa.. o2 . i ∈{1.... Varianta problemei descrise în aceste rânduri nu permite divizarea obiectelor date. n}.. un cromozom ar fi format de şirul variabil al indicilor obiectelor selectate şi alfabetul codificării nu este cel binar. fiecare dintre acestea fiind selectat în întregime sau deloc. pentru care: i∈ I ∑pi . {o i ∈O | i ∈ I . acest tip de codificare impune un efort suplimentar în privinţa alegerii şi implementării operatorilor genetici.. n} ..pi : profitul obiectului i. Mai mult. În această situaţie.maximă.2.. deducem următoarea manieră de codificare binară: 45 ..

pentru care: ∑ xi ⋅ pi . Soluţia optimă a problemei este reprezentată printr-un cromozom c* = ( x1 . Cromozomul c = (1 1 0 0 0 0 0 1 0 1) ne indică faptul că din mulţimea celor 10 obiecte au fost alese pentru încărcare obiectele ale căror număr de ordine este 1. 46 . i =1 n Exemplu: Considerăm numărul de obiecte n=10..2.maximă i =1 n şi ∑ xi ⋅ wi ≤ W .1.. xi = 1 dacă obiectul oi este selectat.1. şi xi = 0 în i { caz contrar.1. n} ..1. Exemple de scheme de lungime l=8: s1=100**01* . x2 .. xn ) ∈ { 0. Semnificaţia genelor este următoarea: ∀ ∈ 1.Fie c = ( x1 .2] reprezintă unul dintre rezultatele teoretice importante ale Algoritmilor Genetici.2 Teorema schemelor Teorema schemelor [1. 11. încrucişare cu un mutaţie.. Noţiunea centrală a teoremei o reprezintă schema.8 şi 10.. de lungime l (l reprezintă chiar lungimea reprezentării cromozomului).. selecţie proporţională.. Teorema schemelor canonic. Recunoscută ca teoremă fundamentală.2. aceasta garantează convergenţa algoritmilor genetici. prin proliferarea în timp a acelor cromozomi conţinând secvenţe de gene cu performanţe mari.*}.. cu reprezentare înzestrat cu operatori de singur punct de tăietură şi este oferită pentru algoritmul genetic cromozomială binară de lungime fixă l.. aceasta fiind definită astfel: Schema = secvenţă de caractere peste alfabetul binar extins {0.. x2 .1} n un cromozom de lungime fixă egală cu numărul total de obiecte.. xn ) .

notat o(s) se defineşte ca numărul de apariţii ale caractere binare 0 sau 1.este performanţa medie a cromozomilor populaţiei curente Expresia următoare exprimă esenţa Teoremei schemelor: m( s.reprezintă probabilitatea de mutaţie.3 Operatori de încrucişare pentru codificarea binară 47 . notată p(s) este dată de inegalitatea: p ( s ) ≥ 1 − pc δ ( s) l −1 f ( s) f mediu Numărul de apariţii ale schemei s în generaţia t+1 se deduce pe baza numărului de apariţii ale schemei s în generaţia t: m( s. t + 1) ≥ m( s. numărul de reprezentanţi ai schemelor favorabile creşte odată cu timpul. probabilitatea de supravieţuire a schemei s. δ ( s 2 ) = 5 . t + 1) = m( s. notată f ( s ) este media performanţelor cromozomilor populaţiei curente care conţin schema s. t ) ⋅ unde: f mediu . fapt care garantează convergenţa algoritmului genetic. Exemplu: δ ( s1) = 7 . δ ( s3) = 7 Performanţa unei scheme. notată δ( s ) se determină ca fiind distanţa (numărul de caractere) de la prima apariţie. Conform acestei teoreme. numărul de caractere diferite de simbolul genetic “*” din compunerea schemei. Prin aplicarea operatorului de încrucişare cu un singur punct de tăietură ( pc . Exemplu: o(s1)=5.1. respectiv. până la ultima apariţie a unui caracter binar 0 sau 1. t ) ⋅ f ( s) f mediu δ ( s)   ⋅ 1 − pc ⋅ − o ( s ) ⋅ pm  l −1   unde pm . Lungime definitorie a schemei. o(s1)=6. s3=111*000*.reprezintă probabilitatea de aplicare a încrucişării).s2=***11*00. 11. Ordinul schemei s. o(s2)=4.

doi sau mai mulţi descendenţi.. spaţiul de căutare nu poate fi explorat.. De cele mai multe ori împerecherea aleatoare a părinţilor este o opţiune la îndemână şi nu alterează convergenţa algoritmului genetic. n} .. Pentru a provoca migrarea indivizilor înspre zone favorabile corespunzătoare soluţiilor globale... Algoritmul corespunzător este prezentat mai jos: Algoritm Încrucişare_1_Tăietură este: Fie c1 = (α1 . βt .. Schema algoritmului genetic standard sugerează aplicarea operatorului de încrucişare asupra unei mulţimi de indivizi selectaţi în prealabil: PS (t ) . În general operatorul de încrucişare este aplicat asupra a doi indivizi. αn ) SfAlgoritm... fără apelul vreunui operator de variaţie a structurii cromozomilor populaţiei curente.. βt +1 ....2. Această mulţime se denumeşte în mod uzual bazinul de selecţie şi este formată din copii ale cromozomilor performanţi ai populaţiei curente P (t ) .... operatorul discutat permite transferul de informaţie stocată în codificarea indivizilor părinţi înspre descendenţii acestora. αt +1 .. βn ) părinţii selectaţi. prin aplicarea operatorului de selecţie.. Practic... Stabilirea perechilor de indivizi ai bazinului de selecţie care se vor recombina se poate face în mod aleator.. fapt pentru care în anumite situaţii soluţia globală a problemei nu poate fi atinsă 48 . Intuitiv.. Principala critică adusă încrucişării cu un punct de tăietură constă în incapacitatea sa de a genera anumite secvenţe.Selecţia nu asigură dinamica populaţiei.α 2.. rezultând unu. αn ) şi c2 = ( β1.. sau pe baza unui criteriu de similaritate.. Încrucişarea răspunde cu succes acestui deziderat. Încrucişarea cu un punct de tăietură Asupra operatorului de încrucişare cu un punct de tăietură neam oprit într-un paragraf anterior (a se vedea ). Sursa de inspiraţie a acestui operator genetic o reprezintă încrucişarea intercromozomială naturală. αt .... 1 Generează valoarea t din mulţimea { . βn ) d 2 := ( β1 .β 2 . este necesară modificarea structurii acestora.. d1 := (α1 .

mutaţia unei gene a cromozomului d1 prin inversarea valorii acesteia permite producerea unui individ performant ce conţine schema S3.1 1 ........ Individul mutat d1 ' va conţine schema dorită: ......... Oricare ar fi punctul de tăietură t. Dar acest lucru este posibil doar în cazurile favorabile în care părintele ce conţine una dintre scheme (de ex..... Considerăm că populaţia curentă conţine printre indivizii săi două scheme performante S1 şi S2... Ulterior. .... O altă soluţie ar fi aplicarea încrucişării cu cel puţin două puncte de tăietură..1 1) . d1 ' = (1 1 0 1 .. 0 1) c1 = (1 1 0 c2 = (.. include şi o secvenţă foarte asemănătoare celeilalte scheme promiţătoare (S1): ..1 1 . ale căror combinare ar produce indivizi foarte buni în raport cu funcţia de evaluare stabilită: ..1 1) Dacă punctul de tăietură generat este t=3......1 1 . Dacă este permisă..0 Se poate observa faptul că aplicarea încrucişării cu o singură tăietură nu poate produce schema dorită S3... ne putem imagina că soluţia finală a problemei conţine cele două secvenţe binare prezente în cadrul populaţiei: 1) S3: (1 1.......... ... Parametrul n reprezintă în acest exemplu lungimea cromozomilor......0 1) S1: (1 1 01 S2: (.. mutaţia cromozomilor ar putea rezolva acest impediment..1 1 1 ... se obţine descendentul d1 : ..doar prin aplicarea acestui operator de variaţie. ) De asemenea.0 1) . Presupunem generată valoarea n-1 pentru poziţia genei ce va suferi mutaţie... aplicarea operatorului va distruge cel puţin una dintre cele două scheme convenabile S1 sau S2.. Următorul exemplu demonstrează afirmaţia precedentă. S2 este conţinută de cromozomul c2 ).. 49 .. d1 = (1 1 0 1 ..1011..

xl ) ...... c1 şi c2 : 2 d 2 = ( y1 . xn ) 2 3 c1 = ( y1 . fără a mai fi necesară intervenţia ulterioară a mutaţiei....... xl ...... y k ) . c2 = ( yk +1 .... Descriem în continuare modul de aplicare al acestuia asupra a doi cromozomi c1 şi c2 de dimensiune constantă n: c2 = ( y1 . xk +1 .... yk .. fie 2:1 – doi părinţi produc un singur descendent. c1 = ( xk +1 .......... yl +1 ....... yn ) doi părinţi... Al doilea fiu (produs doar dacă tipul operatorului este 2:2) este 2 3 construit prin alipirea secvenţelor: c1 ...... n} .. xl +1 .. Fiecare părinte c1 . yl . va fi divizat în 3 secvenţe de gene: 1 2 3 c1 = ( x1 ... Algoritmul Încrucişare_2_Tăieturi este: Fie c1 = ( x1 . Valorile punctelor de tăietură k şi l se generează aleator din 1 mulţimea valorilor { . c2 şi 3 c1 : c1 = ( x1 .. Putem observa că neajunsul ilustrat la operatorul descris anterior este eliminat în această ultimă variantă de încrucişare... respectiv c2 .... yl ) ..... yn ) 2 1 2 Primul fiu este format prin concatenarea secvenţelor: c1 . xk ... yn ) . n} .... xn ) ...... yn ) Se generează aleator două valori k şi l. În acest ultim caz.Tipul operatorului descris este fie 2:2 – doi părinţi produc doi descendenţi.. x k ) .. c2 = ( yl +1 . aportul unuia dintre cei doi părinţi poate fi mai mare prin moştenirea de către descendent a mai multor gene de la acesta.. xn ) d1 = ( x1 .. yk +1 ... 1 Generează aleator k şi l din mulţimea { ...2.... yl . c1 = ( xl +1 . Încrucişarea cu două puncte de tăietură Tipul operatorului standard este 2:2 sau 2:1. xn ) şi c2 = ( y1 . Schema performantă S3 poate fi obţinută prin aplicarea încrucişării cu 2 tăieturi asupra indivizilor ce conţin schemele S1 şi S2. 50 ...... xl .. având semnificaţia punctelor de tăietură. yk . xk .2...

... Algoritmul Încrucişare_m_tăieturi este: Fie c1 = ( x1 . În cazul unui număr mare de tăieturi... yn ) (doar pentru varianta 2:2) SfAlgoritm Încrucişarea cu multiple puncte de tăietură Acest operator reprezintă varianta generalizată a operatorului cu 2 tăieturi.. Ordonează crescător valorile t1 . yl .. z n ) şi d 2= ( w1 . xk +1 . t 2 . Menţionăm că numărul maxim de tăieturi permise este dat de lungimea cromozomilor..Dacă l<k atunci Interschimbare(k. yl +1 ...... wn ) descendenţii 51 .... t m din mulţimea {1.... Experimental se poate observa că aplicarea acestui operator de încrucişare cu un număr mare de tăieturi încetineşte convergenţa populaţiei înspre soluţia globală. fapt care produce cu mare probabilitate distrugerea unor posibile scheme performante. xn ) d 2 := ( y1 ... n −1} ... n} .. yk +1 . inconvenientul major al procedurii este cauzat de fragmentarea accentuată a cromozomilor părinţi......... reprezentând numărul de tăieturi.. xl +1 . Ordinea secvenţelor ce intră în componenţa reprezentării unui descendent este stabilită astfel: se alternează o secvenţa de gene preluate din primul părinte cu secvenţă de gene din cel de-al doilea părinte.... yk ... t 2 .. Generează şirul de tăieturi t1 . t m Fie d 1= ( z1 .2. xk ... Prezentăm în continuare o variantă a algoritmului de încrucişare cu număr variabil de tăieturi. xn ) şi c2 = ( y1 .......2.. În practică este preferată varianta cu 2 tăieturi sau o variantă a operatorului cu tăieturi multiple în care numărul acestora este variabil (generat aleator) şi nu prefixat ca un parametru al algoritmului... yn ) doi părinţi Fie m din mulţimea {1.. Principiul procedurii este intuitiv: se consideră un număr arbitrar de puncte de tăietură şi descendenţii se obţin prin concatenarea secvenţelor rezultate în urma divizării cromozomilor părinţi..... xl ..l) SfDacă d1 := ( x1 .

fapt care ar prejudicia în mod semnificativ căutarea locală. wj = y j SfPentru Pentru i de la 1 la m-1 Pentru j de la ti la ti + 1 Dacă i este par z j = x j ... wj = y j Altfel z j = y j . wj = x j SfDacă SfPentru SfPentru Pentru j de la tm la n Dacă m este par z j = x j .. y xt 2 .. ( = ( y . wj = x j SfDacă SfPentru SfAlgoritm Prin aplicarea acestui algoritm se obţin descendenţii: d1 = x1 .. este suplinit de un grad mare al diversităţii populaţiei – interpretat ca un factor important al bunei explorări a spaţiului de căutare.1.... Cu toate acestea. dezavantajul fragmentării accentuate a posibilelor secvenţe performante –tradus printr-o exploatare ineficientă a zonelor promiţătoare. yt1 +1 . xt1 . permite obţinerea oricărei scheme constructive şi are un efect pozitiv în privinţa asigurării unei bune diversităţi a populaţiei. xt 2 +1 . yt 2 +1 ... ) . yt 2 ... yt 3 ) . xt 3 .. efectul este în mare măsură similar 52 ... Principala critică constă în fragmentarea puternică a cromozomilor specializaţi. d2 1 t 1 . wj = y j Altfel z j = y j . Avantajul major al operatorului descris este acela că este general.... xt1 +1 . Încrucişarea uniformă Procedeul încrucişării uniforme [1.............Pentru j de la 1 la t1 z j = x j ..1.. În raport cu problematica echilibrului explorare-exploatare...2] nu utilizează puncte de tăietură.

z n ) şi d 2= ( w1 ...încrucişării cu multiple tăieturi. xn ) şi c2 = ( y1 .. Pentru valoarea p = 0. în consecinţă. Algoritmul Încrucişare_Uniformă este Fie p – parametrul algoritmului.. Fiecare poziţie a unui descendent copiază valoarea genelor corespondente ale părinţilor.. p ∈[0.... să se piardă. Descendenţii se construiesc genă cu genă. procedeul descris nu exclude posibilitatea ca o genă oarecare să fie transmisă ambilor fii sau aceasta să nu fie moştenită de niciunul şi. Moştenirea unui număr variabil de gene ale părinţilor consideraţi face ca descendenţii să fie asemănători acestora în grade diferite.. De asemenea.1] Dacă q < p atunci zi := xi Altfel zi := yi SfDacă SfPentru /*generare al doilea fiu */ Pentru i de la 1 la n Generează aleator q ∈[0.. y n ) doi părinţi Fie d 1= ( z1 . wn ) descendenţii /*generare primul fiu */ Pentru i de la 1 la n Generează aleator q ∈[0.... Operatorul introduce un parametru specific p cu semnificaţia probabilităţii ca o genă să provină din primul sau al doilea părinte.1] Fie c1 = ( x1 ..5 admitem că părinţii au rol simetric în producerea noilor indivizi...1] Dacă q < p atunci wi := xi Altfel wi := yi SfDacă SfPentru SfAlgoritm 53 .

Soluţia oferită de autori este de a considera puncte de tăietură active.NU este ta ietur ăetur idă Fiind doi părinţi selectaţi... punctul de tăietură rămâne valid.. se poate produce o explorare eficientă a spaţiului la începutul evoluţiei populaţiei şi o accentuare a exploatării în ultimele generaţii. se pune întrebarea care dintre tăieturile marcate în codificarea acestora vor fi luate în considerare.. Cea de-a doua parte a codificării conţine marcatorii posibilelor puncte de tăietură: ∀ ∈ 1. ti ∈ {0. respectiv cele care sunt valide pentru un 54 . În această manieră. Ar fi util să considerăm parametrul p dependent de vârsta populaţiei. ulterior punctele slabe sunt ignorate şi cele dovedite bune vor fi incluse în continuare în algoritmul de încrucişare. În acest mod.1. probabilitatea distrugerii unor secvenţe bune este mare. dac ă i este punct valid de taietur ă ti =   0. toate tăieturile valide ale ambilor părinţi.. t1 . Valoarea parametrului p ne poate indica în ce măsură se realizează căutarea locală. Încrucişarea punctuală Operatorul standard de încrucişare cu tăieturi nu ţine cont de calitatea punctelor de tăietură. t n −1 ) Prima secvenţă binară de lungime n are semnificaţia genelor codificării. xn .2. Se acceptă afirmaţia că un punct de tăietură este slab dacă performanţa descendentului obţinut prin aplicarea încrucişării este mai slabă decât a părinţilor care îl generează. Gradul de asemănare a descendenţilor cu primul părinte creşte în mod proporţional cu valoarea parametrului p. tăieturile aflate în conflict.. Schaffer şi Morishima [1..Avantajul major al încrucişării uniforme constă în posibilitatea controlării exploatării locale prin ajustarea corespunzătoare a parametrului p.1. n −1} .. În caz contrar. codificarea cromozomială este modificată.2] propun un mecanism prin care se estimează valoarea tăieturii.1} cu semnificaţia: i { 1  .. Fiecare cromozom al populaţiei este constituit din secvenţe binare de lungime 2 ⋅ n − 1 : c = ( x1 .. Pentru a memora informaţiile legate de validarea sau invalidarea punctelor de tăietură. Astfel.. Pentru a depăşi acest inconvenient.. dac ă i .

hn−1 ) := ( 0. Specificul procedurii constă în numărul variabil de tăieturi.. anumite puncte de tăietură care se dovedesc inutile procesului de căutare devin inactive.. Încrucişarea segmentată Tehnica încrucişării segmentate. xn .... vor participa de asemenea la încrucişare. 55 ...părinte şi invalide în cel de-al doilea părinte.. Numărul fragmentelor de gene în care se divide un cromozom părinte variază de la valoarea 2 la n..1.. reprezintă o variantă a încrucişării cu multiple tăieturi. propusă de Eshelman. t n −1 ) şi c = ( y1 .... fapt pentru care convergenţa populaţiei este îmbunătăţită.2].. Fie n – dimensiunea cromozomilor.2. Schaffer [1.. 0) ) m := 0 Fie m – contorul tăieturilor valide: Pentru i de la 1 la n-1 Dacă ( ti = 1) ∨ ( si = 1) atunci hi :=1 SfDacă SfPentru SfAlgoritm m := m +1 Încrucişarea punctuală introduce o formă de adaptare a tăieturilor aplicate...1.. Acest parametru verifică condiţia: m < n Numărul de tăieturi utilizate la aplicarea operatorului este o valoare aleatoare generată din 1 mulţimea: { . m} . s1 .. y n ..... Algoritmul stabilirii tăieturilor aplicate în cazul încrucişării a doi părinţi este furnizat în continuare: Algoritm Stabilire_Tăieturi este Fie c = ( x1 . Vor supravieţui doar acelea care produc descendenţi superiori. sn−1 ) doi părinţi Fie şirul de tăieturi ce se vor aplica părinţilor consideraţi: ( h1 . Prin acest mecanism se introduce o mai mare diversitatea în privinţa recombinării cromozomiale. Prin aceasta.. Caruana..0... Se consideră un parametru global m având semnificaţia numărului maxim de tăieturi permise. t1 .

4 Operatorul de mutaţie pentru codificarea binară 56 . Fie c1 ' şi c2 ' indivizii rezultaţi. Încrucişarea amestecată Propusă de Caruana. încrucişarea amestecată este mai degrabă un mecanism suplimentar cu care se înzestrează orice variantă a operatorului de recombinare.1] Dacă q < s atunci T := T ∪{i} SfDacă SfPentru SfAlgoritm Observaţie: Pentru s =1 încrucişarea segmentată se reduce la varianta clasică a încrucişării cu număr constant de tăieturi.1.1] . Schaffer [1. Operatorul acţionează în trei etape: Pasul I: Genele părinţilor c1 şi c 2 sunt amestecate folosind un operator de permutare. codificarea al T := Φ f1 ' 11.2]. Genele fiilor sunt rearanjate prin aplicarea permutării inverse rezultând f1 şi f 2 . Algoritm Generare_Tăieturi s ∈[0. Eshelman.1.1. Pasul III. Pasul II. Considerăm un parametru suplimentar reprezentând probabilitatea ca o poziţie din cromozomială să fie acceptată ca punct de tăietură.1] .parametru Fie algoritmului Fie T – mulţimea tăieturilor: Pentru i de la 1 la n-1 Generează aleator q ∈[0. Ideea dezvoltării unei astfel de tehnici provine din necesitatea introducerii unui grad mare de diversitate a descendenţilor obţinuţi.Un posibil algoritm de generare a tăieturilor este descris în s ∈[0. Aplică asupra cromozomilor c1 ' şi c2 ' un operator de încrucişare (orice variantă de tipul 2:2) rezultând descendenţii şi f 2 ' . continuare.

cu atât asemănarea descendenţilor cu părinţii este mai puţin evidentă... Mutaţia uniformă puternică Mutaţia este operatorul unar care acţionează la nivelul reprezentării cromozomiale a unui individ selectat în prealabil. ducând la o accelerare remarcabilă a convergenţei algoritmului. ne putem confrunta cu o uniformizare a populaţiei. Varianta uniformă a operatorului presupune utilizarea unei valori constante a probabilităţii de mutaţie evoluţiei populaţiei.1] Fie algoritmului Fie d = ( y1 . Fie prin aplicarea unei presiuni de selecţie prea mare.. Gradul de asemănare al cromozomilor părinte şi fiu este dependent de numărul genelor care suferă modificări. În mod uzual notăm acest parametru cu pM ..Intervenţia operatorului de mutaţie devine extrem de utilă în cazurile în care încrucişarea nu facilitează obţinerea anumitor secvenţe de gene sau pentru a combate efectul de convergenţă prematură a populaţiei.cromozomul părinte pM ∈ [ 0. probabilitatea ca soluţia globală să fie situată în imediata apropiere a unui individ performant este mare. xn ) . Algoritm Mutaţie_Tare_Uniformă este Fie c = ( x1 . fie prin pierderea diversităţii indivizilor prin aplicarea neadecvată a altor operatori. Mai mult. o uşoară modificare a trăsăturilor acestuia poate conduce la găsirea soluţiei dorite... Cu cât valoarea parametrului pM este mai mare. fapt pentru care căutarea ulterioară devine deficitară. yn ) parametrul -cromozomul pM pe tot parcursul 57 .. În aceste situaţii mutaţia devine factorul principal de revigorare a populaţiei.. Rezultatul procedurii de mutaţie este un nou individ format parţial din gene moştenite de la părintele său. Intuitiv. Pentru a controla această trăsătură a mutaţiei se consideră un parametru adiţional cu semnificaţia probabilităţii ca o poziţie din reprezentarea cromozomială să fie alterată.

Mutaţia uniformă slabă O variantă a mutaţiei uniforme este cea în care gena mutantă a părintelui se poate transmite nemodificată fiului. ci se construiesc prin atribuirea de valori binare {0.5 reprezentând probabilitatea de alocare a valorii 1 pentru gena considerată....cromozomul părinte Fie pM ∈ [ 0..fiu Pentru i de la 1 la n Generează aleator q ∈[0.1} .Se stabileşte valoarea subunitară r = 0. yn ) -cromozomul fiu Pentru i de la 1 la n Generează aleator q ∈[0. Specificul procedurii constă în stabilirea unei probabilităţi de alterare a genelor selectate. În esenţă.1] 58 .5 Fie d = ( y1 . xn ) ... deşi o genă oarecare este supusă mutaţiei.. astfel încât. operatorul de mutaţie descris de algoritmul anterior are efectul complementarii genelor părintelui.1] parametrul algoritmului Fie r = 0. fiul poate să moştenească valoarea iniţială din codificarea părintelui. Numim această formă a operatorului – mutaţie slabă.. genele mutante ale fiului nu sunt copiate din părinte. Algoritmul mutaţiei uniforme slabe este descris în continuare: Algoritm Mutaţie_Slabă_Uniformă este Fie c = ( x1 .1] Dacă q < pM atunci yi :=1 − xi Altfel yi := xi SfDacă SfPentru SfAlgoritm Observaţie: Dacă pM are valoarea 1.

Dacă q < pM atunci Generează aleator s ∈[0,1] Dacă s < r atunci yi :=1 Altfel yi := 0 SfDacă Altfel yi := xi SfDacă SfPentru SfAlgoritm Mutaţia neuniformă Se poate intui că o dinamică eficientă a populaţiei este aceea în care prima etapă a evoluţiei asigură o bună explorare a spaţiului de căutare, respectiv, ultima etapă realizează o exploatare accentuată a zonelor promiţătoare. Acest procedeu permite iniţial determinarea zonelor corespunzătoare optimelor, fapt pentru care exploatarea ulterioară a acestora garantează o şansă mare de determinare a soluţiilor globale. Ne putem imagina scenariul în care ordinea celor două etape enunţate este inversată. În această situaţie, exploatarea iniţială poate lesne genera efectul de convergenţă prematură, iar explorarea ulterioară poate produce pierderea soluţiilor calificate obţinute în etapa precedentă. Principiul elementar aplicat în stabilirea ordinii celor două faze ale evoluţiei este cel prin care asigurăm la început căutarea globală, urmată de faza finală în care soluţiile intermediare obţinute sunt rafinate. În practică, acest deziderat se poate atinge prin controlarea probabilităţii de mutaţie pM . În acest caz, valoarea parametrului

pM

nu mai este o constantă. Se stabileşte o regulă prin care

probabilitatea de mutaţie descreşte odată cu creşterea indicelui generaţiei, astfel încât:

-

indivizii generaţiilor iniţiale vor fi supuşi mutaţiei cu o probabilitate mare, asigurând o bună diversitate a populaţiei; (explorare)

59

spre sfârşitul evoluţiei, procentul mutaţiilor scade considerabil, ceea ce permite o căutare locală eficientă. (exploatare) Probabilitatea de mutaţie depinde de vârsta populaţiei, notat
(t pM) . Proiectantul algoritmului are libertatea de a construi funcţia (t care descrie această dependenţă. Descreşterea valorii pM) poate fi

-

liniară, exponenţială, etc., în funcţie de rapiditatea cu care dorim să se instaleze etapa de rafinare a soluţiilor. Thomas Back [1.1.1.2] propune formule de variaţie a probabilităţii de mutaţie în funcţie de indicele generaţiei curente: Varianta 1. Legea de modificare a probabilităţii de mutaţie în funcţie de timp (timpul este exprimat în numărul generaţiilor produse) este următoarea:

pm ( t ) = pm ( 1) ⋅ e− β ⋅ t
unde: t – reprezintă indicele generaţiei curente β - parametru întreg supraunitar β ≥1 prin care se gestionează viteza de descreştere a probabilităţii de mutaţie

pm (1) - probabilitatea de mutaţie la generaţia iniţială (se

stabileşte de către utilizator) Varianta 2. Legea de transformare dependentă de timp este exprimată prin:

pm ( t ) =

1 L −2 2+ ⋅t Tmax

unde: t – reprezintă indicele generaţiei curente Tmax – numărul maxim de generaţii permise L – lungimea cromozomului (numărul de gene din reprezentarea cromozomială) Probabilitatea de mutaţie la prima generaţie este de 0.5. La ultima generaţie valoarea parametrului scade la 1 L .

60

O altă formă de variaţie a parametrului pm este printr-o lege dependentă de valoarea de performanţă a indivizilor: 1 pm ( c ) = 2 ⋅ ( fitness ( c ) + 1) − L unde:

c – un individ (cromozom) al populaţiei curente, c ∈P ( t ) fitness – funcţia de performanţă L – lungimea cromozomului Prin această lege de modificare a valorii probabilităţii de mutaţie este permisă alterarea accentuată a indivizilor de calitate slabă şi o mutaţie subtilă a indivizilor cu performanţe considerabile. Principiul acestei forme de adaptare a mutaţiei este intuitiv: o valoare mare a performanţei unui individ ne sugerează apropierea acestuia de optimul din spaţiul de căutare, astfel, probabilitatea ca individul respectiv să sufere mutaţii scade considerabil pentru a nu produce îndepărtarea de soluţia din zonă. Mutaţia adaptivă În codificarea binară poziţia genelor are un rol decisiv. Alterarea primelor gene induce o amplitudine mult mai mare a mutaţiei în comparaţie cu modificarea genelor de la sfârşitul cromozomului. Ţinând cont de poziţia genelor reprezentării, putem controla puterea operatorului de mutaţie. Astfel, pentru a asigura diversitatea populaţiei este indicat să producem mutaţii la nivelul genelor semnificative, efectul acestora fiind generarea unor descendenţi puţin asemănători părinţilor. De asemenea, accentuarea căutării locale – generarea indivizilor apropiaţi de părinţi - se va realiza în condiţiile în care mutaţiile genelor semnificative sunt rare. Dependenţa parametrului p M de locaţia genelor nu este greu de realizat practic. În algoritmul operatorului de mutaţie adaptivă valoarea probabilităţii de mutaţie este condiţionată de poziţia genelor. 11.1.5 Inversiunea

61

Literatura dedicată domeniului abundă în operatori inediţi, inspiraţi sau nu de procese naturale, aplicabili în rezolvarea unor probleme specifice sau având un grad mare de generalitate. Operatorul de inversiune îşi are rădăcinile în procese naturale întâlnite la nivel cromozomial. Tipul operatorului este 1:1, respectiv procedeul se aplică asupra unui singur cromozom rezultând un unic descendent. Principiul inversiunii este simplu: valorile a două gene se interschimbă. Poziţiile genelor inversate se generează aleator. Altă variantă a operatorului presupune transcrierea inversă a unei subsecvenţe de gene a cromozomului În practică întâlnim foarte rar utilizarea operatorului de inversiune, preferinţa fiind clară înspre implementarea încrucişării şi mutaţiei. Inversiunea are mai degrabă un statut istoric decât funcţional dat fiind faptul că primii operatori genetici sugeraţi sunt încrucişarea, mutaţia şi inversiunea [1.1.1.2]. Frecvenţa mică de utilizare a acestui operator îşi are explicaţia logică în faptul că mutaţia sau recombinarea pot suplini absenţa lui, efectul operatorilor de variaţie populari fiind în anumite condiţii similar inversiunii. O posibilă generalizare a operatorului descris este aceea prin care se inversează secvenţe distincte de gene. Lungimile secvenţelor sunt egale pentru a nu produce suprapunerea genelor sau depăşirea lungimii maxime a cromozomilor.

12 Codificare reală - specifică
Într-un exemplu anterior (vezi ) a fost tratată o problemă de optimizare a unei funcţii reale. Folosind codificarea cromozomială binară, abordarea descrisă pierde din naturaleţe şi flexibilitate: valori reale vor fi transformate şi exprimate în secvenţe binare cu o precizie prestabilită. Funcţia de performanţă, identică cu funcţia criteriu a problemei are ca parametru o valoare reală. Calcularea performanţelor indivizilor populaţiei presupune conversia inversă din binar în real a reprezentării soluţiilor posibile, şi astfel, un cost suplimentar în procesul de calcul. Soluţia elegantă în cazul optimizării funcţiilor reale constă în utilizarea unei reprezentări cromozomiale adecvate, utilizând valori reale.

62

Corespunzător codificării cromozomiale reale există operatori specifici de mutaţie şi încrucişare. D = [ 2. Cromozomul c.1 Operatorul de încrucişare pentru codificarea reală Încrucişarea discretă Operatorul de încrucişare discretă este o variantă similară încrucişării uniforme din secţiunea codificării binare. 12.42.6] şi un punct oarecare a domeniului: s=3. xk ) . xk ) o soluţie posibilă a problemei considerate şi cromozomul c ∈P ( t ) reprezentarea reală a soluţiei x. x2 . unde x1 = 3. × Dk – spaţiul de căutare al unei probleme date.....1. Codificarea reală a soluţiei s este următoarea: c = ( x1 ) . k } . bi i { [ ] de valori reale: c = ( x1 .Fie D ⊆ R k . superioară ale x ∈D .. Mutaţia. ∀ ∈1. x 2 . Secţiunile următoare prezintă câteva variante populare de operatori genetici specifici codificării reale. x = ( x1 . Fie Notăm cu ai şi bi limitele inferioară. Optimizarea funcţiilor reale este doar o clasă de probleme în care codificarea reală este preferată codificării binare... xi ∈ ai . bi ] .. în codificarea reală este exprimat prin secvenţa Exemplul amintit poate fi rezolvat natural utilizând codificare cromozomială reală: Fie f : D →R .. Menţionăm că această formă de reprezentare a soluţiilor posibile este aplicabilă în toate situaţiile în care un punct al spaţiului de căutare comportă o exprimare prin valori reale.2. Operatorii genetici descrişi în paragrafele dedicate codificării binare nu pot fi aplicaţi în cazul unei codificări reale a soluţiilor. respectiv.42 . domeniului Di : Di = [ ai . Ca şi în primul 63 .... exprimată ca alterare unei gene prin inversarea valorii iniţiale sau recombinarea utilizând puncte de tăietură devin nepotrivite în acest context. D = D1 × D2 ×.

Descendenţii obţinuţi moştenesc o parte a genelor corespondente ale părinţilor... p ∈[0.. yn ) doi wi := yi Altfel zi := yi wi := xi SfDacă SfPentru SfAlgoritm Încrucişarea continuă Operatorul de încrucişare continuă implică doi părinţi selectaţi în prealabil. yn ) doi 64 . Procedeul descris va produce descendenţi ce conţin secvenţe de trăsături similare..1] Fie c1 = ( x1 .1] . Algoritmul Încrucişare_Continuă este Fie p – parametrul algoritmului.5 anunţă rolul simetric al celor doi părinţi selectaţi pentru încrucişare.. Un parametru suplimentar va indica raportul dintre genele care se moştenesc nemodificate şi genele care suferă mutaţii. z n ) şi d 2= ( w1 .. xn ) şi c2 = ( y1 .1] Dacă q < p atunci zi := xi Fie c1 = ( x1 . restul genelor obţinându-se ca medie aritmetică a genelor provenite din ambii părinţi... p ∈[0...1] părinţi Fie d 1= ( z1 ... un parametru subunitar exprimă probabilitatea ca genele fiilor să provină din primul sau al doilea părinte. Valoarea p=0......caz... xn ) şi c2 = ( y1 ..... wn ) descendenţii Pentru i de la 1 la n Generează aleator q ∈[0. Notăm cu p parametrul prin care este modelat rolul părinţilor în transmiterea genelor: p ∈[0. Algoritmul de încrucişare discretă este descris în cele ce urmează: Algoritmul Încrucişare_Discretă este Fie p – parametrul algoritmului..

... z n ) şi d 2= ( w1 ...... xn ) şi c2 = ( y1 . yn ) doi părinţi Fie d 1= ( z1 ..... Valoarea 0... Algoritmul este descris în cele ce urmează. Operatorul este caracterizat printr-un parametru subunitar α prin care se poate controla importanţa părinţilor în constituirea descendenţilor. Încrucişarea convexă Încrucişarea convexă produce descendenţi ale căror gene sunt combinaţii liniare (convexe) ale genelor părinţilor. wn ) descendenţii Pentru i de la 1 la n Generează aleator q ∈[0... denumită încrucişare continuă completă.părinţi Fie d 1= ( z1 .5 stabilită parametrului α ne conduce la varianta de încrucişare continuă completă.1] Dacă q < p atunci Altfel zi := xi xi + yi 2 x + yi wi := i 2 zi := wi := yi SfDacă SfPentru SfAlgoritm O variantă a operatorului de încrucişare continuă... Algoritmul Încrucişare_Convexă este Fie α – parametrul algoritmului.. wn ) descendenţii Pentru i de la 1 la n zi := α ⋅ xi + (1 − α ) ⋅ yi 65 .... produce un singur descendent ale cărui gene sunt obţinute ca medii ale genelor corespondente din ambii părinţi.. α ∈[0..1] Fie c1 = ( x1 . z n ) şi d 2= ( w1 .

Mutaţia uniformă a cromozomilor în reprezentare reală presupune ca indiferent de generaţie.. Procedura de mutaţie neuniformă este construită pe principiul de a favoriza o explorare eficientă a spaţiului de căutare în primele generaţii ale evoluţiei şi o exploatare accentuată a soluţiilor performante în ultimele generaţii.wi := α ⋅ yi + (1 − α ) ⋅ xi SfPentru SfAlgoritm Parametrul α poate fi o constantă prestabilită de-a lungul evoluţiei populaţiei. x2 . În anumite scheme de încrucişare convexă parametrul α poate fi variabilă. În funcţie de dependenţa de indicele generaţiei t se disting două clase de operatori de mutaţie: mutaţie independentă de timp: mutaţia uniformă şi mutaţia dependentă de generaţie sau neuniformă. 12..1. amplitudinea schimbării şi aplicarea unei legi de alterare inspirată de algoritmul Metropolis de recoacere simulată. să fie alterată valoarea unei gene prin înlocuirea acesteia cu o nouă valoare aleator generată din domeniul de definiţie. În acest scop se va stabili un indice maxim T al generaţiei la care amplitudinea mutaţiei devine nulă şi amplitudinea 66 ... xn ) cromozomul supus mutaţiei. Probabilitatea de mutaţie a genelor este constantă şi are aceiaşi valoare pentru toate genele. cu o probabilitate fixată. În mod aleator se stabileşte poziţia i a genei ce va fi alterată.. Fie c = ( x1 . respectiv..2 Operatorul de mutaţie pentru codificarea reală Codificarea reală a cromozomilor implică apariţia altor proceduri de mutaţie specifică. Generarea parametrului α pentru fiecare poziţie a descendenţilor construiţi creează un hibrid între încrucişare şi mutaţie. urmând ca această poziţie să fie înlocuită cu o valoare nou generată. xi .. generată pentru fiecare pereche de părinţi sau pentru fiecare genă construită a descendenţilor. Acest deziderat se realizează prin implicarea a doi parametrii suplimentari variabili prin care se indică natura modificării genelor..

selecţia precede acţiunea operatorilor de variaţie. asigurând progresul ulterior al populaţiei în ansamblu. operatorii genetici se împart în două categorii corespunzător acţiunii exercitate asupra populaţiei: - operatori care favorizează exploatarea celor mai prolifice soluţii curente operatori care permit extinderea căutării şi în alte zone ale spaţiului Din prima categorie fac parte operatorii de selecţie. p=1 creşterea valorii p=-1: descreşterea valorii 2. Rolul acestora constă în avantajul pe care îl atribuie indivizilor care s-au dovedit a fi performanţi în conformitate cu funcţia de evaluare. În această organizare. Se consideră domeniul de definiţie a valorii curente. Dacă p=1 atunci x i ' = x i  b i − x i  Altfel /*(p=-1)*/ [ 1−r ]  1− t T         t   1 − xi ' = i −xi − i ) −  T x ( a 1 r     SfDacă 13 Consideraţii privind operatorii genetici Analizaţi din perspectiva echilibrului explorare-exploatare.iniţială r a mutaţiilor. Cea de-a doua categorie încorporează operatorii de încrucişare şi mutaţie a căror sarcină constă în modificarea cromozomilor. Principiul este evident: dintre indivizii populaţiei curente se vor alege 67 . La o parcurgere a descrierii Algoritmului genetic standard (vezi ) se poate observa ordinea acţiunilor asupra populaţiei. cu semnificaţia: 1 xi . bi ] şi t reprezintă indicele generaţiei 1. Legea de alterare a genei selectate devine: genei xi ca fiind intervalul [ ai . Stabileşte aleator sensul alterării genei p ∈{−1. + } .

Exemplu: pentru parametrul stabilit pC = 0. Introducerea operatorilor genetici adaugă noi parametri specifici: probabilitatea de încrucişare. Altfel spus. În continuare vom descrie şi discuta efectul acestor parametri asupra dinamicii populaţiei. 68 .7 se înţelege faptul că 70% dintre cromozomii populaţiei intermediare vor fi supuşi acţiunii operatorului de încrucişare. Încrucişarea acţionează asupra părinţilor selectaţi PS ( t ) . valorile mari ale acestuia conduc la progresul accelerat al populaţiei. constituită din copii ale indivizilor generaţiei curente P (t ) . în timp ce alţii se copiază de mai pC . Selecţia se aplică de două ori: prima dată pentru a delimita părinţii ce vor fi supuşi încrucişării. Algoritmul genetic este puternic parametrizat: dimensiunea populaţiei şi numărul maxim de generaţii produse sunt parametri evidenţi ai evoluţiei.95 ] . şi a doua oară pentru a decide care dintre descendenţii obţinuţi prin recombinare vor suferi mutaţii. în schimb. Admitem că valorile mici a parametrului provoacă o încetinire a explorării spaţiului de căutare.cei mai valoroşi pentru a continua căutarea. Se poate observa că anumiţi cromozomi ai populaţiei multe ori. Indivizii selectaţi formează o populaţie distinctă de generaţia curentă.2. iar mutaţia va altera indivizii obţinuţi prin încrucişare PR ( t ) . În dezvoltarea algoritmului genetic nu este obligatorie alegerea aceleiaşi variante de selecţie pentru încrucişare şi mutaţie. Efectul selecţiei pentru încrucişare este de a forma o populaţie intermediară PS ( t ) de dimensiune n. În general valorile probabilităţii de încrucişare se situează în intervalul [0. etc.0. fiecare individ al populaţiei PS ( t ) poate produce descendenţi cu o probabilitate pC . 1) Probabilitatea de încrucişare Considerăm o populaţie de dimensiune constantă n.probabilitatea ca un cromozom al populaţiei intermediare să fie supus încrucişării. În realitate ci doi operatori de variaţie consideraţi se aplică asupra a două populaţii distincte. probabilitatea de mutaţie. Notăm cu curente nu se regăsesc în PS ( t ) .

Considerăm pC . de dimensiune n*/ Fie Q := Φ Câttimp ( Q <n ) Pentru fiecare c ∈ PS ( t ) execută Generează aleator q ∈[0. Deoarece încrucişarea este un operator ce acţionează asupra a doi indivizi din PS (t ) este necesară stabilirea modului în care se face împerecherea acestora. În general perechile de părinţi supuşi recombinării se stabilesc în mod aleator. Se consideră populaţia intermediară de n indivizi selectaţi pentru încrucişare: PS (t ) . rezultând descendenţii d1 şi d 2 PR ( t ) := PR ( t ) ∪ { d1 . c j ). d 2 } SfCâttimp SfAlgoritm 2) Probabilitatea de mutaţie 69 . Algoritmul complet de împerechere şi încrucişare este următorul: Algoritmul Recombinare este: /*construirea populaţiei intermediare Q .probabilitatea de încrucişare.În continuare prezentăm detaliat mecanism de aplicare a operatorului de încrucişare ţinând cont de parametrul specific pC .1] Dacă q < pC atunci Q := Q ∪{c} SfDacă SfPentru SfCâttimp /*aplicarea încrucişării asupra perechilor de indivizi stabilite aleator*/ Fie PR ( t ) := Φ Câttimp ( PR (t ) < n ) Generează aleator poziţiile i şi j a doi indivizi din populaţia Q Încrucişare( ci .

iar mutaţia neuniformă se caracterizează prin dependenţa valorii parametrului pM de numărul generaţiei curente.1. Indivizii sunt reprezentaţi de secvenţe binare de lungime prestabilită k. Se poate deduce clar că pentru valori mici ale parametrului pM . unde: D = [0. Cu cât valoarea lui pM este mai mare. Accelerarea căutării se poate produce prin ajustarea în mod corespunzător a parametrilor algoritmului. cu atât efectul mutaţiei în generaţia produsă este mai evident. Astfel.001 . Fiecare genă din reprezentarea cromozomială poate fi modificată cu o probabilitate dată de valoarea lui pM . În acest caz numărul mediu de gene mutate este de n ⋅ k ⋅ pM . În general.Acest parametru este caracteristic mutaţiei. mai multe variabile. Considerăm o populaţie intermediară de dimensiune n. În mod uzual se notează cu pM şi semnifică în ce măsură indivizii selectaţi vor fi supuşi acţiunii operatorului.01 ] . Ne imaginăm un algoritm genetic înzestrat cu operatori de selecţie şi mutaţie.1 Exemplu 1 – Optimizare numerică Fie funcţia f : D → R . 14 Exemple de rezolvare a problemelor cu algoritmi genetici În scop didactic vom prezenta două probleme simple de optimizare a unor funcţii reale cu o singură. 14. Clasificarea operatorilor de mutaţie se face şi în funcţie de parametrul reprezentativ pM . mutaţia uniformă presupune o valoare constantă pentru parametrul pM în timpul evoluţiei. π ] şi f ( x ) = sin ( x ) Se doreşte determinarea maximului global al funcţiei f domeniul D.0. în 70 . respectiv. valoarea parametrului pM este de ordinul 1 − şi intervalul recomandat de valori este 0 3 [0. noua generaţie obţinută va fi asemănătoare populaţiei curente.

c2 . prin procedeul descris în . se vor parcurge etapele următoare: 1. π ] . Alegerea condiţiei de terminare a execuţiei algoritmului 6... se pot deduce două variante de codificare a soluţiilor posibile.. Stabilirea formei de elitism aplicate (dacă este cazul) Vom detalia în continuare componentele algoritmului genetic pentru problema dată.. Stabilirea parametrilor de control 5. Stabilirea manierei de codificare 2. Alegerea operatorilor genetici: selecţie. c2 . cn ) ) x −0 => π −0 Pentru i de la 1 la n Execută xt = ci = xt ⋅ 2 xt = xt ⋅ 2 − xt ⋅ 2 xt = x π SfPentru SfSubalgoritm 71 . mutaţie 4. n . orice valoare reală x din domeniul de căutare D este o posibilă soluţie a problemei. Aceasta poate fi reprezentată binar.. Ieşire: c = ( c1 . mai natural.. Codificarea binară Fiecare soluţie x din intervalul dat poate fi reprezentată printr-o secvenţă de n valori binare c = ( c1 . principale ale Codificarea soluţiilor Pornind de la observaţia că funcţia f este o funcţie reală de o singură variabilă x ale cărei valori fac parte din domeniul continuu D = [0. unde n se va stabili în funcţie de precizia dorită a codificării.Pentru rezolvarea problemei de optimizare (maximizare) cu ajutorul unui algoritm genetic. admite codificarea reală descrisă în .. Metoda de determinare a secvenţei binare este descris în paragraful . sau. Stabilirea funcţiei de evaluare 3. Subalgoritmul care realizează acest procedeu este următorul: Subalgoritm Codificare(Intrare: x.. încrucişare. cn ) . Practic.

+ cn ⋅ 2 −n = ∑ ci ⋅ 2 −i x = xt ⋅ ( π − 0) + 0 = xt ⋅ π i =1 n SfSubalgoritm /*Funcţia de evaluare a calităţii unui individ*/ Subalgoritm Fitness(Intrare: c = ( c1 . Fiind vorba de o problemă de maximizare.. c 2 . c 2 ... Populaţia iniţială este generată aleator prin procedura următoare: Subalgoritm Generare(Ieşire: P = c1 .. SfPentru SfSubalgoritm Funcţia fitness Alegerea funcţiei de evaluare a performanţelor indivizilor nu este problematică în cazul acestei probleme. c n ) .... Înaintea evaluării unui individ este necesară aplicarea algoritmului invers prin care se determină valoarea reală corespunzătoare reprezentării binare: /*transformarea echivalenta*/ secvenței binare in valoarea reala este o { }) valoare subunitară c i = c i1 . cu cât valoarea funcţiei f în punctul x este mai mare cu atât calitatea acestei soluţii este mai bună.. unde α generată aleator Cheamă Codificare(x. Ieşire: x) xt = c1 ⋅ 2 −1 + c2 ⋅ 2 −2 + ..Populaţia de indivizi este notată P şi este formată dintr-un număr fixat de dimpop secvenţe binare: P = c1 . c i 2 . c i n ( )) Subalgoritm Decodificare (Intrare: c = ( c1 .. în mod natural.. c n ) .... c dimpop Pentru i de la 1 la dimpop x = π ⋅ α ... Ieşire: fit ) 72 . funcţia fitness este aleasă ca fiind însăşi funcţia de optimizat: fitness ( x) = f ( x ) . Astfel.. Fiecare individ este o secvenţă binară prin care se reprezintă valoarea reală a soluţiei x.... c 2 . c dimpop { }. c 2 .. Problema care apare în contextul evaluării indivizilor rezidă din maniera de codificare binară pe care am utilizat-o..

c 2 . mutaţia uniformă puternică şi selecţia proporţională.. unde r ..reprezinta indicele din populaţie al părintelui selectat sumafit=0 Pentru i de la 1 la dimpop sumafit=sumafit+fiti //unde fiti –reprezintă performanta calculată individului c SfPentru ind=0 s = sumafit ⋅ r . c n ) .este o valoarea aleatoare subunitară Câttimp ( s ≥ 0 AND ind ≤ dimpop ) i { }) a s = s − fit ind individului c ind=ind+1 SfCâttimp SfSubalgoritm ind //unde fitind –reprezintă performanta /*procedura de încrucişare*/ 73 .. se realizează prin determinarea valorilor de performanţă a tuturor elementelor populaţiei: Subalgoritm Evaluare(Intrare: P (t ) = c1 . la momentul t. fit i ) SfPentru SfSubalgoritm Operatorii genetici În exemplul curent am optat pentru următorii operatori genetici: încrucişarea cu 2 puncte de tăietură de tipul (2:1).....Decodificare( c = ( c1 .x) fit = sin ( x ) SfSubalgoritm Evaluarea populaţiei curente. c dimpop Pentru i de la 1 la dimpop Cheamă Fitness( c i .. c 2 . /*procedura de selecţie a unui părinte*/ Subalgoritm Selecţie(Ieşire: ind) //ind .

d 2 .. d 2 ... iar precizia dorită a codificării ne conduce la o reprezentare pe n = 10 poziţii binare a fiecărui cromozom... } Pentru i de la 1 la t1 d i = ciind 1 SfPentru Pentru i de la t1 +1 la t 2 d i = ciind 2 SfPentru Pentru i de la t 2 +1 la n d i = ciind 1 SfPentru SfSubalgoritm /* procedura de mutaţie*/ Pentru i de la 1 la n Subalgoritm Mutaţie(Intrare: c ind . pM Ieşire: d = ( d1 .2. d n ) ) Fie t1 şi t 2 // t1 < t 2 dim pop c ind 1 .1] Dacă q < pM atunci d i =1 − ciind Altfel d i = ciind SfDacă SfPentru SfSubalgoritm Parametrii de control Probabilitatea de mutaţie pM se stabileşte la valoarea 0. Dimensiunea populaţiei este de 100 de indivizi......Subalgoritm Încrucişare(Intrare: d = ( d1 . 74 ..001.. c ind 2 Ieşire: două valori generate aleator în mulţimea {1. d n ) ) Generează aleator q ∈[0.

Condiţia de terminare si elitismul Algoritmul genetic va fi înzestrat cu o formă de elitism prin care cel mai performant individ al generaţiei curente se va copia nemodificat în noua generaţie. s 2 . S Pentru i de la 1 la dimpop Cheamă Selecţie(ind) 75 .. c .... c SfSubalgoritm { de } pe poziţia poz_best din populaţia Algoritmul genetic Fiind descrişi subalgoritmii care realizează operaţiile principale. Condiţia de terminare se referă la atingerea unui număr de Tmax = 100 de generaţii produse.. Subalgoritm Elita(Ieşire: best) poz_best=1 Pentru i de la 1 la dimpop Dacă fit i > fit poz _ best atunci poz_best=i SfDacă SfPentru best= c poz _ best // individul 1 2 dimpop P ( t ) = c ... s dimpop { /*creare } */ populaţie intermediară P . un algoritm genetic care rezolvă problema de optimizare considerată este următorul: Algoritm AlgoritmGenetic este Cheamă Generare(P(0)) t =0 Câttimp ( t ≤ Tmax ) /*evaluare populaţie curentă*/ Cheamă Evaluare(P(t)) /*reţine best – cel mai bun individ din populaţie*/ Cheamă Elita(best) PS = s1 ..

.. c i ) SfPentru /*elitism: copiază pe prima poziţie în noua populaţie cel mai bun individ al generaţiei vechi*/ c1 = best t=t+1 SfCâttimp SfAlgoritm { /*creare } populaţie intermediară P .. R şi 2 ind2 ..s i = c ind SfPentru PR = r1 ... în 1. Codificarea indivizilor Problema enunţată a fost tratată în primul exemplu utilizând codificarea cromozomială binară. r dimpop */ Pentru i de la 1 la dimpop Generează aleator ind1 {1. dimpop } SfPentru */ Pentru i de la 1 la dimpop Cheamă Mutaţie( r i .. ri ) din mulţimea Cheamă Încrucişare( s ind 1 . π ] este o soluţie posibilă a problemei.2. şi orice valoare din intervalul D = [0. unde: D = [0. c 2 . s ind /*formare populaţie nouă P ( t +1) = c1 . pM . π ] şi f ( x ) = sin ( x ) Se doreşte determinarea maximului global al funcţiei f domeniul D.1... într-un mod mai natural. un individ al populaţiei poate fi reprezentat prin valoarea reală corespunzătoare: 76 . r 2 .2 Exemplu 2– Optimizare numerică Fie funcţia f : D → R .. c dimpop { } 14... Pornind de la observaţia că dimensiunea spaţiului de căutare este 1.

π ] Cu excepţia procedurilor specifice care depind de maniera de codificare a indivizilor (încrucişarea. deoarece selecţia este o procedură care depinde doar de calitatea indivizilor şi nu şi de maniera de reprezentare a acestora.c = ( x ) ... x ∈[0. mutaţia). c dimpop este o { }) subunitară valoare c= x SfPentru SfSubalgoritm 2.. c 2 . Populaţia iniţială P = c1 . fit i ) SfPentru SfSubalgoritm 3. c 2 .. Ieşire: fit ) SfSubalgoritm Subalgoritm Evaluare(Intrare: P (t ) = c1 .. unde α generată aleator { } este generată aleator Subalgoritm Generare(Ieşire: P = c1 . ceilalţi subalgoritmi descrişi în exemplul 1 se simplifică semnificativ.. respectiv din valoare reală în secvenţă binară... c dimpop printr-o procedură elementară: Pentru i de la 1 la dimpop x = π ⋅ α . Operatorii genetici de încrucişare şi mutaţie sunt aleşi dintre cei specifici { }) 77 .. Stabilirea operatorilor genetici: Operatorul de selecţie este cel descris în exemplul precedent. c 2 . Evaluare indivizilor Funcţia de fitness şi procedura de evaluare a populaţiei curente devine: Subalgoritm Fitness(Intrare: fit = sin ( x ) c = x . nemaifiind necesară conversia din reprezentare binară în reală.... c dimpop Pentru i de la 1 la dimpop Cheamă Fitness( c i .

t. c ind 2 = ( y ) Ieşire: Generează aleator α ∈[0. Soluţii: Figurile următoare prezintă populaţia la diferite momente de timp în evoluţie.nu se modifică faţă de varianta de rezolvare în care se utilizează codificare binară.codificării reale: încrucişare convexă de tipul (2:1) şi mutaţie neuniformă. T Ieşire: Generează aleator q ∈[0. f ( x ) ) corespunzătoare indivizilor populaţiei. - amplitudinea iniţială a mutaţiilor r 78 . Condiţia de încheiere a execuţiei algoritmului. mulţimea parametrilor de control va fi completată cu parametrii care intervin în subalgoritmii specifici: numărul generaţiei T la care amplitudinea mutaţiilor devine nulă. pM . Subalgoritm Încrucişare (Intrare: d =( z) ) c ind 1 = ( x ) . Pentru o bună vizualizare am reprezentat punctele de coordonate ( x. r.1] z := α ⋅ x + (1 − α ) ⋅ y SfSubalgoritm Subalgoritm Mutaţie(Intrare: d =( y) ) c ind = ( x ) .5 atunci y = + x ( π x ) − − 1 r    t    1 −  T      Altfel t   1 − y = −x − ) − T x ( 0 1 r          SfDacă SfSubalgoritm Faţă de abordarea din exemplul 1.1] Dacă q ≥ 0. procedura de elitism şi structura algoritmului genetic .

35 0.65 3.00 0.12 ≤ xi ≤ 5.20 1 .5 2 2.8 1 0.5 3 0..65 15 .4 0 0 0. 14. i i =1 n Se doreşte determinarea maximului global al funcţiei f domeniul D. soluţia oferită de algoritmul genetic –codificată de cel mai performant individ al ultimei generaţii este: x=1. în 79 .1 5 0. unde: f ( x ) = f ( x1.5 2 2.65 2..00 0 0.12 .20 0..0 1 0.. ceea ce corespunde unei aproximări foarte bune a maximului funcţiei sin în intervalul considerat.1 5 2. 10 şi 100 După un număr de 100 de generaţii.80 0. x2 ..3 Exemplu 3– Optimizare numerică Fie funcţia f : D → R . f(x)=1. n .1 1 . x2 ) = ∑ xi2 şi − 5..40 0. ∀ =1..2 1 1 .6 0 0.5 3 Figura 3 Populaţia la generaţiile 0.5 1 1 .2 0 0 0.5707963.0000000.60 0.1 5 1 .0 -0.1 1 ..1.5 1 1 .

.Figura 4 graficul funcţiei De Jong 1 pentru cazul particular n=2 (două variabile) Această funcţie este cunoscută sub denumirea de funcţia De Jong 1 şi este o funcţie continuă.. xn ) 1 + n x 2 ∑ i i =1 80 . x2 ... Cazul II) cât şi codificare reală. ∀ =1. n 2.. ∀ =1...12 ≤ xi ≤ 5. Evaluare indivizilor Fiind vorba de o problemă de minimizare. n ( ) 1.. .12 . În abordarea curentă am optat pentru reprezentarea reală a indivizilor fiind mult mai flexibilă: i c = ( x1 . convexă şi unimodală.. xn ) . Această observaţie ne conduce la ideea necesităţii găsirii unei transformări de scală a funcţiei obiectiv. Codificarea indivizilor Faţă de exemplele precedente. Pentru exemplul de faţă am considerat următoarea funcţie de fitness: fitness ( c ) = 1 1 = 1 + f ( x1 . a cărui optim global (minim) este: i f x* = 0 . Codificarea cromozomială poate fi stabilită atât codificare binară (vezi de ex. funcţia de optimizat este scalabilă în privinţa numărului de variabile. valoarea de performanţă a unei soluţii trebuie să fie cu atât mai mare cu cât valoarea funcţiei f în punctul respectiv este mai mică. unde − 5.... x2 .... xi* = 0 ..

. T Ieşire: Pentru i =1 la n Generează aleator p ∈[0...Subalgoritmul de determinare a performanţei unui individ se modifică corespunzător: Subalgoritm Fitness(Intrare: c = x . Stabilirea operatorilor genetici: Maniera de codificare şi structura multidimensională a cromozomilor decide asupra operatorilor de variaţie folosiţi.1] Dacă p ≥ pM atunci Generează aleator q ∈[0. xn ) şi c2 = ( y1 . z n ) descendentul Pentru i de la 1 la n Generează aleator α ∈[0.. c ind 2 = ( y ) Ieşire: Fie c1 = ( x1 . r... /*încrucişare convexă*/ Subalgoritm Încrucişare (Intrare: d =( z) ) c ind 1 = ( x ) ... t. Operatorul de selecţie rămâne cel descris în exemplul 1.1] Dacă q ≥ 0. d =( y) ) pM . Ieşire: fit ) Suma=0 Pentru i=1 la n Suma=Suma+ xi2 SfPentru fit=1/(1+Suma) SfSubalgoritm 3..1] zi := α ⋅ xi + (1 − α ) ⋅ yi SfPentru SfSubalgoritm /*mutaţie neuniformă*/ Subalgoritm Mutaţie(Intrare: c ind = ( x ) ..5 atunci 81 . yn ) doi părinţi Fie d = ( z1 ...

0.0369. 0. condiţia de terminare.0489.0164. sunt cele definite în exemplele precedente.0148. 0.037897959.03719.0401.04366.0313.0011. -0. 0. -0. Soluţii: 6 6 4 4 2 2 X2 X2 -6 -4 -2 0 X1 2 4 6 0 0 -2 -2 -4 -4 -6 -6 -6 -4 -2 0 X1 2 4 6 Figura 5 Distribuţia indivizilor la prim generaţie (stânga) şi generaţia 10 (dreapta).04236. -0. 0. -0. în domeniul de căutare.1 x (5 2 t   1 − − i ) −  T x 1 r          Altfel yi = i − xi −− . algoritmul furnizează în 100 de generaţii o aproximare bună a minimului global: Xminim=(0. 82 .1 x ( ( 5 2 )) −  1 r    t    1 −  T     SfDacă SfDacă SfPentru SfSubalgoritm Celelalte aspecte ale rezolvării problemei de optimizare: parametrii de control. elitismul şi structura algoritmului genetic. -0. 0.044645921.yi = i + .0308. -0. 0. -0.03351.04253) -0.03668. -0.0403.01.0276. -0. -0. Pentru o populaţie de 100 de cromozomi şi un număr de variabile n=20. -0.0406.

fiind surprinsă la diferite generaţii. x2 ) din reprezentarea cromozomilor. Au fost reprezentate punctele ale căror coordonate sunt date de valorile primelor două variabile ( x1. 83 .6 4 2 X2 0 -2 -4 -6 -6 -4 -2 0 X1 2 4 6 Figura 6 Distribuţia indivizilor la generaţia 100 în domeniul de căutare. Populaţie converge înspre minimul global al funcţiei Populaţia de indivizi este reprezentată în figurile alăturate.

Primele aplicaţii ale unei strategii evolutive s-au încadrat în aria problemelor de hidrodinamică. Cei doi indivizi. părintele şi descendentul acestuia sunt ulterior evaluaţi şi comparaţi. Dificultatea acestor probleme cât şi imposibilitatea aplicării unor metode de optimizare tradiţionale conduc la dezvoltarea unui algoritm prin care atât soluţia cât şi parametrii de control ai strategiei evoluează în paralel prin acţiunea operatorului de mutaţie. urmând ca cel mai performant să supravieţuiască. Ideea de bază a Strategilor Evolutive este de a evolua parametrii strategiei în paralel cu soluţia problemei. Prima variantă a unei strategii evolutive nu include principiul evoluţiei colective a unor indivizi.CAPITOL III 15 Strategii Evolutive Paradigma Strategiilor Evolutive se conturează din anii 1960 când un grup de cercetători de la Universitatea Tehnică din Berlin lansează un model de algoritm evolutiv care încorporează trăsături definitorii inspirate de principii observate în natură. Ca şi în cazul algoritmilor genetici. căutarea în spaţiul soluţiilor posibile este ghidată de funcţia de evaluare: funcţie prin care se poate ataşa 84 . Procedeul se repetă până la îndeplinirea unei condiţii de terminare a algoritmului. Strategia (1+1) presupune alterarea unui singur individ (soluţie) rezultând un unic descendent. grupaţi în aşa numita populaţie.

Operatorul de mutaţie acţionează astfel: fiecare componentă xi a vectorului soluţie va fi alterată cu o valoare aleatoare de medie 85 . Vectorul σ = (σ1 . Vectorul x = ( x1 . Un individ al strategiei evolutive este codificat prin secvenţa: c = ( x... Deficienţele strategiei (1+1) au fost depăşite ulterior prin dezvoltarea strategilor bazate pe populaţii: ( µ +1). 16 Strategia evolutivă (1+1) Notaţia prin care este identificat tipul strategiei evolutive ne indică elementele definitorii ale acesteia: numărul de indivizi ai generaţiei curente.1.. xn ) este format din componente reale şi reprezintă o soluţie posibilă a spaţiului de căutare. σ n ) de n componente reale reprezintă vectorul dispersie şi are semnificaţia perturbaţiilor produse la nivelul fiecărei componente a vectorului x. σ ) .1. σ ∈ R n . În cazul strategiei discutate.. notaţia (1+1) se traduce prin acţiunile următoare: la fiecare etapă a evoluţiei. ( µ + λ )..1 Reprezentarea indivizilor Codificarea individului este diferită de codificarea cromozomială din paradigma algoritmilor genetici. numărul de descendenţi rezultaţi în urma aplicării operatorilor de variaţie şi metoda de selecţie a noii generaţii. 16. λ ). unicului individ (1) al generaţiei curente suferă o mutaţie rezultând un singur descendent (1) şi cei doi (+) intră în competiţie pentru ca cel mai performant dintre aceştia să supravieţuiască în noua generaţie. Operatorul principal al unei strategii de acest gen este mutaţia..fiecărei soluţii o valoare de performanţă. 16.2 Mutaţia unde x ∈ R n . ( µ ...

σ ( t + 1) ) .. Cu toate acestea caracterul determinist al ajustării pasului de mutaţie şi absenţa unei populaţii veritabile constituie un dezavantaj major al i { xi ( t +1) = xi ( t ) + σ i ( t ) . o rată mare a mutaţiilor de succes indică scenariul contrar în care soluţia codificată se situează în apropierea soluţie globale. interpretată ca valoare a pasului de mutaţie. fapt pentru care mărirea pasului de mutaţie ar putea fi benefică şi ar accelera convergenţa. c( t ) = ( x( t ).0 si deviaţie standard σi . Descendentul acestuia. De asemenea. fapt pentru care micşorarea pasului de mutaţie ar accentua căutarea locală.2.. Deviaţia standard σ . respectiv: 86 .σ ( t ) ) individul strategiei c( t + 1) = ( x( t + 1).. ∀ ∈ 1. n} . Această lege de adaptare a pasului de mutaţie a fost determinată experimental. este Soluţiile x (t +1) şi x(t ) sunt comparate urmând ca soluţia mai bună conform funcţiei de performanţă să supravieţuiască. este adaptată de-a lungul evoluţiei pe baza regulii de succes 1/5. Utilizarea acestei reguli se explică prin sporirea eficienţei căutării: intuitiv. o rata mică a mutaţiilor de succes ne conduce la concluzia că soluţia codificată este depărtată de soluţia globală a problemei. Se consideră că o mutaţie este de succes dacă descendentul obţinut este mai bun decât părintele acestuia. o rata a mutaţiilor de succes mai mică decât 1/5 indică necesitatea micşorării deviaţiei standard. Rolul regulii de succes 1/5 se poate traduce prin stabilirea echilibrului între căutarea globală şi căutarea locală. Valoarea de 1/5 este sugerată pentru rata mutaţiilor de succes dintre toate mutaţiile efectuate. Dacă rata mutaţiilor de succes depăşeşte valoarea indicată. x ( t +1) = x ( t ) + σ ( t ) . deviaţia standard va fi mărită. Contrar.. notat obţinut astfel: σ este adaptată pe evolutive la baza regulii de succes 1/5 pe care o vom discuta ulterior. Deviaţia standard Notăm: generaţia t.

Dacă fitness(c’)>fitness(c) atunci 87 .3 Algoritmul strategiei evolutive (1+1) Algoritmul general al strategiei evolutive (1+1) este descris în cele ce urmează: Algoritmul ES(1+1) este: Iniţializează P(0)={c=(x. conducând în anumite convergenţei înspre un optim local.strategiei. d c p ( k ) >1 aa  ⋅ 5   σ= β⋅σ d c p ( k ) <1 ' . aa  5   σ .σ ) obţinând descendentul c’=(x’. t = 0 .1. situaţii spre eşecul datorat Regula de succes 1/5 ajustează dispersia σ la fiecare k generaţii. Aplică mutaţia asupra părintelui c=(x.σ )}. Notăm cu s(k) numărul mutaţiilor de succes din ultimele k generaţii şi p(k) frecvenţa mutaţiilor de succes este dată de formula: s( k ) p( k ) = k 16.σ ’) unde:  α σ. d c p ( k ) =1 aa  5  şi parametri α > 1 . unde n este dimensiunea spaţiului de căutare. Evaluează individul c prin funcţia de fitness Câttimp (NOT condiţie de terminare) Calculează frecvenţa mutaţiilor de succes p(k) . Parametrul k se consideră de obicei k=10*n. β <1 .

aceştia sunt aleşi în general invers proporţional: α ⋅ β = 1 . la stabilirea parametrului λ se ţine cont de sugestia 17 Strategia evolutivă ( µ +1) Unul dintre dezavantajele majore ale strategiei (1+1) decurge din absenţa unei populaţii care ar permite o mai bună explorare a spaţiului de căutare. Ulterior.σ )} SfDacă t:=t+1 SfCâttimp SfAlgoritm Referitor la parametri α şi β utilizaţi în procedura de adaptare a dispersiei. şi λ = 0. β = n λ . Avantajul imediat al strategiei descrise decurge din prezenţa unei populaţii de indivizi care permite căutarea globală şi indirect o mai mică probabilitate de eşec dată de convergenţa prematură înspre soluţiile optime locale.0.P(t+1):={c’=(x’. O altă noutate pe care o aduce strategia ( µ +1) este posibilitatea exploatării operatorului de recombinare.2] propune o regulă mai precisă pentru determinarea acestora: α= 1 n λ . părinţii şi descendentul vor concura pentru a forma noua generaţie. Practic. În general.85 ] . Principiul strategiei ( µ +1) este acela al utilizării unei populaţii de µ părinţi cu aceiaşi rată de împerechere care vor participa la obţinerea unui unic descendent.1.σ ’)} Altfel P(t+1):={c=(x.817 ca acesta să fie încadrat în intervalul: λ∈[0.1. Dacă în strategia iniţială (1+1) folosirea operatorului de recombinare nu era 88 . Schwefel [1.82 . cel mai slab individ dintre cei ( µ +1) ai populaţiei intermediare va fi eliminat. Propunerea strategiei multimembru ( µ +1) este un răspuns pozitiv la acuzele aduse strategiei individuale (1+1) şi un pas semnificativ în dezvoltarea strategiilor evolutive moderne.

În general. O primă diferenţă este dată de paritatea acestuia: dacă în cazul algoritmilor genetici numărul de descendenţi ai încrucişării este în general 2 şi doar în câteva cazuri particulare 1. De asemenea. Spre exemplu. datorită restricţionării numărului de descendenţi la 1. alegerea numărului de părinţi ce contribuie la procedura de recombinare este ales np=2 sau np = µ .recombinarea panmictică discretă - recombinarea continuă recombinarea panmictică continuă recombinarea convexă recombinarea panmictică convexă Operatorii de recombinare discretă.posibilă. prin creşterea numărului de părinţi la µ >1 recombinarea devine viabilă. de cele mai multe ori se aplică un operator de recombinare de tip panmictic. Operatorii panmictici corespunzători se diferenţiază doar prin implicarea unui număr mai mare de părinţi la transmiterea trăsăturilor către descendentul produs. Principalele proceduri de recombinare utilizate în strategiile evolutive sunt: . recombinarea va genera doar un singur individ. în cazul strategiilor bazate pe populaţii.1. la strategia ( µ +1). 1 <np ≤ µ . În situaţia folosirii unui număr de np = µ părinţi ce contribuie la formarea descendentului vorbim de o recombinare globală.recombinarea discretă . operatorul de recombinare discretă panmictică se poate descrie prin algoritmul: Algoritmul Încrucişare_Discretă_Panmictică este 89 . respectiv numărul de părinţi ce transmit caracteristici unicului fiu este np.1 Recombinarea Operatorul de încrucişare folosit în strategia ( µ +1) este uşor diferit de operatorul descris în capitolul dedicat Algoritmilor genetici. 17. continuă şi convexă sunt cei descrişi în capitolul dedicat Algoritmilor Genetici.

Structura duală a unui individ c = ( x.. c np părinţii selectaţi. fiind prima strategie evolutivă bazată pe conceptul de 90 . Acest inconvenient major al strategiei induce o rezervă în ceea ce priveşte aplicarea acesteia în rezolvarea problemelor. np } ∀ ∈ 1. np } ..σ k .1. atât asupra vectorului x.. z n .. respectiv.. Procedura de mutaţie este similară celei descrise la strategia (1+1) cu menţiunea că folosirea unei populaţii de părinţi face imposibilă exploatarea regulii de succes 1/5 enunţată la strategia individuală.. ck = x k . σ ) descendentul produs Pentru i de la 1 la n Generează aleator k ∈{1..Fie c1 .2.. stabilirea unei alte reguli similare de control al parametrilor este dificilă... Importanţa strategiei evolutive ( µ +1) este mai degrabă una istorică. doar asupra vectorului x 2. k { ( ) zi = xik SfPentru SfAlgoritm Algoritmul descris mai sus ne înfăţişează cazul în care fiecare genă a descendentului este copie a genei corespondente (de pe aceiaşi poziţie) a unui individ extras aleator din mulţimea părinţilor selectaţi...2. c2 . cât şi parametrii de control σ . face ca operatorul de recombinare să poată fi aplicat în două maniere: 1.. cât şi asupra vectorului σ Se constată o mai bună convergenţă a strategiei în situaţia descrisă la punctul 2.σ ) . corespunzătoare extinderii încrucişării şi asupra parametrilor de control.2 Mutaţia Descendentul obţinut prin aplicarea uneia dintre procedurile de recombinare enumerate anterior va fi ulterior supus acţiunii operatorului de mutaţie. unde: Fie d = ( z1 . prin care se codifică atât soluţia posibilă din spaţiul de căutare x. 17...

în timp ce numărul 91 . Selectează primii µ indivizi din P ( t ) ∪{d '} pentru a constitui noua generaţie P (t +1) e. Obţinerea unui singur descendent la fiecare iteraţie a algoritmului strategiei ( µ +1) nu depăşeşte cu totul deficienţele strategiei individuale (1+1). însă o posibilitate de îmbogăţire semnificativă a strategiilor este sugerată de strategia ( µ +1) prin utilizarea conceptului de populaţiei şi evoluţia colectivă a indivizilor. Aplică operatorul de recombinare descendentul d obţinând c. 18 Strategiile (1.. Câttimp (NOT condiţie de terminare) a. (1+ λ ) Alte variante de strategii evolutive care exploatează conceptul de populaţie sunt strategiile (1. λ ). 17. λ ) sunt cert superioare strategiilor (1+1) şi ( µ +1).populaţie şi constituind o reală deschidere înspre dezvoltarea ulterioară a strategiilor moderne. (1+ λ ). atât părinţii cât şi urmaşul acestora concurează pentru a supravieţui... c2 .. fiind evidenţiate etapele importante în evoluţia populaţiei şi maniera de construire a noii generaţii: Algoritmul ES ( µ +1) este: 1. Evaluează populaţia P (t ) b. Regula aplicată este un elitistă: cel mai slab părinte sau urmaş este eliminat pentru a păstra dimensiunea constantă a populaţiei. Aplică operatorul de mutaţie asupra d obţinând d’ d. λ ). Din acest punct de vedere.3 Algoritmul strategiei evolutive ( µ +1) Algoritmul Strategiei evolutive ( µ +1) este descris în continuare. strategiile moderne ( µ + λ ) şi ( µ . Iniţializează P (0) = {c1 . cµ} . t :=t +1 În etapa de formare a noii generaţii. Ambele variante au în comun utilizarea unei populaţii de λ urmaşi. t := 0 2.1.

1. Studii aprofundate (vezi de ex. spre deosebire de strategiile descrise anterior. respectiv 6 descendenţi per generaţie [1. Operatorul specific al strategiilor discutate este cel al mutaţiei.2]) asupra convergenţei strategiilor (1. λ ). Astfel. λ ) constă în maniera de constituire a noii generaţii: în strategia ( µ + λ ) părinţii şi descendenţii intră în competiţie pentru supravieţuire. Diferenţa celor două strategii constă în maniera de elitistă sau ne-elitistă de supravieţuire. λ ) implică înlocuirea părintelui cu cel mai performant descendent produs. În ceea ce priveşte valoarea parametrului λ . Astfel. Aceste valori conduc la o probabilitate de apariţie a urmaşilor de succes de: 1 ∈ 1 .părinţilor este de data aceasta limitat la 1. 19 Strategiile evolutive ( µ + λ ) şi ( µ .1. Prin mărirea atât a numărului de părinţi cât şi a numărului de urmaşi produşi la fiecare generaţie.1. în timp ce strategia elitistă (1+ λ ) permite ca un părinte mai performant decât descendenţii săi să supravieţuiască în noua populaţie.1. aceste strategii reprezintă modele generalizate bazate pe conceptul de populaţie. s-au stabilit valorile optime de 5. λ ) implică înlocuirea părinţilor cu cei mai 92 . strategiile moderne sunt în progres faţă de modelele iniţiale îmbinând avantaje multiple ce ne conduc la viteze de convergenţă net superioare.2]. strategia ne-elitistă (1. în timp ce strategia ( µ . (1+ λ ) relevă faptul că numărul mai mare de urmaşi per generaţie aduce o îmbunătăţire semnificativă a vitezei de convergenţă comparativ cu modelul strategiei (1+1). Operatorul de recombinare nu se poate aplica datorită lipsei unei populaţii de părinţi. Diferenţa conceptuală între strategiile ( µ + λ ) şi ( µ . valoare care este apropiată de cea postulată în Regula de succes 1/5. λ ) Cunoscute sub denumirea de strategii evolutive moderne. fapt pentru care durata de viaţă a soluţiei este limitată la o singură generaţie. [1. atât cei µ părinţi cât şi cei λ descendenţi formează populaţii de indivizi care concurează sau nu la constituirea noii generaţii.1 λ 5 6 { } .

2]. Reprezentarea extinsă a unui individ implică o structură formată din 3 componente vectoriale: c = ( x. Structura individului este alcătuită din două elemente: vectorul x = ( x1 .1.1. Diferenţele care pot apărea sunt produse de generalizarea operatorilor pentru a permite implicarea mai multor părinţi în transmiterea informaţiei către descendent. σ n ) de n componente reale. Principiul recombinării este următorul: în prima etapă sunt selectaţi un număr de np părinţi. Acest tip de recombinare este cunoscut sub denumirea de recombinare panmictică. În general.. 93 .. observându-se o remarcabilă accelerare a procesului de căutare în cazul utilizării recombinării [1. o mare varietate de proceduri de recombinare sunt aplicate şi rolul acestora este subliniat de cercetători. Cu toate acestea. 19.performanţi µ descendenţi din cei λ produşi ( 1 < µ < λ ).. fiecare individ al populaţiei este reprezentat printr-un ansamblu de doi vectori: vectorul soluţie şi vectorul perturbaţiilor. mutaţia fiind operatorul principal.2 Recombinarea Spre deosebire de Algoritmii genetici. σ. operatorii de recombinare descrişi în capitolul dedicat Algoritmilor Genetici se aplică şi în cazul Strategiilor evolutive.format din componente reale reprezintă o soluţie spaţiului de căutare şi vectorul posibilă din σ = (σ1 . Efectele folosirii uneia dintre procedurile supravieţuire sunt diferite... xn ) . O listă a operatorilor preferaţi în dezvoltarea Strategiilor evolutive a fost prezentată în paragraful ... caracteristicile părinţilor selectaţi sunt ulterior combinate pentru a crea un singur descendent. α) .1 Reprezentarea individului În cazul strategiilor evolutive moderne.1. reprezentând vectorul dispersie cu semnificaţia perturbaţiilor produse la nivelul fiecărei componente a vectorului x. 19.. operatorul de recombinare este unul secundar în paradigma strategiilor evolutive. Vom reveni asupra acestui subiect în paragraful dedicat mutaţiilor corelate.1.

....1] c2 ( = ( y .. se permite aplicarea procedurilor diferite de recombinare asupra celor două componente ale unui individ.. σ1 şi n Generează aleator αi ∈ [ 0.Datorită acestui aspect. σ 1 n 2 1 ) .. Această procedură este denumită recombinare convexă globală(panmictică) şi este descrisă în continuare: Algoritmul Recombinare_Convexă_Panmictică este Fie d = ( z1 .. Literatura de specialitatea sugerează un comportament bun al strategiilor evolutive care aplică recombinarea discretă pentru vectorii x şi recombinarea convexă pentru vectorii parametrilor de control σ . σ1 . Programatorul are libertatea de a concepe algoritmi de recombinare care implică tratamentul diferenţiat al celor două componente.... σ ) 2 n zi =α i⋅xi + (1 −α i ) ⋅ yi şi σ i =β i⋅σ i1 + (1 −β i ) ⋅ σ i2 SfPentru SfAlgoritm Algoritmul descris mai sus este o variantă a încrucişării convexe panmictice care implică alterarea vectorilor variabilelor obiect şi a vectorilor dispersie σ în aceiaşi manieră. z n .. y ... σn ) descendentul produs Pentru i de la 1 la n Selectează aleator 2 părinţi: 1 c1 = x1 . xn .1... Mai mult... prezentăm algoritmul operatorului de recombinare convexă în varianta generalizată care permite exploatarea trăsăturilor provenite din mai mult de 2 părinţi... Varianta ultimă este cea mai utilizată.3 Mutaţia 94 ..1] şi βi ∈[ 0. Datorită importanţei acordate acestui tip de recombinare.. operatorul de recombinare poate acţiona în două moduri: doar asupra vectorului x sau asupra ambilor vectori din structura individului. 19.. σ1 ..

σ ) . Ideea acestei scheme de mutaţie este aceea de a adapta paşii mutaţiei în scopul creşterii probabilităţii de a înregistra mutaţii de succes. Ambele componente vectoriale: vectorul x = ( x1 . σ n ) sunt supuse acţiunii acestui operator.1) se calculează pentru fiecare componentã σi a τ σ ... Fie c un individ în reprezentarea extinsă: c = ( x. 95 ..1) + τ ⋅ N i ( 0... σ n ) şi ulterior... αk ) .Operatorul de căutare principal.. vectorul poziţiilor mutaţiei standard ( x1 . xn ) .1.. Mutaţia standard este aplicabilă în cazul reprezentării de bază a indivizilor: c = ( x.. n} . σ n . σ 2 .2.2] este propusă o altă schemă de mutaţie – mutaţia corelată. finalizată cu obţinerea mutantului c ' =( x ' . xi ' = xi + σi '⋅N i ( 0.1. σ ) . x2 ... σ .. Cea de-a treia componentă este alcătuită dintr-un număr de n ⋅ ( n −1) 2 unghiuri de rotaţie αi . Parametrii τ0 şi τ sunt constante de control: - τ0 controlează în mod global mărimea pasului de mutaţie şi τ 0 ⋅ N ( 0. i { ∀ ∈ 1.. α ) = ( x1 ... n} . σ1 ... valabilă pentru reprezentarea extinsă a individului...2... prin N i ( 0...1) i { σ i ' = σ i ⋅ exp(τ 0 ⋅ N ( 0.. n ⋅ ( n − 1) .. În prima etapă sunt alterate perturbaţiile (σ1 .. σ') este următoarea: ∀ ∈ 1. xn ... Regula aplicată individului c = ( x.. individuale şi cantitatea controleazã schimbările vectorului dispersie În [1.. α2 .. mutaţia..1) ) unde. este studiat în două variante: mutaţia standard şi mutaţia corelată valabilă pentru reprezentarea extinsă a indivizilor populaţiei. 2 unde: k = Primele două componente sunt cele pe care le regăsim şi în reprezentarea standard a individului.1) cantitatea este aceeaşi pentru toate componentele vectorului - τ ⋅ N i ( 0.1) s-a notat o realizare a unei variabile aleatoare de lege normală cu medie 0 şi dispersia 1.. α1 . xn ) şi vectorul dispersie σ = (σ1 .

de medie 0. σ ' . Mecanismul mutaţiilor corelate constă în parcurgerea a 3 etape: 1.1. cei mai performanţi indivizi din populaţia intermediară de urmaşi (sau urmaşi şi părinţi) se transferă necondiţionat în noua generaţie. Cu toate că selecţia ( µ + λ ) garantează supravieţuirea celor mai performanţi indivizi şi pare a fi mai eficientă decât selecţia ( µ . în cazul optimizării în mediu dinamic. efectul selecţiei ( µ + λ ) este de a reţine soluţia/soluţiile curente. ca indivizi mai slabi să fie selectaţi pentru a forma noua populaţie. dispersie σ ’ şi unghiuri de rotaţie α ’. Indiferent de natura strategiei ( µ + λ ) sau ( µ . τ 0 ≈ τ . 96 .1)+ ⋅ N i (0. fapt pentru care urmărirea optimului dinamic este îngreunată. Spre deosebire. Modificarea valorilor vectorului soluţie x: α : xi ' = xi + N i (0. alte mecanisme de selecţie folosite de Algoritmii genetici permit. i i 2n τ≈ 1 2 n 2. unde prin N(0. 19. selecţia ( µ . cu o anumită probabilitate.1) . convergenţa înspre optimul nestaţionar. λ ) permite abandonarea soluţiilor performante a populaţiei curente.1)) . α βN j 3. β ≈ 5o .α ’) am notat realizarea unui vector aleator cu o distribuţie normală n-dimensională. Modificarea valorilor σ : 1 σ ' =σ ⋅ exp( τ0 ⋅ N (0.α' ) .4 Selecţia Procedura de selecţie este una complet deterministă. există situaţii în care acest lucru nu mai este valabil: 1. Spre deosebire.σ ’. Modificarea unghiurilor de rotaţie α ' = j + ⋅ j (0. λ ). o mai bună explorare a spaţiului de căutare şi astfel. λ ).Aceste unghiuri de rotaţie au rolul de a stabili direcţia căutării în scopul obţinerii unei convergenţe mai bune.

19.1. λ ). pentru k stabilit la 97 . strategia ( µ . λ ) Algoritmul strategiilor evolutive ( µ + λ ) şi ( µ .1. ( µ + λ ) notate prin ( µ . λ .2. t = 0 .k. fapt pentru care stagnarea căutării într-o zonă de optim local este puţin probabilă. prin caracterul săi elitist. λ ) permite uitarea soluţiilor performante corespunzătoare optimelor locale produse în generaţia curentă.p).5 Algoritmul strategiilor evolutive ( µ + λ ) şi ( µ . ( µ + λ ) devin cazuri particulare ale strategiei generale ( µ . strategia ( µ + λ ). poate produce efectul nedorit al convergenţei premature înspre soluţii optime locale.1.k. în cazul optimizării globale a unei funcţii multimodale. k ≥1 . λ . λ ) este: Fie P ( 0 ) . Câttimp (NOT condiţie de terminare) Evaluare( P (t ) ) Pλ ( t ) =Recombinare ( P (t ) ) Selecţie( P ' ( t ) ) λ t:=t+1 SfCâttimp SfAlgoritm P ' ( t ) = Mutaţie ( Pλ ( t ) ) λ Evaluare( P ' ( t ) ) λ P (t +1) =Selecţie( P ( t ) ∪ P ' ( t ) ) λ sau Sub denumirea de strategii contemporane [1. În comparaţie.1.p).2] se introduc extinderi ale strategiilor evolutive ( µ .2]. Astfel. λ ). în procesul de recombinare se implică un număr de p părinţi Strategiile moderne ( µ . [1. Această formulare sugerează două aspecte prin care strategiile contemporane de diferenţiază de strategiile multipopulaţie discutate: - durată de viaţă a indivizilor este limitată la un număr de k iteraţii.populaţia iniţială.1. Algoritmul standard al strategiilor evolutive este descris în continuare: Algoritmul Strategiilor evolutive ( µ + λ )/( µ . λ ) are o structură asemănătoare algoritmului genetic.

λ ) reprezintă de asemenea o particularitate a strategiei generale.valoarea 1. iar pentru k = ∞ . Folosirea unei selecţii de tip concurs în locul selecţiei ( µ . recunoaştem strategia ( µ + λ ). λ ). 98 . strategia contemporană se transformă într-o strategie de tipul ( µ .

În plus. valorile returnate de senzori. sau generic. O abordare prin care se urmăreşte obţinerea programelor care rezolvă cu succes o clasă de probleme devine plauzibilă în măsura în care programele pot fi de dimensiuni. mulţime de reguli de producţie. forme şi complexităţi diferite. prin argumentele funcţiilor.1. compunerea unor funcţii.1. procesarea simbolică sau maşini instruibile. John Koza [1. pornind de la anumite date de intrare să furnizeze soluţiile corecte ale problemei. Datele de intrare asupra cărora va opera un astfel de program sunt reprezentate de variabile independente. De asemenea. atribute. arbore de decizie. apelul subprogramelor şi utilizarea valorilor precalculate. 99 . calculele cu variabile de tipuri diferite. scopul este acela de a determina un program care.2] dezvoltă o paradigma importantă a Calculului Evolutiv: Programarea Genetică. strategii de control optimal. etc. În cele din urmă. .CAPITOL IV 20 Programarea Genetică Pornind de la observaţia că probleme aparent diferite. acţiunile efectuate de către programe să fie ierarhizate. pot fi interpretate prin prisma cerinţei de determinare a programului care le rezolvă cu succes. aceste programe trebuie să fie capabile să manipuleze structurile decizionale şi repetitive. provenind din domenii ca inteligenţa artificială. sau general. indiferent de tipul problemei abordate. Prin termenul de program ne putem referi la: plan de acţiune. recursivitatea.

parametrii specifici algoritmului 21. populaţia va conţine o instanţă a soluţiei dorite sau cel puţin o aproximare a acesteia. Aplicând proceduri inspirate din evoluţia naturală.1 Natura indivizilor supuşi evoluţiei Prin individ înţelegem în mod curent un element al populaţiei care evoluează.criteriul de terminare a algoritmului GP . scopul unui algoritm de programare genetică este de a obţine cel mai bun program care rezolvă problema dată.identificarea soluţiei finale . astfel încât.Esenţa Programării Genetice constă în ideea de a evolua programe şi nu soluţii posibile (ca în cazul Algoritmilor Genetici). Dacă în cazul AG un individ este reprezentat de o secvenţă liniară de valori binare sau reale. în cazul PG această formă de codificare devine insuficientă pentru a surprinde dinamica şi complexitatea unui program. O populaţie de indivizi iniţial generată aleator va fi ghidată de o funcţie fitness şi va evolua prin aplicarea operatori de variaţie. Structurile care evoluează în contextul programării genetice sunt programe structurate ierarhic. Această nouă perspectivă de abordare a problemelor necesită evidenţierea următoarelor elemente definitorii: - natura indivizilor care evoluează spaţiul de căutare funcţia de evaluare a indivizilor operatorii de variaţie a structurii indivizilor . 21 Descrierea paradigmei GP Algoritmul programării genetice are o structură asemănătoarea algoritmilor genetici pe care i-am pomenit într-un capitol precedent. Diferenţa majoră faţă de AG constă în evoluţia programelor posibile ce pot rezolva problema şi nu a soluţiilor posibile ale problemei respective. Rezolvarea unei proleme oarecare se poate reformula ca fiind procesul de căutare a celui mai potrivit program din spaţiul programelor posibile. care o rezolvă corect.1. spre finalul evoluţiei. ale căror 100 .

* . NOT).UNTIL).. f n } şi Fiecare funcţie f i ∈ F are un număr exact de argumente.. şi în fi ∈ F pot fi: operatorii aritmetici (+ . t m } . funcţii standard matematice (sin. acest arbore de derivare este generat. exp.. Toate aceste limbaje oferă facilitatea de a manipula compunerea funcţiilor.THEN. Ne punem întrebarea care ar fi cea mai potrivită manieră de codificare a unui program. ceea ce conduce la facilitatea de a modifica un program şi de a-l executa imediat. Terminalii ti ∈T pot fi variabile. funcţie de specificul problemei. / ). În faza de compilare a programelor descrise în orice limbaj de programare. 101 . Răspunsul la această întrebare îl furnizează Koza [1. respectiv. Programele sunt descrise complet în limbaje de programare precum: Pascal..dimensiune. . cos.. operatorii logici (AND... în paradigma GP. cu excepţia limbajului LISP. un individ.. O structură prin care se reprezintă un program poate fi o funcţie mulţimea de m simboluri terminale T = {t1 . LISP.. OR...1. etc. funcţiile compusă recursiv din mulţimea de n funcţii date F = { f1 . Koza identifică limbajul LISP ca fiind cel mai potrivit scopului programării genetice.2] argumentându-şi afirmaţiile pe baza unor avantaje imediate oferite de limbajul LISP1. C. operatorul decizional (IF. .1.. Dintre toate limbajele de descriere a programelor.ELSE) sau cel iterativ (DO. în celelalte - 1 2 LIPS limbaj de programare conceput de John McCarthy în 1958 Arbore de derivare – arbore de reprezentare a structurilor sintactice în concordanţă cu regulile unei gramatici formale.. formă şi complexitate se poate modifica dinamic de-a lungul procesului evoluţiei... ce reprezintă de fapt. însă. Forma comună de reprezentare a datelor şi programelor LISP este echivalentă arborelui de derivare2 corespunzător unui program. etc. constante valorice sau logice sau alte entităţi atomice precum funcţiile fără argumente în cazul în care rezultatul funcţiei respective nu este evaluabil ci constă în efecte produse în starea sistemului.).. Justificarea acestei alegeri se bazează pe câteva motive subliniate de autor: - În limbajul LISP programele şi datele au aceiaşi formă..

NOT } şi mulţimea de terminali T = {t1 . Dacă considerăm următoarea mulţime de funcţii primitive F = { AND .limbaje arborele de derivare nu este accesibil. t1 . LISP facilitează manipularea structurilor ierarhice. OR . fapt pentru care. Orice expresie simbolică (S expresie) corectă formată cu elementele mulţimii C este reprezentată grafic printr-un arbore în care nodurile sunt etichetate cu elementele mulţimii C. Spre exemplu: (* 2(+ 1 3) este evaluată la valoarea 8 şi este o expresie obţinută prin compunerea a două funcţii corespunzătoare operatorilor aritmetici + şi *. 1 Arborele corespunzător este reprezentat în figura următoare: 102 . Mulţimea reunită de funcţii şi terminali este formată din elementele: C = F ∪ T = { AND . t2 } . simbolurile terminale pot fi reformulate ca funcţii fără argumente. reformulată ca S expresie devine: ( AND( AND( ORt0t1 )( NOTt0 ) )( NOTt ) ) . NOT . OR . Spre exemplu: expresia logică ( ( t0 ∨ t1 ) ∧ ( ¬ t0 ) ) ∧ ( ¬ t1 ) . neprecizate în avans.t2 } . - LISP permite manipularea structurilor (programelor) de dimensiuni variabile. Rădăcina şi nodurile interne ale unui astfel de arbore conţin întotdeauna funcţii f ∈F şi nodurile frunze ale arborelui conţin elemente ale mulţimii T. Un program LISP este reprezentat de o expresie simbolică (S expresie) în formă poloneză prefixată. modificarea sa prin aplicarea operatorilor de variaţie genetici este îngreunată.

Aceşti arbori au nodurile rădăcină şi intermediare etichetate cu funcţiile disponibile din F şi nodurile terminale sunt etichetate cu terminalii T.1.2 Spaţiul de căutare Se poate observa că arborele din Figura 3 este echivalent arborelui de derivare pe care compilatorul îl generează pentru reprezentarea programelor. Din observaţia precedentă se poate deduce că spaţiul de căutare este dat de mulţimea tuturor S expresiilor care pot fi formate cu funcţiile şi terminalii precizaţi prin mulţimile F şi T. Fiecare individ generat în faza de iniţializare reprezintă un arbore de tipul menţionat anterior. Pentru a realiza practic acest lucru se urmăresc următorii paşi: 103 . Populaţia iniţială este generată aleator. spaţiul de căutare este reprezentat de mulţimea arborilor posibili corespunzători expresiilor simbolice.AND AND NOT OR NOT t1 t0 t1 t0 Figura 7 Arborele etichetat corespunzător unei S-expresii 21. respectiv.

Performanţa unei S-expresii logice este dată de numărul rezultatele evaluării şi rezultatul dorit. se va restrânge numărul acestora în vederea calculării valorii de performanţă. În majoritatea cazurilor este dificil să furnizăm o funcţie de evaluare pentru structurile arborescente prin care se reprezintă programele.1. Selectarea aleatoare a unei funcţii f din F ca rădăcină a arborelui. funcţia de evaluare se poate defini ca suma distanţelor dintre rezultatul evaluării S-expresiei şi rezultatul corect dorit. În general. Această funcţie trebuie să califice fiecare structură arborescentă de tipul descris anterior printr-o valoare numerică prin care se poate estima performanţa programului corespunzător. Pentru S-expresia descrisă prin arborele din Figura 3. numărul de cazuri posibile este de patru.1. respectiv combinaţiile posibile ale valorilor variabilelor t1 . 2. Identificarea numărului de argumente a funcţiei f . na f 3. Pentru fiecare nod al nivelului curent   Selectează aleator eticheta c a nodului din mulţimea C = F ∪ T Dacă c ∈ F atunci Salt la pasul 2 Altfel Stop. Dacă numărul de cazuri este foarte mare. 21. 4. Nivel:=Nivel+1. 5. de nepotriviri dintre În situaţia în care S-expresiile au valori numerice. t 2 . Numărul de argumente va stabili numărul de noduri de pe nivelul imediat următor.3 Funcţia de performanţă Evoluţia indivizilor populaţiei este ghidată de funcţia de performanţă (fitness). pentru toate cazurile posibile. Valorile de performanţă stau la baza procesului de selecţie. Nivel:=0. performanţa individului corespunzător este dată de suma diferenţelor dintre 104 .

respectiv.valorile obţinute în urma evaluării expresiei şi rezultatul aşteptat.4 Operatori specifici programării genetice Pentru a fi realizabilă evoluţia unei populaţii de indivizi. Operatorii descrişi în capitolul dedicat algoritmilor genetici nu sunt aplicabili în programarea genetică. a indivizilor populaţiei curente. Încrucişarea folosită în paradigma programării genetice este un operator binar. În alte cazuri. 105 . mutaţie. rezultatul evaluării unei S-expresii nu este luat în considerare în vederea calculării performanţei. Efectul acestuia este de a stimula structurile calificate să se reproducă şi să supravieţuiască. Astfel. din cauza diferenţelor structurale majore în ceea ce priveşte reprezentarea indivizilor supuşi evoluţiei. 21. care au efect similar operatorilor genetici din paradigma algoritmilor genetici. Operatorul de selecţie . Structura specifică individului în paradigma programării genetice induce necesitatea dezvoltării unor proceduri noi care simulează procesele naturale de selecţie. alături de funcţia de performanţă se impune descrierea manierei în care indivizii se modifică. operator similar selecţiei proporţionale despre care am discutat într-un capitol precedent. Paragraful curent este dedicat operatorilor specifici. Acest lucru se întrevede când calitatea unui program exprimat prin S-expresia respectivă este legată direct de alte valori produse indirect de program. Operatorul de recombinare – încrucişare Rolul operatorului de încrucişare este acela de a încuraja diversitatea populaţiei prin crearea descendenţilor care moştenesc trăsături provenite din părinţi diferiţi.1. Practic acest lucru este realizat prin selecţia. indivizii cu performanţe ridicate vor avea o mai mare şansă de a se reproduce şi supravieţui decât cei ale căror performanţe sunt inferioare. cu o probabilitate proporţională cu performanţa. încrucişare.reproducere Principiul selecţiei este modelat prin intermediul operatorului de reproducere proporţională cu performanţa.

continuu. Descendentul se va obţine prin concatenarea a două S-expresii provenite din părinţi diferiţi.doi părinţi selectaţi vor transmite informaţii cel puţin unui descendent. am optat pentru reprezentarea arborescentă a programelor. cei doi indivizi obţinuţi moştenesc din fiecare părinte câte o parte. Punctele de tăietură sunt sugerate prin segmente ce intersectează muchiile arborilor. respectiv. Această manieră de încrucişare asigura cerinţa ca ambii descendenţi să corespundă unor S-expresii valide. AND NO Figurile 8 şi 9 prezintă maniera de producere a unui descendent utilizând o procedură validă de încrucişare. OR NOT AND t0 t1 t0 Figura 9 După încrucişare. Pentru buna vizualizare a exemplului prezentat. Procedeul constă în alegerea unui punct de tăietură pentru fiecare părinte. astfel încât segmentele obţinute în urma împărţirii celor 2 părinţi să fie de asemenea S-expresii valide. AND Figura 8 Structurile arborescente înaintea încrucişării: Părţile obţinute în urma aplicării tăieturii sunt marcate punctat. Acestea vor participa obţinerea descendenţilor din figura următoare. OR NO t0 t1 106 .

Dacă în primul părinte se generează punct de tăietură corespunzător unui terminal. al doilea descendent este format dintr-un segment al părintelui secund. iv. operatorul se reduce la o formă particulară a operatorului de reproducere ii.În funcţie de poziţia punctului de tăietură. 2. se disting următoarele cazuri particulare ale operatorului de încrucişare: 1. un descendent se obţine prin înlocuirea unei părţi a părintelui secund cu întreg arborele corespunzător primului părinte. Exemplul descris în figurile anterioare prin arbori reprezentaţi grafic se poate rescrie prin S-expresiile corespunzătoare: Părinţii: AND (AND (OR(t0 t1) NOT (t0)) NOT (t1)) OR (NOT (t1) OR (t0 t1)) Descendenţii: AND (OR (t0 t1) NOT(t1)) OR (NOT(t1) AND(OR (t0 t1) NOT(t0))) Operatorul de mutaţie 107 . punctul de tăietură este un nod terminal: iii. daca punctul de tăietură este rădăcina în ambii părinţi. dacă punctul de tăietură este rădăcina unui singur părinte dintre cei doi implicaţi. unui dintre descendenţi va conţine arborele părintelui prim cu expandarea nodului terminal selectat printr-un subarbore al părintelui secund. punctul de tăietură este rădăcina arborelui i. respectiv. dacă în ambii părinţi punctele de tăietură indică noduri terminale. Al doilea descendent este format prin suprimarea unui subarbore al părintelui secund şi înlocuirea sa cu un terminalul indicat din părintele prim. descendenţii se obţin prin interschimbarea frunzelor terminale respective ale arborilor părinţi.

Considerăm ca punct de trunchiere nodul marcat. precum în paradigma Algoritmilor Genetici.expresia LISP: punctul de tăietură este un nod terminal sau intermediar al arborelui de reprezentare ştergerea subarborelui ce are ca rădăcină nodul selectat generarea aleatoare a unui subarbore inserarea subarborelui generat în punctul de tăietură Parametrul principal de control al procedurii este reprezentat de adâncimea maximă a subarborelui nou prin care se expandează arborele trunchiat în punctul de tăietură. Cu toate acestea.a). Subarborele nou se generează de adâncime maximă 3 (Figura 10.Operatorul de mutaţie este un operator secundar în Programarea Genetică. b)): AND OR AND NOT t0 t1 OR NOT t1 Subarborele de expandare t0 t1 t0 a) b) 108 . Mutaţia operează asupra unui singur părinte selectat în prealabil. Exemplu: Fie individul reprezentat în figura 10. Procedeul constă în parcurgerea următoarelor etape: - - selectarea aleatoare a unui punct de tăietură în S. rezultând un unic descendent S-expresie. mutaţia este capabilă să dezvolte structuri noi pe care operatorul de încrucişare nu le poate produce. Avantajul utilizării acestui operator este evident: menţinerea diversităţii populaţiei şi obţinerea de noi structuri imposibil de generat prin alte procedee de încrucişare.

a) şi subarborele nou generat . Operatorul de editare Rolul operatorului de editare este acela de a modifica şi simplifica S-expresiile conţinute în populaţia curentă. De observat că în cazul unei funcţii comutative. Practic. efectul imediat al operatorului este nul.Figura 10 Arborele de reprezentare a individului părinte . fiecare dintre noii 109 .b). mutaţie. generarea aleatoare unei permutări de k dintre cele k! permutări posibile şi reordonarea argumentelor funcţiei selectate conform permutării generate. Punctul de tăietură este marcat nodul marcat. Acţiunea operatorului de permutare standard sa constă în selecţia aleatoare a unui noi terminat – corespunzător unei funcţii de k argumente. procedeul reordonează argumentele unei funcţii din cadrul S-expresiei considerate. Consecinţa operaţiei descrise se constată doar în urma unei aplicări ulterioare a altor operatori de variaţie: încrucişare. În urma aplicării operatorului de mutaţie se poate obţine descendentul reprezentat în Figura 11: AND OR NOT t0 t1 t1 Figura 11 Arborele de reprezentare a individului obţinut prin mutaţie Un caz particular al mutaţiei descrise mai sus este cel în care subarborele de expandare este de fapt un terminal solitar. Aplicarea operatorului nu ţine cont de calitatea indivizilor. Operatorul de permutare Operatorul de permutare este un operator unar şi are efect similar operatorului de inversiune prezentat la capitolul dedicat Algoritmilor genetici. practic un subarbore de adâncime maximă 0.

expresii de forma: ( AND X X ). etc. Subarborii sunt substituiţi de către funcţii indivizibile. blocurile constructive identificate prin funcţiile corespunzătoare vor avea şansa de a se propaga în generaţiile următoare. acţiunea operatorului poate consta în: - Înlocuirea subexpresiilor calculabile imediat cu valoare la care sunt fost evaluate.5 Algoritmul programării genetice Algoritmul general al programării genetice este constituit din următorii paşi: 110 . ( OR X X ). Funcţiile ale căror argumente sunt doar constante atomice. înlocuirea cu constanta 0 a expresiilor de scădere a două subexpresii identice. Motivul introducerii acestei proceduri este clar: operatorul de editare simplifică S-expresiile. sau. Funcţia creată este o funcţie fără parametrii şi corpul acesteia este reprezentat de subarborele înlocuit. Operatorul de definire a blocurilor constructive Acest operator este introdus în scopul descoperirii automate a blocurilor constructive utile şi constă în aplicarea procedurii de înlocuire a unui subarbore din individul selectat cu o funcţie nouă. (NOT (NOT ( X))). Mai mult. Pentru probleme cu domeniu boolean (1 şi 0). definită în acest scop.indivizi obţinuţi într-o etapă a evoluţiei vor fi supuşi procedurii de editare. Corespunzător domeniului problemei. Efectul pozitiv al acestor înlocuiri constă în evitarea cazurilor în care blocuri potenţial utile sunt distruse prin aplicarea operatorului de încrucişare. - 21. realizând prin aceasta o gestionare economică a resurselor calculatorului. - Pentru probleme cu domeniu numeric. sunt înlocuite cu X. înlocuirea cu 0 a expresiilor de multiplicare cu 0. pot fi lesne înlocuite cu valoare calculată.1. fapt pentru care aceştia vor fi trataţi în continuare ca noduri ale arborilor de reprezentare a S-expresiilor.

regresie simbolică . Regresia simbolică se defineşte sumar ca fiind procesul prin care se determină o ecuaţie pornind de la un număr dat de puncte.proiectarea reţelelor neuronale . Câttimp condiţia de continuare a algoritmului este validă a. Creează noua generaţie prin aplicarea operaţiilor următoare: i. Una dintre aplicaţiile cunoscute ale Programării genetice constă în rezolvarea problemelor de regresie simbolică. Astfel. Reproducere ii. Mutaţia 3. Încrucişare iii. Algoritmul de Programare Genetică se recomandă prin natura sa ca instrument potrivit de rezolvare a acestor probleme: . Generarea populaţiei iniţiale de compuneri aleatoare a funcţiilor şi terminalilor identificaţi (generarea aleatoare a programelor reprezentate prin S-expresii) 2. cunoscând perechi de valori obţinute prin măsurarea a două mărimi se caută o expresie care descrie relaţia dintre cele două mărimi considerate. Execută fiecare program al populaţiei pentru determinarea valorii de performanţă b. Procedeul 111 . Identifică soluţia finală a problemei (cel mai performant program obţinut de-a lungul evoluţiei populaţiei) Sunt enumerate în continuare câteva dintre principalele clase de probleme care cer determinarea soluţiei văzută ca program de rezolvare a unei sarcini.prelucrarea imaginilor - probleme de planificare rezolvarea ecuaţiilor programarea automată – determinarea programelor care rezolvă problemă data recunoaşterea formelor automată a 22 Exemplu de aplicaţii PG: Regresia Problema 11-multiplexorului boolean simbolică.1.

Arborele asociat expresiei are ca noduri terminale – operanzii. adresele sunt 112 .2. Sarcina unui multiplexor boolean pe 11 biţi este de a decoda adrese binare pe 3 biţi (a0. având intrarea 1 1 0 0 .. Figura următoare descrie un astfel de multiplexor. i=1. d5.1. unde 2k =N-k.... 2k. Reprezentarea expresiei dorite prin arbori induce posibilitatea folosirii Programării genetice în scopul obţinerii soluţiei dorite. pentru o funcţie multiplexor booleană cu N argumente. Practic.2. multiplexorul boolean este o funcţie cu 11 argumente dintre care primele 3 determină adresa şi următoarele 8 reprezintă răspunsul căutat. d3. În scop didactic vom prezenta problema 11-multiplexorului (descrisă în amănunt în Koza [1.2]). constante.1..k. d1. d2. a0 1 a1 1 a2 0 d7 0 Output 1 d0 0 Figura 12 Multiplexorul boolean cu 11 intrări În general. a1. şi 2k biţi de date: dj. d4. d7). care de altfel se încadrează clasei problemelor de regresie simbolică booleană. În cazul particular al multiplexorului descris în figura alăturată..regresiei simbolice constă în construirea expresiei dorite pornind de la elementele atomice: operatori. d6. variabile. j=1. iar nodurile intermediare sunt operatorii. Problema multiplexorului boolean este un caz special de regresie simbolică în care variabilele dependente sau independente au valori Booleene iar funcţiile ce se compun sunt de asemenea funcţii booleene.. 0 şi ieşirea corespunzătoare: 1 . a2) şi de a returna valoarea regiştrilor corespunzători (d0.. intrările sunt reprezentate de k biţi de adresă: ai.

d 7 } . O .fitness 4. 2. datele pe 23 biţi. Odată ce mulţimile T şi F au fost stabilite. d1 . mulţimea de terminale T este formată din: a execuţiei T = { a0 . respectiv S-expresiilor. d3. Dat fiind faptul că argumentele funcţiei multiplexor sunt în număr de 11.2. Valorile terminalilor sunt valorile binare 0 sau 1. Spaţiul de căutare este constituit din mulţimea tuturor expresiilor LISP care se pot compune recursiv pe baza primitivelor conţinute de F..reprezentate pe 3 biţi. a2 d0. respectiv. NO . d5. biţi de adrese şi date. d 0 . 1. 3 argumente. determinarea mulţimii de funcţii primitive 3. stabilirea parametrilor de control 5..1. a1 . d4.. a2 . d2. Pentru aplicarea algoritmului Programării Genetice în soluţionarea problemei 11multiplexorului este necesară parcurgerea următoarelor etape: 1. stabilirea condiţiei de terminare algoritmului de PG. determinarea mulţimii de terminali 2. Mulţimea de terminali Mulţimea de simboluri terminale care stau la baza alcătuirii programelor. IF } R T Fiecare dintre cele 4 primitive conţinute de mulţimea F are un număr de argumente de intrare: 2. având ca şi argumente terminalii 113 . d1. stabilirea funcţiei de evaluare .. respectiv intrarea este reprezentată de o secvenţă: (a0. se poate deduce dimensiunea spaţiului de căutare. Mulţimea de funcţii Mulţimea de funcţii care stau la baza compunerii programelor (S-expresiilor) ce rezolvă problema considerată este dată de: F = { AND . d6. a1. Mulţimea F este suficientă pentru a se putea compune orice expresie booleană. se deduce uşor din specificaţiile problemei. d7).

definit ca numărul de cazuri de test în care valoarea booleană returnată de S-expresia evaluată pentru un număr dat de combinaţii de argumente. Desigur. Parametrii de control Parametrii majori de control constau în dimensiunea populaţiei şi numărul de generaţii produse. Funcţia fitness O etapă importantă a dezvoltării tehnicii PG este stabilirea funcţiei de evaluare a calităţii programelor reprezentate de Sexpresii. Valoare maximă 2048 a fitness-ului nerafinat se traduce printr-o corectitudine absolută a Sexpresiei evaluate. dimensiunea spaţiului de căutare rezultă ca fiind 2 2 N . nu este exclusă limitarea acestor cazuri la un eşantion mai mic. De asemenea. valori mari denotă indivizi de calitate slabă.din T.2] preferă utilizarea tuturor celor 2048 (211) de combinaţii posibile ale argumentelor ca şi cazuri de test în vederea evaluării fitness-ului. se consideră fitness-ul nerafinat. Fitness-ul standardizat se construieşte pe baza fitness-ului nerafinat. Această mulţime a cazurilor de test trebuie să fie reprezentativă. Stabilirea fitness-ului standardizat se poate face printr-o scalare liniară: din valoarea maximă a fitness-ului nerafinat (ex. numărul combinaţiilor de N argumente este de 2N . Pentru stabilirea funcţiei de performanţă (fitness). o variantă plauzibilă pentru stabilirea fitness-ului ar fi să se calculeze suma distanţelor Hamming (nepotrivirile) dintre valorile obţinute la evaluarea S-expresiei şi cele corecte dorite.1. De regulă. Dat fiind faptul că numărul maxim de cazuri de test este de 2048. în ideea că valorile mici ale fitness-ului corespund performanţelor mari ale indivizilor. în problema analizată. calitatea unor astfel de programe rezultă în urma unor examinări repetate ale ieşirilor pentru un număr de cazuri de test. astfel încât. Valorile acestor parametrii se 114 . Koza [1. şi reciproc. Practic. valoarea fitness-ului nerafinat variază între limitele [0. 2048) se va scădea valoarea fitness-ului nerafinat calculat pentru individul considerat. este corectă.2048].1. fapt pentru care. 4. 3.

situaţia tipică de atingere a numărului prestabilit de generaţii produse este o variantă de validare a condiţiei de terminare a execuţiei.1.2]) este recomandată utilizarea unei populaţii de dimensiune considerabilă: 4000 şi a unui număr maxim de generaţii produse: 50.stabilesc de utilizator.1. în funcţie şi de dimensiunea spaţiului de căutare. 5. Condiţia de terminare a execuţiei Pentru că valoarea de 2048 a fitness-ului nerafinat ne indică corectitudinea absolută a unui individ. Spre exemplu. 115 . În [1.1. o posibilă condiţie de terminare a execuţiei algoritmului este dată de obţinerea valorii 0 pentru fitness-ul standardizat prin scalare liniară (vedeţi paragraful 3 din capitolul curent).2] este sugerat raportul de 90-10 a procentelor indivizilor ce vor fi supuşi operatorilor implicaţi: încrucişare şi reproducere. De asemenea. în cazul problemei multiplexorului boolean (vezi spre exemplu [1. Un aspect important este dat de procentul indivizilor care vor fi supuşi operatorului de încrucişare.1. respectiv operatorului de reproducere proporţională cu performanţa.

2].1.CAPITOL V 23 Programarea Evolutivă Programarea evolutivă (evolutionary programming) concepută iniţial de Fogel [1. populaţiei printr-o funcţie de supravieţuirea celor mai performanţi indivizi ai populaţiei. exploatează structuri asemănătoare indivizilor unei populaţii din paradigma strategiilor evolutive. 2. exploatează structuri modelate prin automate finite deterministe. mutaţie. Comportamentul inteligent al sistemului este interpretat prin prisma capacităţii acestuia de a se adapta la mediu informaţional. Programarea evolutivă tradiţională aplicată îndeosebi în machine learning (învăţarea automată). Programarea evolutivă contemporană aplicată în rezolvarea problemelor de optimizare numerică. încorporează tehnici prin care se generează automat comportamentul inteligent al unui sistem descris printr-un automat finit. respectiv prin capacitatea automatului de a prezice corect simbolul următor.1. exploatarea operatorilor specifici: selecţie. cunoscându-se succesiunea de simboluri de intrare. evaluarea elementelor performanţă. 116 . Se disting două direcţii în dezvoltarea acestei paradigme: 1. Paradigma programării evolutive este din câteva puncte de vedere asemănătoare Algoritmilor Genetici şi Strategiilor Evolutive: - utilizarea unei populaţii supuse evoluţiei.

individ c presupune adăugarea unui vector ale cărui componente sunt variabile aleatoare cu repartizare normală. având media 0 şi deviaţia standard σi calculată ca rădăcina pătrată a unei transformări liniare a valorii fitness-ului: unde: v.În contrast cu celelalte două paradigme amintite. Spre deosebire de strategiile evolutive ( µ + λ ). evoluând structuri dependente de specificul problemei de rezolvat. În Programarea evolutivă contemporană. 117 . Programarea 2. Există multe similitudini între Strategiile evolutive moderne şi Programarea evolutivă contemporană incluzând maniera de reprezentare a elementelor populaţiei şi accentuarea importanţei operatorului de mutaţie. 5. Diferenţele majore constau în: 1. λ ). Funcţia fitness F este obţinută din funcţia obiectiv prin scalare acesteia şi eventual perturbarea aleatoare pentru a se obţine valori pozitive: F * ( c ) = G( F ( c ) + v ) . 4. mutaţia unui xi = xi + σ i ⋅ z σ i = βi ⋅ F ( x ) + γ i . evolutivă nu foloseşte aproape deloc operatorul de recombinare.reprezintă un vector prin care se realizează perturbarea şi G – reprezintă funcţia de scalare. şi ( µ . dacă algoritmii genetici folosesc vectori de valori binare sau reale prin care se reprezintă o posibilă soluţie a problemei. Programarea evolutivă se distinge prin faptul că permite o codificare a elementelor populaţiei mult mai flexibilă. 3. în schimb strategiile evolutive moderne fac uz de acest operator. Mecanismul selecţiei reduce mulţimea de 2 µ părinţi şi descendenţi la un număr de µ indivizi utilizând o formă de selecţie prin concurs generalizat. Programarea Evolutivă permite o codificare mult mai naturală. Astfel. programarea evolutivă utilizează acelaşi număr de părinţi şi descendenţi: µ = λ .

Fogel.1. unde ζ reprezintă un parametru de control. Astfel. δ . Ideea principală a acestei abordări este de a exploata mai degrabă legătura comportamentală decât legătura genetică – structurală dintre părinţi şi descendenţi. evaluarea acestora pe baza unei funcţii care măsoară rata de succes în prezicerea secvenţelor de simboluri. abordarea presupune reprezentarea indivizilor prin automate finite. F } . 24 Descrierea tehnicii originale Într-un articol din 1966. s0 . 6. 24.2] propun o nouă metodă evolutivă pe care o denumesc Programare Evolutivă. Pentru a înţelege mecanismul programării evolutive vom oferi definiţia automatului finit determinist şi modalităţile de reprezentare ale acestuia.unde β şi γi sunt parametri specifici componentelor şi z i – variabilă aleatoare de lege normală cu media 0 şi deviaţia standard 1. În varianta autoadaptivă. Owens şi Walsh [1.1. mutaţia unui individ implică alterarea deviaţiei standard prin formula: σ i2 = σ i2 + ζ σ i ⋅ z . În forma originală. Definiţie: Prin automat finit determinist înţelegem ansamblul: AF = {Q. unde: Q este mulţimea finită a stărilor Σ este mulţimea finită a simbolurilor de intrare δ : Q × Σ →Q este funcţia de tranziţie s0 ∈ Q reprezintă starea iniţială 118 . meta-Programarea evolutivă. exploatarea operatorului de mutaţie şi utilizarea unei selecţii deterministe de tipul ( µ + µ ).1 Automate finite – maşina Turing Populaţia asupra căreia sunt aplicate principiile evoluţiei este constituită de elemente modelate prin automate finite. Σ. dificultatea alegerii eficiente a parametrilor β şi γi este i depăşită.1.

o maşină Turing constă din următoarele elemente: 1. fiind sunt etichetate cu simbolurile de intrare. Condiţia de oprire a maşinii este dată de situaţia în care în tabela de acţiuni nu există intrare pentru combinaţia curentă de simbol citit şi stare a sistemului. 6. împărţită în celule adiacente. prin care se urmăreşte codificarea algoritmilor. O mulţime finită de stări de control. O mulţime finită de simboluri de scriere-citire care se depun sau se scot de pe banda de memorie. Algoritmul Programării evolutive vizează o subcategorie de maşini Turing – echivalente automatelor finite deterministe. cum să deplaseze capul de scriere-citire (la stânga sau la dreapta) şi care va fi noua stare a maşinii. ştiindu-se simbolul citit de pe bandă şi starea curentă. 2. respectiv simularea logicii unui calculator. Conceptual. O bandă de memorie infinită. în care capul de citire-scriere este restricţionat doar la deplasarea spre dreapta pe banda de memorie. al cărui inventator a fost Alan Turing (19121954) este un model teoretic extrem de simplu. 5. care se poate deplasa la stânga sau la dreapta 3. Fiecare celulă poate conţine un simbol dintr-un alfabet finit sau simbolul vid dacă nu este ocupată. respective de ieşire corespunzătoare. Maşina Turing. 4. O tabelă de acţiuni (funcţia de tranziţie a automatului) care spune maşinii ce simbol să scrie. similar unui automat finit. Simbolurile de ieşire reprezintã predicţia 119 .- F este mulţimea finită a stărilor finale Reprezentarea automatelor finite se realizează în două moduri: printr-o tabelă de tranziţie sau printr-un graf orientat ale cărui noduri sunt stările automatului şi arcele reprezintă tranziţiile. Dinamica unei maşini Turing se poate rezuma astfel: maşina Turing transformă o secvenţă de simboluri de intrare într-o secvenţă de simboluri de ieşire. Un cap de scriere-citire a simbolurilor pe sau de pe bandă.

maşinii asupra următoarei stări în care se va situa maşina.prin schimbarea stării iniţiale 120 . 24. Cu cât distanţa dintre cele două simboluri este mai mare. Aplicarea unui operator de variaţie asupra unei diagrame de tranziţie trebuie să producă de asemenea o diagramă de tranziţie.2 Reprezentarea indivizilor populaţiei Paradigma programării evolutive originală foloseşte o populaţie de µ >1 părinţi.1. Mutaţia aplicată asupra reprezentării unui automat finit se va putea realiza în următoarele situaţii: . respectiv printr-o structură de date specifică grafurilor.1. Comportamentul inteligent se traduce astfel prin abilitatea dispozitivului de a realiza predicţii bune asupra mediului reprezentat prin secvenţa simbolurilor de intrare.3 Evaluarea indivizilor Performanţa unui automat finit se calculează prin simularea funcţionării acestuia pentru o mulţime de test. 24.4 Operatorii specifici Autorii paradigmei descrise în acest capitol notează faptul că aplicarea unui operator de recombinare asupra structurilor de reprezentare a automatelor finite nu prezintă un interes. unicul operator prin care se realizează perturbarea elementelor populaţiei este cel al mutaţiei. Mulţimea de test este finită şi alegerea ei este de obicei problematică dat fiind faptul că în foarte puţine situaţii se vor putea testa toate variantele posibile.1. măsurând raportul dintre numărul de simulări încheiate cu succes şi numărul total de simulări. Reprezentarea automatului finit este posibilă prin diagrama de tranziţie. cu atât eroarea previziunii este mai mare. Un element al populaţiei (automat finit) este cu atât mai bun cu cât rata de succes calculată este mai mare. Din aceste considerente. Calitatea unei predicţii poate fi evaluată prin compararea simbolului de ieşire cu următorul simbol de intrare. 24. Fiecare părinte este un automat finit (maşină Turing).

Aplică operatorul specific de mutaţie asupra fiecărui părinte din generaţia curentă. descendenţi este etichetat printr-o valoare naturală r reprezentând numărul de indivizi ai mulţimii respective care µ indivizi în sunt mai puţin performanţi decât c. c2 . obţinând µ descendenţi.. 2. Evaluează performanţele fiecărui individ (maşină Turing) al populaţiei utilizând o funcţie de câştig prin care se calculează calitatea predicţiilor efectuate de maşina corespunzătoare în raport cu mulţimea simbolurilor de intrare. Generează P ( t ) = {c1 . Astfel.1. Pentru fiecare individ supus operatorului de mutaţie se va stabili în mod aleator care dintre procedurile amintite se aplică.5 Algoritmul programării evolutive – pentru automate finite Structura generală a algoritmului de Programare evolutivă pentru automate finite este descrisă în continuare: 1. 5. De menţionat faptul că efectul mutaţiei este dependent de varianta aleasă. Mulţimea simbolurilor de intrare observate până la acest moment sunt prezentate maşinilor Turing. unde fiecare individ ci codifică aleator populaţia iniţială de µ indivizi: un automat finit (maşină Turing finită). 3.. cµ} . 4. constituită din lista simbolurilor de intrare observate (verificate) este iniţial vidă. Mulţimea de instruire. Fiecare element c al mulţimii reunite de 2 µ părinţi şi aceiaşi manieră în care au fost evaluaţi părinţii. t := 0 .- prin ştergerea sau adăugarea unei stări schimbarea simbolului de ieşire modificarea tranziţiei unei stări Corespunzător variantelor posibile de alterare a unui element se pot descrie proceduri specifice de mutaţie. 24. adăugarea sau ştergerea unei stări va produce un descendent mult diferit structural de părintele său în comparaţie cu alterarea structurii prin schimbarea unui simbolul de ieşire. Primii 121 . Calculează performanţele descendenţilor obţinuţi la pasul 3 în 6...

ajung la rezultate şi modele similare.1. Programarea evolutivă modernă impune ca un individ să nu mai fie reprezentat printr-o structură adecvată reprezentării automatelor finite ci printr-o structură similară reprezentării specifice Strategiilor evolutive. 8. Prezentăm în continuare modulele principale ale metaprogramării evolutive. ce încorporează mecanisme de autoadaptare a parametrilor de control. Renaşterea programării evolutive are loc prin studii dedicate extinderii conceptelor sale în optimizarea numerică. Dezvoltarea celor două paradigme foarte asemănătoare este un caz surprinzător în care două comunităţi de cercetători.ordinea descrescătoare a valorilor rangurilor r sunt copiaţi în noua generaţie P (t +1) 7.1 Reprezentarea indivizilor populaţiei Considerăm o problemă de maximizare fără restricţii formulată astfel: 122 . Dacă condiţia de terminare este îndeplinită atunci STOP Altfel t :=t +1 Salt la pasul 2. Cea mai bună maşină din generaţia curentă este folosită pentru a face predicţia noilor simboluri de intrare. 25. Specificul problemelor de optimizare numerică induc schimbări majore în privinţa manierei de reprezentare a elementelor populaţiei. în mod independent. 25 Programarea evolutivă optimizarea numerică contemporană – Cu toate că ideea Programării Evolutive este originală şi paleta aplicaţiilor este una bogată. pentru o bună bucată de timp. această direcţie de cercetare a fost puţin exploatată. denumire sub care se regăsesc tehnici dedicate optimizării. Simbolul asupra căruia s-a făcut predicţia corectă este pus în lista simbolurilor de intrare observate.

unde x ∈ R n .1. un individ al populaţiei este codificat prin secvenţa: Vectorul x = ( x1 .... xn ) este format din componente reale şi reprezintă o soluţie posibilă a spaţiului de căutare. În cazul meta-programării evolutive. ( ) ( ) de n componente reale reprezintă vectorul dispersie şi are semnificaţia perturbaţiilor produse la nivelul fiecărei componente a vectorului x. Ulterior.reprezintă un vector prin care se realizează perturbarea şi G – reprezintă funcţia de scalare. f ( x) − m a x  n  x∈ R În dezvoltarea unui algoritm evolutiv care rezolvă problema dată se impune alegerea manierei de reprezentare a elementelor populaţiei.1. σ n c = x.. 25. unde: v.σ 2 .. 25. 2 2 Vectorul σ 2 = σ 1 .. Aceasta este obţinută din funcţia obiectiv F. 123 . cei mai puternici µ indivizi (primii µ indivizi din mulţimea ordonată descrescător după rangul r) supravieţuiesc şi constituie noua generaţie... σ 2 ∈ R n .2 Evaluarea indivizilor populaţiei Evaluarea indivizilor populaţiei se face prin funcţia fitness. prin scalare acesteia şi eventual perturbarea aleatoare pentru a se obţine valori pozitive: F * ( c ) = G( F (c ) + v ) . Selecţia presupune ca fiecare element c al mulţimii reunite de 2 µ părinţi şi descendenţi să fie etichetat printr-o valoare naturală r reprezentând numărul de indivizi ai mulţimii respective care sunt mai puţin performanţi decât c.3 Operatori specifici Operatorii implicaţi în algoritmul meta-programării evolutive sunt cel de selecţie şi mutaţia.

. Generează P ( t ) = {c1 . În schimb. cµ} . α') . Pentru fiecare părinte din generaţia curentă: xi ' = xi + αi ⋅ z . precum în strategiile evolutive. t := 0 . unde fiecare individ de structura aleator populaţia iniţială de µ indivizi: reprezentat i α i = α1i .. Vectorul x i de n componente codifică o ( ) ci = x i . 124 . Astfel. α') astfel: c ∈P ( t ) . α n . α i . Diferenţă majoră a celor două paradigme s-ar putea justifica pe baza interpretării din perspective diferite a modelului biologic care stă la baza dezvoltării acestora... c2 ... Evaluează performanţele fiecărui individ al populaţiei curente pe baza funcţiei fitness stabilită.. i Aşa cum deja am remarcat. xn . ( ) i i x i = x1 . Operatorul de mutaţie în varianta metaprogramării evolutive presupune alterarea structurii c = ( x. 2. astfel: xi ' = xi + αi ⋅ z αi ' = αi + ζ α ⋅ z .. selecţia descrisă în acest paragraf poate fi descrisă prescurtat ca selecţie de tipul ( µ + µ ) şi este o formă deterministă a selecţiei. o recombinare a indivizilor de specii diferite ar fi departe de modelul biologic utilizat. 25. α) şi producerea individului c' =( x ' .o notaţie pentru σ2 . c = ( x..1. strategiile evolutive moderne implică exploatarea acestui operator.. În programarea evolutivă o soluţie este o codificare a unei specii şi nu a unui individ. ( ci este ) posibilă soluţie şi vectorul αi codifică parametrii adaptării. algoritmul programării evolutive nu face uz de procedura de recombinare.Păstrând notaţiile specifice strategiilor evolutive moderne.4 Algoritmul meta-Programării Evolutive Algoritmul de meta-Programare Evolutivă este schiţat mai jos: 1. 3.. Fie ζ un parametru suplimentar al procedurii de mutaţie şi α .α) determină descendentul c' =( x ' ..

2. proiectarea reţelelor neuronale sunt doar câteva dintre problemele generale de interes în care modelele programării evolutive au fost implementate cu succes. n} unde ζ este parametru suplimentar al procedurii de mutaţie .notaţie pentru σ2 4.. Calculează performanţele descendenţilor obţinuţi la pasul 3.αi ' = αi + ζ α ⋅ z i i { pentru ∀ ∈ 1.. şi α 5. Optimizarea numerică. 125 .. Practic. probleme de planificare şi control. probleme de transport. Primii ordinea descrescătoare a valorilor rangurilor r sunt copiaţi în noua generaţie P (t +1) 6. orice problemă rezolvabilă prin algoritmi genetici sau strategii evolutive poate fi abordată printr-un algoritm de programare evolutivă. Fiecare element c al mulţimii reunite de 2 µ părinţi şi descendenţi este etichetat printr-o valoare naturală r reprezentând numărul de indivizi ai mulţimii respective care µ indivizi în sunt mai puţin performanţi decât c.. Dacă condiţia de terminare este îndeplinită atunci STOP Altfel t :=t +1 Salt la pasul 3 Domeniul de aplicabilitate al tehnicilor de programare evolutivă este larg.

însă. disciplina SI cuprinde algoritmi şi metode de rezolvare a problemelor reale. un sistem SI este format dintr-o populaţie de indivizi relativ omogeni. rezultând un comportament inteligent al grupului. fiecare individ acţionează independent de acţiunea comună a celorlalţi. cu organizare proprie. etc. Structural. rezultând un comportament inteligent 126 . Sistemele naturale menţionate prezintă trăsături interesante: indivizii acestor colectivităţi. bancurile de peşti. în ansamblu. Încadrată în domeniul Calculului Natural. Dinamica unui astfel de sistem este dobândită prin interacţiuni cu mediul înconjurător şi interacţiuni locale între elementele populaţiei. Principalele surse de inspiraţie a modelului SI sunt: coloniile de furnici. populaţia acţionează în mod coordonat.CAPITOL VI 26 Paradigma Swarm Intelligence Swarm Intelligence – SI (inteligenţa roiurilor) reprezintă una dintre cele mai noi şi prolifice paradigme naturale în Inteligenţa Artificială. stolurile de păsări. Caracteristicile comportamentale ale acestor sisteme SI sunt următoarele: - în absenţa unui control extern sau a unor mecanisme interne supervizoare. interacţionează pe baza unor reguli relativ simple. roiurile de insecte. în absenţa unui control supervizat. inspirate de comportamentul colectiv al sistemelor descentralizate.

Depăşind graniţele teoretice.- interacţiunea dintre indivizi se bazează pe reguli comportamentale simple. etc. Dintre sistemele naturale cu comportament inteligent care funcţionează după principiile mai sus enunţate se evidenţiază: coloniile de furnici şi stolurile de păsări. De altfel. în mod independent. pe baza interacţiunilor locale ale elementelor sale formează un grup organizat.1 Modelul natural Modelul biologic ce stă la baza dezvoltării tehnicii ACO este reprezentat de o populaţie de insecte (furnici) care. Corespunzător celor două modele oferite de natură. În ciuda datării recente a acestei paradigme în Calculul Natural. Acest volum impresionant de lucrări demonstrează o reală popularitate a tehnicii ACO. Dorigo [1. Metaeuristica propusă de M. două clase de metode specifice cu aplicabilitate în rezolvarea problemelor de optimizare: tehnicile Ant Colony Optimization (ACO) şi tehnicile Particle Swarm Optimization (PSO). fiecare individ reacţionează în concordanţă cu maniera de percepţie a vecinătăţii sale populaţia. tehnicile ACO au fost aplicate cu succes într-o mare varietate de probleme considerate dificile: optimizare combinatorială. prescurtat ACO. datorită 127 . ordonare secvenţială. - 27 Tehnica Ant Colony Optimization Ant Colony Optimization.1. s-au dezvoltat. deşi necontrolată ca ansamblu. este o direcţie relativ nouă a Calculului Natural. având ca şi punct de pornire modelul biologic al coloniilor de furnici. rutarea reţelelor de telecomunicaţii.2] reprezintă o alternativă viabilă în abordarea problemelor grele de optimizare combinatorială. un număr mare de algoritmi inspiraţi de comportamentul coloniilor de furnici au fost identificaţi în literatura de specialitate. una dintre cele mai populare demonstraţii a robusteţii şi eficienţei tehnicii ACO o constituie aplicarea acesteia în rezolvarea problemei comisvoiajorului.1. probleme de planificare a activităţilor. 27.1.

colaborării prin interacţiuni locale a indivizilor săi. Cu cât cantitatea de substanţă chimică depusă este mai mare. au arătat faptul că fiecare furnică este aproape oarbă. Feromonii depuşi de furnici au capacitatea de a se evapora în timp ceea ce permite ca o direcţie nefolosită să nu mai fie luată în considerare. în timpul deplasării furnicilor între muşuroi şi sursa de hrană. precum apariţia unui obstacol şi modificarea drumului cunoscut între muşuroi şi o sursa de hrană. Modelul comportamental şi maniera de comunicare a furnicilor în găsirea drumului optim între hrană şi muşuroi sunt descrise mai jos: 1. Biologii. Mai mult. Aceste furnici sunt totodată capabile să se adapteze la schimbările de mediu. fiecare individ (insectă) realizează sarcini simple. Alegerea drumului pe care se va deplasa este făcută în mod aleator dacă furnica nu detectează urme de feromoni. iar sarcinile efectuate de aceasta nu pot fi justificate pe baza dovezilor vizuale. furnica va alege cu o mai mare probabilitate drumul marcat de feromoni. Se consideră scenariul prezentat în Figura 13. Astfel. fiecare furnică va emite o substanţă chimică denumită feromon. Observaţiile biologilor au avut un real impact asupra dezvoltării tehnicii ACO. Comportamentul colectiv al populaţiei de insecte este unul complex. cu atât probabilitatea alegerii drumului respectiv este mai mare. Interesant este faptul că acest comportament inteligent al coloniei nu este susţinut de simţul vizual al furnicilor. cu toate că. prin studierea aspectelor comportamentale şi structurale a coloniilor de furnici. Interacţiunea furnicilor cu mediul şi adaptarea acestora la schimbările survenite este datorată altor mecanisme specifice. Unul dintre cele mai interesante aspecte al comportamentului coloniilor de furnici este cel al găsirii celui mai scurt drum între muşuroi şi sursa de hrană. În cazul prezenţei acestei substanţe chimice. Furnicile comunică prin intermediul mirosului. este capabilă să realizeze diverse sarcini dificile. în cazul existenţei mai multor căi marcate de feromoni. furnicile preferă acele drumuri care sunt cel mai bine marcate. Drumul dintre cele două puncte de interes (muşuroiul şi sursa de hrană) nu 128 . în parte.

3. iar jumătate vor alege să ocolească obstacolul prin stânga. Furnicile care au MUŞUROI 129 . O situaţie similară se întâlneşte şi de cealaltă parte a obstacolului.este obturat de niciun obstacol. Furnicile situate înaintea obstacolului nu mai au posibilitatea să urmărească calea marcată de feromoni. fapt pentru care trebuie să ia o decizie legată de direcţia în care se vor deplasa: stânga sau dreapta. În figura anterioară se poate observa că drumul A este mult mai scurt decât drumul B. MUŞUROI Drumul B Figura 14 Apariţia obstacolului în drumul furnicilor produce o împărţire probabilistică a grupului în cele două variante ocolitoare: stânga şi dreapta. Cele două drumuri existente după apariţia obstacolului diferă prin lungimea lor. Figura 13 Drumul furnicilor de la muşuroi la hrană în absenţa unui obstacol 2. Apariţia unui obstacol pe drumul de acces al furnicilor între cele două locaţii este descrisă în Figura 14. În această situaţie furnicile urmează în mod firesc calea directă între cele două locaţii. În mod aleator aproximativ jumătate dintre furnici vor alege să ocolească obstacolul prin dreapta.

Precum modelul natural realizează un proces de optimizare – găsirea Drumul 130 . Populaţia s-a adaptat rapid la schimbarea survenită în mediu. furnicile sunt denumite furnici artificiale sau agenţi. Astfel. Procesul de găsire a celui mai scurt drum între două obiective este cauzat în principal de următorii factori: . pe drumul A se va depune o cantitate mai mare de feromoni în unitatea de timp decât pe drumul B. Datorită acestui proces toate furnicile vor alege calea mai scurtă foarte repede (figura 11). Drumul B Figura 15 Configuraţia finală a coloniei de furnici în drumul cel mai scurt între cele două obiective.persistenţa feromonilor face ca un drum mai scurt să fie întotdeauna puternic marcat de feromoni MUŞUROI - datorită procesului de evaporare a feromonilor. un drum mai lung va fi uitat de către furnici Modelului biologic al coloniilor de furnici îi corespunde modelul artificial conceput de cercetători din domeniul Calculului Natural. în timp.furnicile sunt atrase de drumul marcat cu cea mai mare cantitate de feromoni . În modelul artificial. Acest fapt va determina ca un număr mai mare de furnici să aleagă calea respectivă. Tehnicile inspirate de comportamentul biologic descris în acest paragraf se pretează cel mai bine în aplicaţii de optimizare. ceea ce va conduce ulterior la creşterea cantităţii de feromoni depusă.ales calea mai scurtă de ocolire a obstacolului vor reconstitui mai rapid calea de feromoni întreruptă de obstacol decât furnicile care au ales calea mai lungă. iar comunicarea acestora se realizează prin aşa-numiţii feromoni artificiali.

27. principiile enunţate au stat la baza dezvoltării şi rafinării ulterioare a algoritmilor ACO. s* ∈ S . ) unde: S. sub denumirea Ant System. Ω .reprezintă mulţimea soluţiilor posibile f . f . care verifică 131 .2]. Primul algoritm ACO.1. punând în evidenţă aspectele pe care programatorul va trebui să le urmărească în dezvoltarea şi implementarea unui algoritm de acest gen pe o problemă concretă. Contrar dificultăţii algoritmului Ant System de a depăşi performanţele algoritmilor tradiţionali de rezolvare a problemei considerate. bazânduse pe datele problemei şi pe o memorie dinamică ce reţine informaţii utile din rezultatele obţinute anterior. s ∈ S . şi tehnicile inspirate din acesta sunt dezvoltate în ideea aplicabilităţii lor în probleme de optimizare combinatorială. Ω.2 Tehnica ACO Denumirea de tehnică ACO defineşte cadrul general al algoritmilor inspiraţi de paradigma biologică a coloniilor de furnici.1.1.este mulţimea restricţiilor problemei Se cere determinarea acelei soluţii restricţiile problemei şi are costul minim. În paragraful curent vom furniza structura generală a unui algoritm ACO. Definirea problemei Se consideră următoare problema de optimizare descrisă prin ansamblul: (S . Folosirea informaţiilor despre calitatea rezultatelor obţinute în prealabil este caracteristica majoră a algoritmilor ACO. Ideea principală a tehnicii ACO este cea a căutării paralele realizată de către o populaţie de agenţi care colaborează. a fost aplicat pentru rezolvarea problemei comis-voiajorului (TSP . În acest cadru se vor regăsi o varietate de algoritmi ACO aplicaţi în probleme diverse de optimizare.Travelling Salesman Problem).drumului optim.este funcţia obiectiv care ataşează fiecărei soluţii un cost: f (s) . propus în [1.

unde S * ⊆ X şi S* ⊆ S .. ci 2 . c2 . Stările problemei sunt drumuri în graful G. Acest graf se mai numeşte şi graf de construcţie şi are următoarele particularităţi: A. ij D. Se dă mulţimea de soluţii posibile: S * .Din perspectiva algoritmilor ACO.. e. X ⊆X . Stările problemei sunt definite prin secvenţe de x = ( ci1 .. O mulţime finită de componente C = {c1 . ci 3 .. Muchiile lij ∈L pot fi etichetate cu valorile η . drumurile posibile în graful G . ci1 ... L ) . ci 3 . unde ci1 . ci 2 . costurile sunt ataşate stărilor şi nu soluţiilor. cn } . Stările posibile. cn } B. cik ) . cik ) . Nodurile ci ∈C şi muchiile lij ∈L pot fi etichetate cu valorile τ (notate τi pentru noduri şi τ pentru ij muchii)... sunt acele stări care verifică restricţiile Ω specifice problemei.. ci 3 .... elemente ale mulţimii C: b. unde nodurile sunt elemente din mulţimea C şi L este mulţimea muchiilor prin care se conectează nodurile. având semnificaţia atractivităţii – informaţii despre problemă sau informaţii determinate prin aplicarea unei euristici. respectiv. cik ∈C secvenţelor de c.. C. se poate deduce mulţimea stărilor posibile ale problemei: X . Funcţia obiectiv f ataşează fiecărei soluţii s ∈ S un cost: f ( s ) . 132 . ci 2 . având semnificaţia urmei de feromoni.. În anumite cazuri. Nodurile grafului sunt componente din mulţimea C = {c1 . Elementele enunţate pot fi reprezentate sub forma unui graf complet G = (C ... c2 .. abordarea problemei descrise mai sus implică o reformulare şi identificarea următoarelor elemente: a. d. Cunoscând mulţimea tuturor componente peste mulţimea C: X = { x | x = ( ci1 ....... cik ∈ C} şi mulţimea restricţiilor Ω.. ci 3 . ci 2 .

Decizia prin care o furnică va traversa spaţiul stărilor se face pe baza informaţiilor furnizate de urmele de feromoni şi gradul de atractivitate. respectiv. ci 2 . ci 3 . prin adăugarea la soluţiile parţiale a acelor componente care verifică restricţiile impuse. 133 . De asemenea. Această stare corespunde unei furnici situate în nodul cik care a efectuat în prealabil o traversare a drumului ci1 . Comportamentul furnicii artificiale Rolul furnicilor artificiale este de a construi soluţia problemei prin parcurgerea drumurilor în graful complet G .. Aceste furnici se comportă ca o populaţie de agenţi asincroni şi concurenţi care se mişcă prin mulţimea stărilor problemei. fiecare agent – furnică va efectua o trecere de la starea x la starea y. Determinarea unei soluţii complete este însoţită de actualizarea urmelor de feromoni. Dinamica furnicilor se realizează pe baza unei mulţimi de decizii locale stohastice induse de valorile a doi parametri: Atractivitate. respectiv de actualizarea valorilor τ pentru a putea fi ulterior folosită în căutare de către celelalte furnici.... cik . La fiecare iteraţie a algoritmului..utile în decizia furnicii de a efectua o mutare în spaţiul stărilor posibile. va îmbogăţi o soluţie parţială x prin adăugarea unei noi componente ci ∈C .. ci 3 .. Considerăm că unui agent îi corespunde starea x. cik ) . completarea soluţiei parţiale cu o nouă componentă ci (nod al grafului) poate fi însoţită de o actualizare a valorii asociate - Urma de feromoni τi sau a valorii τij ataşate conexiunii (muchiei). Tehnica generală ACO este descrisă de un algoritm repetitiv. un drum posibil în graful G. ci 2 . reprezentând secvenţa de componente x = ( ci1 . Soluţia finală este construită de agenţi pas cu pas.. Soluţia dorită a problemei este drumul optim în graful G. producând o nouă soluţie mai completă y.

cnou ) se va face din mulţimea nodurilor vecine nodului curent Alegerea nodului cnou ce va fi adăugat secvenţei x pentru a cik .. Acesta nu a reuşit să depăşească performanţele algoritmilor clasici. procedura daemon (efectuată opţional) are scopul apelării unor activităţi centralizate pe care furnicile în mod individual nu le-ar putea realiza. Dacă există mai multe posibilităţi.. - Algoritmul Ant System este primul algoritm inspirat de comportamentul coloniilor de furnici. însă reprezintă un algoritm de referinţă pentru cercetarea ulterioară. Vom prezenta în continuare structura originală a algoritmului Ant System. algoritmii ACO pot fi înzestraţi cu două proceduri importante de control: - evaporare a feromonilor – activitate efectuată pentru a imprima populaţiei de furnici trăsătura de “a uita” drumurile slab marcate. revenind în final în localitatea iniţială. ci 3 . Spre exemplu. efectul acestui proces constă în evitarea convergenţei rapide înspre soluţii sub-optimale ale problemei. apelarea unor proceduri specifice de căutare locală..obţine noua stare y = ( ci1 . sau amplificarea urmelor de feromoni la acele componente care s-au dovedit utile în construirea celor mai bune soluţii. situat iniţial în localitatea de plecare cstart trebuie să parcurgă toate localităţile. ci 2 . j ) | i.. ∀... Problema comis voiajorului (TSP) este formulată astfel: Se dă: o un număr de n localităţi: C = {c1 . aplicat pentru rezolvarea problemei TSP. În plus faţă de activitatea concurentă a agenţilor. j ∈ Un comis-voiajor.. cik . cn } o un număr de muchii L = {lij = ( i. j ∈C } o localitatea de plecare cstart ∈C i C o costurile ataşate muchiilor: d ij . c2 . 134 . o singură dată.. aplicat în cazul problemei comis voiajorului (TSP). furnica va decide mutarea următoare cu o probabilitate calculabilă în funcţie de urma de feromoni şi gradul de atractivitate.

unde d ij este distanţa euclidiană dintre localităţile i şi j.reprezintă atractivitatea deciziei de efectua o mutare ij în oraşul j şi este determinată prin formula: η ij = 1 - dij .Se cere: determinarea drumului optim parcurs de comisvoiajor.1. reprezentată oraşele rămase nevizitate de aceasta. valoarea α = 0 va induce un comportament asemănător tehnicii greedy. unde: - τij are semnificaţia urmei de feromoni între locaţiile i şi j. alegerea următoarei localităţi se face în mod independent de distanţe. cele m furnicile vor completa soluţia parţială prin mutări succesive dintrun oraş în altul. La un pas al procesului. În mod iterativ.vecinătatea posibilă a furnicii k. consideră m furnici. oraşul ales j este cu o mare probabilitate cel mai apropiat de oraşul i. şi doar în funcţie de intensitatea urmei de feromoni. o furnică k situată în localitatea i va decide oraşul următor j.β doi parametri suplimentari prin care se controlează influenţa pe care o vor avea parametrii specifici τ . respectiv determinarea drumului de cost minim. În situaţia în care β = 0 . descris în [1. Algoritmul AS. asupra alegerii oraşului următor: spre ij exemplu. Mutarea în oraşul j se va face k cu o probabilitate pij (t ) dată de formula: k pij (t) = α β ∑ l∈V ( k ) τ il ( t ) ⋅η il τ ij ( t ) α ⋅η ij β . Memoria agenţilor reţine în această primă etapă doar oraşul de plecare. ij respectiv η . fiecare situată aleator într-unul dintre cele n oraşe. - t – este o variabilă care contorizează numărul de tururi complete 135 .1. V ( k ) . α . η .2] .

Muchiile care fac parte din drumul respectiv vor fi preferate. t ) . formula devine: 136 . k =1 m unde: - ρ . Intuitiv procedura descrisă conduce la determinarea soluţiei optime. în etapa de depozitare a feromonilor.j) şi se determină prin formula: - 1 dacăacă fu k a pa ica rcurs much (i. oferindu-li-se o pondere suplimentară. Efectul imediat este de a stimula furnicile să prefere drumurile mai scurte. în comparaţiile cu algoritmii tradiţionali. t ) . Uitarea este benefică pentru evitarea deciziilor dovedite greşite într-un tur anterior. - ∆ ij (t ) reprezintă cantitatea de feromoni depusă de furnica k τk pe muchia (i. Valoarea mică a parametrului ρ induce efectul de uitare a drumurilor slabe parcurse deja de furnici. Pentru acele muchii. O extensie importantă a algoritmului constă în modificarea manierei de depozitare a feromonilor. este un factor prin care se controlează evaporarea feromonilor.Se consideră că fiecare câte un drum acţiunea procedurii Actualizarea urmelor un tur este încheiat când furnicile au parcurs de lungime dată n. însă. algoritmul original Ant System nu a reuşit să ofere o performanţă mai bună.j) ia  ∆ τ ( t ) =  L( k .  0 altfel  L ( k . de feromoni se face în două sensuri: prin evaporarea acestora (multiplicarea valorilor τij cu un factor subunitar) şi depozitarea de feromoni pe muchiile drumurilor parcurse de furnici: k τ ij ( t + 1) = (1 − ρ ) ⋅ τ ij ( t ) + ∑ ∆τ ij ( t ) . Astfel.distanţa parcursă de furnica k în turul t. se reţine cel mai bun drum parcurs şi acesta se va actualiza după încheierea fiecărui tur. În acest moment intervine de actualizare a urmelor de feromoni. k ij Cantitatea de feromoni depusă pe muchiile parcurse este cu atât mai mare cu cât drumul este mai scurt. rata de evaporare.

O altă perfectare a algoritmului AS constă în implicarea doar a celor mai performante w ( 1 < w ≤ m ) furnici în etapa de depozitare a feromonilor.1.1. dar şi mai eficienţi decât acestea în câteva probleme de interes major. conţine un mecanism suplimentar prin care se realizează un echilibru între exploatarea informaţiilor provenite din tururile anterioare şi explorarea spaţiului de căutare. Acest mecanism este format dintr-o procedură elitistă asemănătoare celei descrise în algoritmul AS (actualizarea feromonilor doar de către cele mai performante furnici) şi dintr-o procedură prin care deciziile locale supra viitorului oraş vizitat se vor lua în mod pseudo-aleator pentru a favoriza explorarea eficientă a spaţiului de căutare. cu atât gradul de elitism al procedurii este mai mare. O furnică este cu atât mai performantă cu cât reuşeşte să parcurgă un drum mai scurt. fapt pentru care în etapele ulterioare. 27. t ) . drumurile slabe vor fi treptat uitate. Problema comis voiajorului descrisă în paragrafele anterioare) este prima problemă abordată de către o tehnică ACO. furnicile care nu au parcurs drumuri bune nu vor actualiza urmele de feromoni.  0 altfel  unde: - L* (k .1.e * dacăacă fu k a pa ica rcurs much (i.j) ia  * ∆ τ ij ( t ) =  L ( k .2]. Prin aceasta. Enumerăm câteva dintre problemele abordate cu algoritmi Ant Colony Optimization: - problema ordonării secvenţiale (ex. Algoritmul Ant Colony System (ACS) [1. Cu cât numărul de furnici performante care vor depozita feromoni este mai mic.3 Aplicaţii Algoritmii ACO s-au dovedit nu doar alternative viabile a tehnicilor tradiţionale.este lungimea celui mai scurt drum e este un întreg pozitiv cu rolul de a accentua urma de feromoni a muchiilor ce fac parte din drumul cel mai bun. problema atribuirii cuadratice – se cere atribuirii a unui număr de m facilităţi unui număr de n locaţii în aşa fel - 137 . t ) .

1. Scopul examinării acestor sisteme este acela al identificării şi modelării artificiale a resorturilor prin care grupul de organisme înzestrate cu o inteligenţă neglijabilă. realizează ca ansamblu un comportament inteligent. evoluţia speciilor. cercetători din domenii diferite au furnizat informaţii valoroase privind procesul prin care ansambluri de organisme (ex.- încât costul de atribuire să fie minim. Modelul de inspiraţie al acestei clase de algoritmi este cel al comportamentului stolurilor de păsări. Numărul mare al tehnicilor inspirate de modele naturale (creierul uman. etc. aceste sisteme naturale dovedesc un comportament colectiv inteligent. bancurile de peşti).1. în mod sincronizat şi imprevizibil realizează mişcări de împrăştiere şi regrupare rapidă. 138 . [1.2] şi cuprinde algoritmi dedicaţi rezolvării unei variate palete de probleme de optimizare.1.) este justificată de necesitatea dezvoltării unor metode computaţionale alternative celor tradiţionale. Aparent haotice. 28. diverse probleme de planificare a activităţilor probleme de rutare a vehiculelor problema colorării grafurilor probleme dinamice în reţele de telecomunicaţii probleme de optimizare multiobiectiv - - 28 Tehnica Particle Swarm Optimization Tehnica Particle Swarm Optimization este propusă în 1995 de către Kennedy şi Eberhart [1. reuşind să ofere direcţii importante de dezvoltare în Calculul Natural. Modelul comportamental al roiurilor de particule este analizat şi din perspectiva inteligenţei artificiale.2]).1 Modelul natural Studiul comportamentului social al unor specii este în general preocuparea biologilor. stolurile de păsări. inteligenţa colectivă a roiurilor. funcţia costului de atribuire este cuadratică. în absenţa unui mecanism de control centralizat (vezi de ex. în scopul rezolvării unor probleme dificile.1. Cu toate acestea. respectiv al bancurilor de peşti. oferind cercetătorilor din domeniul Calculului Natural idei surprinzătoare pentru dezvoltarea unei noi metaeuristici.1.

particule care nu mor.Comportamentului colectiv al roiului poate fi descris prin următoarele principii [1.1. Diferenţele între cele două paradigme se disting la nivelul reprezentării indivizilor şi a mecanismelor prin care populaţiile realizează procesul de căutare. însă îşi modifică atributele (poziţia în spaţiu.2]: - fiecare membru încearcă să se îndepărteze de vecinii săi în cazul în care aceştia sunt prea apropiaţi – Separarea fiecare membru va opera o mişcare înspre poziţia medie a vecinilor săi . memoria locaţiei cuibului şi partajarea informaţiei despre locaţia cea mai apropiată a cuibului. coeziunii şi alinierii este dublat de: atracţia membrilor spre locaţia cuibului. viteza de mişcare). 139 . Contrar Algoritmilor Genetici care presupun dispariţia unor indivizi ai populaţiei şi înlocuirea acestora cu noi descendenţi. Evoluţia spectaculoasă şi rapidă a tehnicii PSO este datorată simplităţii modelului propus şi a rezultatelor bune pe care le oferă. În paragrafele următoare sunt descrise tehnica originală PSO şi principalele domenii de aplicabilitate ale acesteia.1.1. Simplificat.Coeziunea fiecare membru se aliniază la direcţia medie a vecinilor săi – Alinierea. comportamentul colectiv al membrilor populaţiei sugerat de principiile separării. tehnica Particle Swarm Optimization se poate defini ca o procedură de rezolvare a problemelor de optimizare prin imitarea proceselor naturale observate la nivelul comportamentului roiurilor de particule. Din acest punct de vedere.2] prin introducerea conceptului de cuib.2 Algoritmul PSO Tehnica PSO presupune existenţa unei populaţii de m indivizi care realizează în mod colectiv un proces de căutare şi optimizare. Aceste trei principii simple sunt completate de Eberhart şi Kennedy [1. 28.1. PSO şi Algoritmii Genetici prezintă similitudini evidente. Astfel.1. populaţia în paradigma PSO este alcătuită din indivizi .

.. în tehnica PSO. Se consideră spaţiul de căutare Rd . este vectorul direcţiei în care se va mişca particula în absenţa altor influenţe [ - vectorul X i local bună poziţie ocupată de particula pi ( t ) în etapele anterioare. vid ( t ) . funcţia de performanţă (fitness) prin care se vor califica indivizii populaţiei este funcţia f. Algoritmul tehnicii PSO este un algoritm repetitiv în care fiecare iteraţie t este reprezentată de o mutare colectivă a indivizilor.. p2 ( t ) ... zid ( t ) ] . Fiecare element pi ( t ) ale populaţiei este caracterizat prin următoarele elemente: - Un vector X i ( t ) = xi ( t ). xi ( t ). i memorează cea mai f ( X i ( t ) ) şi performanţa celei mai bune poziţii Z i ( t ) ocupate în etapele precedente: f Z i t Vecinătatea lui pi ( t ) este notată prin N ( pi ) şi reprezintă ( ( )) .... mulţimea de particule pk ( t ) care sunt apropiate de particula pi ( t ) .. Apropierea se poate determina pe baza unei funcţii distanţă dist şi a unui prag ε prin care se delimitează vecinii.. 140 .. Vecinătatea particulei pi se rescrie astfel: N ( pi ) = { pk | dist( pi . printr-o dinamică condusă de interacţiunile cu mediul şi interacţiunile locale între membrii. Se doreşte determinarea maximelor funcţiei considerate. În acest scop. performanţă: performanţa poziţiei X i ( t ) ocupate în mod curent de particulă: Calificarea unei particule se face pe baza a două valori de ( t ) = [ z1 ( t ). având semnificaţia vitezei particulei pi ( t ) . procesul de căutare este realizat de către o singură generaţie de indivizi. şi funcţia multidimensională f : R d → R .. xi ( t ) 1 2 d [ ] ] al poziţiei ocupate în spaţiul d-dimensional Un vector Vi ( t ) = vi1 ( t ).. pk ) ≤ ε } . zi2 ( t ). vi2 ( t )..Practic.. pm ( t )} . Notăm populaţia de particule la pasul t: P ( t ) = { p1 ( t ) ..

Algoritmul standard PSO exclude contribuţia poziţiilor celor mai buni vecini şi include aportul inerţiei. Se notează prin piN ( t ) . şi rand – reprezintă un număr aleator subunitar cu distribuţie uniformă. la pasul t.particula care ocupă cea mai bună Se notează prin p global ( t ) . formulele de actualizare a vitezelor şi poziţiilor devin: Vi ( t ) = ωVi ( t − 1) + c1rand X ilocal ( t ) − X i ( t − 1) + c2 rand X iglobal ( t ) − X i ( t − 1) X i ( t ) = X i ( t −1) + Vi ( t ) . S-a constatat o încetinire semnificativă a convergenţei algoritmului PSO în cazul în care poziţiile celor mai performante particule din vecinătate (neighborhood best) afectează viteza particulelor. cercetările ulterioare au inclus un factor suplimentar ω cu semnificaţia inerţiei. c3 . . ( ) ( ) 141 . Formulele generale de calculare a vitezei şi poziţiei particulei pi în iteraţia t sunt următoarele: Vi ( t ) = Vi ( t − 1) + c1rand X ilocal ( t ) − X i ( t − 1) ( t ) − X i ( t −1) ) X i ( t ) = X i ( t − 1) + Vi ( t ) 3 N i + c2 rand X iglobal ( t ) − X i ( t − 1) ( + c rand ( X ( ) ) unde: c1 .poziţie X iN ( t ) din vecinătatea N ( pi ) a particulei pi ( t ) . c2 . În plus. astfel.reprezintă constante pozitive. - poziţia celei mai performante particule din populaţie (global best) poziţia celei mai performante (neighborhood best) particule din vecinătate poziţia cea mai bună ocupată de pi ( t ) în iteraţiile anterioare (local best).particula care ocupă cea mai bună Mişcarea unei particule oarecare pi ( t ) este influenţată de: poziţie X global (t ) din întreaga populaţie P (t ) .

2] prezintă o investigaţie utilă asupra progreselor înregistrate de tehnica PSO în aplicaţii variate.1.. Modifică poziţia folosind formula: ( ) ( ) Un studiu recent [1. Etapele unui algoritm PSO sunt următoarele: 1. i =1. utilizând funcţia fitness 2. m execută 2.2. t=0.3 Aplicaţii 2.1.unde: - Constantele pozitive c1 . Generare aleatoare populaţie iniţială P (0 ) . 2. Evaluare populaţie. respectiv. - Factorul inerţie ω are o valoare subunitară (ex.. Actualizarea poziţiilor performante X global (t ) X ilocal ( t ) şi 2. Câteva dintre principalele domenii de aplicabilitate ale algoritmilor PSO sunt enumerate în continuare: - rezolvarea problemelor de optimizare numerică optimizarea multiobiectiv optimizare multimodală rezolvarea problemelor de optimizare cu restricţii antrenarea reţelelor neuronale procesarea imaginilor. c2 au în general valoarea c1 . aportul local-individual şi global-social asupra mişcării particulei.. Modifică viteza folosind formula: Vi ( t ) = ωVi ( t − 1) + c1rand X ilocal ( t ) − X i ( t − 1) + c2 rand X iglobal ( t ) − X i ( t − 1) X i ( t ) = X i ( t − 1) + Vi ( t ) 28. ω ≈ 0.2.3. - - 142 .1. Câttimp (condiţia_de_terminare=false) execută 2.3.3. c2 ≈ 2 şi reprezintă influenţele “cognitivă” şi „socială”..1.2. Pentru fiecare particulă i.9 ).1.

s-a conturat o direcţie extrem de fertilă a Inteligenţei Artificiale.CAPITOL VII 29 Sisteme imune artificiale Paleta modelelor biologice care ar putea constitui baza unor noi paradigme ale calculului natural este largă. sunt doar câteva dintre cele mai studiate surse de inspiraţie naturală care au generat metode generale de rezolvare a unor clase de probleme dificile. În ansamblu. Succesele aplicaţiilor practice. concepte şi algoritmi eficienţi de inspiraţie naturală. învăţarea şi 143 . 30 Modelul biologic Sistemul imun reprezintă un ansamblu de celule. Una dintre cele mai recente paradigme ale Calcului natural este cea bazată pe principiile funcţionării sistemelor imune ([1.2]. Evoluţia speciilor.1.1. model aplicat cu succes în rezolvarea problemelor de optimizare multimodală. În acest capitol este descris modelul natural al sistemului imun cât şi modelul artificial propus şi descris în [1. Acest sistem se dovedeşte a fi capabil să efectueze sarcini complexe ca: recunoaşterea formelor.2].1. molecule şi organe. studiile teoretice şi ingeniozitatea subiectului sunt o motivaţie puternică în identificarea altor modele naturale care ar putea genera noi tehnici. comportamentul coloniilor de furnici şi a roiurilor de particule.2]).1. structura şi funcţionarea creierului.1.2].[1.1.1. prin noi principii.[1. cu rol în recunoaşterea şi combaterea anumitor disfuncţii (infecţii) ale organismului.1.

Celulele imune se “nasc” în măduva osoasă şi pătrund în sistemul circulator sanguinic şi limfatic. Celulele imune - 30. Din aceste considerente. sistemele imune constituie un subiect fecund de studiu atât pentru biologi cât şi pentru matematicienii sau informaticienii interesaţi de dezvoltarea a noi tehnici computaţionale bazate pe principiile imunologice. generarea diversităţii sau optimizarea. celulele canceroase. O clasificare a celulelor imune este descrisă in figura alăturată: Limfocitele: sunt reprezentate de trei categorii importante de celule imune: celulele B. bacteriile. cu rol în producerea celulelor imune timusul: o parte din celulele generate de măduva osoasă sunt supuse multiplicării şi maturizării la nivelul acestei glande. variate ca tip sau ca funcţionalitate. 144 .1. etc. Complexitatea acestui sistem este comparabilă cu a unui creier uman. ca răspuns la apariţia unor proteine externe ca viruşii.2 Sistemul imun conţine o multitudine de celule imune. transformându-se ulterior în celule T.memorarea.1. apendicele: nod limfatic specializat în protejarea activităţii digestive splina: organ la nivelul căruia leucocitele distrug microorganismele ce au pătruns în sistemul circulator nodurile limfatice: locurile de convergenţă a vaselor limfatice. toleranţa la zgomot. aici sunt stocate celule imune şi la nivelul acestor noduri se produc răspunsurile imune. celulele T şi celulele NK (natural killer). 30. Celulele B se transformă după activare în celule plasmatice şi generează anticorpii.1 Anatomia sistemului imun Sistemul imun este alcătuit din următoarele unităţi anatomice: - vasele limfatice: reţea de vase prin care este transportată limfa (fluid ce conţine celule imune) măduva osoasă: ţesut situat în oase.

Fagocitele: sunt capabile de ingerarea şi digerarea microorganismelor şi particulelor antigenice. - 30. celule T supresoare (Ts) – inhibă activitatea celulelor imune pentru ca răspunsul sistemului imun să nu degenereze în boli autoimune sau reacţii alergice. inducând proliferarea şi diviziunea limfocitelor B. viruşi.1. Anticorpii constituie un mecanism important de recunoaştere şi semnalare a variatelor tipuri de disfuncţii ale organismului. Sunt recunoscute trei subcategorii de celule T (împărţite după modul în care îşi desfăşoară acţiunea): - celule T helper (Th) – au rol în activarea altor celule imune. Aceste celule protejează organismul de variate infecţii microbiene. distruge bacteriile prin citoliză. Celulele T au rol în reglarea activităţii altor celule imune şi în distrugerea prin atac direct a celulelor infectate. va 145 .Anticorpii reprezintă de fapt proteine specifice care recunosc şi se leagă de alte proteine. celule T citotoxice – elimină invadatorii (microbi. celule canceroase) prin inocularea acestora cu substanţe nocive provocând ulterior distrugerea lor. anticorpii semnalează altor celule imune să ucidă sau ingereze substanţa de care s-au legat. basofile. eusinofile. macrofage. În această manieră.3 Activitatea sistemului imun În cele ce urmează vom descrie maniera în care sistemul imun proteja organismul de atacul unui antigen (“invadator”). Celulele NK se comportă asemănător celulelor T cu excepţia faptului că acţiunea lor nu este condiţionată de recunoaşterea unui antigen specific. Ele recunosc antigenele patogenilor. Cele mai importante fagocite sunt enumerate în cele ce urmează: monocite. neutrofile. Sistemul complement: este alcătuit din celule plasmatice care circulă inactive prin organism şi suplinesc funcţionalitatea anticorpilor. distrug microorganismele prin fagocitoză şi stimulează activitatea limfocitelor. Macrofagele au rol important la începutul răspunsului sistemului imun.

Recunoaşterea antigenelor precede răspunsul imun. Absenţa unui răspuns imun este datorat imunităţii dobândite (rezistenţa specifică a unui organism fata de infecţia cu un anumit agent patogen). O parte dintre limfocitele B şi T alcătuiesc memoria sistemului imun. însă într-o manieră diferită: celulele B. Etapele răspunsului imun sunt: fragmentarea si transferul informaţiei antigenice către sistemul imunologic. sistemul imun este capabil să se apare cu mai mare eficienţă. Cele doua clase de celule imune. în timp ce celulele T sunt capabile de a recunoaşte antigenele prezente în alte celule accesoare. etc. astfel încât. fiind inofensive. rămânând în sistemul circulator. sunt recunoscute de sistemul imun şi se denumesc antigene proprii elementele care sunt străine organismului propriu (viruşi. Răspunsul imun poate fi primar (la prima pătrundere a antigenului) şi secundar (la pătrunderi ulterioare). Sub denumirea de antigen se disting doua categorii de elemente care pot fi recunoscute de sistemul imun: - celulele care fac parte din organismul propriu. la o ulterioară “invazie” cu aceleaşi antigene. Acest răspuns se poate descrie prin totalitatea acţiunilor pe care le realizează sistemul imun în scop de apărare a organismului. bacterii. celulele B şi celulele T au rolul de a realiza procesul de recunoaştere al antigenelor. în caz contrar ar apare aşa numitele boli autoimune în care sistemul imun ar „ataca” substanţe şi ţesuturi ale propriului organism. Răspunsul imun - - captarea antigenului de către macrofage. 146 .) poartă denumirea de antigene străine. astfel încât ne vom limita la simularea unui răspuns simplificat al sistemului imun. originate la nivelul măduvei spinării au rolul de a recunoaşte antigenele libere. O corectă funcţionare a sistemului imun natural presupune distingerea între cele două categorii de antigene (proprii şi străine) în procesul complex al recunoaşterii antigenelor.Mecanismul este extrem de complex.

Legându-se de antigenele găsite.4 Caracteristicile majore ale sistemului imun - unicitatea: fiecare organism este înzestrat cu propriul său sistem imun. neexistând un control centralizat al mecanismelor imune. 31 Sisteme imune artificiale 147 . devenind active. limfocitele B vor răspunde acestor semnale chimice. sistemul poate învăţa structurile patogenilor. vor recunoaşte şi fragmenta antigenele producând peptide antigenice. este capabil să recunoască molecule străine organismului de care aparţine.secundar este mai rapid şi mai intens decât cel primar datorită celulelor cu memorie imunologica (limfocite). 30. Peptidele se alătură moleculelor complexului major de histocompatibilitate. astfel încât răspunsul ulterior la aceiaşi patogeni este mult îmbunătăţit (mai puternic şi mai rapid). fiind capabile să recunoască diferite combinaţii de peptide din MHC. poate detecta patogeni pe care organismul nu i-a mai întâlnit până în acel moment. Datorită receptorilor moleculari pe care îi posedă. limfocitele T vor genera semnale chimice care mobilizează alte componente ale sistemului imun. toleranţa la zgomot: sistemul este flexibil. Limfocitele T deţin receptori moleculari. Complexul major de histocompatibilitate (MHC) este reprezentat de o familie de gene a căror produşi (antigene) sunt exprimate pe suprafaţa diferitelor celule. cum ar fi macrofagele pe care le-am pomenit anterior. celulele sistemului sunt distribuite în tot organismul. Activate prin procesul de recunoaştere. Celulele B activate se vor divide şi diferenţia în celule plasmatice ce secretă anticorpii. Celulele specializate în prezentarea antigenelor. nu este necesară recunoaşterea cu precizie maximă a patogenilor. anticorpii pot să le neutralizeze sau pot provoca distrugerea lor.1.

ajută la maturarea limfocitelor T. o posibilă definiţie a acestuia este următoarea: Sistemul imun artificial este un sistem computaţional bazat pe metafora biologică a sistemului imun natural. recunoaşterea formelor. situat în cavitatea toracică. . 1974). Celulele B care au recunoscut antigene străine vor prolifera şi se vor diferenţia în celule memorie şi celule efectuare. având rol foarte important in răspunsul imunitar al organismului. În timpul procesului de maturare sunt eliminate din populaţia de celule T toate celulelor T care au recunoscut antigene proprii.mecanismele imunologice reprezintă sursa de inspiraţie în vederea construirii algoritmilor şi structurilor implicate.1 Modele biologice în sistemele imune artificiale Timusul este un organ mic..modelarea principiilor imunologice pentru descrierea unor procese complexe ca: optimizarea. Procesul acesta este denumit selecţie negativă. proces denumit selecţie clonală. O teorie deosebit de interesantă este cea a existenţei unei aşa numite reţele imune. Acesta face parte din sistemul limfatic. etc.Metafora biologică a sistemelor imune stă la baza dezvoltării de noi tehnici computaţionale şi a construirii de variate sisteme evolutive numite sisteme imune artificiale. sistemul imun este privit ca o vastă reţea de molecule şi celule care activează şi se recunosc reciproc şi în absenţa vreunui antigen. Cu toate 148 . rezultând de aici nelimitate aplicaţii potenţiale. După ce au fost generate celulele T. Fără a surprinde în întregime complexitatea structurală şi funcţională a unui sistem imun artificial. . 31.1. acestea migrează în timus unde va avea loc procesul de maturare.înţelegerea şi exploatarea unui fenomen natural ca răspunsul imun al unui organism deschide noi direcţii de cercetare în scopul obţinerii a noi tehnici computaţionale menite să rezolve probleme complexe. Pentru definirea şi dezvoltarea unui sistem imun artificial sunt luate în considerare următoarele aspecte: . învăţarea. Conform acestei teorii (Jerne.

Ideea centrală a acestei teorii este că doar celulele care au calitatea de a recunoaşte antigenele sunt selectate pentru proliferare (clonare) în defavoarea celorlalte. Algoritmul bazat pe principiul selecţiei clonale are în vedere următoarele aspecte: 149 .2] au propus un algoritm bazat pe principiul selecţiei clonale cu rezultate bune în problemele de recunoaşterea formelor şi optimizare multimodală. 32 Principiul selecţiei clonale Principiul selecţiei clonale reprezintă algoritmul aplicat de sistemul imun pentru a genera un răspuns imun la stimulul antigenic. rezistente la eliminarea Algoritmul selecţiei clonale De Castro şi Von Zuben (1999) [1. ce poartă receptori - proliferarea (clonarea) şi diferenţierea în celule memorie sau celule plasmă la contactul celulelor mature cu antigenele. Principalele caracteristici ale acestei teorii sunt: - noile celule imune sunt clone ale celulelor părinţi şi sunt supuse unui mecanism de mutaţie cu rată mare (hipermutaţie somatică).1. clonelor interzise. În cele ce urmează este prezentat algoritmul selecţiei clonale aşa cum a fost descris de către autorii acestuia. cele mai noi limfocite diferenţiate autoreactivi sunt eliminate. selecţia clonală şi reţeaua imună constituie principalele surse de inspiraţie în dezvoltarea sistemelor imune artificiale.controversele care le implică teoria sus-menţionată. ea devine un idee atractivă pentru dezvoltarea unor modele computaţionale. Cele trei procese descrise succint: selecţia negativă. Principiul selecţiei clonale este succesiunea de acţiuni (algoritmul) efectuate de către sistemul imun pentru a descrie răspunsul imun. Ideea de bază este aceea că celulele imune care au capacitatea de a recunoaşte antigenele vor prolifera.1. persistenţa timpurie.

Unii indivizi din C* pot înlocui câţiva membrii ai populaţiei P. Acest proces de reîmprospătare a populaţiei este opţional.Populaţia este alcătuită din două părţi. formând astfel populaţia de clone C. compusă dintr-o submulţime de celule memorie M şi o subpopulaţie rămasă Pr : P=M ∪ Pr . un număr prestabilit de indivizi generaţi aleator pot intra necondiţionat în populaţia Pr . 4. Pentru a creşte gradul de diversitate al populaţiei. 3. Clonarea indivizilor intermediară de clone C. - Soluţiile algoritmului se regăsesc în subpopulaţia memorie M care. 5. 150 . Sunt re-selectaţi indivizi îmbunătăţiţi ai populaţiei C* pentru a recompune submulţimea memorie M. Determinarea celor mai buni n indivizi ai populaţiei P pe baza măsurării performanţei acestora. Indivizii populaţiei C vor suferi modificări prin mutaţii şi recombinări pentru a se constitui populaţia C* . înlocuind o parte a sa. Fie aceşti cei mai buni n indivizi reţinuţi în populaţia Pn . - Algoritmul Selecţiei Clonale este schiţat în cele ce urmează: Generarea unei mulţimi P de soluţii candidat. o subpopulaţie Pr şi o subpopulaţie cu rol de memorie M. 1. 2. O parte a populaţiei C* va înlocui memoria M. - Cei mai buni indivizi ai populaţiei P sunt selectaţi în vederea generării unei populaţii intermediare Pn . Indivizii populaţiei Pn vor fi „clonaţi” – copiaţi în mod repetat. pe parcursul algoritmului a reţinut cei mai performanţi indivizi. Pn rezultând populaţia Populaţia C este supusă mutaţiei rezultând astfel o populaţie de clone maturizate C* .

prin memorarea informaţiilor despre mulţimea complementară (elemente străine) a formelor de recunoscut (elemente proprii). are loc maturarea celulelor T. 6. respectiv antigenele străine. Procesul de maturare are ca rezultat eliminarea din populaţia de celule T a acelora care au recunoscut elemente proprii ale organismului. Compară elementele din C cu cele din mulţimea P. acest lucru se traduce printr-o detecţie a unor antigene 151 . Se consideră P – mulţimea de elemente proprii care se pot recunoaşte şi vor fi protejate sau monitorizate (antigenele proprii). Algoritmul selecţiei negative acţionează în două etape: Etapa I. Dacă d recunoaşte elementul a ∈ P ' . Principiul selecţiei negative reprezintă a paradigmă viabilă pentru recunoaşterea formelor. atunci M = M ∪{ a} . Dacă un element a ∈ P se potriveşte (este recunoscut) cu un element din C. Pentru toate elementele din mulţimea de detectori d ∈ M a. Monitorizarea elementelor străine Fie P’ – o mulţime de elemente de monitorizat. Etapa II.Înlocuirea a d indivizi cu afinităţi scăzute din populaţia P cu alţi d noi indivizi generaţi. 33 Principiul selecţiei negative În modelul natural al sistemului imun. la nivelul glandei timus. a. C = C \ { a} şi Rezultatul acestei faze este mulţimea de detectori M. Generarea mulţimii de detectori M 1. Practic toate celulele T care părăsesc timusul vor intra în sistemul circulator având proprietatea de a tolera elementele proprii organismului. 1. pentru păstrarea diversităţii în populaţie. Generează aleator mulţimea de candidaţi C 2. Mulţimea M reprezintă mulţimea de detectori având scopul de a identifica toate antigenele care nu aparţin mulţimii P.

considerând-o ca fiind o importantă sursă de inspiraţie în dezvoltarea sistemelor imune artificiale. În acest caz se va apela o procedură specifică. Procedura care va fi apelată la o posibilă detectare a antigenelor străine depinde de natura problemei de rezolvat şi nu poate fi detaliată în această fază.1. Acest comportament este argumentat de principiul interconectării moleculelor şi celulelor imune şi capacităţii acestora de a se recunoaşte reciproc. Deşi teoria reţelei imune este combătută de imunologi. potenţialele atacuri informatice). respectiv. respectiv. activitatea reţelei de calculatoare) şi străine (antigenele.2] este aceea conform căreia sistemul imun natural are un comportament dinamic şi în afara vreunui atac extern. Primele studii dedicate implementării unui sistem de detecţie a intruşilor inspirat de paradigma sistemului imun natural au apărut de la sfârşitul anilor 90. Algoritmul central al sistemului propus este cel al selecţiei negative. şi prin acţiuni specifice resping atacurile potenţialilor intruşi. O altă aplicabilitate a principiului selecţiei negative o regăsim în studii de specialitate dedicate detecţiei intruşilor în reţele de calculatoare.străine. Modelul biologic al sistemului imun oferă câteva similitudini structurale şi funcţionale cu cele ale unui sistem informatic prin care se asigură securitatea unei reţele de calculatoare. Ambele sisteme monitorizează activitatea organismului. datorită faptului că în etapa premergătoare ne-am asigurat că mulţimea M NU recunoaşte elementele proprii ale colecţiei de elemente protejate. cercetătorii din arealul inteligenţei artificiale devin interesaţi de aceasta.1. respectiv a reţelei de calculatoare. 34 Teoria reţelei imune Ideea de bază a teoriei reţelei imune [1. 152 . Atât sistemul imun cât şi sistemul de detecţie a intruşilor au capacitatea de a recunoaşte şi de a face distincţia între cele două categorii de elemente: proprii (celulele organismului.

1. Aproximarea funcţiilor. Cele mai reprezentative aplicaţii ale sistemelor imune artificiale sunt enumerate în continuare: - Recunoaşterea formelor.1. de clasificare sau de analiză a datelor.Printre încercările de dezvoltare a unei reţele imune artificiale având ca sursă de inspiraţie teoria lui Jerne [1.2] se numără şi propunerea prin care se urmăreşte obţinerea unui instrument computaţional eficient în rezolvarea unor problemele de optimizare. 153 . Optimizare numerică.1. Învăţarea automată. Detectarea anomaliilor. [1.2] şi sistemul imun artificial: RLAIS propus în [1.1.2] sunt două dintre cele mai reprezentative modelări artificiale ale sistemelor imune din perspectiva teoriei reţelei imune.1.2].1. Analiza şi clasificarea datelor.1. Reţeaua aiNET descrisă în [1.1.2]. Control şi planificare. Securitatea calculatoarelor şi a reţelelor de calculatoare.1.1. 35 Principalele artificiale aplicaţii ale sistemelor imune Pentru mai multe informaţii privind aplicabilitatea sistemelor imune artificiale a se vedea [1.

am considerat oportună gruparea acestora într-un singur capitol. Popularitatea celorlalte tehnici prezentate în această carte pare că umbreşte interesul pentru dezvoltarea metodelor descrise în capitolul curent. În definiţia originală un sistem de clasificare este un sistem bazat pe reguli. 37 Sisteme de Clasificare Instruibile Sistemele de clasificare instruibile (LCS) au fost introduse de Holland [1. care relevă un decalaj cantitativ al materialelor dedicate primelor categorii. cel care este de altfel şi unul dintre principalii creatori ai Algoritmilor Genetici. acest fapt este demonstrabil printr-o parcurgere a bibliografiei dedicate subiectelor.1.1. Un astfel de sistem este capabil să înveţe să efectueze cele mai bune acţiuni în funcţie de informaţiile de intrare. în defavoarea tehnicilor enumerate în continuare. proceduri de învăţare prin interacţiune (reinforcement learning) şi diverse alte euristici pentru generarea unor sisteme adaptive.CAPITOL VIII 36 Alte tehnici natural-evolutive Fără a micşora din importanţa metodelor evolutive prezentate în paragrafele următoare. înzestrat cu mecanisme prin care regulile sunt testate şi procesate în mod paralel în scopul generării de noi reguli mai bune.2]. Sub titulatura de Learning Classifier System sunt grupate tehnici de învăţare automată care combină algoritmi evolutivi. 154 .

accuracy-based classifier system Vom prezenta în continuare structura standard a unui sisteme de clasificare: LCS.. în studiile lui Holland.strength-based classifier system Noţiunea de sistem de clasificare a fost introdus de Holland şi Reitman (1978) [1. compuse din: - mulţimea de clasificatori: un clasificator este în esenţă o regulă de tipul IF.1. Ulterior.1.1.. devenind sisteme de clasificare instruibile. Modelul descris de Holland în 1986 [1. 37. procedură de evaluare a performanţelor care se dirijează acţiunile sistemului în mediu dat un algoritm de învăţare utilizat în scopul urmăririi succeselor înregistrate de clasificatori un algoritm genetic prin care mulţimea de reguli evoluează în sensul obţinerii unor reguli mai bune.1. Învăţarea prin interacţiune [1.1.2] presupune receptarea unor date de intrare codificate binar.2] şi defineşte o clasă de sisteme de reguli. O populaţie de n clasificatori 155 . sistemele de clasificare au fost înzestrate cu mecanisme de învăţare prin interacţiune. Intrările sistemului sunt reţinute într-o zonă de memorie denumită sugestiv lista de mesaje. dar şi cele două variante derivate din acesta: ZCS şi XCS.1.. Literatura dedicată subiectului cuprinde două variante importante ale sistemelor de clasificare instruibile descrise de Holland.. pe baza cărora sistemul generează răspunsul potrivit şi efectuează acţiuni de modificare a stării mediului.1 LCS - ZCS .THEN.Algoritmii evolutivi şi principiile ce stau la baza construirii lor au fost descrişi pe larg în acest volum.1. aşa cum a fost descris original de inventatorul acestora. Diferenţa majoră a celor două constă în maniera în care se defineşte funcţia de performanţă (fitness): XCS .2] reprezintă o formă de învăţare computaţională în care un agent este proiectat în scopul maximizării unor recompense pe care le dobândeşte prin interacţiunea cu mediul..

cât şi simbolul 0. Mesajul de intrare şi condiţia regulii sunt secvenţe de lungime egală k...1} i { m = ( m1 .... k } . t ) este denumită în mod sugestiv licitaţie. Din mulţimea M se va alege regula câştigătoare. condiţiile şi acţiunile regulilor sunt secvenţe de simboluri ale alfabetului ternar {0... - 156 . t ) ⋅ fitness ( r . mk ) ... Fiecare regulă r din mulţimea de potrivire M.2. populaţia de reguli (clasificatori) este scanată în vederea determinării acelor reguli ale căror condiţii se potrivesc intrării curente.t) are semnificaţia relevanţei regulii r şi reprezintă numărul de simboluri din condiţia regulii diferite de simbolul neutru # .. unde: β este o constantă subunitară spec(r. k } . Un mesaj i { potriveşte condiţiei c = ( c1 .t) reprezintă performanţa regulii r la momentul t Valoare λ( r. # } .1} poate fi extins prin adăugarea simbolului generic # care poate înlocui atât simbolul 1.1. mi = ci ∨ ci =' # ' i { Submulţimea de reguli care „recunosc” secvenţa de intrare formează mulţimea de potrivire M (match-set)..fitness(r. având semnificaţia unei oferte plasate de clasificatorul r la momentul t. rn } este iniţial generată aleator şi ulterior evolută printrun algoritm genetic. reprezentat printr-o secvenţă binară...1. k } . Fiecare clasificator ri are semnificaţia unei reguli de tipul: IF condiţie Then acţiune şi codifică condiţia şi acţiunea în format binar... ∀ ∈ 1. ∀ ∈ 1. t ) . este calificată printr-o valoare λ calculată prin formula: λ( r . lista de mesaje poate fi completată cu acţiunile altor reguli selectate din mulţimea de potrivire... mi ∈{0.....2. t ) = β ⋅ spec ( r .P = { r1 . De asemenea.2.. Mesajul de intrare curent este eliminat şi secvenţa de codificare a acţiunii regulii selectate va fi rescrisă în lista de mesaje în vederea pregătirii următoarei iteraţii. la momentul t. În anumite situaţii. Alfabetul binar {0. ck ) ... ci ∈ { 0. a cărei acţiune devine activă. #} se dacă următoarea afirmaţie este adevărată: ∀ ∈ 1. La apariţia unui mesaj de intrare.

Procedura de alegere a regulilor active care vor furniza acţiunea sistemului este o procedură de selecţie proporţională cu valorile λ . Cele mai bune reguli vor fi răsplătite în mai mare măsură în timp ce regulile slabe vor fi penalizate. Un clasificator este cu atât mai bun cu cât are capacitatea de a propune acţiuni eficiente în situaţiile corespunzătoare. Eficienţa este estimată printr-un algoritm de învăţare prin instruire, propus de Holland sub denumirea de Bucket Brigade Algorithm. Recompensa primită de clasificatorii selectaţi este media valorilor λ înregistrate de cei mai buni clasificatori (regulile câştigătoare). Mecanismul de instruire se realizează printr-o procedură simplă de partajare a performanţelor regulilor câştigătoare. Mulţimea de clasificatori P este evoluată printr-un Algoritm Genetic. Fiecare individ al populaţiei este reprezentarea unei reguli, respectiv, codificarea binară a cele două părţi: condiţie şi acţiune. Operatorii genetici de încrucişare şi mutaţie vor genera noi reguli pe baza celor mai performante reguli ale mulţimii curente. Selecţia părinţilor noii populaţii se face proporţional cu valoarea performanţelor. Probabilitatea de selecţie a unui clasificator ri , în vederea aplicării ulterioare a operatorilor genetici, este dată de formula:

p S ( ri , t ) =

fitness ( ri , t ) ∑r∈P fitness ( r , t )

În cazul unui sistem LCS, rezultatul Algoritmului Genetic este interpretat în mod diferit faţă de situaţia clasică a optimizării: nu se doreşte determinarea celui mai performant clasificator, ci obţinerea unei mulţimi de reguli care împreună realizează comportamentul dorit. Fiecărui clasificator îi este ataşată o valoare fitness prin care se estimează utilitatea clasificatorului în colectarea recompensei externe. Două direcţii importante se disting în dezvoltarea sistemelor de clasificare instruibile: abordările ZCS şi XCS, ale cărei diferenţă majoră constă în procedura de estimare a valorilor fitness. 37.1.2 ZCS

157

Abordarea ZCS (Zeroth Level Classifier System) a fost introdusă de Wilson în 1994 [1.1.1.2]. Sistemul descris de Wilson păstrează o mare parte din structura originală al sistemelor LCS propuse de Holland. Modificările aduse au scopul de a simplifica şi clarifica cadrul teoretic dar totodată se doreşte o îmbunătăţire a performanţelor sistemelor de clasificare instruibile. Spre deosebire de modelul descris de Holland, sistemul ZCS:

-

nu utilizează lista de mesaje nu utilizează valori de licitaţie ale clasificatorilor nu face uz de simbolul neutru # în reprezentarea acţiunilor regulilor alegerea regulilor care vor furniza acţiunea sistemului se face din mulţimea de potrivire, strict pe baza valorilor de performanţă.

-

Mulţimea de potrivire M se determină în mod analog abordării originale LCS. Regulile care recunosc mesajul de intrare vor forma mulţimea M. Din mulţimea M, cea mai performantă regulă, conform funcţiei fitness, devine activă. Această regulă, împreună cu toţi membrii mulţimii M care furnizează acţiuni identice regulii câştigătoare, vor constitui mulţimea regulilor active A (mulţimea regulilor ce vor forma acţiunea sistemului). Toţi membrii mulţimii A, vor contribui cu o fracţiune fixă ( 0 < β ≤1 ) din performanţă la construirea unei valori comune:

B = β ⋅ ∑a∈A fitness ( a, t ) .

Fitness-ul fiecărui membru al populaţiei A va fi micşorat cu cantitatea corespunzătoare reţinută în valoarea comună B. fitness ( a, t ) = fitness ( a, t ) − β ⋅ fitness ( a, t ) (1) Dacă prin efectuarea acţiunii unui clasificator a, a ∈ A sistemul obţine o recompensă imediată

w,

atunci performanţa fiecărui
β⋅w
A

clasificator din mulţimea A va fi mărită cu o cantitate:
fitness

:

( a, t ) = fitness ( a, t ) + β ⋅ w (2) A

Mulţimea A’ este formată din regulile active identificate în etapa anterioară. Dacă A' ≠ Φ atunci performanţele acelor

158

clasificatori a’ reţinuţi
γ ⋅B
A'

în mulţimea A’ vor fi mărite cu o cantitate

, unde 0 < γ ≤1 :
fitness ( a ' , t ) = fitness ( a ' , t ) +

γ ⋅B
A'

(3)

Mulţimea A va înlocui mulţimea A’ şi valoarea B va fi fixată la 0. De asemenea, pentru a încuraja exploatarea clasificatorilor performanţi, elementele mulţimii M care nu fac parte din mulţimea activă A pot fi penalizate: performanţele clasificatorilor care recunosc mesajul de intrare dar în schimb furnizează altă acţiune decât cea activă, vor fi micşorate cu o fracţiune τ , τ ≅ β . Actualizarea mulţimii active A implică o recalculare a valorilor fitness urmând etapele descrise anterior. Un algoritmul genetic are scopul de a produce noi clasificatori. La fiecare iteraţie t, cu o probabilitate prestabilită, algoritmul genetic va fi apelat. Acţiunea acestuia constă în selectarea părinţilor pe baza valorii de performanţă, aplicarea operatorilor specifici (recombinare, mutaţie) şi înlocuirea populaţiei vechi cu noii descendenţi obţinuţi. Fiecare părinte va transmite jumătate din valoarea fitness unui descendent propriu. În această manieră, fitness-ul total al părinţilor şi descendenţilor se conservă. Există situaţia în care mulţimea de potrivire M este vidă sau nu conţine clasificatori ale căror valoare totală de performanţă să depăşească o fracţiune predefinită ϕ a mediei performanţei populaţiei P. În acest caz o procedură suplimentară covering este apelată în scopul completării acţiunii algoritmului genetic. Rolul acesteia este de a produce noi clasificatori ale căror condiţii se potrivesc mesajului de intrare şi conţin un număr aleator de simboluri neutre #. Acţiunile clasificatorilor generaţi de procedura covering sunt secvenţe aleatore de simbolurile binare. Unii membrii ai populaţiei P vor fi înlocuiţi de noii indivizi produşi şi algoritmul general al sistemului va fi reluat din etapa de determinare a mulţimii de potrivire M. Procedura covering nu utilizează informaţiile populaţiei P, precum algoritmul genetic, însă se dovedeşte benefică din moment ce situaţia nerecunoaşterii mesajului de intrare de către clasificatorii din P este posibilă şi nu poate fi evitată.

159

37.1.3

XCS

Sistemele XCS propuse de Wilson [1.1.1.2] diferă de sistemele de clasificare ZCS şi LCS prin maniera în care este calculată performanţa clasificatorilor, dar şi prin câteva aspecte ale algoritmului genetic utilizat. Prin predicţie se înţelege măsura cantitativă a recompensei aşteptate de clasificator în situaţia executării acţiunii acestuia. În sistemele XCS , performanţa unei reguli este estimată pe baza acurateţii predicţiei pe care o efectuează şi nu pe baza recompensei primite. Astfel, algoritmul genetic aplicat populaţiei de clasificatori va favoriza supravieţuirea acelor clasificatori care au realizat o estimare bună a recompensei (fie aceasta mare sau mică) în defavoarea acelora care prezic recompense mari. Fiecare clasificator va fi însoţit de următorii trei parametri:

fitness-ul clasificatorului F Calcularea valorii de fitness a unui clasificator oarecare se realizează prin parcurgerea următoarelor etape:

-

predicţia p, având semnificaţia recompensei aşteptate eroarea e a predicţiei

1. Actualizarea predicţiei p:
p = p + β( r − p ) ,

unde prin r s-a notat valoarea recompensei primate, β - constantă subunitară. 2. Actualizarea erorii predicţiei: e = e + β( r − p − e ) 3. Determinarea acurateţii predicţiei:

 1 −v  k =  e    α  e    0

daca e <e 0 altfel
, unde v > 0 .

4. Determinarea acurateţii relative a predicţiei, calculată în
funcţie de valorile acurateţii mulţimea regulilor active A. celorlalţi clasificatori din

160

Selectarea indivizilor ce vor fi şterşi se face pe baza estimării dimensiunii mulţimii active A din care fac parte. algoritmii memetici mai sunt cunoscuţi sub denumirea de algoritmi evolutivi hibrizi. în mod proporţional cu valoarea estimată. Algoritmul genetic este aplicat la fiecare t AG iteraţii asupra mulţimii active A. Datorită combinării algoritmului evolutiv cu procedurile de căutare locală (spre exemplu Hill Climbing).optimizare - modelare probleme de control 38 Algoritmi memetici Algoritmii memetici reprezintă o altă direcţie importantă în Calculul Evolutiv. Practic un algoritm memetic este un algoritm evolutiv care accentuează rafinarea indivizilor printr-un proces separat de căutare locală. Părinţii noii generaţii de clasificatori sunt selectaţi din mulţimea A în manieră proporţională cu fitness-ul. Actualizarea fitness-ului: F = F + β( k '−F ) Apariţia noilor clasificatori este datorată unui algoritmul genetic AG şi a procedurii covering (similară celei descrise la sistemele ZCS). Ne rezumăm la a enumera în continuare principalele aplicaţii ale sistemelor de clasificare: .k'= x∈ A k ∑k x 5. Modelul natural este evident: evoluţia unei populaţii este însoţită de învăţarea individuală a membrilor săi de-a lungul duratei de viaţă. 161 . Ideea de bază al acestei clase de tehnici este de a combina principiile căutării globale cu cele ale exploatării locale în cadrul unei populaţii evoluate printr-un algoritm evolutiv. Deoarece populaţia globală este considerată de dimensiune constantă.data minning . adăugarea noilor clasificatori obţinuţi prin operatori genetici implică ştergerea unor clasificatori ai generaţiei curente. şi nu asupra populaţiei P.

Structura generală a unui algoritm memetic este descrisă în continuare: Algoritmul AM este: Fie P ( 0 ) .2] . purtătoare de informaţie culturală. respectiv. t = 0 .Denumirea algoritmilor memetici este inspirată din noţiunea de meme introdusă de Dawkins în 1976 [1. meme este definită ca o unitate informaţională ipotetică. În acest sens se pot alegere euristici variate prin care un individ înregistrează un progres local.populaţia iniţială. O procedură simplă de căutare locală este descrisă mai jos: Procedura Local(curent) este: Repeta Generează în vecinătatea individului curent un nou individ: vecin Dacă fitness(vecin)>fitness(curent) atunci curent=vecin SfDacă Pânăcând (condiţie de terminare) 162 .1. structurale şi interactive ale individului. LocalSearch( P (0 ) ) Evaluare( P (t ) ) Câttimp (NOT condiţie de terminare) PS ( t ) =Selecţie ( P (t ) ) PM ( t ) =Mutaţie( PS ( t ) ) CăutareLocală( P ( t ) ) M Evaluare( P ( t ) ) M P ( t + 1) = CreareNouaGeneratie( PM ( t ) ) t:=t+1 SfCâttimp SfAlgoritm Procedura de căutare locală este utilizată în scopul creşterii valorilor de performanţă ale indivizilor generaţiei curente. purtătoare de caracteristici biologice. acea trăsătură individuală care este supusă adaptării înainte de a fi transmisă generaţiei următoare. Acesta defineşte conceptul de meme ca genă culturală. Precum gena este definită ca unitate informaţională.1.

Differential Evolution este asociată cu optimizarea funcţiilor multidimensionale. Structura generală a unui algoritm DE nu diferă semnificativ de structura algoritmului evolutiv standard. xi2 ( t ) .SfProcedură Efectul procedurii de căutare locală este găsirea unui individ mai performant din vecinătatea celui curent care să-l înlocuiască pe acesta în evoluţia ulterioară. Algoritmul memetic poate cuprinde o procedură de rafinare locală a tuturor membrilor populaţiei sau doar a unei submulţimi a acesteia. În general... mutaţie.. construire nouă generaţie prin aplicarea operatorilor de selecţie. care împrumută caracteristici ale Strategiilor Evolutive. D ⊆ R n . repetarea procesului până la validarea unei condiţii de terminare. Se consideră o problemă de minimizare a unei funcţii f : D → R . O succintă caracterizare a metodei DE se deduce din următoarele afirmaţii: Algoritmii DE sunt comprehensibili şi simplu de implementat.2] este o metodă de rezolvare a problemelor de optimizare. Esenţa metodei este dată de operatorul de mutaţie specific: differential mutation. xin ( t ) i ( ) Populaţia P la fiecare generaţie t este constituită dintr-un număr de minim 4 elemente: 163 . oferind soluţii bune. Fiecare individ xi ( t ) al populaţiei P la generaţia t - DE este o metodă de căutare bazată pe populaţie. selectate pe baza unor condiţii specifice. Se parcurg aceleaşi etape: iniţializare populaţie.. fiind capabilă să determine multiple optime ale problemei de rezolvat. DE utilizează codificare reală a soluţiilor candidat. este un vector n-dimensional reprezentând o soluţie posibilă a spaţiului de căutare D: xi ( t ) = x1 ( t ). DE foloseşte un procedeu specific de mutaţie. Tehnica este valoroasă şi în cazul optimizării multimodale. recombinare.1.1. 39 Differential evolution Differential Evolution [1.

xi 2 .... Fie xi . xm ( t )} .. xij ∈ xinf . 2. xsup . Generează aleator 3 valori distincte i1 ≠ i2 ≠ i3 ∈{1. sau cât timp o condiţie prestabilită este validă. a valorilor parametrilor: j j ∀ ∈ 1. i { j { [ ] Pentru un număr de Tmax generaţii..2. x2 ( t ) .P( t ) = { x1 ( t ) . Vectorul zi = z1 . n} ... recombinare şi selecţie.. Dacă notăm noul vector rezultat zi .2] Vectorul rezultat yi se numeşte vector donor Recombinarea se aplică imediat asupra vectorului părinte şi asupra vectorului donor producând un nou individ de încercare care moşteneşte atât trăsături ale părintelui cât şi trăsături noi. Dintre aceşti operatori ne vom opri asupra operatorului de mutaţie prin care se aduce principala diferenţă a metodei DE faţă de ceilalţi algoritmi evolutivi. Vectorul mutant yi este format.. aplicând regula: yi = xi1 + F ⋅ ( xi 2 − xi 3 ) .. unde: F – se numeşte factor de mutaţie şi are valori cuprinse în intervalul: [0. m} . atunci: 4. În această etapă. zin se obţine astfel: i ( ) 164 . m} .individul curent şi punctul 3 yi .individul curent. părintele (individul curent) nu contribuie la formarea noului vector: 1.... ∀ ∈ 1. unde m ≥ 4 Iniţializarea populaţie constă în definirea limitelor inferioară şi superioară pentru fiecare parametru al vectorilor soluţie şi generarea aleatoare cu o distribuţie uniformă în intervalul definit....2. zi2 .. selectaţi în mod aleator. obţinute din vectorul donor. populaţia va fi supusă operatorilor de: mutaţie..2.vectorul donor obţinut la 5. Fie xi .. Mutaţia presupune crearea unui nou vector mutant obţinut printr-o combinare a trei vectori distincţi ai populaţiei curente. 3. xi 3 .. reprezentând indici din populaţia curentă a trei vectori: xi1 .

n} .2]) ... utilizat în formula de determinare a vectorului zi în scopul obţinerii unui vector zi diferit de vectorul donor yi - CR – reprezintă o valoare subunitară cu semnificaţia probabilităţii de a accepta trăsături din vectorul donor Rand este o valoare generată aleator în intervalul [0. Ideea de bază a algoritmului constă în 165 .1] - Selecţia constă în compararea valorilor de performanţă a vectorului părinte şi a vectorului de încercare şi supravieţuirea în noua generaţie a celui care este mai performant: 6. Mai mult. n} . algoritmi genetici).∀ ∈ 1.. s-a demonstrat superioritatea metodei DE faţă de metoda Simulated Annealing.2. Dacă performanţa( xi )>performanţa( zi ) atunci xi supravieţuieşte în noua generaţie Altfel zi îl înlocuieşte pe xi în noua generaţie SfDacă Paşii 1.. pentru o bogată paletă de probleme de optimizare (vezi de ex.... metoda DE oferă rezultate surprinzător mai bune decât aceştia în multe probleme de optimizare. Crowding Differential Evolution [1. Această condiţie se poate referi la atingerea unui număr maxim prestabilit de generaţii. [1... prin maniera specifică de creare a noilor indivizi.1..1.6 descrişi mai sus se execută în mod repetat până la îndeplinirea unei condiţii de terminare a algoritmului..1. j { x j zij =  ij  vi dacăacă r > CR şR ş Ind ≠ dacădacăd ≤ CR sau j = Ind Unde: - Ind este un număr natural selectat aleator din 1 mulţimea indicilor { .2.1.. Aparent similară algoritmilor evolutivi (strategii evolutive.2] este un algoritm Differential Evolution îmbunătăţit cu un mecanism de menţinere a diversităţii populaţiei.2.

reuşind să menţină în cadrul populaţiei multiplele optime ale problemelor considerate.înlocuirea de către descendenţi a celor mai apropiaţi – similari părinţi din vecinătate. 166 . Algoritmul CrowdingDE se aplică cu succes în optimizarea multimodală.

41 Algoritmi evolutivi pentru optimizare unicriterială Primele aplicaţii de succes ale algoritmilor evolutivi (genetici) constau în rezolvarea problemelor de optimizare unicriterială. implicit. Succesul înregistrat în această primă etapă a dezvoltării direcţiei Algoritmilor Evolutivi a generat o accentuare a cercetării pe această traiectorie neconvenţională. Capitolul curent prezintă modul în care algoritmii evolutivi abordează această clasă de probleme. evidenţiind particularităţile. avantajele şi dezavantajele utilizării tehnicilor evolutive. Problema generală de optimizare unicriterială Problema generală de optimizare unicriterială fără restricţii este formulată astfel: Fie f o funcţie f : D → R . algoritmii evolutivi sunt dedicaţi rezolvării problemelor de optimizare.CAPITOL IX 40 Aplicaţii în optimizare Prin definiţia lor. D ⊆ R n . Paragrafele următoare prezintă elementele specifice acestui subiect. conducând la popularizarea tehnicilor evolutive dezvoltate. cât şi principalele rezultate obţinute în domeniu. 167 .

∀ x ∈ V ( x* ) ∩ D . convexitate. etc.funcţiilor de optimizat îndeplinirea unor condiţii suplimentare de genul: derivabilitate. continuitate. în situaţia problemelor de optimizare 168 .î. D ⊆ R n . În anumite situaţii. f ( x) − min P:   x ∈D Funcţia f se numeşte criteriu sau funcţia obiectiv. Spunem că ∀x ∈ D. f ( x* ) ≤ f ( x) . forma funcţiei şi caracteristicile acesteia nealterând maniera de rezolvare a problemei de optimizat. respectiv complexitatea acestora. 41. * unde prin V ( x ) am notat vecinătatea lui x* . Pentru a rezolva această problemă de optimizare (minimizare) suntem interesaţi să determinăm vectorul x* ∈ D de variabile decizie care satisface definiţia de optim (minim) global: Definiţie 1: (minim global) Fie f : D → R . f ( x* ) ≤ f ( x) . susţin utilizarea metodelor evolutive în rezolvarea acestei clase de probleme. În plus. Obiectivele problemelor în cauză sunt traduse prin funcţii ale căror valori optime suntem interesaţi să le determinăm.1. D ⊆ Rn . Abordarea evolutivă elimină acest neajuns.1 Avantaje şi dezavantaje ale algoritmilor evolutivi pentru rezolvarea problemelor de optimizare unicriterială Particularităţile problemelor de optimizare unicriterială. sau impune ca soluţia să satisfacă doar definiţia optimului local: Definiţie 2: (minim local) Fie f : D → R . tehnicile tradiţionale non-evolutive pretind funcţiei . contextul problemei nu permite determinarea optimului global. În general. Spunem că x* ∈ D este punct de minim global al funcţiei f dacă: x* ∈ D este punct de minim local al funcţiei f dacă: ∃ V ( x* ) a.

ineficienţa tehnicilor clasice conduce la optarea pentru algoritmii evolutivi. în multe situaţii aceştia au reuşit să furnizeze soluţii mai bune decât metodele tradiţionale de optimizare. 41. evaluarea performanţelor soluţiilor candidat se face în general prin intermediul funcţiei obiectiv. optimizarea multicriterială. tehnica de selecţie şi nu în ultimul rând funcţia de performanţă – funcţia prin intermediul căreia se evaluează calitatea fiecărui individ al populaţiei. etc. În anumite probleme considerate grele. este necesară în prealabil evidenţierea câtorva elemente definitorii ale acestuia: modalitatea de codificare a soluţiilor.unicriterială reală. De asemenea. recomandând metodele clasice. există suficiente argumente ce pledează în favoarea utilizării tehnicilor clasice de rezolvare. dimensiunea populaţiei. cu un înalt grad de dificultate şi complexitate.2 Particularităţi ale optimizare unicriterială algoritmilor evolutivi de Fiind dată o problemă generală de optimizare reală unicriterială P. Algoritmul evolutiv nu oferă în general decât o soluţie aproximativă. Algoritmii evolutivi s-au dovedit a fi instrumente bune de rezolvare a problemelor de optimizare. operatorii genetici utilizaţi. nevoia de determinare a soluţiei exacte elimină în multe situaţii folosirea acestor metode. problemele de optim nestaţionar. pe principiul: o soluţie aproximativă. Presupunând că se doreşte determinarea maximului funcţiei obiectiv f din domeniul D. funcţia de performanţă coincide sau derivă din funcţia obiectiv. în cazul optimizării reale unicriteriale. este natural să considerăm o 169 . Un alt argument în favoarea exploatării tehnicilor evolutive constă în simplitatea implementării unor astfel de algoritmi. unde: f : D →R şi D ⊆ R n . astfel încât. este de preferat unei rezolvări ineficiente.1. cu un grad mare de complexitate. Aceştia sunt folosiţi cu succes în cazul problemelor considerate “grele”. În situaţia în care o aproximare a soluţiei nu este de ajuns. În general. mulţumitoare. pentru a aplica un algoritm evolutiv A de rezolvare a acesteia. precum optimizarea multimodală.

algoritmul se poate considera încheiat. [1. x 2 . fiecare cromozom al populaţiei reprezintă chiar un punct din spaţiul de căutare: x = ( x1 . 41.1.. că un bun echilibru între cele două aspecte ale căutării ar putea constitui 170 .1.. . Posibile variante de operatori genetici şi tehnici de selecţie sunt descrise pe larg în lucrări reprezentative ale literaturii încadrate domeniului abordat (vezi de ex. Un alt aspect al implementării unui algoritm evolutiv în cazul unei probleme de optimizare unicriterială reală îl reprezintă condiţia de oprire.codificare reală a soluţiilor posibile şi să definim ca funcţie de evaluare însăşi funcţia de maximizat.. spre exemplu: dacă în ultimele k generaţii ale algoritmului populaţia nu şi-a modificat în esenţă conţinutul. se poate aprecia. algoritmul poate fi suplimentat printr-o formă de elitism. În ce situaţii algoritmul poate fi considerat încheiat şi ne poate furniza soluţia finală? Sunt precizate în continuare trei posibile mijloace de a considera încheiat procesul de optimizare: .. tehnica de selecţie este aleasă în concordanţă cu contextul problemei. x n ) ∈ D Operatorii genetici folosiţi sunt aleşi dintre cei specifici codificării reale. Pentru a nu se pierde soluţii bune prin trecerea de la o generaţie la alta.1. Cea mai simplă manieră de implementare a elitismului este aceea de a transfera nemodificat cel mai bun individ (sau cei mai buni m indivizi) al generaţiei curente în noua generaţie.3 Explorare versus exploatare Comportamentul algoritmului evolutiv pentru rezolvarea problemelor de optimizare în general şi în particular a problemelor de optimizare unicriterială este strâns legat de conceptele de exploatare şi explorare a spaţiului de căutare.2].obţinerea unei soluţii de calitatea dorită. De asemenea. Astfel. .încetinirea procesului de căutare.uniformizarea populaţiei: atingerea unui grad oarecare prestabilit al diversităţii populaţiei.1.1. [1. Mai mult.2]).atingerea unui număr oarecare de generaţii. .

urmând a justifica afirmaţia precedentă şi a analiza legătura dintre acestea şi efectul de convergenţă prematură. Parametrizarea algoritmilor evolutivi permite factorului uman ajustarea echilibrului explorare-exploatare pe o problemă concretă. Dacă explorarea eficientă a spaţiului de căutare este tradusă printr-un grad ridicat al diversităţii populaţiei.este tradusă prin convergenţa populaţiei înspre soluţiile de optim. respectiv convergenţa şi diversitatea populaţiei. O altă interpretare a echilibrului explorare-exploatare poate fi furnizată prin prisma a două concepte specifice problematicii algoritmilor evolutivi.privilegiate ale spaţiului de căutare . O explorare ineficientă a spaţiului de căutare poate conduce la capcana convergenţei premature înspre un punct de optim local. vom descrie cele două concepte discutate în acest paragraf. perceput greşit ca soluţia globală a problemei. capacitatea algoritmului de a descoperi şi alte zone promiţătoare. în dinamica procesului de căutare. Cu toate acestea. un bun echilibru între aceste două aspecte ale căutării se dovedeşte a fi una dintre cerinţele esenţiale în dezvoltarea unui algoritm evolutiv. apropierea de optimul global este îngreunată. Intuitiv. Cele două aspecte ale căutării conturate mai sus sunt legate datorită faptului că un grad ridicat de explorare a spaţiului de căutare poate reduce gradul de exploatare a zonelor promiţătoare. stabilirea unui echilibru 171 . În absenţa acestui fenomen. exploatarea intensă a teritoriilor promiţătoare . reciproc. exploatarea accentuată a zonelor promiţătoare reduce substanţial capacitatea de explorare eficientă a spaţiului soluţiilor posibile. Pentru început. o exploatare prea intensă a spaţiului de căutare ar putea fi sursa unei convergenţe premature înspre un optim local.cheia succesului unui algoritm evolutiv. respectiv. respectiv capacitatea algoritmului de a converge înspre punctele de optim. Referindu-ne strict la optimizarea globală. Exploatarea spaţiului de căutare se defineşte printr-o accentuare a căutării în zonele care se dovedesc promiţătoare. Explorarea spaţiului de căutare ar putea fi cuantificată prin gradul de acoperire a spaţiului soluţiilor posibile din care se doreşte extragerea soluţiei optime globale. în ciuda unei explorări eficiente.

constă în utilizarea. gradul de explorare a spaţiului de căutare are de suferit. Cea mai simplă manieră de implementare a elitismului este aceea de a transfera nemodificaţi cei mai buni n indivizi al generaţiei curente în noua generaţie.. mutaţie. În procesul evoluţiei populaţiei. h1 . 41. g 1 . avantajul cert rezidă din faptul că nu este permisă îndepărtarea populaţiei curente de zonele dovedite deja a fi promiţătoare. pe care ne propunem să le enumerăm în cele ce urmează....explorare-exploatare rămâne o notă problematică în economia dezvoltării şi aplicării algoritmilor evolutivi în optimizare.1. Literatura de specialitate recomandă şi validează abordări evolutive elitiste. Din aceste considerente s-au căutat variate mecanisme de supravieţuire a indivizilor performanţi de la o generaţie la alta.4 Elitismul Elitismul a reprezentat întotdeauna un subiect major de discuţie în arealul Calculului Evolutiv. O altă formă de elitism o reprezintă aceea prin care nu se permite ca părinţi performanţi să fie înlocuiţi în noua generaţie de către descendenţi proprii mai slabi. utilizat cu precădere în probleme de optimizare multicriterială.5 Tratarea restricţiilor Fiind date funcţiile: f. algoritmul poate fi suplimentat printr-o formă de elitism.... în scopul accelerării convergenţei algoritmului evolutiv. Acest fenomen nu este de dorit. 41. Un alt mecanism de elitism. indivizi performanţi din generaţiile intermediare ar putea fi pierduţi în urma aplicării operatorilor genetici specifici (recombinare. Pentru a nu se pierde soluţii bune prin trecerea de la o generaţie la alta.. inversiune). a unei populaţii suplimentară de “elite” – denumită arhivă sau memorie externă. g m . dat fiind faptul că procesul de convergenţă a populaţiei înspre soluţia optimă este încetinit. hk : R n → R 172 .1. Deşi prin implementarea acestei forme de elitism. în mod explicit.

k  { } Formal o astfel de problemă se notează (vezi notaţia (1) ).j =1.. m hi . dacă o soluţie x violează o restricţie gi atunci.2 . Funcţia criteriu este modificată prin adăugarea unor termeni suplimentari modelând restricţiile. j = 1. Astfel. respectiv minimizarea funcţiei P sau maximizarea funcţiei: P' = 1 1 +P (4) 42 Optimizare multimodală 173 ... restricţiile de inegalitate. respectiv.2 . i = 1... (3) Problema de optimizare cu restricţii se va reduce astfel la o problemă clasică de optimizare..m  i h j ( x ) ≥ 0 .2.. funcţia criteriu va fi 2 amendată (penalizată) cu un factor proporţional cu ( g i ( x ) ) ..să se determine punctele de minim ale funcţiei f relative la mulţimea: F = x ∈ R n : g i ( x ) = 0. m . Cea mai populară metodă de tratare a restricţiilor este metoda funcţiilor de penalizare. a < 0 t(a) =  0..... a ≥ 0 ..i = 1. i = 1.h j ( x ) ≥ 0. (1) Funcţiile: g i . (2) Problemei de minim îi vom ataşa următoarea funcţie de penalizare: P ( x ) = f ( x ) + ∑( g i ( x ) ) + ∑ t h j ( x ) 2 i =1 j =1 m k [( )] 2 .2.i =1.. Pentru a trata restricţiile inegalităţii se va considera o funcţie: t:R→R: a. k f ( x ) − min   sub restri ctiile  g ( x ) = 0 ... p din formula (1) reprezintă restricţiile de egalitate.

Problemele de optimizare în care este formulată explicit cerinţa determinării multiplelor optime ale unei funcţii (şi nu doar a optimului global) se numesc probleme de optimizare multimodală. Din aceste considerente. pentru a permite obţinerea multiplelor optime ale obiectivului de optimizat. Revenind la sus-amintitul echilibru explorare-exploatare. De aceea s-au căutat metode care să ne furnizeze toate optimele funcţiei obiectiv. Problemele reale au în majoritatea cazurilor ca rezultat mai multe soluţii. Metodele evolutive au fost dezvoltate şi în acest sens. Principalul neajuns al algoritmilor evolutivi standard constă în pierderea diversităţii populaţiei fapt care suprimă posibilitatea determinării multiplelor optime. Pe de alta parte. de obicei. Diversitatea populaţiei reprezintă un factor important in economia dezvoltării şi aplicării algoritmilor evolutivi în probleme de optimizare multimodală. zonele promiţătoare trebuie sa fie exploatate eficient pentru a furniza soluţii bune. mai multe puncte de optim (maxim sau minim). funcţiile ce modelează matematic un fenomen sau o stare au. Paragraful următor descrie câteva metode de eliminare a acestui inconvenient. Pe de o parte. În majoritatea situaţiilor reale. în cazul problemelor de optimizare multimodală acest echilibru devine o cerinţă fundamentală. cercetarea înscrisă arealului calculului evolutiv se focalizează şi pe acestă direcţie: căutarea de noi metode evolutive capabile să trateze cu succes 174 . Algoritmul evolutiv clasic se confruntă cu următoarea dificultate majoră: gradul redus al diversităţii populaţiei sau convergenţa rapidă înspre optimul global sau un optim local din spaţiul de căutare nu permite captarea multiplelor optime ale problemei de rezolvat. corespunzătoare optimelor problemei.De cele mai multe ori determinarea optimului global al unei funcţii nu este suficientă în contextul problemei considerate. populaţia trebuie să conţină indivizi reprezentanţi pentru multiplele zone promiţătoare ale spaţiului de căutare. Un avantaj al determinării soluţiilor multiple pentru o problemă dată constă în posibilitatea alegerii finale a uneia dintre acestea în concordanţă cu necesităţile date de context. Acestea pot fi soluţii optime sau doar soluţii bune (aproape optimale).

Fenomenul natural de coexistenţă şi evoluţie a mai multor specii în aceiaşi zonă (nişă ecologică) este explicat prin partajarea resurselor existente în acea zonă. ce verifică următoarele axiome: . Într-un spaţiu în care coexistă mai multe puncte de optim. algoritmul genetic trebuie îmbogăţit cu un mecanism prin care în populaţie vor coexista subpopulaţii corespunzătoare tuturor punctelor de optim. tehnica algoritmului genetic standard va provoca de cele mai multe ori convergenţa populaţiei înspre un punct de optim. 42. ignorându-le pe celelalte. Propusă de Goldberg.s(0) =1 - lim s(d) = 0 d→∞ Pentru a stabili gradul de partajare dintre oricare doi indivizi se va defini în prealabil o funcţie distanţă.1] .1. Acesta se cuantifică printr-o funcţie s: R →[0.. respectiv. converge înspre un punct de optim. Fiecare subpopulaţie tinde să ocupe o anumită zonă a spaţiului de căutare.. numită funcţie de partajare..problema optimizarii multimodale. Aceasta poate fi după caz: 175 .1 Tehnica Sharing Tehnica Sharing este o procedură care însoţeşte algoritmul evolutiv în problemele de optimizare multimodală. xn } . Se consideră o populaţie de n indivizi: P = { x1 . Într-o manieră identică. Paragrafele următoare descriu cele mai cunoscute metode de menţinerea diversităţii populaţiei din literatura de specialitate.s este descrescătoare . Această partiţionare a populaţiei este sugerată de conceptul biologic al nişelor ecologice. x2 .. Partajarea resurselor între indivizii unei nişe este modelată matematic printr-o modificare a funcţiei de performanţă corespunzătoare acestora. Între oricare indivizi ai populaţiei se poate stabili un grad de împărţire a resurselor. indivizii populaţiei care sunt situaţi în aceiaşi nişă vor partaja resursele acesteia. Pentru a permite populaţiei să evolueze înspre multiplele optime. această tehnică este inspirată de conceptele naturale de nişă ecologică şi de evaluare partajată a resurselor.

indivizii apropiaţi împart în mare măsură resursele zonei ocupate în timp ce indivizii depărtaţi au practic un grad de partajare aproape nul. Astfel. O funcţie de partajare ce verifică axiomele cerute este următoarea: Parametru a se numeşte diametrul nişei şi semnifică distanţa maximă dintre doi indivizi pentru care aceştia nu mai sunt consideraţi ca apartenenţi ai aceleiaşi nişe. Valoarea nişei mi corespunzătoare unui individ oarecare din vecinătatea V este mică în raport cu valoarea nişei corespunzătoare unui individ dintr-o zonă aglomerată. acest lucru explicându-se prin faptul că aportul gradelor ne-nule la valoarea nişei este relativ mic. probabilitatea de selectare a indivizilor dintr-o vecinătate săracă devine mai mare. distanţa Levenstein. valoarea funcţiei de evaluare partajată.  dac ă d < a dacă ≥a (5) f * ( xi ) = formula: f ( xi ) mi (6) în care cantitatea mi semnifică valoarea nişei şi se calculează după mi = ∑s (d ( xi . Reciproc. şi reciproc. s(d) =  a 0 .distanţa Euclidiană. probabilitatea de 176 . x j )) j =1 n (7) Funcţia de evaluare astfel modificată se va numi funcţie de evaluare partajată. respectiv. Pentru a evidenţia maniera în care sunt menţinute în populaţie soluţiile optimale se consideră cazul următor: Vecinătatea V a unei soluţii optimale este relativ săracă în indivizi. Prin calcularea funcţiei de evaluare partajată vor fi favorizaţi indivizii acestei zone. etc. Cele trei axiome prezentate mai sus pot fi explicate după cum urmează: cu cât distanţa dintre indivizi este mai mică cu atât gradul de partajare este mai mare. Fie acestă distanţă d. Funcţia de evaluare se va modifică după formula:  1 1 − d. pentru a se evita convergenţa prematură spre puncte de optim corespunzătoare unor zone aglomerate. distanţa Hamming.

42. Fiecare regiune optimă imprimă indivizilor apartenenţi o anumită probabilitate de selecţie pentru încrucişare. provocând în acest mod o convergenţă prematură. ideea de bază a tehnicii Crowding este aceea prin care un nou descendent nu îl va înlocui pe părintele său. Simplificat. Diversitatea populaţiei este menţinută printr-un mecanism de înlocuire a indivizilor asemănatori.1.1. 42. Gradul de asemănare dintre oricare doi indivizi se măsoară printr-o funcţie distanţă stabilită în concordanţă cu contextul problemei respective. Scopul acestei tehnici este de a provoca indivizii populaţiei să se stabilească în jurul celor mai promiţătoare regiuni ale spaţiului de căutare. corespunzătoare multiplelor puncte de optim. respectiv exploatarea spaţiului soluţiilor posibile. Este evidentă împiedicarea zonelor aglomerate de a se dezvolta.1. În populaţie va fi menţinută diversitatea prin favorizarea selecţiei indivizilor din zone pe cale de dispariţie.1.2 Tehnica Crowding Tehnicile de aglomerare (crowding) au fost propuse de De Jong [1.2] este inspirată de acelaşi principiu al partajării resurselor în cadrul unei nişe ecologice. O 177 . Se stabileşte astfel un echilibru între cele două concepte: explorarea.2].1. fapt pentru care celorlalţi indivizi ai subpopulaţiei li se vor atribui performanţe nule. Spre deosebire de sharing.selecţie a indivizilor din aceste zone este mai mică prin modificarea adusă funcţiei de evaluare. ci va înlocui cel mai asemănător individ dintr-un grup de alţi indivizi ai populaţiei. tehnica clearing stabileşte un învingător al fiecărei subpopulaţii (cel mai performant individ din subpopulaţie) care va prelua toate resursele existente ale nişei. Numărul de indivizi concentraţi în jurul unui punct de optim este proporţional cu puterea de atracţie a acelui punct.1.3 Tehnica Clearing Tehnica Clearing [1. Din acest punct de vedere există similitudini evidente între tehnica clearing şi sharing. Grupul de indivizi este stabilit în mod aleator şi dimensiunea grupului este un parametru specific tehnicii: factorul de aglomerare.

1. în scopul menţinerii multiplelor zone de interes a spaţiului de căutare. se consideră că fiecare individ dominant a preluat în întregime resursele nişei sale. etc. Folosind o măsură a similarităţii (distanţa Hamming.formă de generalizare a tehnicii Clearing implică acceptarea mai multor câştigători în fiecare subpopulaţie. În natură.) se vor stabili subpopulaţiile populaţiei curente şi ulterior. Spre exemplu.4 Tehnica Speciation Tehnica Speciation reprezintă de asemenea o procedură de tip niching. Performanţele indivizilor dominanţi se păstrează în timp ce performanţele celorlalţi indivizi vor fi resetate la valoarea 0. având o semnificaţie similară diametrului nişei definit în procedura sharing. Toţi indivizii dominanţi ai speciilor vor fi conservaţi prin copierea nealterată a acestora în noua generaţie. Principiul algoritmului este de a partiţiona populaţia în mai multe subpopulaţii de indivizi pe baza unei măsuri a similarităţii acestora. 42. Evoluţia şi diferenţierea speciilor are loc în perioade mari de timp.1. indivizii câştigători ai fiecărei subpopulaţii. inspirată de fenomenul natural al apariţiilor speciilor. cu capacitate de reproducere. Protejarea naturală a trăsăturilor specifice unei specii este datorată imposibilităţii combinării materialului genetic provenit de la specii diferite. Mecanismul de Clearing se aplică între etapele de evaluare şi selecţie ale algoritmului genetic. 178 . algoritmul SCGA (Species Conserving Genetic Algorithm) [1. exploatând conceptul de specie. procesul de speciation apare în cazul organismelor similare. care evoluează şi devin prea diferite pentru a mai putea partaja informaţia genetică. Prin aceasta.2] este un algoritm evolutiv înzestrat cu un mecanism suplimentar în scopul menţinerii multiplelor subpopulaţii corespunzătoare optimelor problemei.1. Fiecare dintre aceste subpopulaţii are semnificaţia unei specii şi este construită în jurul unui individ dominant: sămânţa speciei. Nişele sunt stabilite pe baza unei funcţii de măsurare a distanţei între indivizi şi a unui parametru suplimentar: diametrul clearing . distanţa Euclidiană.

2. literatura de specialitate oferă funcţii de test construite în scopul confruntării algoritmilor evolutivi cu variate obstacole.1.Fiecare specie se defineşte ca o mulţime de indivizi cu aceleaşi caracteristici.0011 Funcţia Ratsrigin 2 2 f ( x1 .0054 f(-2. Unul dintre principalele dezavantaje ale tehnicii decurge din dificultatea alegerii unor valori potrivite ale distanţei speciilor. -3. În optimizarea multimodală. fiecare specie este o subpopulaţie a populaţiei curente pentru care distanţa dintre oricare doi indivizi este mai mică decât distanţa speciei. Din aceste considerente. Pentru identificarea speciilor este necesară definirea unei funcţii de măsurare a distanţei şi a unui parametru suplimentar (distanţa speciei) indicând valoarea maximă a distanţei între oricare doi indivizi pentru a mai fi consideraţi similari. se practică o evaluare a comportamentului algoritmului dezvoltat pentru probleme de test cunoscute. 3. Practic.85) = 0.0085 f(3.58.28) = 0. pentru care se cunosc dificultăţile cu care se confruntă algoritmul. 42.5 Funcţii de test Dezvoltarea unui algoritm evolutiv de optimizare numerică necesită o testare a performanţei acestuia şi stabilirea specificului problemelor pe care le rezolvă cu succes.13) = 0. -1. Câteva dintre cele mai populare funcţii multimodale sunt prezentate în continuare: Funcţia Himmelblau 2 f ( x1 . Acest parametru este stabilit de către factorul uman şi valoarea sa influenţează în mod semnificativ rezultatul algoritmului.2) = 0 f(-3. x2 ) = 20 + x1 + x2 − 10 ⋅ cos( 2 ⋅ π ⋅ x1 ) − 10 ⋅ cos( 2 ⋅ π ⋅ x2 ) 179 . Această funcţie are 4 minime globale în domeniul considerat şi poziţia acestora este cunoscută: f(3.81.78. x2 ) = x12 + x2 − 11 + x1 + x2 − 7 2 ( ) ( ) 2 Domeniul de căutare: − 5 ≤ xi ≤ 5 . i=1.

.. distribuite echidistant în domeniul de căutare.. i=1.10] Funcţia Schwefel n i =1 f ( x1 . pe domeniul [-10. Figura 17 Graficul funcţiei Griewank.... xn ) = 418 . .12 ..9829 ⋅ n + ∑ − xi ⋅ sin ( ( x )) i Domeniul de căutare: − 500 ≤ xi ≤ 500 ..Domeniul de căutare: − 5..n. x2 .n. xn ) = n ( x − 100 ) n 1 2 ⋅ ∑ ( xi − 100 ) − ∏ i +1 4000 i =1 i i =1 Domeniul de căutare: − 500 ≤ xi ≤ 500 . x2 ... Figura 16 Graficul funcţiei Rastrigin pe domeniul [−2 2] ×[−2 2] Funcţia Griewank f ( x1 . pentru două variabile..2. i=1. 180 .. . Această funcţie de test are 120 de minime locale şi un optim global. i=1.12 ≤ xi ≤ 5.10]x[-10....

181 . neînzestrat cu mecanisme de menţinere a diversităţii (de ex.20. Figura 19 Populaţia iniţială generată aleator.1] Funcţia f prezintă 3 puncte de maxim în domeniul prestabilit. populaţia converge înspre un singur optim al problemei. Cazul 1. pe domeniul [-500. ignorând celelalte soluţii (Figurile 19.21).500] Exemplu: Comportamentul unui algoritm genetic în cazul unei probleme de optimizare multimodală.500]x[-500. În acest prim caz. Am considerat următoarea problemă de maximizare: Maximizează f ( x ) = sin ( 6 ⋅ π ⋅ x ) unde: x ∈[0. Figurile următoare înfăţişează populaţia de indivizi la diferite intervale de timp. sharing) .Figura 18 Graficul funcţiei Schwefel pentru două variabile. evoluată printr-un algoritm genetic standard.

Cazul 2: Figurile următoare prezintă comportamentul unei populaţii evoluate printr-un algoritm genetic înzestrat cu mecanism suplimentar de menţinerea diversităţii (sharing).2 0.5 -1 -1.4 0.5 1 0. se formează subpopulaţii corespunzătoare zonelor de interes din spaţiul de căutare. Algoritm Genetic fără sharing 1. Se observă că după 50 de generaţii.5 0 0. 182 .8 1 Figura 21 Populaţia după 100 de generaţii determină un singur punct de optim.6 0. după 100 de generaţii. iar.Figura 20 Populaţia după 50 de generaţii.5 0 -0. populaţia se stabilizează în multiplele optime ale funcţiei.

Figura 22 Populaţia iniţială Figura 23 Populaţia după 50 de generaţii Figura 24 Populaţia după 100 de generaţii 43 Optimizare multicriterială Algoritmii Evolutivi pentru optimizarea multicriterială. reprezintă una dintre cele 183 . datorită avantajelor multiple pe care le dovedesc.

l=1. 43. Fiecare funcţie obiectiv reprezintă descrierea matematică a criteriilor de performanţă care sunt în multe situaţii în conflict.p Considerăm problema de minimizare P cu următoarele cerinţele (problema de maximizare se formulează analog): Să se determine vectorul: *  x1    *  x2  * x =     x*   n (11) care satisface restricţiile (9). i =1.. 184 .. Astfel.2 . . .. Secţiunile următoare definesc conceptele principale ale Optimizării evolutive multicriteriale şi enumără elemente specifice ale acestui subiect.1 Problema generală de optimizare multicriterială Optimizarea multicriterială (denumită şi optimizare multiobiectiv sau optimizare vectorială) poate fi definită ca o problemă de căutare a unui vector funcţie ale cărui elemente reprezintă funcţiile criteriu (obiective).2.(10) şi minimizează funcţia vector:  f1 ( x )     f2 ( x)  f ( x) =       f ( x)  k   (12) unde x reprezintă vectorul de variabile decizie.k şi restricţiile g i ( x ) ≥ 0 . D ⊆ R n . termenul de optimizare este folosit în sensul determinării unei soluţii care ar da valori acceptabile tuturor funcţiilor obiectiv. i =1.2 ..mai puternice direcţii actuale de cercetare.m (8) (9) (10) hi ( x ) = 0 . Problema generală de optimizare multicriterială este formulată mai jos: Fie k funcţii obiectiv: f l : D → R .1.

. a valorilor ce satisfac constrângerile (9) şi (10).. } p  Cu alte cuvinte.k. Se consideră problema de minimizare P cu k obiective. * * * valorile particulare x1 .1 Optim Pareto Cea mai populară noţiune de optimalitate a fost introdusă de Vilfredo Pareto la sfârşitul secolului XIX. } hj ( x ) = 0. din moment ce rar întâlnim situaţia următoare: practic situaţii de acest tip se întâlnesc foarte rar. soluţia dorită ar fi x* ..2. dar ( ) să aibă minim în F într-un punct comun x* .2. k ... k În situaţia descrisă prin relaţia (13).2.1.. încât toate f l ( x ) *  (13) ∀x ∈ F . trebuie stabilit o normă clară pentru a determina ce ar putea fi considerată soluţie “optimală”. f i x ≤ f i ( x ) . . i ∈ {1... Datorită acestui neajuns.2. … . i = 1.min f ( x ) x ∈ D   m  gi ( x ) ≥ 0 . xn ce produc valorile optime Problema de minimizare (P) se formulează astfel: ale funcţiilor obiectiv f l .... k şi ∃ =1 . pentru fiecare i = 1.2..1. astfel încât f j ( x ) < f j x * . Definiţie 3: Spunem că un vector x * ∈ F de variabile decizie este Pareto optimal dacă nu există un alt vector x ∈ F astfel încât: f i ( x ) ≤ f i ( x * ) ..2 ( ) 185 . suntem interesaţi în determinarea din mulţimea. notată F. j . Problema care apare este aceea că noţiunea de optim nu este clar conturată în acest context. x2 .. j ∈ {1.. 1. Condiţiile (9) şi (10) delimitează regiunea soluţiilor posibile F... l=1.

doar vectorii (2.. Vectorii x * ce corespund soluţiilor incluse în mulţimea Pareto se numesc nedominaţi.1..1) sunt nedominaţi în sens Pareto.. Se doreşte minimizarea celor două criterii. i ∈ {1.2 .2. nu o soluţie ci o mulţime de soluţii numită mulţime optimală Pareto. Vectorii nedominaţi. }. . determinaţi de soluţiile optimale Pareto formează frontul Pareto.2 Vector ideal Fie F ...Această definiţie formală exprimă faptul că vectorul x * este Pareto optimal dacă nu există nici un vector posibil de variabile decizie x ∈ F .2. care ar descreşte unele criterii fără să cauzeze o creştere simultană a cel puţin unui criteriu.1.. Din mulţimea de vectori reprezentaţi. Definiţie 4: (condiţia de slabă nedominare) Spunem că un vector x * ∈ F de variabile decizie este slab nedominat Pareto dacă nu există un alt vector x ∈ F astfel încât: f i ( x ) < f i x* .. ( ) Figura 25 Exemplu: Optimizare multicriterială. pentru fiecare i =1. } } m p Presupunem problema de minimizare cu k obiective descrisă în formula (14): 186 .3) şi (4. hj ( x ) = 0.. deoarece nu există alţi vectori care să fie mai buni decât aceştia în ambele criterii implicate. j ∈ {1. 1. Acest concept introdus ne va furniza.mulţimea valorilor ce satisfac constrângerile (9) şi (10): F = { x ∈ D : gi ( x ) ≥ 0 .k .

x n ( i ) [ f i 0 := f i x 0 ( i ) = min f i ( x ) x∈F Se notează cu f 0 ( ) ] T = f10 . În general Algoritmii evolutivi au o aplicabilitate bună în optimizare. înspre dezvoltarea unor metode nedeterministe apte să ofere soluţii aproximative. în mod implicit. f k0 [ ] T . . f 20 . Un astfel de algoritm oferă soluţiile problemelor considerate indiferent de forma frontului Pareto: convex.k se consideră că 0 ) 0 x 0( i ) = x 1 ( i ) . 43.1.. Un algoritm evolutiv. x n ) ∈ F .2 . Din aceste considerente. . conduc. dezvoltarea tehnicilor evolutive este direcţionată şi înspre optimizarea multicriterială.x 0( i2.  s-a determinat minimul: (14) Pentru fiecare obiectiv separat f i .. la o singură rulare conduce populaţia de soluţii posibile înspre frontul Pareto. discontinuu... Algoritmii evolutivi nu pretind funcţiilor obiectiv îndeplinirea unor condiţii suplimentare fapt care extinde aplicabilitatea acestor tehnici înspre variate tipuri de probleme de optimizare multicriterială. f 2(x ). .. oferind în majoritatea cazurilor o aproximare bună a frontului Pareto. f (x ) = (f 1(x ).. Algoritmii evolutivi oferă soluţii multiple pentru problema considerată fapt care constituie un argument favorabil exploatării acestor tehnici în optimizarea multicriterială. concav. complexitatea ridicată a multor probleme reale multiobiectiv.. x 2.vectorul ideal. Algoritmii Evolutivi se dovedesc a fi eficienţi în rezolvarea problemelor de acest gen. Aceştia s-au dovedit a fi utili în optimizarea unicriterială şi optimizarea multimodală.2 Avantaje şi dezavantaje ale algoritmilor evolutivi de rezolvarea problemelor de optimizare multicriterială Specificul problemelor de optimizare multicriterială. reuşind astfel să ofere nu doar o 187 . unde soluţia dorită este în fapt o mulţime de soluţii optimale de compromis. i =1. f k (x )) − min (P ) :  unde x = (x 1. etc..

43. numărul maxim de generaţii produse.Metodele non-Pareto – sunt metode evolutive care nu folosesc conceptul de optimalitate Pareto în evaluarea calităţii indivizilor populaţiei curente. conceptul de optimalitate Pareto.3 Clasificarea multicriterială metodelor evolutive de optimizare Cel mai popular concept de optimalitate în cazul problemelor de optimizare multicriterială. probabilitatea de recombinare sau presiunea de selecţie sunt doar câţiva dintre parametrii cu care este înzestrat un algoritm de acest gen. timpul de execuţie al acestor algoritmi este mai mare. grad ce ar putea fi considerat insuficient în anumite contexte.singură soluţie aşa cum tehnicile tradiţionale o fac. În cele ce 188 . . De asemenea. aspect constituind un alt dezavantaj al utilizării algoritmilor evolutivi. 43. stă la baza clasificării tehnicilor evolutive multicriteriale în două categorii: . Algoritmi evolutivi sunt parametrizaţi. Inconvenientele Algoritmilor evolutivi multicriteriali decurg în principal din gradul de aproximare a frontului real Pareto. Dimensiunea populaţiei. probabilitatea de mutaţie. această situaţie reprezentând un dezavantaj major. ci o mulţime de soluţii optimale prin care este aproximat frontul real Pareto. în mod explicit. de conceptul de optimalitate în sens Pareto pentru evaluarea performanţelor infivizilor populaţiei curente. în anumite cazuri.Tehnici Pareto – sune acele tehnici evolutive destinate optimizării multicriteriale care fac uz. Rezultatelor obţinute prin utilizarea tehnicilor evolutive sunt puternic dependente de parametrii menţionaţi. respectiv.4 Tehnici de agregare Tehnica de combinare a funcţiilor obiectiv într-o singură funcţie este denumită în mod curent metoda agregării funcţiilor şi este aplicată cu un relativ succes în probleme în care comportamentul funcţiilor obiectiv este mai mult sau mai puţin cunoscut.1.1.

pozitive. problema se poate formaliza astfel: min ∑wi f i ( x ) i =1 k (1 ) (2 ) (3 ) 0≤wi ≤ 1 De obicei se consideră.1. Unul dintre neajunsuri ar fi acela al modului de determinare a valorilor ponderilor în cazul în care nu avem suficiente informaţii despre problemă. Dacă mulţimea soluţiilor posibile este convexă.urmează sunt prezentate câteva dintre cele mai populare tehnici de agregare. Aceste valorile sunt încorporate în problemă sub forma unor restricţii adiţionale. fiecărei funcţii obiectiv îi este atribuită o valoare “scop” ce trebuie atinsă. Această metodă a fost prima tehnică dezvoltată pentru generarea soluţiilor în optimizarea multicriterială. wi numită pondere. Convenind că este impusă determinarea minimului. [1. Metoda programării scopului În această abordare [1. ∑w i =1 k i =1 Ponderile wi reprezentă importanţa relativă a obiectivelor.1.2]) constă în ataşarea fiecărui criteriu f i a unei valori subunitare.1. Este o metodă eficientă computaţional şi generează soluţia puternic non-dominată. Funcţia obiectiv va încerca să minimizeze deviaţiile absolute ale obiectivelor 189 .2]. Problema de optimizare multicriterială se transformă într-o problemă de optimizare unicriterială ce va fi rezolvată folosind metode specifice acestei clase de probleme. atunci poate fi găsită o mulţime completă de soluţii Pareto.1. În caz contrar această metodă nu garantează obţinerea întregii mulţimi de soluţii Pareto. Metoda ponderilor Metoda ponderilor (vezi de ex.

de la scop. Cea mai simplă formalizare a acestei tehnici este următoarea:
min ∑ f i ( x ) − T i
i =1 k

(4

) x ∈F Criteriul este acela de a minimiza suma valorilor absolute a diferenţelor dintre valorile “ţintă” impuse şi valorile obţinute. Inconvenientul principal este acela al determinării eficiente a valorilor “ţintă” Ti în situaţia în care contextul problemei nu ne oferă suficiente informaţii în acest sens. Metoda atingerii scopului Principiul de bază al acestei metode este de a considera doi vectori: un vector de ponderi w 1,w 2,..., w k mai bună soluţie de compromis problema următoare: Minimizează şi un vector scop
b1,b2,..., bk pentru funcţiile obiectiv f 1, f 2,. .., f k , urmând ca cea

x * să se determine rezolvând

α

(5) (6) (7)

g j ( x ) ≤ 0 , j = 1,2,..., m (restricţiile inegalităţii)

f i ( x ) ≤ bi + α ⋅w i , i = 1,2,..., k

unde: α reprezintă o variabilă scalară ne-restricţionată de semn şi ponderile îndeplinesc condiţia:

∑w
i =1

k

i

= 1.

Dacă anumite ponderi sunt nule, w i = 0 , i = 1,2,..., k , atunci limita maximă a obiectivului f i devine chiar bi . Metoda ε-restricţiilor Metoda ε-restricţiilor [1.1.1.2] constă în optimizarea (ex. minimizarea) unei funcţii obiectiv (de regulă, cea mai preferată sau cea considerată principală), considerând celelalte funcţii ca restricţii legate de anumite praguri permise εi , i = 1,2,..., k . Nivelele εi sunt

190

apoi alterate pentru a genera întreaga mulţime optimală Pareto. Metoda este descrisă astfel: A. Determină minimul celei de-a r-a funcţie obiectiv, respectiv
* determină x astfel încât:

fr ( x* ) = min fr ( x) x∈ F

(8 ) (9 )

f i ( x ) ≤ ε i , i = 1,2,..., , i ≠ r . k

Cu ε i se notează valorile presupuse pentru fiecare funcţie obiectiv, valori pe care nu dorim să le depăşească acestea. B. Se repetă pasul A pentru diferite valori ale pragurilor i până când se găseşte o soluţie satisfăcătoare. Observaţie: Este uneori necesar să se repete procedura de mai sus pentru diferite valori ale indicelui r. Pentru determinarea valorilor pragurilor εi pentru fiecare funcţie obiectiv vectorul optim x i* , astfel încât f i x i* se procedează astfel:
fi ,
i = 1,2,..., k , se determină

ε

( )

este minim. Se consideră apoi

că limita inferioară a valorii pragului εi este dată de f i x i*
* superioară, de f i x r , pentru i = 1,2,..., k , i ≠ r :
* f i x i* ≤ ε i ≤ f i x r , i = 1,2,..., , i ≠ r . k

( )

( )

şi cea

( )

( )

(10 )

Metoda evolutivă descrisă foloseşte ca funcţie de evaluare a calităţii soluţiilor posibile, funcţia criteriu principală. Celelalte funcţii criteriu sunt considerate restricţii cu o valoare fixă. Algoritmul va fi rulat în mod repetat pentru diferite valori ale restricţiilor, astfel încât, problema de optimizare multicriterială se reduce la o problemă de optimizare unicriterială cu restricţii. 43.1.5 Tehnici non-agregare

Pentru a depăşi dificultăţile invocate în metodele bazate pe agregarea funcţiilor obiectiv, multe lucrări consacrate domeniului au urmărit dezvoltarea unor metode alternative. Aceste metode sunt

191

bazate pe proceduri imprimând o anume dinamică a populaţie sau proceduri ce tratează în mod diferit obiectivele implicate. Câteva dintre cele mai populare metode de acest gen sunt prezentate în cele ce urmează. Metoda VEGA Abordarea lui Schaffer, denumită VEGA (Vector Evaluated Genetic Algorithm), a fost propusă în [1.1.1.2]. Principiul acestei metode este acela că fiecare componentă a vectorului funcţie (fiecare funcţie obiectiv) corespunde unei sub-populaţii specifice populaţiei curente de indivizi. În aceste condiţii, fiecare sub-populaţie va converge către optimul corespunzător funcţiei obiectiv ataşate. Toate sub-populaţiile au aceiaşi dimensiune şi mecanismul de selecţie este independent pentru fiecare sub-populaţie în concordanţă cu funcţia obiectiv corespondentă. Operatorul de încrucişare nu ţine cont de limitele sub-populaţiilor. Avantajul major al metodei propuse de Schaffer constă în simplitatea sa. Însă, după cum a observat şi autorul metodei, soluţiile generate aplicând metoda VEGA sunt doar local non-dominate şi nu în mod necesar global non-dominate. Acest impediment este cauzat de metoda de selecţie aleasă, prin care, indivizii sunt selectaţi în funcţie de un singur criteriu. De altfel, în populaţie ar putea să apară soluţii de performanţă medie şi aceste soluţii se pot dovedi folositoare pentru soluţia de compromis căutată, însă sub schema de selecţie propusă, şansele de supravieţuire a acestor soluţii sunt reduse. Tehnica de selecţie aplicată va prefera doar soluţiile ce se remarcă în raport cu un criteriu. În pofida acestui dezavantaj major precizat mai sus, abordarea lui Schaffer este folosită cu succes şi se dovedeşte a fi simplu de implementat. Metoda optimizării ierarhice (ordonarea lexicografică) Metoda optimizării ierarhice (vezi de ex. [1.1.1.2]) consideră obiectivele ordonate în raport cu importanţa dată acestora. Soluţia optimă x* este apoi obţinută prin minimizarea funcţiilor obiectiv

192

începând cu cea mai importantă concordanţă cu ordinea fixată.

şi

continuând

progresiv

în

Convenim că indicele funcţiilor obiectiv

fi ,

i =1,2 ,...,k

reprezintă atât numărul obiectivului cât şi eticheta de ordine important, respectiv, cel mai puţin important criteriu. Prima problemă este formulată astfel: Minimizează f 1 ( x )
g j ( x ) ≤ 0 , j = 1,2,..., m

(importanţa obiectivului). Astfel, f1 ( x ) şi f k ( x ) reprezintă cel mai

(11 ) (12 )

* * Fie x 1 soluţia primei probleme şi f 1* = f 1 x 1 .

( )

A doua problemă este formulată: Minimizează f 2 ( x )
g j ( x ) ≤ 0 , j = 1,2,..., m

(13 ) (14 ) (15 )

f 1 ( x ) = f 1*
* * Fie x 2 soluţia problemei şi f 2* = f 2 x 2 .

( )

A i-a problemă este formulată: Minimizează f i ( x )
g j ( x ) ≤ 0 , j = 1,2,..., m

(16 ) (17 ) (18 )

f h ( x ) = f h* , unde h = 1,2,...,i - 1
Fie x i* soluţia problemei i.

193

pentru a determina o reproducere nu atât de aleatoare. x * . problema de optimizare extinzându-se la o problemă cu mai mult de două obiective (numărul de obiective este egal cu numărul de genuri considerate). Ulterior s-a incorporat conceptul de gen/sex în algoritmul genetic. În populaţia iniţială. Ideea este de a modela atracţia sexuală observabilă în natură. În această situaţie. numărul indivizilor de primul gen este egal cu numărul indivizilor de genul al doilea. reprezentată de soluţia ultimei probleme (problema a k-a). de acelaşi gen. generat aleator. este considerată soluţia dorită a problemei generale. O noutate a acestei metode este aceea că permite încrucişarea generalizată a mai multor părinţi. unde genul este stabilit prin “naştere”. Folosirea genului pentru identificarea obiectivelor Este o abordare asemănătoare tehnicii VEGA. dar în care conceptul de gen este folosit pentru a face distincţia între cele două obiective ale unei probleme de optimizare bi-criterială. La final. În această abordare este permisă doar reproducerea indivizilor de genuri diferite. numărul de sexe (genuri) nu este limitat la două. Reproducerea multi-părinţi constă în a selecta câte un părinte din fiecare gen şi de a genera un unic descendent pentru care fiecare părinte îşi aduce contribuţia genetică într-o mai mare sau mai mică măsură. însă pe parcurs acest echilibru nu se va păstra datorită aplicării operatorilor genetici. 194 . Indivizii sunt evaluaţi folosindu-se mai multe funcţii de performanţă corespunzătoare genurilor existente. această listă conţine soluţiile optimale Pareto. dar într-un mod mai general. De-a lungul procesului iterativ descris de algoritmul genetic se va reţine şi actualiza periodic o listă de soluţii ne-dominate. Metoda foloseşte strategii evolutive pentru anumite forme de atracţie sexuală care ar modifica ulterior maniera de reproducere a indivizilor populaţiei. Genul noului individ este transmis de către părintele al cărui aport genetic transferat a fost cel mai mare.* Soluţia finală x k . La fiecare generaţie cel mai slab individ corespunzător unui gen este eliminat şi înlocuit din populaţie cu un altul.

Dacă problema este de minimizare a tuturor criteriilor.1. Pentru fiecare i ∈ I se vor determina valorile: zi1 ( x) = z i2 ( x ) = fi ( x) − fi 0 fi 0 (19 ) (20 ) fi ( x ) − fi0 fi ( x ) cu observaţia că ∀x ∈ F ... k } .2]) este prezentată în continuare... [1. Se defineşte următorul vector: T (21 z ( x ) = [ z 1 ( x ) .2.. diferind modul în care sunt definite subpopulaţiile corespunzătoare multiplelor obiective. Se consideră vectorul de funcţii criteriu:  f1( x )     f2( x )  f (x) =  ..1. z 2 ( x ) . z i ( x ) ) { } 195 . atunci valorile (21) şi (20) reprezintă incrementele relative ale funcţiilor obiectiv. f i ( x ) ≠ 0 . Fie f i 0 valorile optime ale funcţiilor criteriu determinate în mod individual pentru fiecare criteriu. ∀x ∈ F ... evitând încrucişările aleatoare între indivizii sub-populaţiilor diferite permisă de abordarea lui Schaffer.z k ( x ) ] ) 1 2 (22 ∀i ∈ I : z i ( x ) = max z i ( x ). Diferenţa majoră constă în folosirea încrucişării “panmitice” care impune anumite restricţii de încrucişare.Tehnica genurilor pentru identificarea obiectivelor este în mare o variantă a abordării VEGA. Abordarea Ponderală Min-Max Abordarea ponderală Min-Max (vezi de ex.     f (x)  k  şi notăm I = {1.

astfel încât ∀ ∈X k −1 satisface pasul (k-1) atunci: x v k x * = m i n m a x{ z i ( x ) } .i 2} unde i 2 reprezintă indicele pentru care z i ( x ) este maximal la pasul 2).  x Dacă există o mulţime X r −1 ⊂ F .  Dacă există o mulţime X k −1 ⊂ F .Optimul min-max se defineşte astfel: Definiţie: Spunem că x * ∈ F este optimal min-max dacă ∀x ∈ F are loc următoarea recurenţă: * 1) v 1 ( x ) = min max{ z i ( x )} x ∈F i ∈I I 1 = { i 1} unde i 1 reprezintă indicele pentru care z i ( x ) este maximal la pasul 1). astfel încât ∀x ∈ X 1 satisface pasul 1) atunci: { v 2 x * = m i n m a xz i ( x ) } 2) x ∈ X1 i ∈ I \ I 1 I 2 = { i 1. Dacă există o mulţime X 1 ⊂ F . astfel încât ∀ ∈X r −1 ( ) satisface pasul (r-1) atunci: v r) r (x ) = * m i n m a x{ z i ( x ) } x ∈ X r-1 i ∈ I \ I r − 1 I r = I r −1 ∪ { i r } unde i r reprezintă indicele pentru care z i ( x ) este maximal la pasul r). k) x ∈ X k-1 i ∈ I \ I k − 1 ( ) 196 .

1] .1.2 Se selectează din Pcurent un număr de (M-N) perechi de părinţi după cum urmează: 2. Semnificaţia optimului descris anterior este aceea că.. v 2 x * . rk ∈[0. în ordine descrescător. 197 ..1. deşi această definiţie recurentă conţine ecuaţii complicate..a.2. însă în acest caz. în multe modele de optimizare primul pas este suficient pentru a determina optimul. r2.. soluţia dorită este cea care dă cele mai mici valori pentru incrementele relative la toate funcţiile obiectiv. Se generează aleator o populaţie iniţială de M indivizi. Se generează aleator k valori subunitare: ( ) ( ) ( ) r1. v k x * reprezintă mulţimea valorilor optimale ale deviaţiilor. sunt determinate soluţiile nedominate şi sunt introduse într-o populaţie distinctă de populaţia curentă ( Pcurent ) notată: P non . ponderile sunt generate în mod diferit şi mulţimea de soluţii ne-dominate (în sens Pareto) produse la fiecare generaţie este păstrat separat de populaţia curentă. Fie N numărul de soluţii ne-dominate existente în populaţia P non şi M – dimensiunea populaţiei curente Pcurent .1 Pentru fiecare individ al populaţiei sunt calculate valorile celor k funcţii obiectiv. Câttimp (condiţia) execută: 2.2]. Folosirea ponderilor generate aleator şi a elitismului. …. Punctul x* ∈ F ce satisface ecuaţiile paşilor 1) şi 2) poate fi numit cea mai bună soluţie de compromis dacă considerăm criteriile simultan cu acelaşi grad de importanţă. 2. Un algoritm similar cu tehnica Min-Max este descris în [1. presupunând cunoscute extremele fiecărei funcţii obiectiv. Algoritmul este descris mai jos: 1. 2. De notat faptul că.unde v 1 x * .

k i Obs: Se poate observa că ∀ = 1. pentru fiecare individ sunt examinate soluţiile dintr-o vecinătate oarecare a acestuia. Probabilitatea de selectare a unui părinte oarecare este: x p( x ) = f ( x ) − f m in( Pcurent) ∑ x ∈ Pcurent{ f ( x ) − f m in( Pcurent)} unde: f min ( Pcurent ) .. Pentru fiecare individ x al populaţiei se calculează performanţa acestuia după formula: f ( x ) = ∑w i ⋅ f i ( x ) i =1 k unde: k – reprezintă numărul de obiective wi = ri ∑r i =1 k i ...2. aceştia propun folosirea unei proceduri de căutare locală conform căreia.d.b. Deoarece scopul autorilor este acela de a aplica algoritmul genetic asupra problemelor de optimizare combinatorială.2.. 2.2..cea mai mică performanţă înregistrată în populaţia Pcurent . Apoi. Se aplică operatorul de încrucişare asupra celor (MN) perechi de părinţi.2.. se aplică operatorul de mutaţie asupra noilor soluţii generate.. k . k .2. ∀ = 1. w i ≥ 0 şi ∑w i =1 k i = 1. Un număr de E soluţii din populaţia curentă Pcurent sunt selectate aleator şi sunt adăugate la cele (M-N) soluţii obţinute în pasul anterior pentru a putea construi noua populaţie de M indivizi..c.e. 2. 198 .2. 2.2.

Acest aspect este strâns legat de gradul de diversitate a populaţiei.Dacă una dintre posibilele soluţii din vecinătatea considerată este mai performantă decât individul. sisteme imune. cercetătorii au găsit căi de depăşire a fenomenului de convergenţă prematură a populaţiei. de asemenea şi în natură (genetic drift).6 Optimizare evolutivă diversitatea populaţiei multicriterială versus Algoritmul genetic standard are tendinţa de a converge spre o singură soluţie. conceptul de nişă ecologică. Astfel. atunci aceasta îl va înlocui. spre exemplu. congergenţa prematură. inspiraţi de procese naturale. principiul este următorul: cu cât populaţia de indivizi este mai diversă. Eliminarea acestui neajuns se face prin îmbogăţirea algoritmul evolutiv/genetic standard cu un mecanism suplimentar ce permite obţinerea. 199 . cromodinamica genetică. Tot natura a fost cea care a furnizat soluţia la acest inconvenient. cercetătorii au semnalat un fenomen nedorit. în cazul problemelor de optimizare unicriterială globală (unimodală). un grad mic de diversitate în interiorul populaţiei scade şansele de obţinere simultană a mai multor soluţii. Încă din anii de pionierat ai algoritmilor genetici. Concluzia este că diversitatea populaţiei este de o necesitate crucială în rezolvarea problemelor de optimizare multicriterială. pe care l-au regăsit. Reciproc. Acest lucru este de cele mai multe ori dorit. Căutarea locală este aplicată asupra celor M indivizi din populaţia Pcurent . în final. Astfel. Problemele de optimizare multimodală cât şi problemele de optimizare multicriterială reprezintă situaţii în care convergenţa prematură a algoritmului standard spre o soluţie unică împiedică determinarea optimelor multiple (optimizare multimodală) sau a mulţimii optimale Pareto (optimizare multicriterială). Există însă situaţii în care acest fenomen de convergenţă înspre o unică zonă a spaţiului de căutare este nedorit. modelul insular. cu atât şansa de supravieţuire a soluţiilor multiple este mai mare. a mai multor soluţii din spaţiul de căutare. Vom pomeni aici câteva dintre tehnicile evolutive care reuşesc evitarea fenomenul menţionat: tehnica de aglomerare. 43.1.

43.1.7 Optimizare elitism

evolutivă

multicriterială

versus

Elitismul poate fi înţeles ca fenomenul prin care nu este permisă distrugerea indivizilor “elită” din populaţia activă în favoarea altora mai slabi. Formal, o definite a acestui concept este dată de către Laumanns, Zitzler, Thiele, în [1.1.1.2]: Definiţie: (Elitism) Fie P(t) populaţia curentă la generaţia t. Notăm cu pt(x) probabilitatea individului x din P(t) de a fi selectat pentru reproducere la generaţia t. Se spune că algoritmul evolutiv utilizat este elitist, dacă şi numai dacă, oricare ar fi relaţia de “preferinţă”  dată de contextul problemei, are loc următoarea condiţie:
∀ ∈N : ∃ ∈P *t : p t +1 ( x ) > 0 , t x

unde: P*t = x ∈ P t : ∃x k ∈ P t : x k  x - reprezintă toţi indivizii
t nedominaţi din Pt şi P =  P ( w) - reprezintă mulţimea tuturor w ≤t

{

}

indivizilor produşi până la generaţia t. Elitismul a reprezentat întotdeauna un subiect major de discuţie în arealul Calculului Evolutiv. Spre deosebire de optimizarea unicriterială, problema elitismului în optimizarea multicriterială devine mult mai complicată. În acest caz, soluţiile candidat nu sunt total ordonate şi mai mult, pot fi incomparabile. Cu toate acestea, abordările evolutive recurg la diferite forme de elitism şi această trăsătură suplimentară a tehnicilor evolutive de optimizare multiobiectiv se dovedeşte a fi avantajoasă. Multe din abordările elitiste fac uz de o a doua populaţie suplimentară de “elite”. În legătură cu populaţia elitistă se pot formula mai multe întrebări: - Care soluţii sunt selectate pentru a alcătui elita şi pentru cât timp? - Cum este actualizată populaţia elitistă? - Cum afectează elita performanţele populaţiei curente şi invers? - Cum se implică populaţia de elite în producerea de descendenţi?

200

-

Când şi în ce condiţii membrii populaţiei de elite sunt reinseraţi în populaţia curentă?

Tehnici evolutive Pareto În continuare sunt prezentate cele mai populare tehnici de optimizare evolutivă Pareto. Abordările evolutive Pareto îşi au originea în propunerea lui Goldberg de a folosi ierarhizarea pe clase de soluţii nedominate a populaţiei curente şi selecţia corespunzătoare pentru determinarea frontului Pareto al problemei de optimizare multicriterială. Procesul se poate descrie astfel: se determină soluţiile nedominate din populaţia curentă, se etichetează cu 1 şi se elimină temporar din populaţie. Populaţia rămasă se supune unui proces asemănător rezultând astfel clasa indivizilor de rang 2. Procesul se încheie în momentul în care toţi indivizii populaţiei au fost etichetaţi. O altă sugestie a lui Goldberg este aceea de a se utiliza în aceste rezolvări tehnici de menţinerea diversităţii populaţiei (ex. mecanism de nişă) pentru a împiedica populaţia să conveargă spre un singur punct al frontului de soluţii optimale Pareto.

MOGA O abordare prin care este urmată propunerea lui Goldberg este cea prezentată în [1.1.1.2] şi cunoscută sub denumirea de MOGA. Această tehnică utilizează de asemenea o formă de etichetare a indivizilor populaţiei însă după o schemă diferită. Astfel, fie c un individ oarecare al populaţiei, rangul acestuia se calculează după formula:
rn ag (c ) = +p t 1 c

(1)

unde:

pt c

- reprezintă numărul de indivizi din populaţia P la generaţia

t care domină individul c. Performanţele indivizilor populaţiei la generaţia t sunt calculate după următoarea procedură:

201

1. Indivizii populaţiei sunt etichetaţi după schema anterioară şi populaţia este ordonată în raport cu rangurile atribuite indivizilor săi. 2. Atribuirea valorilor de performanţă printr-o tehnică de interpolare în concordanţă cu o anumită funcţie, în general liniară. 3. Medierea performanţelor indivizilor cu acelaşi rang. Punctul 3 se poate interpreta ca o manieră de blocare a performanţelor pentru producerea unei mari presiuni de selecţie. Acest lucru ar putea conduce la o convergenţă prematură. Ca şi cazul metodei descrise de către Goldberg, autorii metodei MOGA propun o metodă de nişă pentru evitarea inconvenientului precizat, cu deosebirea că partajarea se face în spaţiul valorilor funcţiei obiectiv şi nu a valorilor parametrilor. Această schemă de partajare împiedică existenţa simultană în populaţie a doi vectori diferiţi şi cu aceleaşi valori ale obiectivelor. NSGA-I (Nondominated Sorting genetic Algorithm -I) Această abordare este propusă în 1993 de către Deb şi Srinivas [1.1.1.2]. Principiul acestei metode constă în evidenţierea claselor de indivizi ai populaţiei curente pe baza conceptului de nedominare. Indivizii nedominaţi ai populaţiei curente sunt grupaţi într-o clasă, atribuindu-le o valoare falsă de performanţă, proporţională însă cu dimensiunea populaţiei. Diversitatea populaţiei este menţinută prin partajarea valorilor false de performanţă a indivizilor clasificaţi. Această primă clasă de indivizi evaluaţi este eliminată temporar din populaţia curentă şi procesul se reia pentru populaţia rămasă până când toţi indivizii generaţiei respective au fost clasificaţi. Abordarea foloseşte selecţia proporţională astfel încât indivizii primei clase, având valori maxime ale funcţiei de performanţă, vor furniza mai multe copii în vederea generării descendenţilor decât ceilalţi indivizi ai populaţiei. Pe de o parte, selecţia proporţională va grăbi convergenţa populaţiei spre regiunea soluţiilor nedominate iar pe de altă parte, partajarea în spaţiul valorilor parametrilor, permite buna distribuire a populaţiei de-a lungul frontului de soluţii Pareto.

202

S-a afirmat că abordarea NSGA-I nu este mai eficientă nici computaţional, şi nici în ceea ce priveşte calitatea frontului Pareto produs decât abordarea MOGA.. NSGA-II (Nondominated Sorting genetic Algorithm -II) NSGA-II [1.1.1.2] reprezintă o variantă îmbunătăţită a precedentei NSGA-I. Dezavantajele semnalate ale primei versiuni au fost în principal: - complexitatea mărită a sortării pe baza non-dominanţei: O(mN3), unde N este dimensiunea populaţiei şi m – numărul de obiective; - lipsa elitismului (s-a verificat faptul că tehnicile elitiste sunt superioare celor ne-elitiste); - impedimentul necesităţii specificării valorii parametrului de partajare, valoare de care eficienţa algoritmului este strâns legată. Deb, Agrawal, Pratap, Meyarivan, autorii acestui algoritm, încearcă să depăşească inconvenientele observate, dezvoltând un algoritm rapid, elitist şi independent de parametrul de partajare. Algoritmul dezvoltat (NSGA II) devine rapid un algoritm de referinţă în literatura de specialitate. Structura generală a algoritmului NSGA II este descrisă în cele ce urmează. Algoritm Nondominated Sorting Genetic Algorithm II

1. Generare populaţie iniţială P0 de dimensiune N; t:=0; 2. Generare populaţie Q0 de N descendenţi ai populaţiei P0 (prin
aplicarea operatorilor genetici: selecţie, recombinare, mutaţie) 3. câttimp (condiţie de terminare=fals) execută a. Rt=PtQt; b. Sortează populaţie Rt în concordanţă cu relaţia de nedominare rezultând fronturile: F = {F1 , F2 ,.... } . fronturile
F , F2 ,.... 1

c. Construieşte populaţia Pt+1 prin adăugarea soluţiilor din
în ordinea dată de indicii fronturilor până când se depăşeşte dimensiunea N. d. Sortează descrescător soluţiile din Pt+1 pe baza valorilor de estimare a gradului de aglomerare.

203

soluţii care aparţin frontului Pareto. Dimensiunea acestui cuboid se utilizează pentru a se face discriminarea între punctele situate pe acelaşi nivel de nondominare. Principiul este următorul: dintre oricare două puncte cu ranguri diferite se preferă acela cu un rang mai mic. se determină cel mai mare cuboid care îl conţine pe acesta şi nu conţine un alt element al subpopulaţiei de care aparţine. un nou tip de selecţie. cei doi indivizi candidat sunt comparaţi cu toţi indivizii setului de comparaţie pentru a stabili dominanţa. Principiul este de a avantaja indivizii aflaţi în nişe sărace.e.2] introduce. Trunchiază populaţia Pt+1 rezultînd populaţia Pt+1 de dimensiune N.1. Autorii algoritmului NSGA II propun un mecanism ingenios de estimare a gradului de aglomerare a soluţiilor. şi dintre oricare doi indivizi situaţi pe acelaşi nivel de nedominare (acelaşi rang) se va favoriza selecţia aceluia care este situat într-o zona mai săracă în indivizi. (se aleg primii N indivizi ai populaţiei sortate). când fie ambii indivizi sunt dominaţi. g. fie sunt ambii ne-dominaţi. În situaţiile de egalitate. fapt care contribuie la menţinerii diversităţii populaţiei. în care intervine şi conceptul de dominanţă Pareto.1. capabilă să conducă populaţia înspre mai multe soluţii ale problemei. 204 . NPGA (Niched Pareto Genetic Algorithm) Algoritmul NPGA propus de Horn şi Nafpliotis [1. determinate în prealabil prin procedeul de sortare pe baza nondominării. Modificările aduse schemei de selecţie constau în sugerarea unei dimensiuni apropiate de valoarea 10 a setului de comparaţie şi maniera de rezolvare a situaţiilor de “egalitate”. decizia se ia în conformitate cu funcţia de evaluare partajată. f. Generare populaţie Qt+1 prin aplicarea operatorilor genetici asupra populaţiei Pt+1. Astfel. respectiv individul situat în cuboidul cu dimensiunea mai mare. Algoritmul de selecţie folosit de NPGA este bazat pe schema selecţiei prin concurs. în esenţă. t:=t+1. Fiind dat un element al populaţiei.

. Aceste trăsături comune sunt: .1.algoritmul foloseşte conceptul de dominanţă Pareto în evaluarea indivizilor populaţiei curente.1. Algoritmul SPEA 2 0.2] şi reprezintă o variantă îmbunătăţită a predecesorului SPEA.algoritmul este suplimentat printr-un mecanism de clasificare pentru a reduce numărul soluţiilor nedominate memorate. tehnică ce nu face apel la parametrii de tipul distanţei ci doar la conceptul de optimalitate Pareto. .1. .1.NPGA s-a dovedit a fi o tehnică rapidă şi eficientă în determinarea frontului Pareto.este oferită o tehnică de nişă pentru păstrarea diversităţii populaţiei.fitnessul unui individ se calculează relativ la soluţiilor nedominate memorate. SPEA 2 (Strength Pareto Evolutionary Algorithm 2) Algoritmul SPEA 2 este dezvoltat de Zitzler. Principala critică adusă acesteia este faptul că performanţa algoritmului este strâns legată atât de valoarea factorului de partajare cât şi de dimensiunea prestabilită a setului de comparaţie. Unicitatea sa provine din maniera de evaluare a indivizilor şi tehnica de nişă pe care o încorporează: . Testele autorilor au demonstrat faptul că această SPEA 2 oferă soluţii care depăşesc rezultatele SPEA în diferite probleme de test pe care le-au considerat. Iniţializare populaţia curentă P0 205 . Laumanns. SPEA I (Strength Pareto Evolutionary Algorithm .2] reprezintă unul dintre cele mai populare tehnici de optimizare multicriterială din literatură.soluţiile din arhivă participă la selecţie.I) Există cîteva caracteristici ale algoritmului SPEA pe care le putem regăsi la alte metode evolutive de optimizare multicriterială dezvoltate.utilizează o memorie externă pentru păstrarea soluţiilor nedominate găsite pînă la momentul respectiv. . Algoritmul SPEA [1. Thiele [1.

2. .2] şi reprezintă în esenţă o strategie evolutivă de tipul (1+1). 2. i ) mai apropiat al k-lea individ din generaţie.1.estimarea densităţii se face pe baza unui procedeu ce ia în considerare cel mai apropiat al k-lea individ din generaţie. Algoritmul 206 . Diferenţele majore faţă de tehnica SPEA constau în: . Câttimp (nu s-a atins numărul maxim de generaţii admis: T≥ t) 2.determinarea performanţelor indivizilor se face după o schemă modificată.6 t = t+1. unde k reprezintă un parametru al algoritmului.1. j domină i şi S(i) este numărul de indivizi din Pt ∪Qt pe care individul i îi domină. cât şi indivizii care îl domină.4 Selecţie prin concurs.1.2 Evaluarea indivizilor populaţiei curente pe baza schemei modificate de asignare a performanţei. luându-se în considerare pentru fiecare individ i de evaluat atât indivizii populaţiei curente pe care acesta îi domină. PAES (Pareto Archived Evolutionary Strategy ) Algoritmul PAES este propus de Knowles şi Corne [1. Evaluarea fiecărui individ (notat i) din populaţia curentă (Pt ) se face în maniera următoare: Fitness(i)=R(i)+D(i) unde: R( i ) = ∑S( j ). j ∈Pt ∪Qt .i) – reprezintă distanţa faţă de cel 2 + p( k. Un procedeu de trunchiere este aplicat. t=0. Iniţializare arhiva Q0 = φ . unde p(k. D( i ) = 1 .5 Aplicarea operatorilor de variaţie. .3 Toţi indivizii nedominaţi din Pt şi Qt intră în Pt+1 . 2. 2.nouă metodă de trunchiere a arhivei este propusă Rezultate algoritmului se identifică prin soluţiile nedominate din ultima generaţie. 2.

Generarea unei soluţii curente iniţiale. Dacă soluţia candidat nu este dominată de soluţia curentă atunci i. Knowles. PESA încorporează idei din SPEA şi PAES. Iniţializarea populaţiei externe PE(0) = φ . Într-o manieră asemănătoare algoritmului PAES. actualizează arhiva iii. PESA Algoritmul PESA este propus de Corne. Spre deosebire de ambele tehnici mai sus menţionate. 2. Iniţializarea populaţiei interne PI(0) şi evaluarea indivizilor acesteia. Incorporează soluţiile nedominate din PI(t) în PE(t). selectează o nouă soluţie curentă dintre soluţia curentă precedentă şi soluţia candidat. t=0. 2. Cât timp (condiţie de oprire = falsă) a. Algoritmul PAES 1.2]. Algoritmul PESA 1. Principiul de bază al tehnicii PESA constă în controlarea selecţiei şi păstrarea diversităţii printr-o schemă bazată pe divizarea spaţiului în hiper-pătrate. Evaluează soluţia candidat c. compară soluţia candidat cu membrii arhivei ii. algoritmul PESA menţine o divizare prin hiper-grilă a spaţiului ce permite să se păstreze o imagine a gradului de aglomerare din diferite regiuni ale arhivei.1. Ca şi algoritmul SPEA. Evaluarea soluţiei curente şi adăugarea acesteia la arhivă 3. şi Oates [1. Mutează soluţia curentă pentru a genera soluţia candidat b.1.presupune menţinerea unei populaţii arhive de soluţii nedominate. 207 . PESA foloseşte o selecţie bazată pe măsura aglomerării. algoritmul PESA foloseşte două populaţii: o populaţie internă ce evoluează şi o populaţie externă de dimensiune mai mare ce constituie arhiva de soluţii nedominate generate până la momentul respectiv. Această arhivă are două scopuri: primul de a memora soluţii nedominate generate şi al doilea de a controla presiunea de selecţie pentru a se găsi soluţii mai bune.

avantajul major al problemelor descrise constând în testarea abilităţii algoritmului de a face faţă mai multor dificultăţi dar şi numărul scalabil de variabile şi obiective. (1 − xM −1 )(1 + g ( xM 2 … 208 .1...1.2].1.3. Suita cunoscută sub denumirea de DTLZ. 4. Una dintre cele mai populare suite de probleme de test este cea propusă în [1. STOP. Gradul de aglomerare al unui individ oarecare este proporţional cu numărul de indivizi din hipercubul individului respectiv. 43. Salt la pasul 2. Selecţia părinţilor pentru aplicarea operatorilor de variaţie (recombinare şi mutaţie) se face pe baza gradului de aglomerare.. La pasul 2.. un individ al populaţiei curente PI(t) intră în arhiva PE(t) doar dacă este atât nedominat de către ceilalţi indivizi ai generaţiei sale cât şi nedominat de către nici un individ al arhivei. este formată din 7 probleme care implică un număr de M obiective de minimizat şi n variabile: DTLZ1: Minimizează f1 ( x ) = Minimizează f 2 ( x ) = 1 x1 x2 . Dacă (condiţia de terminare = fals) atunci Generează PI(t+1) prin operatorii de variaţie: recombinare şi mutaţie Altfel Întoarce PE(t). xM −1 (1 + g ( xM 2 )) )) 1 x1 x2 .8 Funcţii de test – optimizare multicriterială Testarea performanţelor algoritmilor evolutivi de optimizare multicriterială implică probleme de test şi metrici de evaluare special concepute pentru a determina avantajele. dar şi o ierarhie obiectivă a metodelor evolutive dedicate acestui segment de probleme. limitările.

..5⋅ xM −1 ⋅ π ) ( f2 ( x) = ( 1 + g( X M ) ) cos0.2.5⋅ xM −1 ⋅ π ) … Minimizează fM ( x) = ( 1 + g( X M ) ) sin( 0.5) −cos ( 20 π( xi −0...5) )    xi∈ M X xi ∈[ 0. Soluţiile optimale Pareto corespund lui xi * = 0..5 .5) 2 xi ∈ [ 0.5⋅ x1 ⋅ π ) i M g( X M ) = ∑x ∈X ( xi − 0. xi * ∈ X M . xi * ∈ X M ..1] . n Sunt sugerate următoarele valori: k = X M =5 .. Dificultatea determinării soluţiilor acestei probleme constă în capacitatea populaţiei de a converge spre un hiperplan.5⋅ x1 ⋅ π ). i =1..1] ... Soluţiile optimale Pareto corespund lui xi * = 0..5 DTLZ2: Minimizează Minimizează ( ( f1 ( x) = ( 1 + g( X M ) ) cos0. Există 11k-1 fronturi Pareto optimale locale care pot atrage algoritmul. Frontul Pareto este format de hiperplanul liniar: M ∑ fi i =1 = 0.cos0.sin( 0.f M −1 ( x ) =   1 (1 − x1 )(1 + g ( xM ) ) 2   2 Minimizează g ( xM ) =100  X M + ∑( xi −0. n Cea de-a doua funcţie DTLZ are un front Pareto real sferic. n = M + k − 1 .5 .2. Frontul Pareto este format de: 209 ..5⋅ x1 ⋅ π ). i = 1.

5 a ( ) 2 210 .∑ fi i =1 M 2 =1 .5 ⋅ x M −1 ⋅ π ) … Minimizează f M ( x ) = (1 + g ( X M ) ) sin( 0..cos 0...5 ⋅ x M −1 ⋅ π ) f 2 ( x ) = (1 + g ( X M ) ) cos( 0.5) 2 − cos ( 20 π( x i − 0...5 ⋅ x1 ⋅ π )   g ( x M ) =100  X M + ∑( x i − 0. n = M + k − 1 .5 ⋅ x M −1 ⋅ π a a f 2 ( x ) = (1 + g ( X M ( ) ( ) ) cos( 0..5 ⋅ x1 ⋅ π ).sin( 0.. n Această problemă introduce multiple fronturi locale optimale Pareto..5) )    xi ∈X M   xi ∈ [ 0.5 ⋅ x ⋅ π ).cos( 0..1] .5 ⋅ x1 ⋅ π a ( ) g ( X M ) = ∑xi ∈X M x i − 0. i = 1. Se sugerează utilizarea următoarelor valori pentru parametrii: k = X M = 10 .5 ⋅ x1 ⋅ π ) .5 ⋅ x a 1 M −1 a ) ⋅π ) … Minimizează f M ( x ) = (1 + g ( X M ) ) sin 0.5 ⋅ x1 ⋅ π .2. Frontul Pareto global este format de: ∑ fi i =1 M 2 =1 DTLZ4: Minimizează Minimizează f 1 ( x ) = (1 + g ( X M ) ) cos 0.. DTLZ3: Minimizează Minimizează f 1 ( x ) = (1 + g ( X M ) ) cos( 0. care pot atrage populaţia evaluată prin algoritmul testat...sin( 0.

.. cos θ M −1 ⋅ π       2  2 Minimizează f 2 ( x ) = (1 + g ( X M ) ) cos θ1 ⋅ π . i = 1.. ∀ =1. n Forma funcţiei DTLZ4 este asemănătoare funcţiei DTLZ2. g ) 211 . n Problema DTLZ5 testează abilitatea algoritmului de a converge înspre frontul Pareto reprezentat prin curba de ecuaţie: ∑ fi i =1 M 2 =1 ...5) 2 şi θ i = π (1 + 2 g ( x M ) x i ) 4(1 + g ( x M ) ) xi ∈ [ 0.2. i pentru valorile xi = 0. f 2 . a singura modificare constă în înlocuirea variabilei xi cu xi ... n . sin θ M −1 ⋅ π         2  2  2 … Minimizează f M ( x ) = (1 + g ( X M ) ) sin θ1 ⋅ π     2 g( X M ) = xi ∈X M ∑ ( xi − 0.2.5 ... i = 1...1] . DTLZ6: Minimizează f 1 ( x ) = x1 … Minimizează fM −1 ( x) = xM −1 Minimizează f M ( x ) = (1 + g ( X M ) ) h( f 1..1] ... f M −1 . cos θ M −2 ⋅ π ..2....xi ∈ [ 0. DTLZ5: Minimizează f 1 ( x ) = (1 + g ( X M ) ) cos θ1 ⋅ π . Autorii sugerează folosirea parametrului a = 100 ...

212 ..2..2.... problema de optimizare dinamică constă în determinarea optimelor funcţiei criteriu.. j= 1 [ f ( x ) + f ( x )] −1 ≥ 0 j Problema DTLZ7 este dificilă datorită formei frontului Pareto (acesta este format dintr-o dreaptă şi un hiperplan) dar şi datorită celor M-1 restricţii impuse. Se sugerează utilizarea următoarelor valori pentru parametrii: k = X M = 20 . când aceasta îşi modifică forma în timp... j =1. 44 Optimizare dinamică Sub titulatura de optimizare dinamică sunt cuprinse diferite clase de probleme. i = 1. existând 2M-1 regiuni optimale. n Funcţia DTLZ6 are front Pareto este discontinuu.... Din perspectiva algoritmilor evolutivi. n = M + k − 1 .1] ...g ( x M ) =1 + M −1 i =1 9 XM ∑xi ∈X M xi h =M − ∑ 1 +i g (1 + sin ( 3πf i ) )    f  xi ∈ [ 0.. j =1. fapt care generează poziţii variabile ale punctelor de optim la momente de timp diferite.1] . M −1 g M ( x ) = 2 f M ( x ) + min [ M] n 1 i = ( j − 1) n [ [ jn M ] ∑ M i ] x i. i = 1. M xi ∈ [ 0. n M− 1 i.2...2. Problema testează abilitatea unui algoritm evolutiv multicriterial de a menţine multiple subpopulaţii corespunzătoare zonelor optimale. DTLZ7: Minimizează f j ( x) = unde: g j ( x ) = f M ( x ) − 4 f i ( x ) −1 ≥ 0 .

. însă la detectarea unei schimbări în mediu se execută acţiuni explicite de amplificare a gradului de diversitate a populaţiei.. aceasta testează şi capacitatea algoritmului de a găsi şi menţine multiplele optime care se modifică în timp.Această problemă este recunoscută şi sub denumirea sugestivă de optimizare în mediu dinamic. ceea ce provoacă incapacitatea populaţiei de a explora ulterior spaţiul de căutare şi de a se adapta la schimbările survenite. ) 213 . Algoritmii evolutivi sunt suplimentaţi printr-o memoriearhivă la care se poate apela pentru informaţii utile din generaţiile anterioare. acestea îşi modifică poziţiile şi caracteristicile. Algoritmii evolutivi sunt înzestraţi cu mecanisme de evitare a convergenţei în speranţa că o bună diversitate a populaţiei ar putea conduce la o adaptare mai rapidă a acesteia la schimbările survenite. amplitudinea wi şi locaţia (p . Fiecare vârf (optim) este caracterizat prin: înălţimea hi . Stadiul cercetării actuale în această direcţie este relativ incipient. Precum se deduce din denumirea problemei. se doreşte determinarea vârfurilor funcţiei date în contextul în care.. Algoritmii evolutivi sunt lăsaţi să evolueze în sensul clasic. p i 1 i 2 . spre exemplu. Tehnicile de evitare a acestui neajuns sunt clasificate în trei categorii [1.1. i pn . De asemenea. Dezavantajul acestei tehnici rezidă din necesitatea menţinerii unui mecanism suplimentar prin care se verifică apariţia schimbărilor.2]: 1. 3. reiniţializarea populaţiei sau creşterea ratei de mutaţie pentru câteva generaţii succesive. Funcţii de test pentru optimizarea dinamică evolutivă Moving Peak Benchmark este o problemă de optimizare special concepută pentru testarea abilităţii algoritmului evolutiv de a determina soluţiile optime în mediu dinamic. Principalul inconvenient al algoritmilor evolutivi folosiţi în optimizarea în mediu dinamic rezidă din pierderea diversităţii populaţiei în urma convergenţei spre optimele curente ale problemei. 2.1.. Aceste abordări sunt potrivite în situaţiile în care optimul revine în locaţiile anterioare. periodic.

un sumar al metodelor evolutive dedicate subiectului şi tendinţele cercetării actuale. Un caz particular îl reprezintă problema dinamică a comis voiajorului pentru care se doreşte determinarea drumului optim în condiţiile în care.reprezintă numărul de variabile k. n j =1 hi unde: n.. xn ) = 2 1 + wi ⋅ ∑ ( x j − p ij ) . x2 .. x2 . 214 . J. cât şi ca înălţime şi amplitudine. optimele corespunzătoare vârfurilor dinamice. x2 . În general.k f i ( x1 . Lucrarea intitulată “Evolutionary Optimization in Dynamic Environments” prezintă principalele aplicaţii ale algoritmilor evolutivi în probleme de optimizare dinamică. În problemele reale de optimizare deseori se întâlneşte situaţia ca optimul să difere în timp. respectiv..1.. care reuşeşte cu succes să furnizeze soluţiile problemei dinamice a comis voiajorului. pot să dispară sau să apară oraşe pe harta corespunzătoare.reprezintă numărul de vârfuri Vârfurile se modifică atât la locaţie... xn ) i =1.. Branke [1. O abordare interesantă este tehnica Ant Colony Optimization... xn ) = max f i ( x1 . amplitudinea fiind în acest caz diametrul bazei conului respectiv. se consideră vârfurile de formă conică.. Dezvoltarea algoritmilor evolutivi care fac faţă cerinţelor problemei de optimizare în mediu dinamic este necesară..Funcţia de optimizat este de următoarea formă: f ( x1 .1. la anumite intervale de timp.. Această problemă populară (MBP) testează abilitatea unui algoritm evolutiv de a determina optimul.2] oferă o investigaţie deosebit de utilă a problematicii optimizării în medii dinamice din perspectiva algoritmilor evolutivi.

Kirkpatrick S. H. H.): Advances in Artificial Life. 1992. 8.. 10.. N. of Michigan Press: Ann Arbor. p. Corchado. L. 443-473. SOCO-2002.. J.. 2. in Artificial Neural Networks in Pattern Recognition . 1989. Evolutionsstrategie '94.. 7.. Frommann-Holzboog Verlag. (eds. M. Swarm intelligence. pp. Contemporary Evolution Strategies. Genetic Algorithms in Search. 1983.. Vecchi M.. Optimization. L. “Architecture for an Artificial Immune System”. Schwefel. New York. 3... NY. Numar 4598. Timmis.-P. Holland. 11. N. Goldberg. 5. Hofmeyr S. Fyfe (eds. Rudolph G. Morana et al. C. de Castro.R. Rechenberg.. University of Paisley. David.. Genetic Programming: On the Programming of Computers by Means of Natural Selection.. 4. P. I.. A. 2001.. H.45 Bibliografie 1. "Artificial Immune Systems: Part I – Basic Theory and Applications". Addison-Wesley. Eberhart R. 9. 67-84. Schwefel. Evolutionary Computation 8(4): p. 1999.-P. Univ. Wiley. J. UK. J. p. 6. Forrest S. Shi Y. J. I. and Machine Learning. L. Adaptation in Natural and Artificial Systems. 893-907 in F. Morgan Kaufmann. Gelatt C. Berlin: Springer 1995. 2000. MIT Press. Optimization by Simulated Annealing. Alonso. 215 . Evolution and Optimum Seeking. Science. "Artificial Immune Systems: A Novel Paradigm to Pattern Recognition". Von Zuben. D. 1995.. Koza.. 2002. Kennedy J. 1994. 671-680. de Castro. Technical Report – RT DCA 01/99. Stuttgart.. J. F. Vol 220.). 1975.

17. Schaffer. Teller E.. W. H. 19. of the (1 +. “Genetic programming: on the programming of computers by means of natural selection”. 1995. 1989.. .36-40... Schaffer. H. Chichester. 1989.. 15. Uniform crossover in genetic algorithms. T.. A. Systems Analysis Research Group.. 1992. lambda) Evolution Strategy on the Ridge Functions.. Metropolis N. J. Rosenbluth M. Ed. University of Dortmund. "An adaptive crossover distribution mechanism for genetic algorithms". D. Vol I. Genetic Algorithms and their Applications. 21... Eshelman L.. I. Department of Computer Science. 13. Beyer H. p. 20.. R. J. 216 . 14-21. 750-755. in Proceddings of IJCAI.. J. 1981. “Representation and Hidden Bias II: Eliminating Defining Length Bias in Genetic Search via Shuffle Crossover”. 1990. Bäck. E. “Biases in the Crossover Landscape”. 1989. p. 18. p.. D. MA. Theoretical aspects”. in Proceedings of the Third International Conference on Genetic Algorithms. .ICGA. D.. 14. MIT Press. Morgan Kaufmann Publishers.12. J. 1987.ICGA. in Proceedings of the 3rd International Conference on Genetic Algorithms .. H. Koza.R.D. p.. Morishima. Chichester. 16. Koza J. Schwefel H..-G. John Wiley. J. Cambridge. P. Sywerda G. 1953. N. Schwefel. J. in Proceedings of the Second International Conference on Genetic Algorithms . Chem. Eshelman L. 21. Phys.ICGA . “Equation of State Calculations by Fast Computing Machines”. Rosenbluth A. Stanford University Computer Science Department. Technical Report STAN-CS-90-1314. 10-19.. Caruana R.. Schaffer J. 1987.-P. J. 1998. Morgan Kaufmann." Technical Report SyS-1/98. Caruana R. “Genetic Programming: A Paradigm for Genetically Breeding Populations of Computer Programs to Solve Problems”. Wiley.. Schaffer J. “Numerical Optimization of Computer Models”. “Evolution Strategies II. "Convergence Behavior 22. Genetic Algorithms in Engineering and Computer Science. Schwefel. Teller A. Baker. in Proceedings of the Second International Conference on Genetic Algorithms . Oyman A. “Reducing Bias and Inefficiency in the Selection Algorithm”.

In Data Mining: A Heuristic Approach.53-66. Gambardella L. In Waterman. 2004. N. Man. A. Dorigo M. 1994. 231-259. Conf. J. 27.p. Hayes-Roth (editori) Pattern-directed Inference Systems. Rudolph G. Vol. p. Reitman.. p. Piscataway. 2008. ACM Computer Graphics.. in Proc.. on Neural Networks.. 109-124.23. of the IEEE Int. (Inst. 25.. and schools: A distributed behavioral model”.H. MIT Press. 373-389.. MIT Press. 33.. Academic Press.. K. S. combinatorial. “An Evolutionary Algorithm for Integer Programming”. 1999.. 1987. herds. M. 1997. De Castro. F. Barto.-P. “Ant System: Optimization by a colony of cooperating agents”. and Cybernetics-Part B. 217 .. Eberhart R. A. Neal. Dorigo M. Männer (editori): Parallel Problem Solving From Nature. “A resource limited artificial immune system”. J. Newton (editori).. 25–34.. No. 32. “Towards a Network Theory of the Immune System”. 1998. H. & Von Zuben. Abbass. 26(1):29-41. “Flocks. Sutton. Schwefel. “Ant Colony System: A Cooperative Learning Approach to the Traveling Salesman Problem”. A. Ant Colony Optimization. and R. Sarker. Stützle T. Jerne. 35. Idea Group Publishing. and indicative applications”. Tehnical Report. J. Reynolds C. 14(3-4). 1... J. TR – DCA 01/99 December. Von Zuben F.. pp. Dorigo M. 3. 1942– 1948. 26.H. 21(4). Part II: hybridisation. Davidor. J. and C. p. 2001. Knowledge Based Systems.1996. R. “Cognitive Systems Based in Adaptive Algorithms”... N. W. Maniezzo V.. Vol 7. „Particle swarm optimization”. De Castro L.. 2001. N. Timmis. Kennedy J. Ann.1. 29. USA.. Natural Computing. multicriteria and constrained optimization.. 24. “aiNet: An Artificial Immune Network for Data Analysis”.. Banks A. 31. Immunol. Berlin: Springer. in Y. 1978. “Reinforcement Learning”. L.. 1995. 34. IEEE Transactions on Evolutionary Computation. Pasteur) 125C. 28. “A review of particle swarm optimization. NJ. Chapter XII. 30. Vincent J. Colorni A.M. Anyakoha C. IEEE Transactions on Systems. (1974). R. H. Holland. “Artificial Immune Systems”. p 121-130. p.

Evolutionary Multiobjective Optimization. 42. 43. S. 2005. Physica D 2(1-3): 307-317. 2001. Wilson. London: Springer-Verlag.. Editura Tehnică.. Journal of Global Optimization. in Proceedings of the 2004 IEEE Congress on Evolutionary Computation.207-234.. p 27 –30. De Castro. “ZCS: A Zeroth-level Evolutionary Computation 2(1):1-18.. p 105-145. Abraham. 44. “A Mathematical Framework for Studying Learning in Classifier Systems”. 46. Michigan. Vol. Clarkson P. E. 2002. “Differential Evolution . 1986. De Jong K.. 341–359. R.. Von Zuben.. Nagoya.. Gena Egoistă. In A. “An analysis of the behavior of a class of genetic adaptive systems”. 45. Technical Report – RT DCA 02/00. “Scalable Test Problems for Evolutionary Multi-Objective Optimization”. Thomsen. “Evolutionary Approach to Dynamic Optimization Problems. . Price K. IEEE Press. 47. De Castro. (editori). Zitzler E. IEEE International Conference Evolutionary Computation (ICEC'96).Updated Survey”.3. Univ. L. Storn R. Laumanns M. p. Ann Arbor. Evolutionary Computation. Thiele L. “Artificial Immune Systems: Part I – Basic Theory and Applications”. J.. 10. GECCO Workshop on evolutionary Algorithms for Dynamic Optimization Problems. “Artificial Immune Systems: Part II – A Survey Of Applications”. Jurgen Branke. R. “Multimodal Optimization Using Crowding-Based Differential Evolution”.A Simple and Efficient Heuristic for Global Optimization over Continuous Spaces”.W. 40. S.. 39. A.. Accuracy”. 38. F. Classifier on System”. Li J-P. 2006. A species conserving genetic algorithm for multimodal function optimization. J.. 1997.H. N. 1995. “Classifier Fitness Based Evolutionary Computation 3(2): 149-76. 2004. J. Wilson. Goldberg. “A Clearing Procedure as a Niching Method for Genetic Algorithms”.. Petrowski A.36. PhD thesis. N.. F. L. T. Deb K.. Dawkins R. L. No.. p. 48.. 1994. 1996. Jain. Balazs M. 1999. 37.W. Parks G. . Holland. 2000. 41. Technical Report – RT DCA 01/99. Von Zuben. 11. 1975. on 218 . J.

Automatic Control. 56. 57. Srinivas N. Kluver Academic Publishers. In Genetic Algorithms and their Applications: Proceedings of the First International Conference on Genetic Algorithms. John Wiley. Fonseca. S.A. Pratap. Bäck T.49. Charnes A.. 50. “Multiple Objective Optimization with Vector Evaluated Genetic Algorithms”. Lawrence Erlbaum. 59... 52. 59-60.. în 2000 Congress on Evolutionary Computation. 1985. 54. Multiobjective Optimization and Multiple Constraint Handling with Evolutionary Algorithms I: A Unified Formula. Deb K.. 55.. Water Resources Research. A.. United Kingdom.C. D. An Updated Survey of Evolutionary Multiobjective Optimization Techniques : State of the Art and Future Trends . Agrawal. Walsh M.. vol. 60. W. “Using genetic algorithms to solve a multiple objective groundwater pollution containment problem”. 93-100. K.. 1994. T.J. 564.. Research Report no. Branke J.W. 30(5):1589-1603. 8. p. A Unified Model for MultiObjective Evolutionary Algorithms with Elitism.J. 1963. Sheffield. Eheart J. New Jersey. Coello C. Management Science. July 2000. 1966. A. 1. Washington. Evolutionary Computation 2(3): 221-248 (1994)..J. NY.. “Optimal estimation of executive compensation by linear programming”. Piscataway. C.. J. Cooper W. Ferguson R. Fleming. 58. 51. Fogel L. Artificial Intelligence through Simulated Evolution. D. Zitzler E. Zadeh L. "Optimality and non-scalar valued performance criteria.. Schaffer J. 46-53. p." IEEE Trans.. 1955. 53. Evolutionary Optimization in Dynamic Environments.. 1996.. Multiobjective Optimization Using Nondominated Sorting in Genetic Algorithms.M. A Fast Elitist Nondominated Sorting Genetic Algorithm for Multiobjective 219 . In 1999 Congress on Evolutionary Computation. Deb. Evolutionary Algorithms in Theory and Practice. Owens A. Ritzel B.. Ranjithan S... Meyarian. 2002.J. P. C. 1995.. pp. 1999. Laumanns M. volume 1. Thiele L. 138-151.. IEEE Service Center. Oxford University Press. 2000.

. vol.. D. Multiobjective Optimization Using Niched Pareto Genetic Algorithm.. L. no.. The Pareto Archived Evolution Strategy: A New Baseline Algorithm for Multiobjecive Optimization. 1999. Comparison of Multiobjective Evolutionary Algorithms: Empirical Results. Evolutionary Computation. Knowles. J. 8. The Pareto Envelope-based Selection Algorithm for Multiobjecive Optimization in Proceedings of the Parallel Solving from Nature VI Conference. In Proceedings of the 1999 Congress on Evolutionary Computation (CEC'99). 63. Illigal Report 93005.. 62. 220 . J. 2. Thiele. D. 61. L. Zitzler. Napfliotis. p... Urbana Champaingn... Thiele. Deb. M. Illinois Evolutionary Algorithms Labopratory. E. 64. 2000. 98-105. Corne. Corne. Knowles. Zitzler. 2000. J. Laumanns. 2000. N.. SPEA 2: Improving the Strenth Pareto Evolutionary Algorithm for Multiobjective Optimization. in Proceedings of the Parallel Solving from Nature VI Conference. Horn.. M. E. 1993. Oates. Volume 1. 65. University of Illinois.Optimization NSGA II.. 2000. K.

scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->