110 likes | 362 Views
Zakázané hľadanie (Tabu search). Fred Glover, koncom 80tych rokov Tabu (alebo Taboo): Podľa slovníka: “zákaz, za účelom ochrany” V kontexte “Tabu Search”: obmedzenie v rámci prehľadávaného priestoru, s cieľom zabrániť cyklom a opakovanému návratu k nepotrebným riešeniam Meta-heuristické
E N D
Zakázané hľadanie (Tabu search) Fred Glover, koncom 80tych rokov Tabu (alebo Taboo): Podľa slovníka: “zákaz, za účelom ochrany” V kontexte “Tabu Search”: obmedzenie v rámci prehľadávaného priestoru, s cieľom zabrániť cyklom a opakovanému návratu k nepotrebným riešeniam Meta-heuristické Neexistuje formálny dôkaz konvergencie Iteratívne prehľadávanie okolia
Hlavné vlastnosti zakázaného hľadania • Adaptívna pamäť • obsahuje oblasť, ktorá už bola prehľadaná • Prospieva k efektívnejšiemu a úspornejšiemu prehľadávaniu • Responzívne prehľadávanie • Algoritmus sa učí z dobrých aj zlých riešení, ktoré už boli nájdené
Pamäť • „Recency“ • Čas od poslednej návštevy • „Frequency“ • Ako často sa vyskytuje • „Quality“ • Ako výhodné je dané miesto • „Influence“ • Aký vplyv na kvalitu majú rozhodnutia počas hľadania
Základné myšlienky • Iteratívna procedúra hľadajúca len najlepšie riešenie sa zasekne v lokálnom minime • Preto je potrebné spraviť aj kroky, ktoré priamo nevedú k zlepšeniu • Vzniká riziko zacyklenia, preto sa zaviedli tzv. tabu kroky – kroky vedúce k nedávno navštíveným stavom
Základné myšlienky • Ašpiračné podmienky • Intenzifikácia • Diverzifikácia
Algoritmus (pseudokód) • Krok 1. Vyber počiatočné riešenie i z S. Nastav i* = i a k = 0 • Krok 2. Nastav k = k +1 a generuj podmnožinu V z i pomocou transformácií t z T tak, že platí: t sa nenachádza v tabu zozname alebo sú splnené ašpiračné kritéria • Krok 3. Vyber najlepšie j z množiny V a nastav i = j • Krok 4. Ak f(i) < f(i*), i* = i • Krok 5. Uprav tabu zoznam a ašpiračné kritériá • Ak je splnená ukončovacia podmienka, skonči. Inak choď na krok 2.
Evolučné programovanie • Stochastický optimalizačný algoritmus • Vychádza z Horolezeckého algoritmu • Optimalizačný problém : aopt = min f(a), pričom a Єbinárny priestor s dimenziou k, f je funkcia z binarneho priestoru do oboru reálnych čísel, tzv. ohodnotenie argumentu a
Algoritmus (obrázok) • Podmnožina Q množiny P • Q zmutuje na Q´, zjednotenie do množiny R • Výber S z R, tournament => dve možnosti • Usporiadanie vzostupne podľa funkčnej hodnoty, prvá polovica tvorí S • |R|/2x náhodne vyberiem dva prvky množiny R, prvok s menšou funkčnou hodnotou ide do S • S nahradí Q v P
Algoritmus (Pseudokód) begin P := náhodne generovaná populácia chromozómov; Stop_criterion := false; while not stop_criterion do begin Q := náhodne vybratá podpopulácia z P; Q´ := Omut (Q); R := Q u Q´; S := Otournament (R); P := (P \ Q) u S; if konvergenčné kritériá sú splnené then stop_criterion = true; end; aopt := min f (a); end;