Exam: grades. Make-up exam: Thursday, Feb 12th 2026, 14:00-16:00, C112.





(ro) Structura laboratorului


La orele de laborator se vor implementa si testa unele meta-euristici predate la orele de curs, atat pe probleme de optimizare numerica cat si combinatorie. Vor trebui predate trei proiecte, fiecare insotita de un raport in format text. Nu exista nici un fel de restrictie in ceea ce priveste limbajul de programare folosit.
Fiecare proiect are fixata o saptamana limita pentru trimitere. Trebuie sa trimiteti codul sursa al temei (fara binare compilate) si raportul (in format .pdf) ca arhiva .zip (si nu alt format) pana la sfarsitul saptamanii. Pentru proiectele trimise mai tarziu se aplica penalizari la punctaj. Daca nu este timp pentru prezentare in acel laborator, nu veti primi penalizare de intarziere. Daca vi se solicita sa prezentati o tema si nu sunteti gata (de exemplu, sunteti absenti acea saptamana), primiti intreaga penalizare de intarziere asociata cu momentul real al prezentarii.
Adresa de e-mail a profesorului de laborator se afla pe acest site. Subiectul trebuie sa fie de forma
[GA]_Nume_Prenume_AnSemianGrupa_H1p
sau
[GA]_Nume_Prenume_AnSemianGrupa_Nume_Prenume_AnSemianGrupa_H3 .

Studentii pot lucra in echipe de maximum 2 persoane; odata intrata intr-o echipa, o persoana nu mai poate intra in alta.
Nu exista vreo restrictie despre limbajul de programare / scripting folosit, cat timp sursa este inteligibila, si limbajul este folosit in versiunea sa standard. Algoritmii folositi trebuie implementati, nu se accepta folosirea lor din biblioteci pre-existente.

(ro) Enunt teme


Sablon raport:
  • Titlul, autor
  • Abstract
  • Introducere, cu introducere generala (ce explica continutul raportului), motivatie, descriere problema. Introducerea trebuie sa explice clar, dar succint, continutul. Un test daca introducerea este buna este: daca cineva citeste doar introducerea si o sectiune aleatorie a raportului, acea persoana trebuie sa inteleaga acea sectiune. Bineinteles, introducerea este cea mai dificila parte a unui raport / articol, si nu veti fi depuncatati pentru calitatea ei, in limite rezonabile.
  • Metode: algoritmul utilizat, discutie alegeri implementare, discutie variante sau modificari folosite, e.g.: reprezentare (biti sau nr. reale), notiunea de vecinatate (cum sunt generati vecinii), procedura de initializare, conditia de oprire, parametrii (diferiti in functie de alg., ex. temp in SA, rate operatori in GA). La temele H1 si H2, puteti intra in detalii mai generale. La H1P, H2P, H3, puteti aminti de forma generala a algoritmului, si descrie in detaliu doar ce faceti diferit.
  • Descriere experimente: dimensiuni, precizie, numar de repetitii, etc.
  • Rezultate experimentale:
    • tablele cu cel putin 30 de rulari pentru fiecare set de parametri (inclusiv cele 3 dimensionalitati folosite pentru problemele studiate), continant: medie + deviatie standard (sau medianta si distanta Q1-Q3), minim, maxim pentru fitness-ul rezultatelor.
    • grafice: e.g. evolutia fitnessului de-a lungul unei rulari in functie de numarul de apeluri a functiei de evaluare. Nu incercati sa faceti grafice care nu au sens, sau reprezinta 'minciuni' statistice, e.g.: numarul rularii pe o axa si rezultatul mediu obtinut pe cealalta, unde rularile sunt initializate aleatoriu.
    • Discutia influentei parametrilor asupra performantei algoritmului: descrieti cum ati optimizat algoritmul.
  • Comparatii si discutie intre metodele implementate (numarul de evaluari pana se ajunge la o anumita precizie a solutiei pentru fiecare metoda, sau fixati un nr maxim de evaluari permis si afisati solutia obtinuta de fiecare metoda). Utilizati algoritmii optimizati.
  • Concluzii. Discutati si explicati natura si implicatiile rezultatelor, incercati sa facilitati intelegerea lor, la un nivel mai inalt decat discutia la obiect din sectiunea Rezultate Experimentale. Nu mai mult de 2 directii de cercetare viitoare.
  • Bibliografie. Mentionati toate resursele de care v-ati folosit: pagina / suportul de curs, articole stiintifice, wikipedia, wolfram alpha, youtube, tot.

Exemplu de cod LaTeX: https://gitlab.com/eugennc/teaching/-/tree/master/GA
  • Tema H1: Sa se determine minimul pentru urmatoarele functii: De Jong 1, Schwefel's, Rastrigin's, Michalewicz's
    implementand algoritmii Hill Climbing (variantele first improvement, best improvement si worst improvement) si Simulated Annealing (hibridizant una dintre variantele de Hill Climbing, la alegere). Analizati versiunile 5, 10 si 30-dimensionale ale functiilor (poate incercati si versiunea 100-dimensionala, ca o margine superioara). Folositi o precizie de reprezentare de minim 5 zecimale dupa 0.
    Termen limita: saptamana a 5-a
  • Tema H1'
    Se da functia f=x3-60x2+900x+100. Se doreste determinarea punctului de maxim atunci cand x ia valori in intervalul [0,31].
    Pe intervalul continuu [0.31] functia este uni-modala, avand un singur punct de maxim care se obtine in valoarea 10.
    Se doreste maximizarea functiei utilizand un algoritm Hill Climbing in care o solutie candidat este reprezentata pe 5 biti (32 valori posibil a fi reprezentate, ceea ce genereaza o cautare in spatiul numerelor intregi cuprinse intre 0 si 31). Vecinatatea consta in toate sirurile aflate la distanta Hamming 1. Studiati cum devine relieful fitness atunci cand se utilizeaza varianta first improvement si best improvement ale algoritmului Hill Climbing. In acest sens specificati punctele de maxim local si bazinele lor de atractie (bazin de atractie = multimea de puncte initiale pentru care cautarea ne duce spre acelasi optim).
    (rezolvarea se poate face pe hartie, +fotografiat, verificat claritatea fotografiei, trimis pe e-mail).
    Termen limita: saptamana a 6-a

  • Tema H2: Rezolvati problema de minimizare de la tema H1 implementand un algoritm genetic. Comparati cu rezultatele de la tema H1 si explicati.
    Termen limita: saptamana a 9-a

  • Tema H2'
    Optimizati algoritmul genetic de la H2 introducand e.g. meta-algoritmi, parametri adaptivi, operatori adaptivi, codificare gray... Intocmiti un scurt raport in care evidentiati performanta noii metode relativ la AG-ul clasic (relativ la H2).
    Termen limita: saptamana a 10-a

  • Tema H3: Rezolvati una din problemele de mai jos cu un Algoritm Genetic si o alta metoda euristica:
    1. Asignarea Patratica Probleme de test
    2. Colorarea grafurilor.(Probleme de test)
    3. Problema comisului voiajor (TSP)(Probleme de test)
    4. Problema satisfiabilitatii. (Probleme de test Probleme de test)
    Folositi doar instante din biblioteci de instante (nu va generati dvs. instante). Minim 10 instante, dintre care 3 sa fie cele mai mari si dificile disponibile. Sugestie: 1 instanta usoara, apoi crestere in dificultate / dimensiune pana la cele 3 foarte dificile.
    Penalizare de cate 0.5 puncte daca depasiti 2000 de generatii sau 200 de indivizi dupa selectie. (Incercati sa lucrati eficient, si sa echilibrati explorarea si exploatarea in algoritm).
    Termen limita: penultimul laborator, prezentarea va incepe de mai devreme

Calcul nota laborator:
[(0.8 * H1 + 0.2 * H1') + (0.8 * H2 + 0.2 * H2') + H3] / 3
Conditii de promovare laborator: cel putin 7 prezente si punctaj cel putin 5.
Nota (intre 0 si 10, rotunjita la 2 zecimale) obtinuta la laborator va contribui cu 50% la media de promovare a materiei.
In cazul in care nota in examen este sub 4, se va face o trunchiere (si nu o rotunjire) a mediei (L + E) / 2. Aceasta nota finala trebuie sa fie cel putin 5.
Barem exemplu T1:
  • 80% Implementare:
    • Reprezentare solutie: 0.5
    • Conversie solutie din reprezentare binara in numere reale: 0.5
    • SAHC / BIHC (steepest ascent / best improvement hillclimbing): 2.5
    • NAHC / FIHC (nearest ascent / first improvement hillclimbing): 2.5
    • SA (simulated annealing): 4
  • 20% Raport:
    • Descrierea problemei, introducere, concluzii: 1
    • Algoritm utilizat, explicatii: 1.25
      • Structura: 0.2
      • Reprezentare: 0.2
      • Vecinatate: 0.2
      • Initializare: 0.2
      • Conditie de oprire: 0.2
      • Parametri: 0.25
    • Rezultate experimentale:
      • medie + deviatie standard (sau mediana + distanta interquartilica Q1-Q3), minim, maxim pe 5, 10, 30 dimensiuni: 3 * 3 * 0.25 = 2.25
      • puteti folosi alte valori pentru dimensiuni, e.g.: 2, 15, 30. Dar trebuie un set bine distantat de 3 valori, cu cea mai mare cel putin 30.
      • grafice: 2
      • influenta parametrilor: 1.5
    • Comparatia intre metode: 2
  • Depunctari:
    • Rezultate slabe: -1. Rezultate exceptional de slabe: -3 (se acorda una dintre cele doua penalizari de la acest punct, nu amandoua).
    • Rezultate statistic nesemnificative: -2 (cel mai simplu de evitat: mostra statistica de >= 30)
    • Neintelegerea diferentei dintre SAHC si NAHC: -2
    • Neintelegerea influentei temperaturii asupra probabilitatii de acceptare: -1
    • Neintelegerea matematica a formulei probabilitatii de acceptare, sau inversarea diferentei: -1
    • Greseli statistice sau conceptuale majore: intre -0.5 si -3
    • Lipsa unei bibliografii: tema primeste nota 0

Pentru temele H1 si H2, proportia implementare/raport este 80%-20%. Pentru H1P, este 0/100%. Pentru H2P, H3, proportia este 50%/50%.

(en) Homework


Grading:
[(0.8 * H1 + 0.2 * H1') + (0.8 * H2 + 0.2 * H2') + H3] / 3
You need at least 7 attendances and 5 points in the above formula, for the lab.
The lab grade (between 0 and 10) will contribute 50% to the final grade; the other 50% will be from the exam.
If the exam grade is below 4, the (Lab + Exam) / 2 grade will be truncated down, not rounded.
The final grade needs to be at least 5.
Report structure
  • Title, author
  • Abstract
  • Introduction: it should clearly explain the content of the paper. A basic requirement is: if a reader chooses to read only a single section of your paper, and the indroduction, they should fully understand that section.
  • Methods: the algorithms used, the choices and variants made, etc. You need not write down the algorithms as written in the slides; your modifications are of far greater iterest.
  • Experimental setup description: dimensions, precision, number of iterations/repeats.
  • Experimental results
    • Tables with at least 30 runs for each parameter set, and statistical metadata (such as mean + standard deviation or median + interquartilic Q1-Q3 distance)
    • plots: histograms or timewise fitness evolution or whatever important, relevant and true information you believe is important to show. Statistical 'lies' will be penalised here: for instance, if you plot the run number versus the result quality, since the runs are statistically independent from each other.
    • Describe how the parameters used and choices made influence the performance of the algorithm.
  • Compare the methods used.
  • Conclusions. Talk about the larger-scale implications of the results, and try to explain them better than in the Results section. No more than 2 future research ideas.
  • Bibliography. Include all the relevant resources, be them scientific papers, the lectures slides, youtube videos or stack overflow questions.

LaTeX code example: https://gitlab.com/eugennc/teaching/-/tree/master/GA
  • Homework H1: Find the minimum for the following functions: De Jong 1, Schwefel's, Rastrigin's, Michalewicz's
    using the Hill Climbing (the first improvement, best improvement and worst improvement variants) and Simulated Annealing algorithms (hybridising one of the Hill Climbing variants).
    Analyse the 5-, 10- and 30-dimensional versions of all functions. (Perhaps run the 100-dimensional version as well, as an upper bound). Use a precision of at least 5 decimal places after 0.
    Soft deadline: week 5 (-10% points for each week of delay)
    Send the homework: source code without binary object and .txt or .pdf file, in a .zip archive (no other archive format allowed) to my e-mail, with a subject written like: [GA]_Name_Surname_Group_T1
  • Homework H1'
    For the function f=x3-60x2+900x+100, with x in [0, 31], find the maximum.
    On [0, 31], the function is uni-modal, having a single maximum point, for which the value is 10.
    Study the maximisation of the function using a Hill Climbing algorithm where a candidate solution is represented on 5 bits (32 possible values, so all the integers from 0 to 31). A candidate's neighbourhood is all the bitstrings at a Hamming distance of 1.
    Study and explain the function landscape in the context of the first improvement and best improvement variants of the Hill Climbing algorithm. Specify the attraction basing of all local maximum points (attraction basin: the set of points for which the gradient search leads to the same optimum).
    You can solve this on paper, +photograph, check the quality of the photo, then send it on e-mail.
    Hard deadline: week 6

  • Homework H2: Solve Homework T1 using a Genetic Algorithm. Compare with the results obtained in Homework T1 and offer explanations.
    Soft deadline: week 9

  • Homework H2'
    Optimise the Genetic Algorithm used for Homework H2 by adding adaptive parameters, adaptive operators, Gray coding, etc. Write a short report, detailing and explaining the performance differences.
    Hard deadline: week 10

  • Homework H3: Solve one of the problems below with a Genetic Algorithm and another heuristic:
    1. The Quadratic Assignment Problem. Test instances
    2. The Graph Colouring Problem.(Test instances)
    3. The Traveling Salesperson Problem (TSP)(Test instances)
    4. The Logical Satisfiability Problem (SAT). (Test instances Test instances)
    Use only instances from instance libraries (don't generate your own test instances). Use at least 10 instances, with 3 of them the largest and most difficult available. Suggestion: 1 easy instance, then increase the size and difficulty until the 3 most difficult ones.
    Penalty: 0.5 point each if you go over 2000 generations or 200 individuals after selection. (Try to work efficiently, and balance exploration and exploitation in the algorithm).
    Deadline: Second-to-last lab, try to finish it earlier


Homework H0


Implement two methods (a heuristic one and a deterministic one) to find the minimum of a function with an arbitrary number of variables. For the best grade, study at least 4 functions (2 of which must be Rastrigin's and Michalewicz's), compare the search algorithm performance between the 2-dimensional and 10-dimensional versions of the functions, and represent number with at least 5 decimal points after 0.
You can find test functions here.
Write a report (preferably LaTeX + .pdf) containing, for each function instance and algorithm tested, the minimum, average (or median) and maximum run time, and the best, average (or median) and worst solution found.
It is essential to compare the methods and explain the results. (Due to its short deadline, this homework is entirely optional: its points are not considered when defining the minimum number of points required to pass this lab.) Deadline: lab 2.

(ro) Notiuni: notiuni de baza

  • Probleme P, NP, NP-complete
  • Problema de optimizare, optime locale/globale
  • Metode exacte, euristici, algoritmi determministi/probabilisti, metaeuristici

Tema H0


Implementati doua metode (una euristica, cealalta determinista) pentru gasirea punctului de maxim sau de minim al unei functii cu un numar arbitrar de variabile. Pentru punctaj maxim, luati cel putin 4 functii, dintre care Rastrigin's si Michalewicz's, faceti o comparatie intre versiunea 2-dimensionala si versiunea 10-dimensionala, si folositi o precizie de reprezentare de minim 5 zecimale dupa 0.
Testati metoda pe una sau mai multe din functiile de aici.
Intocmiti un raport (preferabil, LaTeX + .pdf, sau text) in care sa precizati, pentru fiecare functie folosita pentru testare: timpul minim, mediu si maxim de executie cea mai buna si cea mai slaba solutie, precum si media solutiilor obtinute dupa un numar de rulari. Este esential sa faceti o comparatie intre metode, si sa explicati diferentele si rezultatele obtinute. Pana in laboratorul 2. Punctajul, impartit la 10, va fi adaugat punctajului de laborator, ca bonus.

(ro) Notiuni: Metode traiectorie

Hill Climbing

  • metoda iterativa ce realizeaza o cautare locala
  • denumita si Imbunatatire iterativa (Iterative Improvement)
  • este utilizata varianta iterata (Iterated Hill Climbing) in care HC este restartat, pentru a mari gradul de explorare a spatiului de cautare

Pseudocod:
t := 0
initialize best
repeat
    local := FALSE
    select a candidate solution (bitstring) vc at random
    evaluate vc
    repeat
        vn := Improve(Neghborhood(vc))
 	if eval(vn) is better than eval(vc)
	then vc := vn
	else local := TRUE
    until local
    t := t + 1
    if vc is better than best
    then best := vc
until t = MAX
Functia Improve cauta in vecinatate prima solutie candidat care e mai buna decat solutia curenta sau cea mai buna solutie (first improvement sau best improvement).

Simulated Annealing

  • Meta-euristica de tip traiectorie care permite o mai buna explorare a spatiului si iesirea din puncte de optim local, dand posibilitatea vizitarii unor solutii de calitate mai slaba decat cea curenta.

Pseudocod:
t := 0
initialize the temperature T
select a current candidate solution (bitstring) vc at random
evaluate vc
repeat
    repeat
        select at random vn: a neighbor of vc
        if eval(vn) is better than eval(vc)
            then vc := vn
            else if random[0,1) < exp(-|eval(vn) - eval(vc)| / T)
                then vc := vn
    until (termination-condition)
    T := g(T; t) 
    t := t + 1
until (halting-criterion)

Functia g(T; t) de modificare a "temperaturii" T va asigura o scadere treptata a acesteia cu fiecare iteratie (de exemplu, prin inmultirea cu o valoare subunitara).

    Reprezentarea solutiilor:

  • vectori de numere reale
  • siruri binare: spatiul de cautare se va disctretiza pana la o anumita precizie 10-d.
    Un interval [a, b] va fi impartit in N = (b - a) * 10d subintervale egale.
    Pentru a putea reprezenta cele (b - a) * 10d valori, este nevoie de un numar n = parte_intreaga_superioara(log2(N)) de biti.
    Lungimea sirului de biti care reprezinta o solutie candidat va fi suma lungimilor reprezentarilor pentru fiecare parametru al functiei de optimizat.
    In momentul evaluarii solutiei (apelul functiei de optimizat) este necesara decodificarea fiecarui parametru reprezentat ca sir de biti in numar real, dupa formula:
    Xreal = a + decimal(xbiti) * (b - a) / (2n - 1)
    !!! Nu folositi reprezentari de forma vector de vectori de biti. Folositi un simplu vector de biti.
    Adica, reprezentati o solutie candidat ca un vector de biti, nu o matrice de biti.

(ro) Notiuni: Fitness landscape (relief fitness)

Notiunea a aparut mai intai in genetica (Wright 1932) semnificand variatia din cadrul speciilor, axele spatiului reprezentand combinatii nespecificate de gene. Dobzhansky (1951) restrange domeniul de definitie a axelor, acestea semnificand frecventa unei alele particulare a unei gene particulare intr-o populatie particulara. Precursor al dezvoltarii unui formalism matematic al conceptului de fitness landscape, Eigen (1989) inroduce notiunea de cvasi-specie ca fiind un grup de secvente similare (siruri peste un anumit alfabet), diferentele intre membrii cvasi-speciei corespunzand la mutatii punctuale. Stadler a dezvoltat ulterior (1995) un formalism matematic relativ complet al teoriei landscape.

O problema de optimizare are in general urmatoarea forma:
Se da o functie f:X->R
si se doreste sa se determine x* in X a.i. f(x*)>=f(x), oricare ar fi x din X. Echivalent, x*=argmaxx din X(f)

Daca X este un spatiu discret avem o problema de optimizare combinatoriala. Daca X este un spatiu real n-dimensional avem o problema de optimizare numerica. In ambele cazuri o solutie candidat x din X ia forma unui sir de variabile iar functia f poarta numele de functie obiectiv. In campul algoritmilor evolutivi f este denumita si functie fitness iar peisajul/relieful asociat poarta numele de relief fitness (fitness landscape).
In cazul spatiilor continue elemente ale calculului diferential permit caracterizarea acestui relief oferind indicii asupra localizarii optimului global. Relieful este unic determinat de functia fitness.
In cazul spatiilor discrete lucrurile sunt diferite. Notiunea de relief implica existenta unor relatii topologice intre punctele spatiului de cautare X. Spre deosebire de spatiile continue, in spatiile discrete acestea nu sunt predefinite; ele sunt de fapt generate in momentul utilizarii unei anumite tehnici de cautare.

(ro) Notiuni: Algoritmi Genetici



Inspiratie

Algoritmii genetici au fost propusi de John Holland in 1973 dupa multi ani de studiere a ideii de simulare a evolutiei. Acesti algoritmi modeleaza mostenirea genetica si lupta Darwiniana pentru supravietuire. Alaturi de alte doua directii: strategiile evolutive si programarea evolutiva, formeaza clasa algoritmilor evolutivi.

Schema generala a algoritmilor evolutivi

    Sunt algoritmi probabilisti care:
  • mentin o populatie de reprezentari de solutii candidat
  • care evolueaza de-a lungul unor generatii/iteratii
  • sub controlul unei functii fitness care masoara meritul individual.

Terminologie

    Algoritmii evolutivi utilizeaza un vocabular imprumutat din genetica:
  • evolutia este simulata printr-o succesiune de generatii ale unei populatii de solutii candidat;
  • o solutie candidat poarta numele de cromozom si este reprezentata ca un sir de gene;
  • gena este informatia atomica dintr-un cromozom;
  • pozitia pe care o ocupa o gena se numeste locus;
  • toate valorile posibile pentru o gena formeaza setul de alele ale genei;
  • populatia evolueaza prin aplicarea operatorilor genetici: mutatia si incrucisarea;
  • cromozomul asupra caruia se aplica un operator genetic se numeste parinte iar cromozomul rezultat se numeste descendent;
  • selectia este procedura prin care sunt alesi cromozomii ce vor supravietui in generatia urmatoare; indivizilor mai bine adaptati li se vor da sanse mai mari;
  • gradul de adaptare la mediu este masurat de functia fitness;
  • solutia returnata de un algoritm genetic este cel mai bun individ din ultima generatie.

Pseudocod

t := 0
generate the starting population P(t)
evaluate P(t)
while not StoppingCondition
    t := t + 1
    select P(t) from P(t-1)
    mutate P(t)
    cross-over P(t)
    evaluate P(t)

Reprezentarea

Pentru problemele de optimizare numerica se va utiliza reprezentarea binara.

Functia fitness

Functia fitness este utilizata pentru a masura calitatea cromozomilor. Ea este formulata plecand de la functia numerica de optimizat. Trebuie sa fie pozitiva si este construita pentru maximizare (indivizii adaptati obtin valori mari ale functiei fitness). Daca functia g de optimizat
  • este conceputa pentru minimizare, functia fitness f este obtinuta prin inmultirea cu -1:
    f(x) = -g(x)
    min{g(x)} = max{-g(x)} = max{f(x)}
  • nu este pozitiva, functia fitness f este construita prin adaugarea unei constante suficient de mari, a.i. rezultatul sa fie pozitiv.
    f(x) = g(x) + C
    Cu cat constanta este mai mare cu atat scade mai mult varianta fitnessului in populatie, deci scade si presiunea de selectie pentru schemele de selectie proportionale cu fitnessul.
    Pentru functiile pozitive care necesita minimizare este de preferat utilizarea functiei fitness obtinuta prin inversarea valorii functiei:
    f(x) = 1/g(x)

Selectia

    Scopul selectiei este de a alege pentru supravietuire cei mai adaptati indivizi din populatie cu speranta ca descendentii acestora vor avea un fitness mai ridicat. In combinatie cu variatii ale operatorilor de incrucisare si mutatie, selectia trebuie sa pastreze un echilibru intre explorare si exploatare. O presiune de selectie ridicata duce la crearea unei diversitati scazute in populatia creata din indivizi bine adaptati dar suboptimali, ceea ce duce la o limitare a modificarilor si implicit a progresului. Pe de alta parte, o presiune de selectie scazuta incetineste evolutia.
  • Roata norocului
    Aceasta este schema de selectie introdusa de Holland in algoritmul genetic original. Numarul estimat de copii pe care le primeste un individ este proportional cu fitnessul sau impartit la fitnessul total al populatiei.
    Evaluate P		for i:=0 to POP_SIZE
    			    eval[i] = f( P(i) )
    Total fitness		for i:=0 to POP_SIZE
    			    T += eval[i]
    Individual sel.prob.	for i:=0 to POP_SIZE
    			    p[i] = eval[i] / T
    Accumulated sel.prob.	q[0] = 0
    			for i:=0 to POP_SIZE
    			    q[i+1] = q[i] + p[i]
    Selection		for i:=0 to POP_SIZE
    			    uniform random r in (0,1]
    			    select for the next generation the individual j
    			       for which q[j] < r <= q[j+1]
    
  • Selectia bazata pe rang previne convergenta prematura ce apare la utilizarea schemelor de selectie proportionala cu fitnessul. Indivizii sunt ordonati in functie de valoarea fitnessului iar probabilitatea de selctie este proportionala cu rangul ocupat. Presiunea de selectie este in acest mod scazuta in cazul in care varianta fitnessului este mare si este crescuta daca varianta fitnessului este mica.
  • Selectia turneu alege in mod aleatoriu k indivizi iar dintre acestia doar cei mai buni j sunt selectati pentru supravietuire. Procedra se repeta pana se obtine numarul dorit de indivizi. Este cea mai eficienta din punct de vedere al complexitatii timp. Din punct de vedere al presiunii de selectie se aseamana selectiei bazata pe rang.
  • Elitismul, introdus de Ken DeJong (1975) este o schema aditionala oricarui mecanism de selectie al carei scop este de a retine cei mai buni k indivizi la fiecare generatie; astfel de idivizi ar putea altfel disparea din cauza ca nu au fost selectati pentru supravietuire sau fiindca au fost distrusi prin aplicarea operatorilor. Studii experimentale au dovedit ca de multe ori elitismul imbunatateste semnificativ performanta algortimului genetic.

Operatorii genetici

  • Mutatia - modificarea unei gene alese aleatoriu
    001011000 -> 001011010
  • Incrucisarea are ca scop schimbul de informatie genetica intre doi sau mai multi cromozomi.
  • incrucisarea cu un punct de taiere, ales aleator.
    01 001011    _\    01 111100
    10 111100     /    10 001011
    
  • Incrucisarea cu n puncte de taiere, generate aleator. Exemplu (n=3):
    01 0 010 11    _\    01 1 010 00
    10 1 111 00     /    10 0 111 11
    
  • Incrucisare uniforma: pentru fiecare locus, se selecteaza probabilist gena unuia dintre parinti.

(en) Lectures slides, other materials


Lectures slides: gaSlides2024-2025.7z. The archive password is the same as the Webex sessions password.
Very basic illustrated selection program: selectionExample.zip.
Metaheuristics in CO
GAs for multimodal search

Reference Visual Algorithms, in Python and OpenGl(BF, RSA, BIHC, GA, GA+BIHC, PSO)

Download:
solverGl.py

Old site links:
GA
NIM