Extras din laborator
1.Descrierea algoritmului
Populația este reprezentată printr-un vector de matrice binare, fiecare reprezentând un set de
parametri pentru funcția de minimizat. Într-o matrice, fiecare șir binar are un număr de biți
necesar pentru a avea precizia de 4 zecimale. Metoda folosită este descrisă în continuare. Spațiul
de căutare se discretizează până la o precizie 10-d (în particular, d = 4). Un interval [a,b] va fi
împărțit în N=(b−a)∗10d subintervale egale. Pentru a putea reprezenta cele (b−a)∗10d valori, este
nevoie de un număr n = parte_întreagă_superioară(log2N) biți.
Lungimea șirului de biți care reprezintă o soluție candidat va fi suma lungimilor reprezentărilor
pentru fiecare parametru al funcției de optimizat. În momentul evaluării soluției (apelul funcției
de optimizat) este necesară decodificarea fiecărui parametru reprezentat ca șir de biți în număr
real, după formula: Xreal=a+decimal(Xbiti)*( b−a)/(2n−1). Metoda de selecție aleasă pentru acest
algoritm este roata norocului. Numărul estimat de copii pe care îi primește un individ este
proporțional cu fitnessul său împărțit la fitnessul total al populației. În continuare este descris
pseudocodul pentru această metodă.
Funcția fitness (notata cu f mai sus) este utilizată pentru a măsura calitatea cromozomilor. Ea
este formulată plecând de la funcția numerică de optimizat. Trebuie să fie pozitivă și este
construită pentru maximizare (indivizii adaptați obțin valori mari ale funcției fitness).
Funcția fitness aleasă pentru implementarea algoritmului este f(x) = 1 / (g(x) + min(g(x)) +
0.00001), unde g(x) este funcția de optimizat. În cazul funcțiilor DeJong și Rastrigin, aceasta se
transformă în 1 / (g(x) + 0.00001).Constanta 0.00001 previne eroare provenită din împărțirea
unui număr la 0.
Preview document
Conținut arhivă zip
- Algoritmi genetici.pdf
- tema2.cpp