Sunteți pe pagina 1din 11

Algoritmi Genetici

Algoritmul genetic: este o procedura evolutionista in care indivizii sunt reprezentati prin siruri de valori 0 si 1. Terminologia folosita este specifica domeniului geneticii: Cromozom denumire folosita pentru individ/solutie posibila reprezentati prin vectori binari. Pentru o problema toti cromozomii au acelasi numar de componente care este functie de precizia dorita in calcule Gene componentele unui cromozom ordonate liniar; o gena este caracterizata prin valoarea ei (0sau1) si prin pozitia in secventa; Populatie algoritmul incepe a selecta arbitrar un numar de vectori binari care formeaza populatia initiala P(0) ; numarul de indivizi care compun populatia initiala va fi mentinut pentru populatiile urmatoare P(t), t=1,2,

Algoritmi Genetici/1
Evaluarea potentialului indivizilor selecta i, sau a unui cromozom v=(v0, v1,,vn) se face prin calculul valorii unei func ii f(xv), numit func ie obiectiv, unde :
n

xv !

i!0

vi * 2 i

este un numar intreg a carui scriere in baza 2 este (v0, v1,,vn)2 Recombinarea pentru obtinerea de noi indivizi din populatia initiala sunt utilizati operatorii genetici mutatia si incrucisarea: * Mutatia utilizeaza una sau mai multe gene ale unui cromozom, valorile acestea schimbandu-se din 0 in 1sau invers. Mutatia poate produce cresterea sau descresterea valorii functiei obiectiv f(v) permitand sau nu selectarea cromozomului pentru pasul urmator.

Algoritmi Genetici/2
Incrucisarea /mutatia incrucisata: implica doi parinti si consta in concatenarea unei parti din v1 cu o parte din v2 si invers rezultand doi urmasi. Exemplu: se doreste maximizarea functiei f(x)= 2- x-1 cand x parcurge intervalul [-1,2]. Pentru asigurarea preciziei (2 zecimale) se divide intervalul de lungime 3 in 3x100 =300 parti egale. Deoarece: 28 =256 <300< 512 = 2 9 alegem un vector cu 9 componente rezultand: v= (v0, v1,,v8)2 Vectorii (0,0,,0) si (1,1,,1) reprezinta extremitatile: 1 si 2 Astfel daca consideram un vector v =(100100111) cu (v)10 =295. si aplicam mutatia la cromozomul cinci, obtinem : v=(100110111) cu (v)10= 311

Algoritmi Genetici/3
xv = -1+[3 /(2 8 -1)] *295 = -1+1,73 =0,73 f(xv) = 2- | 0,73-1| =1,73 si xv = -1+[3 /(2 8 -1)] *311 = -1+1,83 =0,83 f(xv) = 2- | 0,83-1| =1,83 Deoarece, f(xv) > f(xv) rezulta ca noul individ are un potential mai ridicat si, deci, are sanse mai mari de supravietuire. O incrucisare implica doi parinti; fie v si v ce doi parinti; v = (100110111) pentru care f(xv) = 1,83 si v =(100011000) pentru care f(xv) = 1,64 Presupunem punctul de incrucisare (taietura) dupa gena a 6-a. v = (100110|111) v =(100011|000)

Algoritmi Genetici/4
Rezulta; w = (100110000) si w =(100011111) Calculam: xw = -1+[3 /(2 8 -1)] *304 = -1+1,78 =0,78 f(xw) = 2- | 0,78-1| =1,78 si xw =-1+[3 /(2 8 -1)] *287 = -1+1,68 =0,68 f(xw) = 2- | 0,68-1| =1,68 Concluzie: In urma operatiei de incrucisare au rezultat doi indivizi /solutii al caror potential este mai bun decat al unuia din parinti, dar mai slab decat al celuilalt.

Algoritmi Genetici/5
Structura generala a unui algoritm genetic Stabilirea apriori a parametrilor algoritmului * m numarul de gene din componenta unui cromozom * POP dimensiunea populatiei a carei evolutie este simulata * pc - probabilitatea de efectuare a unei incrucisari * pm probabilitatea de efectuare a unei mutatii * MAX numarul maxim de iteratii Cu aceste notatii la iteratia t se efectueaza: # fie P(t-1) populatia existenta la inceputul iteratiei t, t= (1,2.) pentru care s-au efectuat: - evaluarea potentialului fiecarui cromozom f(xv ), xvP(t-1) - evaluarea poten ialului ntregii popula ii F! f (xv)
v (t ) P 1

Algoritmi Genetici/6
# presupunem c popula ia P(t-1) se reprezint sub forma unei liste {v1, v2, ..., vn} = P(t-1) cu num r de elemente POP = n # in itera ia t se pune problema creeri unei noi genera ii i n acest scop se evalueaz mai nti ansa fiec rui individ de a participa la acest lucru; pentru aceasta calcul m: - probabilitatea de selec ionare a cromozomului vi (i=1,n)

f (vi) p! (i !1n) , i F
forma: - probabilitatea cumulat qi pentru cromozomul vi , de
q i ! p 1  p 2  ...  p i ( i ! 1, n )

Algoritmi Genetici/7
# Selectarea indivizilor popula iei viitoare P(t) se va face astfel: - Pentru fiecare i=1,n se generaz un num r aleatoriu r[0,1] i dac qi-1<r<qi atunci select m cromozomul vi i l renot m vi. n lista P(t-1) un individ poate apare de mai multe ori, mai ales dac are un poten ial ridicat; - Pentru indivizii selec iona i vi se generaz aleatoriu un num r s[0,1] i dac s<pc select m vi n vederea ncruci tii. Se ob ine astfel o list mai mic n care un individ poate s apar de mai multe ori, iar lista trebuie s aib un num r par de indivizi; dac num rul nu este par se completeaz un individ ales la ntmplare; - Se stabilesc aleatoriu perechile de indivizi pentru ncruci are i cuplarea lor se face deci la ntmplare.

Algoritmi Genetici/8
- la fiecare pereche se alege n mod aleatoriu punctul de ncruci are i se concateneaz ncruci at p r ile rezultate; - urma ii rezulta i vor nlocui p r i din list (v1, v2, ..., vn) la care se va aplica operatorul de muta ie # Muta ia se realizeaz pornind de la ideea c genele tuturor indivizilor au aceia i ans de muta ie. Deci pentru fiecare individ din list (v1, v2, ..., vn) i fiecare gen a sa vom genera un num r aleator r?A i dac r<pm gena este mutat (adic din 0 trece n 1 sau din 1 trece n 0). Num rul mediu de cromozomi muta i este de n x pm. # Rezultatul ob inut este noua popula ie P(t) i ac iunile descrise se reiau n cadrul unei noi itera ii. La fiecare pas al algoritmului este memorat cromozomul cu cel mai mare poten ial g sit pn la acel moment.

Algoritmi Genetici/9
La terminarea algoritmului, care are loc dup efectuarea unui num r de itera ii egal cu MAX : -cel mai bun individ g sit pe parcurs constituie solu ia problemei; - aceast solu ie, n cazul alegerii judicioase a parametrilor, a utiliz rii unor scheme complexe de ncruci are i n general n cazul unui proces evolutiv bine condus, este foarte aproape de solu ia optim . Concluzii: algoritmii genetici sunt utili in rezolvarea problemelor de optimizare combinatoriala, in probleme de ordonantare de orice tip etc. in general in probleme cu ordin de comlexitate ridicat.

Algoritmi Genetici/10
Exemplu problema de ordonantare generala;
- intr-un atelier se executa difrerite lucrari (job-uri) pe diferite masini; - fiecare lucrare consta dintr-un numar de operatii tehnologice; - fiecare lucrare se executa pe o masina dedicata; - fiecare lucrare are definit un timp de prelucrare si ordinea operatiilor in conformitate cu fisa tehnologica. Fiind date toate informatiile (fara informatii stohastice) programarea realizarii unui lot de produse este o problema de ordonantare statica. Functia scop: sa se gaseasca o astfel de ordonantare a job-urilor pe masini incat timpul total de prelucrare sa fie minim ( cel mai des intalnita). Solutia admisibila: se obtine prin permutarea ordinii de executie a operatiilor pe masini fara violarea restrictiilor problema combinatoriala cu permutarea restrictionata a operatiilor. Observatie: daca permutarea ar fi fara restricii, pentru n job-uri pe m masini avem (n!) m solutii si este NP- complecta. Majoritatea problemelo de ordonantare sunt cu grad ridicat de complexitate si rezolvarea lor pri metode traditionale poate fi chiar imposibila din causa timpului de calcul. Se incearca rezolvarea utilizand algoritmi genetici sau metode conexioniste.

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