Algoritmi Genetici
Laboratorul 2
Cuprins
Metode: Temă:Hill-Climbing
begin
t := 0
initialize best
repeat
local := FALSE
select a candidate solution (bitstring) vc at random
evaluate vc
repeat
generate all (or some) of the Hamming neighbors of vc
select the vn among these
with the best value of the function eval
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
end
Reprezentare:
Spaţiul de căutare se va disctretiza până la o anumită precizie 10-d. 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_intreaga_superioara(log2(N)) de biţi. Lungimea şirului de biţi care reprezintă o soluţie candidat va fi suma lungimilor reprezentărilor pentru fiecare interval din domeniul de definiţie al funcţiei de optimizat.
Prin vecin Hamming al unui şir de biţi v se înţelege un şir de aceeaşi lungime, care diferă printr-un singur bit de v.
Simulated Annealing
begin
t := 0
initialize the temperature T
select a current candidate solution (bitstring) vc at random
evaluate vc
repeat
repeat
select at random vn - a Hamming 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)
end
Se va folosi acelaşi mod de reprezentare ca mai sus.
Funcţia g(T; t) de modificare a "temperaturii" T va asigura o scădere treptată a acesteia cu fiecare iteraţie (de exemplu, prin înmulţirea cu o valoare subunitară).
Exemple de condiţii de ieşire din bucle:
- pentru bucla interioară (termination-condition): verificarea unui număr stabilit de vecini;
- pentru bucla exterioară (halting-criterion): atingerea unei anumite temperaturi, atingerea unui număr de iteraţii.
Temă
Implementaţi cele două metode de mai sus pentru a găsi punctele de extrem ale funcţiilor propuse la laboratorul 1.
Ilustraţi prin grafice modul în care evoluează soluţiile. Pentru Hill Climbing, graficul trebuie să exprime valoarea functiei de optimizat în punctul reprezentat de vc în cadrul buclei din fiecare iteraţie, respectiv în punctul reprezentat de best în funcţie de iteraţii. Pentru Simulated Annealing se vor trasa evoluţia valorii functiei de optimizat în punctul reprezentat de vc şi modul de scădere a "temperaturii de călire".
Realizaţi un scurt raport (format text) care să precizeze, pentru fiecare dintre metode:
- timpul minim, mediu şi maxim de execuţie
- cea mai buna şi cea mai slaba soluţie, precum si media soluţiilor obţinute după un număr de rulări.