Sunteți pe pagina 1din 51

INTELIGEN ARTIFICIAL

Curs 2

Rezolvarea problemelor de cutare


Strategii de cutare informat global i local

Laura Dioan

Sumar
A. Scurt introducere n Inteligena Artificial (IA) B. Rezolvarea problemelor prin cutare

Definirea problemelor de cutare Strategii de cutare


Strategii de cutare neinformate Strategii de cutare informate Strategii de cutare locale (Hill Climbing, Simulated Annealing, Tabu Search, Algoritmi evolutivi, PSO, ACO) Strategii de cutare adversial

C.

Sisteme inteligente

Sisteme bazate pe reguli n medii certe Sisteme bazate pe reguli n medii incerte (Bayes, factori de certitudine, Fuzzy) Sisteme care nva singure

Arbori de decizie Reele neuronale artificiale Maini cu suport vectorial Algoritmi evolutivi

Sisteme hibride

Sumar

Rezolvarea problemelor prin cutare

Strategii de cutare informate (euristice) - SCI

Strategii globale Best first search Strategii locale Hill Climbing Simulated Annealing Tabu search

Materiale de citit i legturi utile

capitolul II.4 din S. Russell, P. Norvig, Artificial Intelligence: A Modern Approach, Prentice Hall, 1995

capitolul 3 i 4 din C. Groan, A. Abraham, Intelligent Systems: A Modern Approach, Springer, 2011

capitolul 2.5 din http://wwwg.eng.cam.ac.uk/mmg/teaching/artificialintelligence/

Rezolvarea problemelor prin cutare

Strategii de cutare (SC)

Topologie

n funcie de informaia disponibil


SC ne-informate (oarbe) SC informate (euristice)

Strategii de cutare informate (SCI)

Caracteristici

se bazeaz pe informaii specifice problemei ncercnd s restrng cutarea prin alegerea inteligent a nodurilor care vor fi explorate ordonarea nodurilor se face cu ajutorul unei funcii (euristici) de evaluare sunt particulare

Topologie

Strategii globale

Best-first search
Greedy best-first search A* IDA*

Strategii locale

Cutare tabu Hill climbing Simulated annealing

SC n structuri arborescente

Noiuni necesare

f(n) funcie de evaluare pentru estimarea costului soluiei prin nodul (starea) n h(n) funcie euristic pentru estimarea costului drumului de la nodul n la nodul obiectiv g(n) funcie de cost pentru estimarea costului drumului de la nodul de start pn la nodul n f(n) = g(n) + h(n)
actual estimat

start

obiectiv

g(n) f(n)

h(n)

SCI Best first search

Aspecte teoretice

Best first search = nti cel mai bun Se determin costul fiecrei stri cu ajutorul funciei de evaluare f Nodurile de expandant sunt reinute n structuri (cozi) ordonate Pentru expandare se alege starea cu cea mai bun evaluare

Stabilirea nodului care urmeaz s fie expandat Cutare de cost uniform (SCnI)

Exemple de SC care depind de funcia de evaluare

f = costul drumului

n SCI se folosesc funcii euristice SCI care ncearc s expandeze nodul cel mai apropiat de starea obiectiv SCI care ncearc s expandeze nodul din soluia cu costul cel mai mic

Dou categorii de SCI de tip best first search


Exemplu

Detalii n slide-urile urmtoare

SCI Best first search

Algoritm
bool BestFS(elem, list){ found = false; visited = ; toVisit = {start}; //FIFO sorted list (priority queue while((toVisit != ) && (!found)){ if (toVisit == ) return false node = pop(toVisit); visited = visited U {node}; if (node == elem) found = true; else aux = ; for all unvisited children of node do{ aux = aux U {child}; } toVisit = toVisit U aux; //adding a node onto the FIFO list based on its evaluation //(best one in the front of list) } //while return found; }

SCI best first search

Analiza cutrii

Complexitate temporal:

b factor de ramnificare (nr de noduri fii ale unui nod) d - lungimea (adncimea) maxim a soluiei T(n) = 1 + b + b2 + + bd => O(bd) S(n) = T(n) Nu- drumuri infinite dac euristica evalueaz fiecare stare din drum ca fiind cea mai bun alegere Posibil depinde de euristic

Complexitate spaial

Completitudine

Optimalitate

Avantaje

Informaiile despre domeniul problemei ajut cutarea (SCI) Vitez mai mare de a ajunge la starea obiectiv

Dezavantaje

Necesit evaluarea strilor efort computaional, dar nu numai Anumite path-uri pot arta ca fiind bune conform funciei euristice

Aplicaii

Web crawler Jocuri

SCI Funcii euristice

Etimologie: heuriskein (gr)


a gsi, a descoperi Studiul metodelor i regulilor de descoperire i invenie

Utilitate

Evaluarea potenialului unei stri din spaiul de cutare Estimarea costului drumului (n arborele de cutare) din starea curent pn n starea final (ct de aproape de int a ajuns cutarea)

Caracteristici

Depind de problema care trebuie rezolvat Pentru probleme diferite trebuie proiectate sau nvate diferite euristici Se evalueaz o anumit stare (nu operatorii care transform o stare n alt stare) Funcii pozitive pentru orice stare n

h(n) 0 pentru orice stare n h(n) = 0 pentru starea final h(n) = pentru o stare din care ncepe un drum mort (o stare din care nu se poate ajunge n starea final)

SCI Funcii euristice

Exemple

Problema misionarilor i canibalilor

h(n) nr. persoanelor aflate pe malul iniial

8-puzzle

h(n) nr pieselor care nu se afl la locul lor h(n) suma distanelor Manhattan (la care se afl fiecare pies de poziia ei final)

Problema comisului voiajor

h(n) cel mai apropiat vecin !!!

Plata unei sume folosind un numr minim de monezi

h(n) alegerea celei mai valoroase monezi mai mic dect suma (rmas) de plat

SCI - Greedy

Aspecte teoretice

Funcia de evalaure f(n) = h(n)


estimarea costului drumului de la starea curent la starea final h(n) minimizarea costului drumului care mai trebuie parcurs
4

4 C

2 D

Exemplu

1 E

3 F

3 G

A,D,E,H
0 H 2 I

Algoritm
bool BestFS(elem, list){ found = false; visited = ; toVisit = {start}; //FIFO sorted list (priority queue while((toVisit != ) && (!found)){ if (toVisit == ) return false node = pop(toVisit); visited = visited U {node}; if (node == elem) found = true; else aux = ; for all unvisited children of node do{ aux = aux U {child}; } toVisit = toVisit U aux; //adding a node onto the FIFO list based on its //(best one in the front of list) } //while return found; } Vizitate deja A A, D A, D, E A, D, E, H

De vizitat A D, B, C E, F, G, B, C H, I, F, G, B, C

evaluation h(n)

SCI - Greedy

Analiza cutrii:

Complexitate temporal DFS


b factor de ramnificare (nr de noduri fii ale unui nod) dmax - lungimea (adncimea) maxim a unui arbore explorat T(n) = 1 + b + b2 + + bdmax => O(bdmax) d - lungimea (adncimea) soluiei S(n) = 1 + b + b2 + + bd => O(bd)

Complexitate spaial BFS


Completitudine

Nu (exist posibilitatea intrrii n cicluri infinite) posibil

Optimalitate

Avantaje

Gsirea rapid a unei soluii (dar nu neaprat soluia optim), mai ales pentru probleme mici Suma alegerilor optime de la fiecare pas nu reprezint alegerea global optim

Dezavantaje

Ex. Problema comisului voiajor

Aplicaii

Probleme de planificare Probleme de sume pariale


Plata unei sume folosind diferite tipuri de monezi Problema rucsacului

Puzzle-uri Drumul optim ntr-un graf

SCI A*

Aspecte teoretice

0,0,52,52 A 10,1,32,42 B +ob2 D 28,3,14,42 -ob2 E 10,1,32,42 1 F +ob2 +ob1 -ob1 0,0,52,52 C -ob2 G

Combinarea aspectelor pozitive ale

cutrii de cost uniform optimalitate i completitudine utilizarea unei cozi ordonate

cutrii Greedy viteza mare ordonare pe baza unei funcii de evaluare

Funcia de evalaure f(n)


estimarea costului celui mai bun drum care trece prin nodul n f(n) = g(n) + h(n) g(n) funcie folosit pentru stabilirea costului drumului de la starea iniial pn la starea curent n h(n) funcie euristic folosit pentru estimarea costului drumului de la starea curent n la starea final

Minimizarea costului total al unui drum

Exemplu

pi wi

o1 10 1

o2 18 2

o3 32 4

o4 14 3

Problema rucsacului de capacitate W n care pot fi puse n obiecte (o1, o2, ..., on) fiecare avnd o greutate wi i aducnd un profit pi, i=1,2,...,n
Soluia: pentru un rucsac cu W = 5 alegerea obiectelor o1 i o3

g(n) = pi, pentru acele obiecte oi care au fost selectate h(n) = pj, pentru acele obiecte care nu au fost selectate i wj <= W wi Fiecare nod din graf e un tuplu: (p, w, p*, f), unde:

p profitul adus de obiectele deja selectate (funcia g(n)) w greutatea obiectelor selectate p* - profitul maxim care se poate obine pornind din starea curent i innd cont de locul disponibil n rucsac (funcia h(n))

SCI A*

Algoritm bool BestFS(elem, list){ found = false; visited = ; toVisit = {start}; //FIFO sorted list (priority queue while((toVisit != ) && (!found)){ if (toVisit == ) return false node = pop(toVisit); visited = visited U {node}; if (node == elem) found = true; else aux = ; for all unvisited children of node do{ aux = aux U {child}; } toVisit = toVisit U aux; //adding a node onto the FIFO list based on its evaluation // f(n)= g(n)+ h(n) (best one in the front of list) } //while return found; }

SCI A*

Analiza cutrii:

Complexitate temporal:

b factor de ramnificare (nr de noduri fii ale unui nod) dmax - lungimea (adncimea) maxim a unui arbore explorat T(n) = 1 + b + b2 + + bdmax => O(bdmax) d - lungimea (adncimea) soluiei T(n) = 1 + b + b2 + + bd => O(bd)

Complexitate spaial

Completitudine

Da Da

Optimalitate

Avantaje

Algoritmul care expandeaz cele mai puine noduri din arborele de cutare

Dezavantaje

Utilizarea unei cantiti mari de memorie

Aplicaii

Probleme de planificare Probleme de sume pariale


Plata unei sume folosind diferite tipuri de monezi Problema rucsacului

Puzzle-uri Drumul optim ntr-un graf

SCI A*

Variante

iterative deepening A* (IDA*) memory-bounded A* (MA*) simplified memory bounded A* (SMA*) recursive best-first search (RBFS) dynamic A* (DA*) real time A* hierarchical A*

Bibliografie suplimentar

02/A_IDA.pdf 02/A_IDA_2.pdf 02/SMA_RTA.pdf 02/Recursive Best-First Search.ppt 02/IDS.pdf 02/IDA_MA.pdf http://en.wikipedia.org/wiki/IDA* http://en.wikipedia.org/wiki/SMA*

Rezolvarea problemelor prin cutare

Tipologia strategiilor de cutare

n funcie de modul de generare a soluiei

Cutare constructiv
Construirea progresiv a soluiei Ex. TSP O soluie candidat este modificat n vederea obinerii unei noi soluii candidat Ex. SAT - Propositional Satisability Problem

Cutare perturbativ

n funcie de modul de traversare a spaiului de cutare

Cutare sistematic
Traversarea complet a spaiului Ideintificarea soluiei dac ea exist algoritmi complei Traversarea spaiului de cutare dintr-un punct n alt punct vecin algoritmi incomplei O stare a spaiului poate fi vizitat de mai multe ori

Cutare local

n funcie de elementele de certitudine ale cutrii

Cutare determinist Algoritmi de identificare exact a soluiei Cutare stocastic Algoritmi de aproximare a soluiei Cutare secvenial Cutare paralel

n funcie de stilul de explorare a spaiului de cutare


Rezolvarea problemelor prin cutare


Poate consta n:

Construirea progresiv a soluiei Identificarea soluiei poteniale optime

Componentele problemei
Condiii (constrngeri) pe care trebuie s le satisfac (parial sau total) soluia Funcie de evaluare a unei soluii poteniale identificareaa optimului

Spaiul de cutare

mulimea tuturor soluiilor poteniale complete Stare = o soluie complet Stare final (scop) soluia optim

Exemple

Problema celor 8 regine,


Strile posibile: configuraii ale tablei de sah cu cte 8 regine Operatori: modificarea coloanei n care a fost plasat una din regine Scopul cutrii: configuraia n care nu existe atacuri ntre regine Funcia de evaluare: numrul de atacuri

probleme de planificare, proiectarea circuitelor digitale, etc

Rezolvarea problemelor prin cutare


Poate consta n:

Construirea progresiv a soluiei Identificarea soluiei poteniale optime

Algoritmi

Algoritmii discutai pn acum explorau n mod sistematic spaiul de cutare De ex. IDA* 10100 stri 500 variabile binare Problemele reale pot avea 10 000 100 000 variabile nevoia unei alte categorii de algoritmi care exploreaz local spaiul de cutare (algoritmi iterativi) Ideea de baz: se ncepe cu o stare care nu respect anumite constrngeri pentru a fi soluie optim i se efectueaz modificri pentru a elimina aceste violri (se deplaseaz cutarea ntr-o soluie vecin cu soluia curent) astfel nct cutarea s se ndrepte spre soluia optim Iterativi se memoreaz o singur stare i se ncearc mbuntirea ei versiunea inteligent a algoritmului de for brut Istoricul cutrii nu este reinut bool LS(elem, list){

found = false; crtState = initState while ((!found) && timeLimitIsNotExceeded){ toVisit = neighbours(crtState) if (best(toVisit) is better than crtState) crtState = best(toVisit)
if (crtState == elem) found = true;

} //while return found;


}

Rezolvarea problemelor prin cutare


Poate consta n:

Construirea progresiv a soluiei Identificarea soluiei poteniale optime

Avantaje

Simplu de implementat Necesit puin memorie Poate gsi soluii rezonabile n spaii de cutare (continue) foarte mari pentru care ali algoritmi sistematici nu pot fi aplicai

E util atunci cnd:


Se pot genera soluii complete rezonabile Se poate alege un bun punct de start Exist operatori pentru modificarea unei soluii complete Exist o msur pentru a aprecia progresul (avansarea cutrii) Exist un mod de a evalua soluia complet (n termeni de constrngeri violate
)

Strategii de cutare local

Tipologie

Cutare local simpl - se reine o singur stare vecin


Hill climbing alege cel mai bun vecin Simulated annealing alege probabilistic cel mai bun vecin Cutare tabu reine lista soluiilor recent vizitate

Cutare local n fascicol (beam local search) se rein mai multe stri (o populaie de stri)

Algoritmi evolutivi Optimizare bazat pe comportamentul de grup (Particle swarm optimisation) Optimizare bazat pe furnici (Ant colony optmisation)

Strategii de cutare local

Cutare local simpl

elemente de interes special:

Reprezentarea soluiei Funcia de evaluare a unei poteniale soluii Vecintatea unei soluii
Cum se definete/genereaz o soluie vecin Cum are loc cutarea soluiilor vecine

dependente de problem

Aleator Sistematic

Criteriul de acceptare a unei noi soluii


Primul vecin mai bun dect soluia curent Cel mai bun vecin al soluiei curente mai bun dect soluia curent Cel mai bun vecin al soluiei curente mai slab dect soluia curent Un vecin aleator

Strategii de cutare local Hill climbing (HC)

Aspecte teoretice

Urcarea unui munte n condiii de cea i amnezie a excursionistului :D Micarea continu spre valori mai bune (mai mari ursuul pe munte) Cutarea avanseaz n direcia mbuntirii valorii strilor succesor pn cnd se atinge un optim Criteriul de acceptare a unei noi soluii

Cel mai bun vecin al soluiei curente mai bun dect soluia curent

mbuntire prin

Maximizarea calitii unei stri steepest ascent HC Minimizarea costului unei stri gradient descent HC

HC steepest ascent/gradient descent (SA/GD)


HC optimizeaz f(x) cu xRn prin modificarea unui element al lui x SA/GD optimizeaz f(x) cu xRn prin modificarea tuturor elementelor lui x

Strategii de cutare local Hill climbing (HC)

Exemplu

Construirea unor turnuri din diferite forme geometrice

Se dau n piese de form dreptunghiular (de aceeai lime, dar de lungimi diferite) aezate unele peste altele formnd un turn (stiv). S se re-aeze piesele astfel nct s se formeze un nou turn tiind c la o mutare se poate mica doar o pies din vrful stivei, pies care poate fi mutat pe una din cele 2 stive ajuttoare.
Reprezentarea soluiei Stare x vectori de n perechi de forma (i,j), unde i reprezint indexul piesei (i=1,2,...,n), iar j indexul stivei pe care se afl piesa (j=1,2,3) Starea iniial vectorul corespunztor turnului iniial Starea final vectorul corespunztor turnului final Funcia de evaluare a unei stri f1 = numrul pieselor corect amplasate maximizare conform turnului final f1 = n f2 = numrul pieselor greit amplasate minimizare conform turnului final f2 = 0 f = f1 f2 maximizare Vecintate Mutri posibile Mutarea unei piese i din vrful unei stive j1 pe alt stiv j2 Criteriul de acceptare a unei noi soluii Cel mai bun vecin al soluiei curente mai bun dect soluia curent

Strategii de cutare local Hill climbing (HC)

Exemplu

Iteraia 1

Starea curent x = starea iniial s1 = ((5,1), (1,1), (2,1), (3,1), (4,1))


Piesele 1, 2 i 3 sunt corect aezate Piesele 4 i 5 nu sunt corect aezate f(s1) = 3 2 = 1

x* = x Vecinii strii curente x un singur vecin piesa 5 se mut pe stiva 2 s2 = ((1,1), (2,1), (3,1), (4,1), (5,2))
f(s2) = 4-1=3 > f(x) x =s2

Strategii de cutare local Hill climbing (HC)

Exemplu

Iteraia 2

Starea curent x = ((1,1), (2,1), (3,1), (4,1), (5,2))


f(x) = 3

Vecinii strii curente doi vecini:


piesa 1 se mut pe stiva 2 s3 = ((2,1), (3,1), (4,1), (1,2), (5,2)) f(s3) = 3-2=1 < f(x)

piesa 1 se mut pe stiva 3 s4 = ((2,1), (3,1), (4,1), (5,2), (1,3)) f(s4) = 3-2=1 < f(x) nu exist vecin de-al lui x mai bun ca x stop

x* = x = ((1,1), (2,1), (3,1), (4,1), (5,2)) Dar x* este doar optim local, nu global

Strategii de cutare local Hill climbing (HC)

Exemplu

Construirea unor turnuri din diferite forme geometrice

Funcia de evaluare a unei stri


f1 = suma nlimilor stivelor pe care sunt amplasate corect piese (conform turnului final f1 = 10) maximizare f2 = suma nlimilor stivelor pe care sunt amplasate incorect piese (conform turnului final f2 = 0) minimizare f = f1 f2 maximizare

Vecintate
Mutri posibile

Mutarea unei piese i din vrful unei stive j1 pe alt stiv j2

Strategii de cutare local Hill climbing (HC)

Exemplu

Iteraia 1

Starea curent x = starea iniial s1 = ((5,1), (1,1), (2,1), (3,1), (4,1))


Toate piesele nu sunt corect aezate f1 = 0, f2 = 3+2 + 1 + 0 + 4 = 10 f(s1) = 0 10 = -10

x* = x Vecinii strii curente x un singur vecin piesa 5 se mut pe stiva 2 s2 = ((1,1), (2,1), (3,1), (4,1), (5,2))
f(s2) = 0 (3+2+1+0) = -6 > f(x) x =s2

Strategii de cutare local Hill climbing (HC)

Exemplu

Iteraia 2

Starea curent x = ((1,1), (2,1), (3,1), (4,1), (5,2))


f(x) = -6

Vecinii strii curente doi vecini:


piesa 1 se mut pe stiva 2 s3 = ((2,1), (3,1), (4,1), (1,2), (5,2)) f(s3) = 0 (0+2+3+0)=-5 > f(x) piesa 1 se mut pe stiva 3 s4 = ((2,1), (3,1), (4,1), (5,2), (1,3)) f(s4) = 0 - (1+2+1) = -4 > f(x) cel mai bun vecin al lui x este s4 x = s4

Iteraia 3

...

Se evit astfel blocarea n optimele locale

Strategii de cutare local Hill climbing (HC)

Algoritm
Bool HC(S){ x = s1 //starea iniial x*=x // cea mai bun soluie gsit (pn la un moment dat) k = 0 // numarul de iteraii while (not termiantion criteria){ k = k + 1 generate all neighbours of x (N) Choose the best solution s from N if f(s) is better than f(x) then x = s else stop } //while x* = x return x*; }

Strategii de cutare local Hill climbing (HC)

Analiza cutrii

Convergena spre optimul local

Avantaje

Simplu de implementat se poate folosi usor pentru a aproxima soluia unei probleme cnd soluia exact e dificil sau imposibil de gsit

Ex. TSP cu forate multe orae

Nu necesit memorie (nu se revine n starea precedent) Funcia de evaluare (eurisitc) poate fi dificil de estimat Dac se execut foarte multe mutri algoritmul devine ineficient Dac se execut prea puine mutri algoritmul se poate bloca

Dezavantaje

ntr-un optim local (nu mai poate cobor din vrf) Pe un platou zon din spaiul de cutare n care funcia de evaluare este constant Pe o creast saltul cu mai muli pai ar putea ajuta cutarea

Aplicaii

Problema canibalilor 8-puzzle, 15-puzzle TSP Problema damelor

Strategii de cutare local Hill climbing (HC)

Variante

HC stocastic

Alegerea aleatoare a unui succesor Generarea aleatoare a succesorilor pn la ntlnirea unei mutri neefectuate Repornirea cutrii de la o stare iniial aleatoare atunci cnd cutarea nu progreseaz

HC cu prima opiune

HC cu repornire aleatoare beam local search

Strategii de cutare local Simulated Annealing

Aspecte teoretice

Inspirat de modelarea proceselor fizice

Metropolis et al. 1953, Kirkpatrick et al. 1982; Dac un succesor este mai bun dect starea curent atunci el devine noua stare curent altfel succesorul este reinut doar cu o anumit probabilitate evadarea din optimele locale Proporional cu valoarea diferenei (energia) E Modelat de un parametru de temperatur T

Succesorii strii curente sunt alei i n mod aleator

Se permit efectuarea unor mutri slabe cu o anumit probabilitate p

Probabilitatea p = eE/T

Frecvena acestor mutri slabe i mrimea lor se reduce gradual prin scderea temperaturii

T = 0 hill climbing T mutrile slabe sunt tot mai mult executate

Soluia optim se identific dac temperatura se scade treptat (slowly) Criteriul de acceptare a unei noi soluii

Un vecin aleator mai bun sau mai slab (cu probabilitatea p) dect soluia curent

Strategii de cutare local Simulated Annealing

Exemplu Problema celor 8 regine

Enun

S se amplaseze pe o tabl de ah 8 regine astfel nct ele s nu se atace reciproc

Reprezentarea soluiei

Stare x permutare de n elemente x = (x1,x2,..,xn), unde xi linia pe care este plasat regina de pe coloana j Nu exist atacuri pe vertical sau pe orizontal Pot exista atacuri pe diagonal Starea iniial o permutare oarecare Starea final o permutare fr atacuri de nici un fel

Funcia de evaluare a unei stri

f suma reginelor atacate de fiecare regin minimizare

Vecintate

Mutri posibile Mutarea unei regine de pe o linie pe alta (interschimbarea a 2 elemente din permutare)

Criteriul de acceptare a unei noi soluii

Un vecin oarecare al soluiei curente E mai bun dect soluia curent T P ( E ) e mai slab dect soluia curent cu o anumit probabilitate unde: E diferena de energie (evaluare) ntre cele 2 stri (vecin i curent) T temperatura, T(k) = 100/k, unde k este nr iteraiei

Strategii de cutare local Simulated Annealing

Exemplu Problema celor 8 regine

a 1 2 3 4 5 6 7 8 a

h 1 2 3 4 5 6 7 8

Iteraia 1 (k = 1)
Starea curent x = starea iniial s1 = (8,5,3,1,6,7,2,4)

f(s1) = 1+1 = 2

x* = x T = 100/1 = 100

Un vecin al strii curente x regina de pe linia 5 se interschimb cu regina de pe linia 7 s2 = (8,7,3,1,6,5,2,4)

a 1 2 3 4 5 6 7 8 a

h 1 2 3 4 5 6 7 8

f(s2) = 1+1+1=3 > f(x) E = f(s2) f(s1) = 1 P(E)=e-1/100 r = random(0,1) Dac r < P(E) x = s2

Strategii de cutare local Simulated Annealing

Algoritm
bool SA(S){ x = s1 //starea iniial x*=x // cea mai bun soluie gsit (pn la un moment dat) k = 0 // numarul de iteraii while (not termiantion criteria){ k = k + 1 generate a neighbour s of x if f(s) is better than f(x) then x = s else pick a random number r (in (0,1) range) if r < P(E) then x = s } //while x* = x return x*; }

Criterii de oprire

S-a ajuns la soluie S-a parcurs un anumit numr de iterii S-a ajuns la temepratura 0 (nghe)

Cum se alege o probabilitate mic?


p = 0.1 p scade de-a lungul iteraiilor p scade de-a lungul iteraiilor i pe msur ce rul |f(s) f(x)| crete

p = exp(- |f(s) f(x)|/T) Unde T temepratura (care crete) Pentru o T mare se admite aproape orice vecin v Petnru o T mic se admite doar un vecin mai bun dect s Dac rul e mare, atunci probabilitatea e mic

Strategii de cutare local Simulated Annealing

Analiza cutrii

Convergena (complet, optimal) lent spre optimul global

Avantaje

Algoritm fundamentat statistic garanteaz gsirea soluiei optime, dar necesit multe iteraii Uor de implementat n general gsete o soluie relativ bun (optim global) Poate rezolva probleme complexe (cu zgomot i multe constrngeri) Algoritm ncet convergena la soluie dureaz foarte mult timp

Dezavantaje

Compromis ntre calitatea soluiei i timpul necesar calculrii ei

Depinde de anumii parametri (temperatura) care trebuie reglai Nu se tie dac soluia oferit este optim (local sau gloabal) Calitatea soluiei gsite depinde de precizia variabilelor implicate n algoritm

Aplicaii

Probleme de optimizare combinatorial problema rucsacului Probleme de proiectare Proiectarea circuitelor digitale Probleme de planificare Planificarea produciei, planificarea meciurilor n turniruirle de tenis US Open

Strategii de cutare local Cutare tabu

Aspecte teoretice

Tabu interdicie social sever cu privire la activitile umane sacre i interzise Propus n anii 1970 de ctre F. Glover Ideea de baz

se ncepe cu o stare care nu respect anumite constrngeri pentru a fi soluie optim i se efectueaz modificri pentru a elimina aceste violri (se deplaseaz cutarea n cea mai bun soluie vecin cu soluia curent) astfel nct cutarea s se ndrepte spre soluia optim se memoreaz Starea curent Strile vizitate pn la momentul curent al cutrii i mutrile efectuate pentru a ajunge n fiecare din acele stri de-a lungul cutrii (se memoreaz o list limitat de stri care nu mai trebuie revizitate)
Cel mai bun vecin al soluiei curente mai bun dect soluia curent i nevizitat nc

Criteriul de acceptare a unei noi soluii

2 elemente importante

Mutri tabu (T) determinate de un proces non-Markov care se folosete de informaiile obinute n timpul cutrii de-a lungul ultimelor generaii Condiii tabu pot fi inegaliti liniare sau legturi logice exprimate n funcie de soluia curent
Au rol n alegerea mutrilor tabu

Strategii de cutare local Cutare tabu

Exemplu

Enun

Plata sumei S folosind ct mai multe dintre cele n monezi de valori vi (din fiecare moned exist bi buci)

Reprezentarea soluiei

Stare x vector de n ntregi x = (x1, x2, ..., xn) cu xi {0, 1, 2, ..., bi} Starea iniial aleator

Funcia de evaluare a unei stri

f1 = Diferena ntre valaorea monezilor alese i S minim


Dac valoarea monezilor depete S penalizare de 50 uniti

f2 = Numrul monezilor selectate maxim f = f1 f2 minimizare

Vecintate

Mutri posibile
Includerea n sum a monezii i n j exemplare (plusi,j) Excluderea din sum a monezii i n j exemplare (minusi,j) Mutare moneda adugat/eliminat din sum

Lista tabu reine mutrile efectuate ntr-o iteraie

Strategii de cutare local Cutare tabu

Exemplu

S = 500, penalizare = 500, n = 7


S=50 vi bi m1 10 5 m2 50 2 m3 15 6 m4 20 5 m5 100 4 m6 35 3 m7 5 10

Stare curent 2010021

Val. f 384

List tabu

Stri vecine 2013021 2010031 0010021

Mutri plus4,3 plus6,1 minus1,2 plus5,5 minus4,2 plus2,1

Val. f 321 348 406 656 363 270

2013021

321

plus4,3

2013521 2011021 2113021

2113021

270

plus4,3 plus2,1

...

Soluia final: 4 1 5 4 1 3 19 (f = -28)

Strategii de cutare local Cutare tabu

Exemplu

S = 500, penalizare = 500, n = 7


S=50 vi bi m1 10 5 m2 50 2 m3 15 6 m4 20 5 m5 100 4 m6 35 3 m7 5 10

Stare curent 2010021

Val. f 384

List tabu

Stri vecine 1014021 2040121 2010426

Mutri minus1,1,plus4,4 plus3,3,minus5,1 plus5,4, plus7,5 plus3,1, plus5,4 plus1,3, plus5,3 plus2,2, plus5,4

Val. f 311 235 520 655 569 739

2040121

235

plus3,3, minus5,1

2050521 5040421 2240521

2040121

235

plus3,3, minus5,1

Soluia final: 4 1 5 4 1 3 19 (f = -28)

Strategii de cutare local Cutare tabu

Algoritm
bool TS(S){ Select xS //S spaiul de cutare x*=x // cea mai bun soluie gsit (pn la un moment dat) k = 0 // numarul de iteraii T = // list de mutri tabu while (not termiantion criteria){ k = k + 1 generate a subset of solutions in the neighborhood N-T of x Choose the best solution s from N-T and set x=s. if f(x)<f(x*) then x*=x update T with moves of generating x } //while return x*; }

Criterii de terminare

Numr fix de iteraii Numr de iteraii fr mbuntiri Apropierea suficient de soluie (dac aceasta este cunoscut) Epuizarea elementelor nevizitate dintr-o vecintate

Strategii de cutare local Cutare tabu

Analiza cutrii

Convergena rapid spre optimul global

Avantaje

Se evit blocarea n minimele locale prin acceptarea unor soluii mai puin performante Algoritm general i simplu de implementat Algoritm rapid (poate oferi soluia optim global n scurt timp) Stabilirea strilor vecine n spaii continue Numr mare de iteraii Nu se garanteaz atingerea optimului global

Dezavantaje

Strategii de cutare local Cutare tabu

Aplicaii

Determinarea structurii tridimensionale a proteinelor n secvene de aminoacizi (optimizarea unei funcii de potenial energetic cu multiple optime locale) Optimizarea traficului n reele de telecomunicaii Planificare n sisteme de producie Proiectarea reelelor de telecomunicaii optice Ghidaj automat pentru vehicule Probleme n grafuri (partiionri) Planificri n sistemele de audit Planificri ale task-urilor paralele efectuate de procesor (multiprocesor) Optimizarea structurii electromagnetice (imagistica rezonanei magnetice medicale) Probleme de asignare quadratic (proiectare VLSI) Probleme de combinatoric (ricsac, plata sumei) Problema tierii unei buci n mai multe pri Controlul structurilor spaiale (NASA) Optimizarea proceselor cu decizii multi-stagiu Probleme de transport Management de portofoliu Chunking

Recapitulare

SCI best first search

Nodurile mai bine evaluate (de cost mai mic) au prioritate la expandare SCI de tip greedy

minimizarea costului de la starea curent la starea obiectiv h(n) Timp de cutare < SCnI Ne-complet Ne-optimal

SCI de tip A*

minimizarea costului de la starea iniial la starea curent g(n) i a costului de la starea curent la starea obiectiv h(n) Evitarea repetrii strilor Fr supraestimarea lui h(n) Timp i spaiu de cutare mare n funcie de euristica folosit Complet Optimal

Recapitulare

SC locale

Algoritmi iterativi

Lucreaz cu o soluie potenial soluia optim Se pot bloca n optime locale


Criteriul de acceptare Vecinul este mai bun dect strarea curent Vecinul este mai bun sau mai slab (acceptat cu probabilitatea p) dect starea curent Vecinul este mai bun dect strarea curent Convergena Optim local sau gloabl Optim global (lent)

Alegerea strii urmtoare HC SA Cel mai bun vecin Un vecin oarecare

TS

Cel mai bun vecin nevizitat nc

Optim global (rapid)

Cursul urmtor
A. Scurt introducere n Inteligena Artificial (IA) B. Rezolvarea problemelor prin cutare

Definirea problemelor de cutare Strategii de cutare


Strategii de cutare neinformate Strategii de cutare informate Strategii de cutare locale (Hill Climbing, Simulated Annealing, Tabu Search, Algoritmi evolutivi, PSO, ACO) Strategii de cutare adversial

C.

Sisteme inteligente

Sisteme bazate pe reguli n medii certe Sisteme bazate pe reguli n medii incerte (Bayes, factori de certitudine, Fuzzy) Sisteme care nva singure

Arbori de decizie Reele neuronale artificiale Maini cu suport vectorial Algoritmi evolutivi

Sisteme hibride

Cursul urmtor Materiale de citit i legturi utile

capitolul 14 din C. Groan, A. Abraham, Intelligent Systems: A Modern Approach, Springer, 2011 M. Mitchell, An Introduction to Genetic Algorithms, MIT Press, 1998 capitolul 7.6 din A. A. Hopgood, Intelligent Systems for Engineers and Scientists, CRC Press, 2001 Capitolul 9 din T. M. Mitchell, Machine Learning, McGraw-Hill Science, 1997

Informaiile prezentate au fost colectate din diferite surse de pe internet, precum i din cursurile de inteligen artificial inute n anii anteriori de ctre:

Conf. Dr. Mihai Oltean www.cs.ubbcluj.ro/~moltean Lect. Dr. Crina Groan - www.cs.ubbcluj.ro/~cgrosan Prof. Dr. Horia F. Pop - www.cs.ubbcluj.ro/~hfpop

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