Sunteți pe pagina 1din 12

Optimizari prin meta-euristici

Multe probleme de importan att practic ct i teoretic au drept scop cutarea celei mai bune configuraii a unei mulimi de variabile. Aceste probleme au fost mprite n dou categorii: cele care au soluii codate cu variabile continue i cele cu soluii codate cu variabile discrete. Printre cele din urm putem gsi o clas de probleme numite de optimizare combinatoric (OC) [4]. Rezolvarea acestor probleme const n gsirea unui obiect dintr-o mulime finit, eventual infinit. Acest obiect este n general un numr ntreg, o submulime, o permutare sau o structur de graf. O problem de optimizare combinatoric P=(S,f) poate fi definit prin: o mulime de variabile X={x1,, xn} domeniile de variaie a variabilelor D1,, Dn restriciile aplicate variabilelor o funcie f de minimizat, unde f:D1 x x Dn R+ Mulimea tuturor combinaiilor fezabile este: S={s={(x1, v1),, (xn, vn)} | unde vi Di, s satisface toate restriciile} S port numele de spaiul cutrii sau al soluiilor, deoarece fiecare element din aceast mulime poate fi vzut ca o potenial soluie. Pentru a rezolva o problem OC trebuie s gsim o soluie s* soluii optime globale. Datorit importanei practice a problemelor OC, s-au dezvoltat muli algoritmi care s ncerce s rezolve acest tip de probleme. Aceti algoritmi pot fi clasificai n dou categorii: algoritmi exaci (complei) i aproximativi. Algoritmii exaci garanteaz gsirea soluiei optime ntr-un timp finit. Totui, pentru clasa de probleme NP-dificile nu exist nici un algoritm care s rezolve aceste probleme n timp polinomial. De obicei, algoritmii complei au nevoie de timpi de calcul exponeniali, ceea ce nseamn un interval prea lung pentru scopuri practice. De aceea, algoritmii aproximativi au nceput s fie folosii din ce n ce mai des n ultimii ani. Aceste metode aproximative sacrific garania de a gsi optimul global pentru a gsi doar soluii bune ntr-un timp mult mai scurt.

s S astfel nct f(s*) f(s), S . s* poart


S* S

numele de optim global a problemei (S, f) iar

poart numele de mulimea de

Metodele aproximative pot fi mprite primar n metode constructiviste i metode de cutare local (local search). Algoritmii constructiviti genereaz o soluie prin adugarea la o soluie parial de componente pn la completare. Sunt cele mai rapide metode, dar de obicei returneaz soluii de calitate mai slab n comparaie cu algoritmii de cutare local. Metodele local search pornesc de la o soluie iniial generat aleatoriu i printr-o procedur iterativ ncearc s o nlocuiasc cu o soluie de calitate superioar aflat n vecintatea soluiei curente. Structura de vecintate este o funcie elementului s. Structura de vecintate ne permite s definim conceptul de soluii optime locale. Un minim local n vecintatea N este o soluie s* astfel nct
(s) f (s* ) (s) . s N , f

N : S 2S

care asigneaz fiecrui

element s S o mulime de vecini N (s) S . N(s) poart numele de vecintatea

n ultimii ani au aprut un nou tip de algoritmi aproximativi care ncearc s combine metodele heuristice de baz pentru a obine o explorare mai eficient a spaiului soluiilor. Aceste metode sunt numite metaheuristici. Acest termen deriv din compunerea a dou cuvinte greceti: heuriskein (a gsi) i meta (dincolo, la un nivel superior). Aceasta clas de algoritmi include optimizarea prin colonii de furnici, algoritmi evoluioniti, care includ: algoritmii genetici, Iterated Local Search, Simulated Annealing, Tabu Search. Pn n acest moment nu exist o definiie unanim acceptat a metaheuristicilor, dar n continuare vom cita cteva definiii date de civa cercetri n domeniu: O metaheuristic este un proces de generare iterativ care ghideaz o heuristic subordonat prin combinarea inteligent a diferite concepte de explorare i exploatare a spaiului de cutare pentru a gsi ntr-o manier eficient soluii sub-optimale (Osman i Laporte, 1996) O metaheuristic este un proces iterativ master care ghideaz i modific operaiile efectuate de heuristici subordonate pentru a eficientiza producerea de soluii de bun calitate. Poate manipula o singur soluie sau o colecie de soluii la fiecare iteraie.

Heuristicile subordonate pot fi proceduri de nivel nalt sau jos, o simpl cutare local sau doar o metod constructivist. (Vo 1999) n ansamblu, proprietile fundamentale ale metaheuristicilor sunt

urmtoarele: sunt strategii care ghideaz procesul de cutare scopul lor este de a explora eficient spaiul soluiilor pentru a gsi soluii (sub-) optimale tehnicile folosite acoper o gam larg de algoritmi, pornind de la o simpl cutare local i ajungnd pn la algoritmi compleci de nvare algoritmii metaheuristici sunt aproximativi i de obicei nedeterministici pot include mecanisme de evitare a optimelor locale nu sunt specifice numai anumitor probleme pot apela la cunotine specifice domeniului prin intermediul unor heuristici locale care sunt controlate de un nivel superior Pe scurt, metaheuristicile sunt strategii la nivel nalt de explorare a spaiului soluiilor, folosindu-se de diverse metode. O importan foarte mare o joac ns balana dintre diversificare i intensificare. Termenul de diversificare se refer i general la explorarea spaiului soluiilor, n timp ce termenul de intensificare se refer la exploatarea experienei acumulat din cutare. Acest echilibru este foarte important, deoarece, pe de o parte, trebuie identificate rapid regiunile din spaiul de cutare care conin soluii de bun calitate i, pe de alt parte, nu trebuie pierdut prea mult timp n regiunile care ori deja au fost explorate, ori nu furnizeaz soluii de bun calitate. Strategiile de cutare ale metaheuristicilor depind foarte mult de filozofia propriu-zis a metodei. Exist mai multe filozofii diferite. Unele dintre ele pot fi considerate ca nite extensii inteligente a algoritmilor de cutare local. Scopul acestor metode este de a scpa de atracia minimelor locale i de a se muta n sperana de a gsi alte minime de calitate superioar. Acesta este cazul metodelor Tabu Search, Iterated Local Search, GRASP, Simulate Annealing. Aceste metaheuristici (numite i metode de traiectorie), lucreaz cu una sau mai multe structuri de vecintate impuse soluiilor din spaiul de cutare.

O strategie diferit poate fi ntlnit la algoritmi de tipul optimizare prin colonii de furnici sau algoritmii genetici. Aceste metode ncorporeaz o component de nvare n sensul c ncearc s stabileasc o relaie de corelaie ntre variabilele de decizie pentru a identifica regiunile cu soluii de bun calitate din spaiul de cutare. Acest aspect este implementat la algoritmii genetici prin recombinarea soluiilor iar la coloniile de furnici prin eantionarea spaiului de cutare conform cu o distribuie probabilistic.

Clasificarea metaheuristicilor
Exist mai multe feluri de a clasifica i de a descrie aceti algoritmi. Fiecare clasificare este de fapt rezultatul unui punct de vedere specific caracteristicilor alese pentru a le diferenia. Inspirate sau nu de natur. Unul din cele mai intuitive moduri de clasificare se bazeaz pe originea algoritmului. Astfel, exist algoritmi bazai pe natur, cum ar fi algoritmii genetici sau optimizarea bazat pe colonii de furnici, i algoritmi cum ar fi Tabu Search sau Iterated Local Search care nu sunt inspirai de natur. Din pcate aceast clasificare nu mai este foarte exact din dou motive: mai nti pentru c muli algoritmi hibrizi receni nu se pot ncadra n nici o clas (sau, se ncadreaz n amndou); i apoi uneori este foarte greu s ncadrezi cu claritate un algoritm ntr-una din cele dou clase. De exemplu, te poi ntreba dac folosirea memoriei n Tabu Search nu este i ea inspirat de natur! Bazate pe o populaie sau cutare ntr-un singur punct. O alt caracteristic care poate fi folosit n clasificarea metaheuristicilor este numrul de soluii gestionate n acelai timp. Algoritmii care lucreaz cu o singur soluie sunt numii metode de traiectorie i cuprind metodele bazate pe local search, cum ar fi Tabu Search, Iterated Local Search i Variable Neighborhood Search. Toate se pot caracteriza prin faptul c descriu o traiectorie n spaiul soluiilor n timpul procesului de cutare. Metaheuristicile bazate pe populaie realizeaz o cutare care descrie evoluia unui set de puncte n spaiul soluiilor. Aceeai clasificare poate fi ntlnit i n [3], sub numele de ISI (Iteration Solution Improvement) pentru metodele care caut ntr-un singur punct i IPI (Iteration -Population Improvement) pentru metodele care 4

gestioneaz o populaie de soluie. Urmtoarele dou capitole sunt bazate pe aceast clasificare, metodele descrise n continuare fiind grupate dup acest criteriu. Funcie obiectiv dinamic fa de funcie obiectiv static. Aceste metode pot fi clasificate i funcie de modul n care folosesc funcia obiectiv. n timp ce unii algoritmi pstreaz reprezentarea funciei obiectiv dat de problem aa cum este, ali algoritmi, cum ar fi Guided Local Search modific funcia n timpul procesului de cutare. Ideea de baz const n ncercarea de a scpa de atracia minimelor locale prin modificarea peisajului n care are loc cutarea. Astfel, n timpul cutrii, funcia obiectiv este alterat ncercnd s se ncorporeze informaia acumulat pn atunci n timpul cutrii. O vecintate fa de mai multe vecinti. Multe dintre metaheuristici lucreaz cu o singur structur de vecinti. Astfel, n timpul cutrii, topologia peisajului soluiilor nu se schimb. Alte metode ns, cum ar fi Variable Neighborhood Search i Kangaroo, folosesc un set de structuri de vecinti care dau posibilitatea de a diversifica cutarea prin schimbarea periodic a peisajului soluiilor. Folosirea sau nu a memoriei. O trstur marcant a acestor metode este dac ncorporeaz o istorie a cutrii, adic dac folosesc sau nu o memorie. Cele care nu folosesc memorie au la baz un proces Markov, deoarece singura informaie pe care o stocheaz pentru a determina urmtorul pas de cutare este starea actual a procesului de cutare. n ceea ce privete memoria, exist dou moduri de a o folosi: pe termen scurt sau pe termen lung. Pe termen scurt implic de obicei memorarea ultimilor pai executai sau ultimele soluii vizitate. Pe terme lung implic o acumulare a parametrilor sintetici folosii n cutare. Folosirea memoriei este recunoscut ca fiind o trstur fundamental pentru o metaheuristic de bun calitate. n urmtoarele dou capitole vor fi descrise trsturile fundamentale a ctorva metaheuristici. n capitolul trei vor fi tratai algoritmii genetici, o metod inspirat de natur bazat pe populaii de soluii, iar n capitolul patru vor fi descrise cteva metode de traiectorie. n capitolul cinci va fi descris hibridizarea metaheuristicilor, avnd n vedere c de mare actualitate este integrarea metodelor de cutare ntr-un singur punct cu cele bazate pe populaie.

2. mbuntirea iterativ a unei solutii (ISI)

Termenul de traiectorie este folosit deoarece procesul de cutare realizat de aceste metode este caracterizat printr-o traiectorie n spaiul soluiilor. Astfel, o soluie succesoare s-ar putea sau nu s aparin vecintii soluiei curente. Procesul de cutare a acestor metode poate fi vzut ca o evoluie n timp a unui sistem dinamic discret i descrie o traiectorie n spaiul strilor. Dinamica sistemului depinde de strategia utilizat. Algoritmii mai simpli genereaz o traiectorie format din dou pri: o faz de tranziie urmat de o faz de atracie (ctre un optim local). Algoritmii care incorporeaz strategii avansate de cutare genereaz traiectorii mai complicate care nu pot fi divizate n cele dou faze [4], [5]. Trebuie subliniat faptul c dinamica unui algoritm rezult din combinarea algoritmului respectiv cu reprezentare problemei de rezolvat i instana problemei. De fapt, reprezentarea problemei mpreun cu structura de vecinti definesc peisajul cutrii, algoritmul descrie strategia de explorare a soluiilor, n timp ce caracteristicile spaiului de cutare sunt definite de instana problemei de rezolvat.

2.1. Metode de baz: Basic Local Search,


Cutarea local de baz este numit n general mbuntire iterativ deoarece fiecare pas este efectuat numai dac soluia rezultat este mai bun dect soluia curent. Algoritmul se oprete imediat ce gsete un optim local. Algoritmul este descris n figura 1.
s Genereaz Soluia Iniial repet s mbuntete(N(s)) pn cnd nici o mbuntire nu este posibil

Fig. 2.1. Algoritmul mbuntirilor Iterative

Funcia mbuntete(N(s)) poate fi de tipul prima mbuntire sau de tipul cea mai bun mbuntire, sau orice tip intermediar. Prima metod scaneaz vecintatea i alege prima soluie care este mai bun dect soluia curent. A doua metod exploreaz exhaustiv vecintatea i returneaz soluia cu cea mai bun valoare a funciei obiectiv. Amndou se opresc cnd ntlnesc un optim local. Performanele procedurilor de mbuntire iterativ n rezolvarea problemelor NP-dificile sunt destul de sczute, fapt pentru care mai multe tehnici au fost dezvoltate pentru a preveni euarea metodelor n optime locale. Astfel se modific i condiia de terminare a algoritmilor. Diferite tipuri de condiii pot include: timp procesor limit, un numr maxim de iteraii, gsirea unei soluii cu valoarea funciei criteriu satisfctoare sau depirea numrului limit de iteraii fr mbuntirea soluiei curente. Printre metodele mai avansate de mbuntire iterativ putem aminti Simulate Annealing i Tabu Search. Aceste metode fiind ns destul de cunoscute, vom trece la analizarea ctorva metode de cutare local explorativ.

2.2. Metode de cutare local explorativ: GRASP


Metoda numit Greedy Randomized Adaptive Search Procedure este o metod simpl ce combin cutarea local cu heuristici constructiviste. Structura sa este descris n figura 2. Aceast metaheuristic este format din dou pri: o faz a construciei soluiei i o faz de mbuntire a soluiei construite. Cea mai bun soluie gsit este returnat la ncheierea procesului de cutare.
while nu sunt ntrunite condiiile de sfrit s ConstructGreedyRandomizedSolution() Aplic CutareLocal(s) Reine CeaMaiBunSoluieGsit() endwhile

Fig. 2.2. Algoritmul GRASP

Mecanismul de construcie a soluiei (descris n figura 3) este format din dou faze: o heuristic constructivist i o randomizare. Dac presupunem c soluia s este format dintr-o submulime a unei mulimi de elemente (componentele soluiei), soluia este construit pas cu pas, prin adugarea unui nou element. Alegerea urmtorului element se face prin alegerea uniform la ntmplare dintr-o list de candidai (de lungime ). Elementele sunt clasate cu ajutorul unui criteriu heuristic care le atribuie un scor n funcie de beneficiul care ar fi obinut dac ar fi inserate n soluie. Aceste valori sunt nnoite la fiecare pas, n funcie de alegerile posibile. Aceast heuristic constructivist este dinamic, n opoziie cu una static, care ar atribui un scor elementelor numai la nceperea construciei soluiei.
s ; % s este o soluie parial lungimea listei de candidai while soluia nu este complet do GenereazListaDeCandidai(s) x un element din list s s { x} Rennoiete soluia s endwhile Fig. 2.3. Construirea unei soluii GRASP

Un parametru care trebuie acordat cu mare atenie este , lungimea listei de candidai. Un caz extrem este = 1, caz n care numai cel mai performant element ar fi luat n consideraie. n acest moment construcia ar fi echivalent cu o heuristic Greedy de tip determinist. n extrema cealalt, = n, construcia ar fi complet aleatoare, alegerea unui candidat din list fcndu-se la ntmplare. Din aceste motive este un parametru care influeneaz rata de parcurgere a spaiului soluiilor. Cea mai simpl metod este pstrarea lui constant. Dar parametrul se poate modifica la fiecare iteraie, fie aleatoriu, fie dup o schem adaptiv. A doua faz a algoritmului o reprezint procesul de cutare local, format fie dintr-o mbuntire local, fie dintr-un algoritm de tipul Simulated Annealing sau Tabu

Search. Heuristica GRASP poate da rezultate satisfctoare n momentul n care sunt satisfcute urmtoarele dou condiii: mecanismul de construcie a soluiei reuete s exploreze i cele mai promitoare regiuni ale spaiului soluiilor; soluiile oferite de heuristica constructivist aparin unor bazine ce conin optime locale diferite. Se poate observa n cele descrise anterior c metoda GRASP nu memoreaz o istorie a cutrii. Singura cerin este memorarea celei mai bune soluii ntlnite pn la momentul curent. Acesta este unul din motivele pentru care heuristica GRASP este depit n performane de alte metode. Totui, datorit simplicitii ei, este foarte rapid i poate produce soluii destul de bune ntr-un interval de timp foarte scurt, fapt pentru care poate fi integrat n alte tehnici de cutare cu succes.

2.3. Variable Neighborhood Search


Heuristica VNS (cutare n vecinti variabile) este o metod care aplic explicit o strategie de schimbare dinamic a structurilor de vecintate. Algoritmul are un grad de generalitate ridicat i dispune de numeroase grade de libertate, fapt pentru care exist numeroase variante pentru diferite probleme tratate.
Se alege un set de vecinti Nk, k = 1,, kmax s GenereazSoluieIniial() while nu sunt ndeplinite condiiile de oprire do k1 while k < kmax do s AlegeLantmplare(Nk(s)) s LocalSearch(s) if (f(s) < f(s)) then s s k1 else kk+1 endif

endwhile endwhile Fig. 2.4. Algoritmul Variable Neighborhood Search

n faza de iniializare trebuie definit o mulime de vecinti. Aceste structuri pot fi alese arbitrar, dar de obicei se respect relaia ntre cardinale: |N1| < |N2| < < |Nkmax|. Apoi se genereaz o soluie iniial, se iniializeaz indexul vecintilor i algoritmul ruleaz pn cnd condiia de oprire este ndeplinit. Mai nti se alege o soluie s din vecintatea k a soluiei curente s. Apoi are loc un proces de cutare local cu punctul iniial de cutare s. Cutarea nu este restricionat de setul de vecinti Nk. Soluia returnat s este comparat cu s i, dac este mai performant, o va nlocui, iar algoritmul va porni din nou cu k = 1. n caz contrar, k se incrementeaz i se alege o nou soluie s. Obiectivul acestei faze este de a perturba soluia curent pentru a oferi un bun punct de plecare pentru cutarea local. Punctul de plecare ar trebui s aparin unui bazin de atracie a unui optim local diferit, dar nu trebuie s fie prea departe de s, altfel algoritmul ar degenera ntr-o cutare aleatoare multi-start. n plus, alegerea lui s n apropierea soluiei curente s-ar putea s produc o soluie care pstreaz cteva din aspectele calitative ale soluiei curente s. Procesul de schimbare a vecintii n momentul n care nici o mbuntire nu mai are loc corespunde unei faze de diversificare a cutrii. n plus, alegerea unor vecinti din ce n ce mai mari conduce ctre o diversificare progresiv. Efectivitatea acestei strategii poate fi explicat prin faptul c o soluie optim din punct de vedere a vecintii curente s-ar putea s nu mai dein acelai caracter de optimalitate din punctul de vedere a unei alte vecinti. Ideea de baz const n faptul c fiecare structur de vecintate definete un peisaj al spaiului soluiilor diferit, iar metodele de cutare se comport diferit pe diferite structuri de vecintate. Aceast proprietate este exploat de o metode de cutare local numit Variable Neighborhood Descent (VND). Aceast metod aplic o cutare local pn cnd este ntlnit un punct de optim local. n acest moment procesul de cutare este continu pe o alt structur de vecintate.

10

Este uor de neles c punctul critic al heuristicilor VNS i VND este reprezentat de alegerea vecintilor. Alegerea vecintilor ar trebui s exploateze diferitele proprieti ale spaiului de cutare. O variant de VNS este obinut prin alegerea vecintilor n aa fel nct produce o descompunere a problemei n sub-probleme. Aceast variant pstreaz schema de baz a metodei VNS, dar structurile de vecintate i procesele de cutare local sunt definite pe sub-probleme. O decizie important este aceea prin care se accept sau nu o deplasare. Criteriul de acceptare a soluiilor este clar orientat spre cea mai bun descretere. Dar aceasta strategie s-ar putea s nu dea rezultate ntr-un peisaj al soluiilor cu vi dese. VNS poate gsi foarte repede optimul din valea respectiv, dar nu are nici o informaie despre cum s prseasc respectiva depresiune i s gseasc alta. O variant ar fi relaxarea criteriului de acceptare a soluiilor prin luarea n consideraie a distanei fa de soluia curent. Criteriul se modific dup cum urmeaz: soluii mai slabe pot fi acceptate dac distanta
( ( fa de soluia curent este mai mic dect s, s' ' ) , unde s, s' ' ) reprezint

distana ntre soluia curent s i soluia explorat s, iar este un parametru de ponderare a importanei distantei ntre cele dou soluii.

2.4. Guided Local Search


Tabu Search i VNS lucreaz n mod explicit cu structuri dinamice ale vecintilor n vederea eficientizrii explorrii spaiului soluiilor. O abordare diferit pentru ghidarea procesului de cutare ar fi schimbarea dinamic a funciei obiectiv. Principiul de baz al GLS este ajutarea cutrii s se deprteze gradual de minimele locale prin schimbarea peisajului n care are loc cutarea. Funcia obiectiv f este schimbat pentru a transforma optimul local n care eventual a euat cutarea ntr-o soluie nedorit.
s GenereazSoluieIniial() while nu sunt ndeplinite condiiile de oprire do s LocalSearch(s, f) for trsturile i cu maximum de utilitate Util(s, i) do pi pi + 1

11

endfor Update(f, p) endwhile Fig. 2.5. Algoritmul Guided Local Search

Mecanismul folosit de GLS este bazat pe trsturile soluiilor, reprezentate prin orice tip de proprieti sau caracteristici care pot fi folosite la diferenierea soluiilor ntre ele. O funcie indicator, Ii(s) indic dac trstura i este sau nu prezent n soluia s:
1 , daca trasatura i este prezenta I i (s) = . 0, in cazul contrar

Funcia obiectiv f se modific n f prin adugarea unui termen ce depinde de cele m trsturi ale soluiilor: f ' (s) = f (s) + p i I i (s) ,
i =1 m

unde pi reprezint parametrii de penalizare iar este numit parametru de regularizare. Parametrii de penalizare evalueaz importana trsturilor: cu ct pi este mai mare, cu att trstura i este mai important iar deinerea acestei trsturi crete costul soluiei. Parametrul de regularizare balanseaz relevana unei trsturi din punctul de vedere a funciei obiectiv originale. Algoritmul (descris n fig. 5) evolueaz dup cum urmeaz: pornete de la o soluie iniial i aplic o cutare local pn cnd optimul local este gsit. Apoi vectorul penalitilor p=(p1,, pm) este rennoit, prin incrementarea unor penaliti i cutarea local este reluat. Sunt penalizate trsturile care au o utilizate maxim:
Utilis (s, i) = I i (s) ci , 1 + pi

unde ci reprezint costurile asignate fiecrei trsturi i, oferindu-se astfel o evaluare heuristic a importanei fiecrei trsturi. Totui, costul este scalat prin parametrii de penalizare pentru a mpiedica algoritmul s se ghideze numai dup cost i pentru a-l face sensibil la istoria cutrii.

12