1. Algoritmi genetici. 1.1 Definirea conceptului.

Algoritmii genetici sunt tehnici adaptive de căutare euristică, bazate pe principiile geneticii și ale selecției naturale, enunțate de Darwin ("supraviețuiește cel care e cel mai bine adaptat"). Mecanismul este similar procesului biologic al evoluției. Acest proces posedă o trăsătură prin care numai speciile care se adaptează mai bine la mediu sunt capabile să supraviețuiască și să evolueze peste generații, in timp ce acelea mai puțin adaptate nu reușesc să supraviețuiască și cu timpul dispar, ca urmare a selecției naturale. Probabilitatea ca specia să supraviețuiască și să evolueze peste generații devine cu atat mai mare cu cat gradul de adaptare crește, ceea ce in termeni de optimizare inseamnă că soluția se apropie de optim. Un algoritm genetic este un model informatic care folosește modelul biologic evoluționist pentru a rezolva probleme de optimizare ori căutare. Algoritmii genetici codifică soluţiile posibile ale unor problem specifice intr-o structură de date de tip cromozom şi aplică acestor structuri operatori de recombinare, pentru a păstra informaţia utilă. Un cromozom este un vector sau un şir de gene. Poziţia unei gene este numită locusul ei. Valorile pe care le poate lua o genă sunt numite alele şi sunt mulţimi finite de numere intregi, intervale de numere reale, sau chiar structuri complexe de date. Alelele (genă de un anumit tip de pe acelaşi cromozom) variază de la un locus la altul. Sarcina unui algoritm genetic e să descopere cromozomi din ce in ce mai buni, pană la atingerea unei valori a raportului dintre evaluarea asociată unui şir şi evaluarea medie a tuturor şirurilor populaţiei (fitness) despre care se ştie că este optimală, sau pană cand algoritmul genetic nu mai poate aduce imbunătăţiri. Implementarea unui algoritm genetic incepe cu o populaţie de cromozomi aleasă aleator. Se evaluează aceste structuri şi apoi se alocă facilitate reproductive astfel incat acei cromozomi care reprezintă o soluţie mai bună pentru problema ţintă să aibă mai multe șanse de a se reproduce decat acei cromozomi care sunt soluții mai puțin bune. Definirea unei soluţii bune se face in raport cu populaţia curentă. Intr-un sens mai larg, algoritm genetic este orice model bazat pe ideea de populaţie şi care foloseşte selecţie şi operatori de recombinare pentru a genera noi puncte intr-un spaţiu de căutare. Ei sunt recomandaţi pentru aflarea soluţiilor neliniare ale unor probleme atunci cănd nu este posibilă modelarea matematică şi nici euristică in domeniu.

1.2 Structura unui algoritm genetic. Se descrie in continuare structura algoritmilor genetici. Pentru inceput se stabilesc următoarele: · cromozomii utilizaţi au lungime constantă; · populaţia (generaţia) P(t + 1) de la momentul t + 1 se obţine reţinand toţi descendenţii populaţiei P(t) şi ştergand ulterior cromozomii generaţiei precedente (P(t)); · numărul cromozomilor este constant. Structura algoritmului genetic fundamental: Pasul 1: t ¬ 0. Pasul 2: Se iniţializează aleator populaţia P(t). Pasul 3: Se evaluează cromozomii populaţiei P(t).

Acest proces se numeşte elitism. In funcţie de problemă se pot alege şi alţi operatori (inversiune. De aceea. Selecţia proportionala In cazul selecţiei proporţionale. In realitate. Pasul 4: Cat timp nu este Indepl inită condiţia de terminare se execută paşii următori: Pasul 4.1: Se selectează cromozomii din P(t) care vor contribui la formarea noii generaţii. Acest operator decide care dintre indivizii unei populaţii vor putea participa la formarea populaţiei următoare. Prin selecţie se urmăreşte maximizarea performanţei indivizilor. Există trei tipuri principale de operatori: operatorul de selecţie. Pentru fiecare cromozom xi vom calcula performanţa sa f(xi). se execută atribuirea t ¬ t + 1.2: Se aplică cromozomilor din P1 operatorii genetici.3 Operatori genetici. Se şterg din P1 părinţii descendenţilor obţinuţi. reordonare. x2. Să presupunem că avem o mulţime de cromozomi x1. xn. 1. Operatorii genetici joacă cel mai important rol in cadrul AG. astfel: P(t + 1) ¬ P2. se evaluează P(t). Scopul selecţiei este de a asigura mai multe şanse de reproducere celor mai performanţi indivizi dintr-o populaţie dată. In continuare vom prezenta succint cele mai importante mecanisme de selecţie. Se construieşte noua generaţie. probabilitatea de selecţie a unui individ depinde de valoarea performanţei acestuia. Se impune condiţia ca f(xi) ³ 0. este normal ca la fiecare pas 17 (la fiecare generaţie t) să reţinem cel mai promiţător individ care a fost generat pană atunci. operatorul de incrucişare și operatorul de mutaţie. Fie P2 populaţia astfel obţinută (descendenţii populaţiei P(t)). Condiţia de terminare se referă. la atingerea numărului de generaţii specificate. Fie P1 mulţimea cromozomilor selectaţi (P1 reprezintă o populaţie intermediară). Cromozomii rămaşi in P1 sunt incluşi in populaţia P2. . O. operatori speciali). se şterg toţi cromozomii din P(t).In acest scop se utilizează o funcţie de performanţă ce depinde de problemă. Se admite că rezultatul algoritmului este dat de cel mai promiţător individ din ultima generaţie. Cei mai utilizaţi sunt operatorii de mutaţie şi incrucişare. Suma performanţelor tuturor cromozomilor din populaţie va constitui performanţa totală şi o vom nota cu F. Pasul 4. Dacă numărul maxim admis de generaţii este N. de regulă. nimic nu ne garantează că un individ mai performant nu a fost obţinut intr-o generaţie anterioară. atunci condiţia de oprire este t > N.

Selecţia bazată pe ordonare Această modalitate de selecţie constă in a calcula (pentru fiecare generaţie) valorile funcţiei de fitness şi de a aranja indivizii in ordinea descrescătoare a acestor valori. Cel mai promiţător individ are probabilitatea 1. Efectul acestui operator este schimbarea valorii unei singure poziţii dintr-un cromozom. Intr-un cromozom pot exista. in principal. Incrucişarea realizează un schimb de informaţie intre cei doi părinţi. Se va atribui fiecărui individ i o probabilitate de selecţie pi care depinde de rangul său in şirul stabilit. Operatorul de incrucişare acţionează in felul următor: sunt aleşi aleator doi indivizi din populaţia intermediară (care se mai numeşte şi piscină de incrucişare) şi anumite porţiuni din cei doi indivizi sunt interschimbate. adică doi părinţi dau naştere la doi descendenţi. Operatorul de încrucişare Operatorul de incrucişare este aplicat asupra indivizilor din populaţia intermediară. se utilizează operatori de incrucişare de tipul (2. 2). . · cromozomul mai performant este selectat (copiat in populaţia intermediară asupra căreia se aplică operatorii genetici). au fost propuse mai multe modele de incrucişare. Vom enumera aici cateva dintre cele utilizate atunci cand se foloseşte codificarea binară. · se calculează performanţele cromozomilor selectaţi. Selecţia prin concurs Selecţia prin concurs sau selecţia turnir se bazează pe compararea directă a cate doi cromozomi şi selectarea celui mai performant. responsabil cu aspectul de căutare al algoritmilor genetici. De regulă. mai multe poziţii care suferă o mutaţie. Dată fiind importanţa majoră a incrucişării. Fiecare bit al cromozomului poate suferi o mutaţie. Operatorul de mutaţie acţionează asupra biţilor indiferent de poziţia lor in cromozom. Operaţiile implicate sunt următoarele: · se aleg in mod aleator doi cromozomi. Mutaţia este cel de-al doilea operator genetic in ordinea importanţei şi folosirii sale. Descendenţii obţinuţi prin incrucişare vor avea caracteristici ale ambilor părinţi. Íncrucişarea cu un punct de tăietură Íncrucişarea cu mai multe puncte de tăietură Operatorul de mutaţie Operatorul de incrucişare este. aşadar. Operatorul imită incrucişarea intercromozomială naturală. in timp ce operatorul de mutaţie este folosit pentru alte scopuri. Probabilităţile depind acum doar de poziţia cromozomului. Prin mutaţie se introduc in populaţie indivizi care nu ar fi putut fi obţinuţi prin alte mecanisme.

atunci se execută mutaţia poziţiei respective schimband 0 in 1 sau 1 in 0. .Mutaţia este un operator probabilist (adică nu se aplică cu siguranţă). bik-este distanta de la locatia j la locatia l. plus eventual un cost de a plasa facilitatea in locatia respectiva. In caz contrar. 1). fiecare avand lungimea r. Considerăm o populaţie de n indivizi (cromozomi). Dacă q < pm. Quadratic assignment problems (QAPs) QAP – apartine celor mai dificile probleme de optimizare combinatorica. Una dintre ele ar fi mutaţia în forma tare. Problemele de dimensiune mai mare de 30 nu au inca o solutie exacta. Obiectivul este de a aloca fiecare facilitate la o locatie astfel incat costul sa fie minim.a fost introdusa de Koopmans si Beckmann in 1957.este considerata o problema de dificultate NP. Fiecare bit are aceeaşi probabilitate pm de a suferi mutaţia. O aplicare a problemei patratice de alocare o constitue computer-aided design. 2. In această situaţie se procedează in felul următor: se generează un număr aleator q in intervalul [0. QAP. Putem modela aceasta problema cu ajutorul a 2 matrici: A = (aik) aik-este ponderea dintre facilitatea I la facilitatea k. B = (bjl). QAP. poziţia respectivă nu se schimbă. Există mai multe variante ale operatorului de mutaţie. Problema consta in asignarea a n facilitate la n locatii cu un cost proportional cu ponderea dintre facilitati inmultita cu distanta dintre locatii.plasarea componentelor in pozitii pe o placa(chip).

Sign up to vote on this title
UsefulNot useful