Académique Documents
Professionnel Documents
Culture Documents
Hill Climbing
- metaeuristică de tip traiectorie;
- metodă iterativă ce realizează o căutare locală denumită și Îmbunătățire
iterativă (Iterative Improvement)
- este utilizata varianta iterată (Iterated Hill Climbing) in care HC este
restartat, pentru a mari gradul de explorare a spatiului de cautare
Simulated Annealing
- meta-euristică de tip traiectorie care permite o mai bună explorare a
spațiului și ieșirea din puncte de optim local, dând posibilitatea vizitării unor
soluții de calitate mai slabă decât cea curentă.
Algoritmul utilizat
Pseudocod
HC First Improvment
best <- getBitStrings()
pentru i <- 0, n execută
Vc <- getBitStrings()
execută
local <- false
Vn <- neighbor(Vc)
dacă FirstBetterThanSecond(Vn,Vc) atuci
Vc <- Vn
altfel
local <- true
cât timp local = true
HC Best Improvement
best <- getBitStrings()
pentru i <- 0, n execută
Vc <- getBitStrings()
execută
local <- false
VnBI <- neighbors(Vc,t)
dacă FoundBetterNeighbor(VnBI,Vc) atunci
Vc <- getBestNeighborFromMatrix(VnBI)
altfel
local <- true
cât timp local = true
dacă FistIsBetterThanSecond(Vc,best) atunci
best <- Vc
Reprezentarea numerelor
- generate aleator am facut-o initial calculând numărul de biți necesari
folosind formula ceil(log2((b-a) * pow(10,precision))) pentru a reprezenta acel
număr care apartinea unui interval specific [a,b]. Apoi, dupa aflarea numarului de
biți necesari, pentru fiecare numar am folosit câte o matrice de liste în care am
memorat biți la care pe fiecare poziție am pus aleator un bit de 0 sau 1. Pasul
următor a fost să convertesc aceste numere formate din biți în numere întregi
reale, folosind formula a+getBase10(bitstring)*((a + (b-a)/bitLength)-
a)/(pow(2,bitLength)-1).
Notiunea de vecinatate
- vecinii sunt generați în funcțiile neighbor și neighbors, care transformă
bitul 1 in bitul 0, iar bitul 0 in bitul 1, după caz
Procedura de inițializare
- se inițializeazî matricea-listî ce va fi folosită pentru a genera vecini și a calcula
soluțiile
Condiția de oprire
- în cazul algoritmului Hill Climbing, algoritmul se va opri atunci cand nu se
va găsi o valoare mai buna a fitness-ului decât cea precedentă.
În cazul algoritmului Simulated Annealing, algoritmul se va opri atunci când temperatura
nu va mai satisface condiția să fie mai mare decât 0.
Parametri
- Hill Climbing First Improvement: Vc, Vn, best, numărul de iterații;
Rezultate experimentale
Medie, minim, maxim și deviație
5 dimensiuni
10 dimensiuni
800
700
600
500
Rastrigin
400 Schwefel 7
De Jong 1
300
200
100
0
0 rulari 100 rulari 300 rulari 500 rulari
1,600
1,400
1,200
1,000
Rastrigin
800 Schwefel 7
De Jong 1
600
400
200
0
0 rulari 1000 rulari 5000 rulari 50000 rulari