Sunteți pe pagina 1din 18

METAEURISTICI - GENERAL

1. Metaeuristici: descriere, caracteristici, clasificari, probleme pentru


care se pretează
Metaeuristică

● ”un proces iterativ de generare de soluţii bune la probleme dificile, care ghidează una
sau mai multe euristici subordonate prin combinarea unor tehnici de explorare şi
exploatare eficientă a spaţiului de căutare al problemelor. De regulă, pentru a
structura informaţia în scopul identificării soluţiilor, aceşti algoritmi folosesc strategii
de învăţare.” (Osman şi Laporte (1996))

● ”metode care orchestrează interacţiunea dintre procedurile de îmbunătăţire locală şi


strategii aflate la nivele superioare pentru a crea un proces capabil să scape din
optimele locale şi să realizeze o căutare robustă în spaţiul soluţiilor.” (Glover şi
Kochenberger (2003))

Probleme pentru care se pretează:

● problemelor complexe de căutare


● predicţie;
● clasificare;
● recunoaştere a formelor (recunoaşterea scrisului, a amprentelor, a vocii, a irisului, a
obiectelor în imagini etc.).

Caracteristici:

● sunt, mai degrabă, cadre algoritmice generale decât algoritmi, care se pot
suplimenta la nevoie cu diverse mecanisme particulare.
● sunt adesea inspirate din natură, bazându-se pe concepte din teoria sistemelor
biologice şi a evoluţiei biologice, pe comportamente sociale, de grup, însă şi pe
concepte din matematică, fizică, mecanică statistică şi chimie.
● Încorporează factor aleator*, care contribuie la ghidarea căutării spre regiuni
favorabile ale spaţiului de căutare forţând ieşirea din optimele locale
● pot fi dezvoltate şi ca sisteme adaptive sau care învaţă din experienţă
● comportamentul lor este, de regulă, dificil de înţeles. Ele folosesc simultan mai multe
strategii şi se pot comporta diferit pe probleme diferite
● operaţional, majoritatea metaeuristicilor se comporta ca o cutie neagră
● sunt strategii care ghidează căutarea soluţiilor
● scopul lor este acela de a explora eficient spaţiul de căutare pentru a găsi soluţii
bune
● tehnicile pe care le conţin merg de la proceduri simple de căutare locală la procese
complexe de învăţare
● sunt algoritmi aproximativi şi de regulă nedeterminişti
● nu sunt dedicate problemelor specifice
● pot încorpora mecanisme pentru evitarea blocării procesului de căutare în regiuni
limitate din spaţiul de căutare
● pot folosi cunoştinţe specifice domeniului sub formă de euristici, care sunt controlate
de strategia de la nivelul superior
● pentru a ghida căutarea pot folosi experienţa de căutare (încorporată într-o anume
formă de memorie)

1
Clasificare:

1. Metaeuristicile pot manipula la fiecare iteraţie:

a. fie o soluţie-candidat (completă sau incompletă)

i. metaeuristici stare unică - includ:

1. căutarea locală iterativă,


2. căutarea tabu,
3. călirea simulată a metalelor şi
4. căutarea cu vecinătăţi variabile.

b. fie o colecţie de soluţii-candidat

i. metaeuristici bazate pe populaţii de soluţii-candidat - includ:

1. algoritmii genetici,
2. evoluţia diferenţială şi
3. metodele de tipul inteligenţă colectivă.

2. După particularităţile problemelor pentru care acestea se proiectează:

a. metaeuristici destinate optimizării combinatoriale;


b. metaeuristici destinate optimizării cu restricţii;
c. metaeuristici destinate optimizării multiobiectiv;
d. metaeuristici destinate problemelor cu funcţii de performanţă dinamice sau
afectate de zgomot.

3. După tipul strategiei de căutare:

a. metaeuristici care ghidează căutarea pe baza îmbunătăţirilor locale ale unei


soluţii-candidat curente:

1. căutarea tabu,
2. simularea călirii metalelor,
3. căutarea locală iterativă,
4. căutarea cu vecinătăţi variabile,
5. metoda GRASP;

b. metaeuristici care ghidează căutarea printr-o componentă de învăţare:

1. Ant Colony Optimization,


2. algoritmii genetici,
3. calculul evoluţionist în general.

4. Hibridarea. Componentele pot rula concurent sau pot face schimburi de informaţie
pentru ghidarea căutării.

5. axa procesării seriale/ paralele - O procesare serială presupune executarea înlănţuită


liniară a etapelor căutării. Metaeuristicile paralele sunt acelea care execută în paralel
fie aceeaşi etapă a algoritmului, fie etape diferite ale căutării, fie combinat.

2
2. Metoda gradientului si metoda Newton. Rolul acestora in
dezvoltarea metaeuristicilor
Metoda gradientului
= metoda celei mai rapide creșteri (varianta pentru problemele de maximizare)
Aici, strategia de căutare iterativă a optimului se bazează pe alegerea direcţiei de
căutare.
● Metoda NU este o metaeuristică.
● Identificarea gradientului în punctul curent şi folosirea sa în căutare. Informaţia
conţinută în gradient (care este în cazul funcţiilor unidimensionale panta tangentei)
este o euristică pentru metoda de căutare, care-i permite deplasarea spre o regiune
mai bună din perspectiva funcţiei obiectiv.
● ! Metoda gradientului nu impune cunoaşterea funcţiei obiectiv f, nici măcar calcularea
valorii sale, dar presupune cunoaşterea gradientului său, f’.
● Soluţia ideală se obţine când căutarea a ajuns pe vârful graficului funcţiei.
● Criteriul de oprire a algoritmului de căutare: gradientul este zero.
● soluţie aproape optimă
● ! Punctele unde gradientul funcţiei este zero (puncte staţionare), nu sunt numai cele
de maxim, pe care le căutăm. Gradientul este zero şi în punctele de minim şi în
punctele de inflexiune ale funcţiei:

● Când ne interesează optimele în spaţii multidimensionale, xse va înlocui cu vectorul


x= (x1, x2, …, xn), iar panta f’(x) se va înlocui cu gradientul funcţiei fîn x. Acesta este
un vector unde fiecare element este panta funcţiei fîn xpe dimensiunea
corespunzătoare:


● Aşadar, pentru atingerea maximului, algoritmul va “urca” în toate dimensiunile
simultan.
● Ce se întâmplă dacă funcţia este multimodală?
○ durata de convergenţă
■ Pasul de deplasare creşte în acord cu gradientul curent, iar dacă
panta este abruptă, valoarea pasului va fi prea mare şi va forţa saltul
pe cealaltă parte a graficului
■ Metoda este lentă.
○ Soluții:
■ estimarea unei valori adecvate pentru pasul de deplasare α
■ ajustarea pasului de deplasare în funcţie de mărimea gradientului -
metoda Newton

Metoda Newton
● ajustarea pasului de deplasare în funcţie de mărimea gradientului, adică amortizarea
căutării când panta în punctul curent se apropie de zero.
● Metoda foloseşte în plus informaţia despre variaţia pantei, adică derivata de ordinul
doi a funcţiei obiectiv f.

3
● Pentru cazul multidimensional, lucrurile se complică. Prima derivată va fi gradientul,
iar a doua derivată va fi matricea complexă care conţine derivatele parţiale de ordinul
doi ale funcţiei f pentru fiecare dimensiune, numită Hessian-ul funcţiei f, Hf(x), care va
trebui în plus inversată.
● Avantaje:
○ converge de regulă mai rapid decât metoda gradientului
○ indică dacă s-a ajuns la un maxim (local sau global) şi nu la un minim sau un
punct de inflexiune, deoarece se ştie că în punctele de maxim,

● Punct critic: rămâne blocată în optimul găsit, ca şi metoda gradientului, lucru care
nu este folositor dacă funcţia este multimodală.
● Soluții:
○ fie parametrul αse modifică cu o valoare suficient de mare;
○ fie metoda Newton se aplică în mod repetat pornind de la soluţii-candidat
iniţiale diferite. Se va reţine în cele din urmă soluţia cea mai bună dintre cele
testate (pentru aceasta este necesară cunoaşterea funcţiei f).

3. Metaeuristici pentru optimizare combinatoriala

4. Optimizare multiobiectiv: dominanţă şi optim Pareto. Rolul


metaeuristicilor în optimizarea multiobiectiv
În contextul bunăstării sociale, o decizie se numeşte de tip Pareto daca aceasta
conduce la îmbunătăţirea situaţiei unui individ fără ca acest lucru să implice înrăutăţirea
situaţiei altor indivizi. La nivel ideal, un sistem economic este optimal Pareto dacă toţi
indivizii au o bunăstare maximă posibil; nu există nici un individ care poate avea o stare mai
bună, fără a implica degradarea stării altuia.
Acest principiu se dovedeşte foarte util în matematică şi în optimizarea multicriterială în
special:
- cum afectează deciziile parţiale optimalitatea întregului sistem?
- ce decizie trebuie luată astfel încât să se obţină maximul de eficienţă pentru întregul
sistem?
Scopul metaeuristicilor de optimizare multiobiectiv este să genereze frontiera optima
Pareto (pentru o clasă de probleme). La momentul actual, există peste 30 de metaeuristici
pentru optimizarea multiobiectiv. Majoritatea tind să genereze elemente ale frontierei optime
Pareto pe rând, una câte una. În plus, multe dintre ele sunt foarte sensibile la forma
(caracteristicile) frontierei Pareto; spre exemplu, pot să nu funcţioneze dacă frontiera optimă
Pareto este discontinuă sau multimodală.
Deoarece dimensiunea spaţiului de căutare creşte odată cu numărul de obiective,
metodele de optimizare multiobiectiv sunt majoritatea metode de aproximare.
Pentru multe aplicaţii nu este posibilă generarea de soluţii nedominate, cu atât mai mult
a întregii mulţimi optime Pareto. Aşadar, scopul optimizării multiobiectiv poate fi reformulat
într-un mod mai general, având două obiective:
● minimizarea distanţei dintre frontiera nedominată rezultată şi frontiera optimă
Pareto;
● realizarea unei distribuţii bune (ideal uniforme) a soluţiilor identificate: maximizarea
împrăştierii punctelor pe frontiera nedominată obţinută; cu alte cuvinte, pentru fiecare
obiectiv trebuie acoperit un interval larg de valori de către soluţiile nedominate.

4
5. Paralelizare, co-evolutie, hibridare
Paralelizare
De ce este necesară? – de regulă, metaeuristicile sunt mari consumatoare de resurse
de calcul, în primul rând pentru că sunt algoritmi stocastici.
Cui se aplică? – cel mai des ME bazate pe populaţii, dar şi ME stare unică.

Clasificarea strategiilor de paralelizare:


● cardinalitatea controlului căutării: căutarea globală este controlată fie de un singur
procesor, fie de mai multe procesoare (care colaborează sau nu în timpul căutării);
● schimbul de informaţii: comunicarea este fie sincronă, fie asincronă;
● diferenţierea căutării: firele de căutare încep fie de la aceeaşi soluţie, fie de la soluţii
diferite şi folosesc aceleaşi strategii de căutare sau nu.

Paralelizarea metodelor stare unică - Trei abordări (modele) principale:


● modelul multi-start; se lanseaza simultan mai multe metaeuristici (eterogene/
omogene, independente/cooperative, pornesc de la aceeasi/alta solutie initiala, cu
aceiasi/alti parametri)
● modelul deplasarilor paralele (explorarea si evaluarea vecinatatii in paralel); proces
master-slave
● modelul evaluării paralele centralizate a fiecarei soluţii, daca functia de evaluare se
poate descompune in functii paralele independente.

Paralelizarea metodelor bazate pe populaţii - Două strategii principale:


● paralelizarea procesului - operaţiile costisitoare sau efectuate frecvent sunt realizate
în paralel
● paralelizarea populaţiei - populaţia este divizată în subpopulaţii care evoluează
relativ independent şi apoi se reunesc

Paralelizarea procesului Paralelizarea populaţiei

● Divizarea procesului în subprocese ● Divizarea populaţiei în subpopulaţii


● O singură populaţie ● Mai multe subpopulaţii

Modelul client-server Modelul distribuit (insular)


● procesorul central distribuie sarcinile de ● fiecare subpopulaţie rulează algoritmul serial
executat în paralel unor procesoare clienţi ● au loc migrări periodice de indivizi
(schimburi de informaţii)

Modelul centralizat
● accentul este pus pe comunicarea
subpopulaţiilor

Selecţia unui model de paralelizare se bazează pe:


● adecvarea strategiei la problemă,
● efortul de programare,
● adecvarea strategiei la arhitectura de calcul disponibilă.

Co-evoluţie
Co-evoluţia a fost definită în comunitatea ştiinţifică a calculului evoluţionist prin
următorul principiu: o specie A evoluează datorită răspunsului său la caracteristicile

5
altei specii B, iar B de asemenea evoluează drept răspuns la caracteristicile iniţiale ale
lui A.
Co-evoluţia constituie deci evoluţia simultană a două sau mai multe populaţii diferite,
care se ajută sau se forţează reciproc să se adapteze la mediu.
Se poate manifesta în două maniere:
● co-evoluţie bazată pe cooperare
● co-evoluţie bazată pe competiţie

În ce priveşte optimizarea, co-evoluţia se manifestă atunci când performanţa unui individ


din populaţie este influenţată de prezenţa altor indivizi în populaţie. Prin urmare,
mecanismul de co-evoluţie se aplică în special pentru metodele bazate pe populaţii.

Tehnici co-evoluţioniste:
● co-evoluţia competiţională într-o populaţie;
● co-evoluţia competiţională în două subpopulaţii;
● co-evoluţia cooperativă în n subpopulaţii;
● co-evoluţia cooperativ-competiţională;
● tehnicile de lucru cu nişe: partajarea performanţei, aglomerarea şi gruparea;
● alte variaţii ale acestora.

Hibridare
Combinările adecvate de metaeuristici au demonstrat că induc metodei de căutare un
comportament semnificativ mai eficient şi o flexibilitate mai mare, deoarece beneficiază de
sinergie.

Optimizatorii hibrizi se pot obţine prin diverse combinări:


● combinarea metaeuristicilor cu alte metaeuristici complementare;
● combinarea metaeuristicilor cu metode exacte de tipul programării matematice;
● combinarea metaeuristicilor cu abordări de tipul programare cu restricţii;
● combinarea metaeuristicilor cu tehnici de machine learning şi data mining.

Metode hibride de clasă 1: metode hibride bazate numai pe metaeuristici

Metode hibride de clasă 2: metaeuristicile îşi combină avantajele cu forţa


complementară a metodelor tradiţionale

Metode hibride de clasă 3,4: încorporarea operaţiilor tipice pentru inteligenţa artificială
(programarea cu restricţii sau data mining) în metaeuristici.

Probabil cea mai populară este hibridarea unui algoritm evoluţionist cu o metodă de
ameliorare locală.

Alte hibridări:
● algoritm genetic + călirea simulată a metalelor;
● algoritm genetic + călirea simulată a metalelor + căutarea tabu;
● algoritm genetic + căutarea tabu;
● călirea simulată a metalelor / căutarea tabu + diverse euristici;
● călirea simulată a metalelor + căutarea tabu;
● căutarea tabu + ACO;
● algoritm genetic + ACO;
● algoritm genetic + căutare locală gradient;
● căutarea tabu + branch-and-bound;
● algoritm genetic + hill-climbing.

Modelele structurale de hibridare sunt două:

6
● combinări colaborative
○ Într-un mediu colaborativ algoritmii schimbă informaţie, dar nici unul nu este
parte din celălalt. Ei se pot executa secvenţial, în paralel sau alternativ.
● combinări integratoare
○ În modelele integratoare, unul dintre algoritmi este principal, iar celălalt este
un bloc component subordonat, inclus în primul.

Aplicaţii ale metaeuristicilor hibride:


● probleme în reţele
● probleme de logistică şi transport
● bio-medicale
● de design ingineresc
● de planificare a sarcinilor pe maşini etc.

6. Metaeuristici - privire comparativă şi sinteze


De ce sunt necesare metaeuristicile?
Rezolvarea problemelor de optimizare prin metodele clasice nu identifică soluţia dacă:
● spaţiul de căutare este foarte mare şi/sau nu oferă o reprezentare a soluţiilor
suficient de simplă,
● funcţia obiectiv este multimodală (prezintă mai multe optime),
● nu se cunosc derivatele funcţiei obiectiv.
Metaeuristicile sunt metode aproximative, care caută soluţiile în manieră stocastică,
fundamental diferit faţă de căutarea brută.
Criteriide clasificare
● Traiectoria de căutare:
○ metodestare unica (bazate pe traiectorie)
○ metodebazatepepopulatii
● Ecuația de actualizare:
○ Metode bazate pe ecuatii explicite (ex. PSO)
○ Metode bazate pe reguli (ex. Alg. genetici)
● Interacțiunea agenților
● Sursa de inspiratie:
○ Algoritmi inspirați de legi naturale:
■ Legi biologice:
● Inteligența colectiva (swarm intelligence): ACO, PSO, ABC,
firefly algorithm etc.
● Alte comportamente biologice: algoritmii genetici, flower
pollination algorithm, evolutia diferentiala etc.
■ Legi fizice/ chimice(sarcini electrice, gravitatie): simulated annealing,
gravitational search, intelligent water drops etc.
○ Alți algoritmi
■ scatter search, imperialist competitive algorithm etc.

7
8
METAEURISTICI STARE UNICĂ
7. Metodele stare unică. Descriere si analiză comparativă
Urmează o singură traiectorieprin spaţiul de căutare (la fiecare execuţie sau la fiecare
etapă principală a execuţiei), plecând de la o soluţie-candidat iniţială, pe care o actualizează
iterativ.
Pe măsură ce explorează spaţiul de căutare, aceste metaeuristici folosesc o procedură
de selecţie care decide ce soluţii-candidat identificate să se reţină în traiectorie şi care să fie
respinse.
1. Metoda alpinistului este similară metodei gradient, dar mai generală: pentru a
avansa nu necesită cunoaşterea gradientului sau a direcţiei sale, ci, în urma
modificării soluţiei curente folosind o componentă aleatoare,
a. dacă rezultatul este mai valoros, acesta se acceptă ca nouă soluţie curentă,
b. dacă rezultatul nu este mai valoros, acesta se respinge.

● Metoda îmbunătăţeşte continuu soluţia-candidat curentă şi se opreşte când


nu se mai pot face îmbunătăţiri.

2. Căutarea locală iterativă este o metodă a alpinistului cu reporniri aleatoare, dar


care alege soluţiile iniţiale pentru fiecare pas al căutării nu în mod aleator, ci într-o
regiune a spaţiului de căutare aflată suficient de departe de optimele deja
identificate, însă nu atât de departe încât căutarea să devină o căutare aleatoare.
3. Călirea simulată a metalelor (simulated annealing) permite ieşirea din optimele
locale printr-o strategie care acceptă şi tranziţii la stări mai slabe:
a. dacă rezultatul modificării soluţiei curente este mai valoros, acesta se acceptă
necondiţionat ca nouă soluţie curentă,
b. dacă rezultatul nu este mai valoros, acesta se acceptă cu o probabilitate care
se reduce pe măsură ce căutarea avansează.
4. Căutarea cu vecinătăţi variabile - urmăreşte să evite blocarea în optimele locale
prin modificarea sistematică a structurii vecinătăţilor folosite.
5. Căutarea tabu caută să iasă din optimele locale memorând istoria recentă a
soluţiilor vizitate şi refuzând revizitarea lor atâta timp cât acestea nu sunt suficient de
vechi în istorie.
6. GRASP - nu se deplasează în spaţiul soluţiilor-candidat, ci în spaţiul componentelor
de soluţii-candidat. Astfel, metoda este una orientată pe componente şi de aceea
este destinată optimizării combinatoriale.
7. Căutarea locală ghidată porneşte cu o soluţie-candidat completă pe care o
îmbunătăţeşte iterativ, însă actualizarea se face considerând informaţii despre
componentele de soluţii-candidat.

8. Hill-climbing
Metoda alpinistului este similară metodei gradient, dar mai generală: pentru a avansa
nu necesită cunoaşterea gradientului sau a direcţiei sale, ci, în urma modificării soluţiei
curente folosind o componentă aleatoare,
● dacă rezultatul este mai valoros, acesta se acceptă ca nouă soluţie curentă,
● dacă rezultatul nu este mai valoros, acesta se respinge.
Metoda îmbunătăţeşte continuu soluţia-candidat curentă şi se opreşte când nu se mai
pot face îmbunătăţiri.
Metoda alpinistului este mai generală decât metoda gradientului: aici alterarea nu este
ghidată de gradientul funcţiei, ci implică un factor aleator.
● când se găsesc soluţii mai bune acestea se adoptă

9
● când se găsesc soluţii mai slabe acestea se ignoră
Metoda alpinistului cu ascensiune abruptă este o versiune de căutare mai agresivă:
la fiecare pas de îmbunătăţire se generează aleator mai multe soluţii-candidat din
vecinătatea celei curente şi se selectează drept nouă soluţie curentă cea mai bună dintre
acestea.
Metoda prelevează de fapt informaţie despre gradient şi, pe baza ghidării acesteia,
ascensionează către maxim urmând cea mai bună cale.
Saltul la noua soluţie nu trebuie să fie nici prea mare, nici prea redus. Setarea
amplitudinii pasului de alterare este un mod de a controla raportul între explorarea şi
exploatarea spaţiului de căutare.
Metoda alpinistului cu reporniri aleatoare - versiunea pentru probleme multimodale.
O dată ce a atins un optim (posibil local), reîncepe căutarea cu o soluţie-candidat iniţială
diferită, aleasă în mod aleator, şi reţine drept soluţie finală pe cea mai valoroasă soluţie
identificată în urma acestor multiple căutări.

→vezi exemplu
9. Simulated annealing
Călirea simulată a metalelor (simulated annealing) permite ieşirea din optimele locale
printr-o strategie care acceptă şi tranziţii la stări mai slabe:
● dacă rezultatul modificării soluţiei curente este mai valoros, acesta se acceptă
necondiţionat ca nouă soluţie curentă,
● dacă rezultatul nu este mai valoros, acesta se acceptă cu o probabilitate care se
reduce pe măsură ce căutarea avansează.
La început, metoda realizează o căutare aproape brută în spaţiul de căutare (pentru că
parametrul “temperatură” este setat la o valoare mare), iar pe parcurs se concentrează pe
regiunea mai valoroasă (pentru că “temperatura” este redusă gradat).
Algoritmul se opreşte când nu se mai produc ameliorări ale soluţiei curente sau după un
număr de iteraţii specificat anterior.
Metoda funcţionează mai eficient pe spaţii de căutare continue.

Este o generalizare a algoritmului de ameliorare iterativă, care porneşte căutarea cu o


soluţie iniţială pe care o îmbunătăţeşte succesiv prin alterări minore până când nici o
îmbunătăţire nu se mai poate realiza.
Originea - fizica statistică
● călirea unui metal = căutarea stării de energie minimă
● optimizare = căutarea configuraţiei cu valoare optimă
Metoda a fost propusă pentru a permite metodei alpinistului să iasă din maximele locale.
Căutarea porneşte de la o soluţie-candidat oarecare căreia i se aplică o alterare
aleatoare.
● dacă se obţine o soluţie mai bună, aceasta se acceptă necondiţionat.
● dacă noua soluţie nu este mai bună, aceasta nu se respinge, dar se acceptă cu
probabilitatea
Parametrii principali ai algoritmului SA:
● programul de răcire
● probabilitatea de acceptare a unei soluţii nou generate.
Cheia în obţinerea unei performanţe bune este atingerea unui cvasi-echilibru la fiecare
“temperatură”, iar “răcirea” să se facă suficient de lent, analog procesului de călire a
metalelor.
Principalele atuuri ale metodei:
● robusteţea şi generalitatea;

10
● flexibilitatea şi abilitatea de a evita blocarea în optime locale în probleme cu multe
restricţii şi multe optime locale;
● posibilitatea paralelizării.
Dezavantaje:
● prea multe tranziţii negative îndepărtează căutarea de optimul global;
● setarea parametrilor este o problemă delicată, deoarece precizia valorilor lor
influenţează mult calitatea rezultatului;
● raportul între calitatea soluţiei şi resursele de timp consumate este uneori
disproporţionat
Aplicaţii:
● probleme combinatoriale:
○ probleme de alocare,
○ probleme de clustering,
○ probleme de împachetare şi de croire,
○ de partiţionare a grupurilor,
○ problema rucsacului,
○ probleme în grafuri,
○ de transport;
● probleme de proiectare;
● optimizări de funcţii;
● probleme de reţele şi telecomunicaţii;
● probleme de localizare;
● probleme de programare operativă;
● probleme statistice etc.

10. Tabu search


Metoda reţine istoria soluţiilor-candidat considerate recente, memorate în aşa-numita
listă tabu, pentru a refuza revizitarea acestora, cel puţin un timp.
Lista tabu
● Principial, reţine soluţiile-candidat vizitate recent
● In fapt, retine tranziţiile interzise dintr-o configuraţie fezabilă în alte configuraţii
Lista tabu are un număr fixat de intrări, de regulă 5-10 -un număr prea mic de intrări
poate conduce la ciclări, iar un număr prea mare forţează nejustificat căutarea.
Metoda funcţionează eficient în spaţii discrete. În spaţiile continue, lista tabu nu are o
utilitate prea mare - un punct va fi vizitat a doua oară în situaţii cu totul excepţionale.
Totuşi, o soluţie se poate considera interzisă dacă este suficient de similară cu o soluţie
existentă în lista tabu.
Dificultatea căutării tabu apare când spaţiul de căutare este foarte dens şi / sau
dimensionalitatea sa este foarte mare.
Soluție: menţinerea în lista tabu a caracteristicilor soluţiilor modificate recent.
Aplicaţii:
● probleme de alocare;
● probleme de clustering, de împachetare şi decupare optimală;
● probleme de proiectare;
● probleme în grafuri;
● probleme de localizare;
● probleme de planificare a producţiei;
● probleme de reţele şi telecomunicaţii;
● probleme de transport etc

11
11. Cautarea locala iterativa
Metoda caută soluţii în spaţiul optimelor locale într-o manieră stocastică.
Repornirea căutării nu se face aleator, ci în funcţie de un optim local deja identificat,
numit optim local de bază (curent), care se actualizează conform unui criteriu de acceptare.
Repornirea căutării se realizează într-o regiune suficient de depărtată de optimele deja
identificate, însă nu atât de departe încât căutarea să devină o căutare aleatoare.
Metodele de căutare locală iterativă cuprind trei module:
● căutarea locală,
● perturbarea optimului local de bază şi
● verificarea satisfacerii criteriului de acceptare.
De regulă, perturbarea generează o soluţie într-o vecinătate mai mare decât vecinătatea
utilizată în procedura de căutare locală.
Rolul funcţiei actualizează care implementează criteriul de acceptare a noii soluţii
curente de bază este acela de a alege inteligent noi puncte de pornire pentru căutare.
Criteriul de acceptare din căutarea locală iterativă se situează între situaţiile extreme
aferente căutării aleatoare şi metodei alpinistului.
Deoarece principala dificultate a metodei constă în a determina când s-a atins un optim
local, de regulă se setează un cronometru (variabila t ) care opreşte “urcarea”, iar cea mai
bună valoare curentă la expirarea timpului setat se consideră a fi optimul local identificat.
Dacă acest cronometru se setează la o valoare suficient de mare, probabilitatea este
destul de mare ca punctul identificat să fie un optim sau un punct din vecinătatea acestuia.
Procedura de căutare locală poate fi una simplă sau poate fi chiar o metaeuristică de
căutare locală: călirea simulată a metalelor, căutarea tabu, căutarea locală genetică sau
altele.
Criteriul de acceptare de asemenea poate fi unul simplu sau unul complex. Un criteriu
de tipul călirii simulate a metalelor va accepta noua soluţie dacă este mai calitativă; şi în caz
contrar o va accepta, dar cu o anumită probabilitate.
Se aplică cu succes dacă nu există foarte multe optime locale.
Ex: problema comis-voiajorului, colorarea grafurilor, planificarea temporală, diverse
alocări.
Inconvenientul metodei: poate explora repetat aceleaşi zone din spaţiul de căutare, nu
dispune de o imagine de ansamblu a acestuia.

12. GRASP
GRASP nu se deplasează în spaţiul soluţiilor-candidat, ci în spaţiul componentelor de
soluţii-candidat. Astfel, metoda este una orientată pe componente şi de aceea este destinată
optimizării combinatoriale.
Algoritmul nu realizează aşadar tranziţii de la o soluţie la alta, ci construieşte o
soluţie-candidat admisibilă (prin adăugarea rând pe rând a câte unei componente din
mulţimea cunoscută de componente-candidat), soluţie pe care apoi o ameliorează local
explorându-i vecinătatea.
La fiecare pas, componenta de adăugat la soluţia parţială se selectează aleator dintr-o
listă restrictivă ce conţine cele mai valoroase componente admisibile la pasul curent.
Componentele-candidat sunt evaluate printr-o funcţie greedy care cuantifică beneficiul
local al includerii lor în soluţie la pasul curent.
Deoarece funcţia greedy ţine seama de deciziile anterioare luate în generarea soluţiei,
GRASP este o metodă adaptivă.

12
METAEURISTICI BAZATE PE POPULAŢII DE
SOLUŢII-CANDIDAT
13. Descriere și analiză comparativă
Folosesc o întreagă mulţime de soluţii-candidat, iar membrii săi (un aspect foarte
important) nu acţionează independent, ci se influenţează reciproc în procesul căutării.
Avansul acestora în căutare se face simultan şi interdependent pe mai multe direcţii.
Metaeuristicile bazate pe populaţii de soluţii-candidat:
● algoritmii genetici,
● evoluţia diferenţială şi
● metodele de tipul inteligenţă colectivă.
Formează calculul evoluţionist.
Caută optimul pe baza progresului înregistrat într-o populaţie de soluţii-candidat
interdependente.
Sunt două clase mari de metode de acest tip:
● algoritmii evoluţionişti, care folosesc operatori inspiraţi din teoria evoluţiei speciilor
biologice (reproducere, mutaţie, recombinare, selecţie naturală, supravieţuirea celor
mai puternici);
● metodele de tip inteligenţă colectivă (swarm intelligence), în care optimizarea
apare în urma unui comportament colectiv auto-organizant al populaţiei de
soluţii-candidat.

14. Algoritmi evolutioniști


Fitness-ul unui individ: abilitatea acestuia de a supravieţui. El se manifestă prin
fenotipul său.
Pe parcursul a multe generaţii, mai comuni devin indivizii cu fitnessmai bun. Acest
proces este ceea ce se numeşte selecţie naturală.

15. Algoritmi genetici


Sunt algoritmi cu grad înalt de paralelism, care transformă o populaţie de soluţii posibile
ale unei probleme într-o nouă populaţie prin folosirea a trei categorii de operaţii similare
proceselor evoluţioniste din natură:
● reproducerea proporţională pe baza performanţei (principiul „supravieţuiesc cei mai
potriviţi”);
● încrucişarea genetică;
● mutaţia aleatoare (alterare a genotipului), aplicată cu frecvenţă redusă.
Se numesc operatori genetici.
Definiţie: Algoritmii genetici (AG) sunt algoritmi de căutare evolutivă, proiectaţi în scopul
identificării de soluţii aproximative ale problemelor dificile, prin aplicarea în ştiinţa
calculatoarelor a principiilor derivate din biologia evolutivă - moştenirea, mutaţia, selecţia
naturală şi încrucişarea.
AG sunt implementaţi ca simulări în care o populaţie P de reprezentări abstracte (numite
cromozomi) ale soluţiilor candidat (numite indivizi) ale unei probleme de optimizare,
evoluează către soluţii din ce în ce mai bune. În biologie, un cromozom este o bucată foarte
lungă, continuă de ADN, care conţine multe gene, elemente regulatoare şi alte secvenţe de
nucleotide.
Evoluţia începe de la o populaţie complet sau parţial aleatoare şi se realizează în
generaţii.

13
Principiul de funcţionare al unui AG se bazează pe tendinţa de creştere a performanţei
unei populaţii de soluţii candidat, în timp, determinată de competiţia pentru resursele
mediului şi propagarea materialului genetic de către cei mai buni indivizi ai populaţiei.
Noţiunea-cheie a utilităţii AG este performanţa indivizilor, determinată de funcţia obiectiv şi
de restricţiile problemei.

Aplicabilitate: AG se aplică cu succes:


● problemelor pentru care nu se cunosc algoritmi în timp polinomial;
● problemelor cu spaţii de căutare foarte mari (ex. Cele combinatoriale);
● problemelor de optimizare multiobiectiv, mai ales dacă sunt multimodale sau
deceptive.
Aplicarea operatorilor genetici asupra populaţiei curente P(t) se realizează astfel:
● Mai întâi se selectează părinţii, conform modelului de selecţie ales şi pe baza ratei /
probabilităţii de încrucişare;
● Apoi se aplică operatorul de încrucişare ales fiecărei perechi de părinţi, astfel se
creează descendenţii.
● În final se aplică mutaţia genetică unora dintre descendenţi, pe baza ratei /
probabilităţii de mutaţie.

Reprezentarea genetică
Reprezentarea (codificarea) indivizilor se realizează în funcţie de problemă. Aceasta
poate fi:
● Binară: 001101001
● Valoare (şir de caractere): 2.7, 7.4, 5.0 sau abcdefg
● Permutare: 4 2 7 5 1 3 6
● Arbore

Selecţia
Selecţia reprezintă alegerea unor indivizi din populaţia curentă pentru aplicarea
încrucişării. Indivizii selectaţi, numiţi părinţi, se vor grupa în perechi.
Modelele de selecţie cel mai frecvent apelate sunt:
Selecţia turneu constă în alegerea în mod aleator a k părinţi din populaţie, care vor fi
supuşi unui turneu de calitate, câştigat prin comparare. Cel mai valoros, câştigătorul, va fi un
părinte. În acest fel, procedura se va repeta pentru a selecta toţi părinţii necesari. Parametrul
k se numeşte dimensiunea turneului; valoarea sa trebuie acordată cu dimensiunea
populaţiei din care se selectează, deoarece o valoare prea mare conduce la un consum
mare de timp (la extrem se confundă cu selecţia elitistă), iar o valoarea prea mică nu acordă
şanse suficiente de alegere a indivizilor calitativi (la extrem se confundă cu selecţia
aleatoare).
Selecţia ruletă constă în simularea lansării acului unei rulete pe domeniul valorilor
obiectiv pentru indivizii din populaţia curentă. Mai întâi se ordonează crescător valorile
obiectiv ale indivizilor şi se realizează corespondenţa între performanţa relativă a fiecărui
individ şi suprafaţa ruletei. Apoi se generează aleator un număr în [0,1], valoare care va
semnifica poziţia finală a acului ruletei. Astfel, probabilitatea de selecţie a unui individ este
proporţională cu calitatea sa.
Selecţia elitistă - indivizii din populaţia curentă se sortează după performanţă şi se aleg
drept părinţi cei mai buni indivizi.

Încrucişarea este operatorul prin care se combină materialul genetic a doi


indivizi-părinţi, în scopul creării unuia sau a doi descendenţi.

14
Mutaţia genetică este un operator unar care modifică minor individul căruia se aplică.

16. Inteligenţă colectiva (swarm intelligence). Descriere şi analiză


comparativă
Inteligenţă colectivă(swarm intelligence): palier mai nou al metaeuristicilor care
implică simularea comportamentelor de grup optimizatoare întâlnite la diverse specii de
vietăţi.
Un grup (sau roi, engl. swarm) este, în perpectiva optimizării, o populaţie de
componente care interacţionează şi care sunt capabile să optimizeze un obiectiv global prin
căutare colaborativă într-un spaţiu dat.
Într-un roi există o tendinţă generală stocastică a indivizilor de a se mişca spre un centru
de greutate din populaţie la dimensiuni critice, care echivalează cu convergenţa la un optim.
Un sistem colectiv
● un sistem complex de agenţi adaptivi care interacţionează, împreună cu nişte măsuri
de performanţă prin care comportamentul întregului sistem se poate cuantifica.
● o populaţie de agenţi împreună cu interacţiunile dintre ei.
Caracteristicile sistemelor colective:
(1) interacţiunile între membri sunt puternice, spre deosebire de cele cu exteriorul;
(2) colonia are proprietăţi care pot fi înţelese independent de membrii săi;
(3) colonia supravieţuieşte mai mult decât supravieţuieşte fiecare membru al său
considerat separat;
(4) indivizii aparţinând unei colonii se comportă foarte diferit de indivizii care acţionează
individual;
(5) comportamentul unei colonii apare din trăsăturile indivizilor şi interacţiunile dintre
aceştia;
(6) sensibilitatea la perturbaţii a coloniei este redusă.

15
Conceptul-cheie care asigură identificarea unei soluţii (aproape) optime este
auto-organizarea:setul de mecanisme dinamice care stabileşte regulile de bază pentru
interacţiunile dintre componentele sistemului.
Principalele metode de inteligență colectivă:
● PSO(ParticleSwarmOptimization): optimizarea în roiurile de particule
● ACO(AntColonyOptimization): optimizarea în coloniile de furnici artificiale
● WBM(WaspBehaviorModel): modelul comportamentului viespilor
● ABC(ArtificialBeeColonyalgorithm): algoritmul coloniilor de albine artificiale
● Multi-swarmoptimization: optimizarea multi-roi

17. PSO (Particle Swarm Optimization)


O tehnică de optimizare stocastică bazată pe populaţii de soluţii-candidat.
PSO (Particle Swarm Optimization) este inspirată din comportamentul social legat de
identificarea unei ţinte optime, întâlnit la stolurile de păsări, bancurile de peşti şi turmele de
animale.
Căutarea soluţiei optime se realizează cu o populaţie (sau roi) de particule, care se
deplasează prin spaţiul de căutare cu o viteză care se modifică în timp în funcţie de
caracteristicile întregului grup.
Sistemul este iniţializat cu o populaţie de soluţii-candidat pseudo-aleatoare (numită aici
roi de particule) care caută soluţia optimă globală prin actualizarea populaţiei în generaţii.
Însă nu dispune de operatori genetici; pentru că particulele nu dispar de la o generaţie la
alta, selecţia nu este necesară.
În PSO, indivizii (particulele), dispun de memorie (memorează cea mai bună locaţie
vizitată până în prezent) şi “zboară” prin spaţiul soluţiilor (care este unspaţiu D-dimensional)
urmând particulele optime curente.
Fiecare particulă are o viteză adaptabilăcare îi direcţionează zborul.
La fiecare iteraţie, viteza fiecărei particule xi se actualizează urmând două valori “cele
mai bune”:
● locaţia cea mai bună întâlnită de acea particulă în trecut (pBesti: personalBest) şi
● locaţia cea mai bună întâlnită de întregul grup sau de cei din jurul său(gBest:
globalBest).
Avantajele metodei:
● numărul redus de parametri de ajustat,
● uşurinţa înţelegerii şi implementării,
● eficienţa computaţională şi
● rezistenţa la blocarea în optime locale.
Aspectul critic este necesitatea de a se asigura un echilibru adecvat între explorare
(căutarea unei soluţii bune) şi exploatare (folosirea succesului vecinilor).
Aplicaţii:
● optimizarea numerică,
● antrenarea reţelelor neuronale,
● sistemele de control fuzzy,
● optimizarea funcţională,
● hărţile auto-organizante,
● evaluarea performanţei umane,
● diagnoza medicală etc.

16
18. Metaeuristici pentru optimizare combinatorială. Descriere și
analiză comparativă
Optimizarea combinatorială = Ramură a ştiinţei teoretice a calculatoarelor şi a
matematicii aplicate, care tratează problemele de optimizare în care:
● mulţimea de soluţii valide este discretă sau se poate reduce la o mulţime discretă,
● soluţiile au asociate fiecare un cost numeric şi
● scopul constă în identificarea celei mai bune soluţii (a soluţiei de cost minim).
Se caută obiectul optim, care constituie o combinaţie de componente dintr-o mulţime de
regulă finită. Este fie o grupare, fie o ordonare, un aranjament sau o selecţie optimală de
componente, discrete la rândul lor.
Metaeuristicile pentru optimizarea combinatorială sunt metode orientate pe
componente.
Două abordări posibile:
1. construirea pas cu pas a soluţiilor din componente candidat şi
2. modificarea iterativă a soluţiilor-candidat, care sunt complete.
Ambele sunt puternic dependente de problemă, implicând proiectarea de funcţii speciale
pentru testarea validităţii şi calităţii componentelor-candidat şi ale soluţiilor.
1. Construirea iterativă porneşte de la o soluţie iniţial vidă şi, pe baza restricţiilor, la
fiecare pas al căutării la aceasta se adaugă o nouă componentă, validă, până la
finalizarea construirii unei soluţii complete.
GRASP (Greedy Randomized metaeuristică stare unică
Adaptive Search Procedure)

ACO (Ant Colony Optimization) metaeuristică bazată pe populaţii de


soluţii-candidat

WBM (Wasp Behavior Model) metaeuristică stare unică


2. Modificarea iterativă a soluţiilor-candidat implică mecanisme care să asigure
obţinerea de soluţii valide:
a. folosirea de operatori care generează numai soluţii-candidat noi valide;
b. repetarea modificării unui individ (soluţie-candidat) până la generarea unuia
valid;
c. permiterea existenţei indivizilor nefezabili, în paralel cu folosirea unei funcţii
de evaluare a calităţii bazate pe “distanţa” la cea mai apropiată
soluţie-candidat fezabilă sau la optim;
d. asignarea unei calităţi slabe pentru soluţiile nefezabile sau penalizarea
acestora.
Ex. căutarea locală ghidată (guided local search)

19. ACO (Ant Colony Optimization)


ACO simulează comportamentul colectiv al furnicilor în ceea ce priveşte căutarea
hranei; când furnicile se decid asupra unei direcţii de căutare, ele aleg cu o probabilitate mai
mare traseele marcate cu o concentraţie mai mare de feromon (depus pe traseele deja
parcurse), această interacţiune cooperativă conducând la determinarea celui mai scurt
traseu.
În rezolvarea problemelor de optimizare, agenţii furnici artificiale parcurg la fiecare
generaţie t a algoritmului un graf al componentelor de soluţii pentru a construi soluţii fezabile
complete, adăugând iterativ componente la soluţii parţiale.
Construirea de soluţii se realizează în mod probabilist, ţinând seama de informaţii
euristice (dacă sunt disponibile) şi de „urmele de feromon” imprimate pe nodurile deja

17
parcurse în graf (inclusiv de la generaţiile anterioare), feromon care reflectă experienţa
acumulată de agenţi în căutarea soluţiei optime.
Fiecare agent înaintează în graf selectând din vecinătatea fezabilă:
● cu probabilitatea ∝, nodul având asociată cantitatea maximă de feromon;
● cu probabilitatea 1-∝ un nod aleator.

Procedura ACO:
● iniţializează urmele de feromon
● setează parametrii cât timp criteriu_oprire = fals execută
○ agenţii construiesc soluţii-candidat
○ ameliorează soluţiile // optional
○ actualizează urmele de feromon
Modelul ACO este un proces de învăţare distribuită în care agenţii individuali nu sunt
adaptivi, dar modifică adaptiv modul în care este percepută problema de către ceilalţi agenţi.
Cu alte cuvinte, influenţa individuală a unui agent nu este relevantă, însă influenţa
coloniei de agenti este majoră.

Avantajele metodei ACO:


● componenenta stocastică permite agenţilor să construiască o varietate de soluţii
diferite şi astfel explorează un spaţiu mai mare decât tehnicile greedy;
● folosirea informaţiei euristice, dacă este disponibilă, ghidează agenţii spre soluţiile
cele mai promiţătoare;
● experienţa agenţilor influenţează construirea soluţiilor la iteraţiile viitoare;
● folosirea unei colonii de agenţi imprimă soluţiei robusteţe, iar interacţiunea colectivă
a agenţilor conduce la eficienţă.

Puncte critice:
● necesar ridicat de timp de calcul pentru atingerea optimului în problemele complexe
● dificultatea stabilirii unor valori adecvate ale parametrilor fiecărei instanţe.

Aplicații:
● probleme de determinare a rutelor optime în grafuri,
○ problema comis-voiajorului;
● planificarea sarcinilor pe maşini;
● analiza datelor;
● partitionarea grafurilor;
● plierea proteinelor;
● optimizare online (în reţele de telecomunicaţii);
● probleme de alocare:
○ distribuire optimală (statică şi dinamică),
○ împachetare optimală,
○ decupare optimală;
● problema acoperirii unei mulţimii;
● compunerea produselor;
● planificare strategică;
● colorarea grafurilor.

18

S-ar putea să vă placă și