Sunteți pe pagina 1din 51

UNIVERSITATEA BABE-BOLYAI

Facultatea de Matematic i Informatic

INTELIGEN
ARTIFICIAL
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

C.

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

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

Martie, 2014

Inteligen artificial - metode de cutare informat

Sumar

Rezolvarea problemelor prin cutare

Strategii de cutare informate (euristice) - SCI

Martie, 2014

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

Inteligen artificial - metode de cutare informat

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/

Martie, 2014

Inteligen artificial - metode de cutare informat

Rezolvarea problemelor prin cutare

Strategii de cutare (SC)

Topologie

n funcie de informaia disponibil


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

Martie, 2014

Inteligen artificial - metode de cutare informat

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* + versiuni ale A*

Strategii locale

Martie, 2014

Cutare tabu
Hill climbing
Simulated annealing
Inteligen artificial - metode de cutare informat

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

start

estimat

g(n)

obiectiv

h(n)
f(n)

Martie, 2014

Inteligen artificial - metode de cutare informat

SCI Best first search

Aspecte teoretice

Best first search = mai 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

Exemple de SC care depind de funcia de evaluare

Cutare de cost uniform (SCnI)

f = costul drumului

Dou categorii de SCI de tip best first search

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

Exemplu

Detalii n slide-urile urmtoare

Martie, 2014

Inteligen artificial - metode de cutare informat

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 into the FIFO list based on its
// evaluation (best one in the front of list)
} //while
return found;
}

Martie, 2014

Inteligen artificial - metode de cutare informat

SCI best first search

Analiza cutrii

Complexitate temporal:

Complexitate spaial

Informaiile despre domeniul problemei ajut cutarea (SCI)


Vitez mai mare de a ajunge la starea obiectiv

Dezavantaje

Posibil depinde de euristic

Avantaje

Nu- drumuri infinite dac euristica evalueaz fiecare stare din drum ca fiind cea mai bun alegere

Optimalitate

S(n) = T(n)

Completitudine

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)

Necesit evaluarea strilor efort computaional, dar nu numai


Anumite path-uri pot arta ca fiind bune conform funciei euristice

Aplicaii

Web crawler (automatic indexer)


Jocuri

Martie, 2014

Inteligen artificial - metode de cutare informat

10

SCI Funcii euristice

Etimologie: heuriskein (gr)

Utilitate

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

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

Martie, 2014

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)

Inteligen artificial - metode de cutare informat

11

SCI Funcii euristice

Exemple

Problema misionarilor i canibalilor

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) nr. persoanelor aflate pe malul iniial

h(n) cel mai apropiat vecin !!!

Plata unei sume folosind un numr minim de monezi

Martie, 2014

h(n) alegerea celei mai valoroase monezi mai mic dect


suma (rmas) de plat
Inteligen artificial - metode de cutare informat

12

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

A,D,E,H
0 H

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)

2 I

Vizitate deja

De vizitat

D, B, C

A, D

E, F, G, B, C

A, D, E

H, I, F, G, B, C

A, D, E, H

evaluation h(n)

} //while
return found;
}

Martie, 2014

Inteligen artificial - metode de cutare informat

13

3 G

SCI - Greedy

Analiza cutrii:

Complexitate temporal DFS

Complexitate spaial BFS

d - lungimea (adncimea) soluiei


S(n) = 1 + b + b2 + + bd => O(bd)

Nu (exist posibilitatea intrrii n cicluri infinite)

posibil

Completitudine

Optimalitate

Avantaje

Gsirea rapid a unei soluii (dar nu neaprat soluia optim), mai ales pentru probleme mici

Dezavantaje

Suma alegerilor optime de la fiecare pas nu reprezint alegerea global optim

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)

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

Martie, 2014

Inteligen artificial - metode de cutare informat

14

SCI A*

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

+ob1

10,1,32,42

-ob1

B
+ob2

+ob2

-ob2

-ob2

1 F

28,3,14,42

0,0,52,52

10,1,32,42

Funcia de evalaure f(n)

0,0,52,52
A

Aspecte teoretice

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

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

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 este un tuplu: (p, w, p*, f), unde:

Martie, 2014

o4
14
3

Soluia: pentru un rucsac cu W = 5 alegerea obiectelor o1 i o3

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))

Inteligen artificial - metode de cutare informat

15

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;
}

Martie, 2014

Inteligen artificial - metode de cutare informat

16

SCI A*

Analiza cutrii:

Complexitate temporal:

Complexitate spaial

Completitudine

Optimalitate

Da

Algoritmul care expandeaz cele mai puine noduri din arborele de cutare

Dezavantaje

Da

Avantaje

d - lungimea (adncimea) soluiei


T(n) = 1 + b + b2 + + bd => O(bd)

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)

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

Martie, 2014

Inteligen artificial - metode de cutare informat

17

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*

Martie, 2014

Inteligen artificial - metode de cutare informat

18

Rezolvarea problemelor prin cutare

Tipologia strategiilor de cutare

n funcie de modul de generare a soluiei

Cutare constructiv

Cutare perturbativ

Cutare sistematic

Traversarea complet a spaiului

Ideintificarea soluiei dac ea exist algoritmi complei

Cutare local

Traversarea spaiului de cutare dintr-un punct n alt punct vecin algoritmi incomplei
O stare a spaiului poate fi vizitat de mai multe ori

n funcie de elementele de certitudine ale cutrii

O soluie candidat este modificat n vederea obinerii unei noi soluii candidat
Ex. SAT - Propositional Satisability Problem

n funcie de modul de traversare a spaiului de cutare

Construirea progresiv a soluiei


Ex. TSP

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

n funcie de stilul de explorare a spaiului de cutare

Martie, 2014

Cutare secvenial
Cutare paralel

Inteligen artificial - metode de cutare informat

19

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,

Martie, 2014

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

Inteligen artificial - metode de cutare informat

20

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. A* 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;

Martie, 2014

} //while
return found;

Inteligen artificial - metode de cutare informat

21

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:

Martie, 2014

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

Inteligen artificial - metode de cutare informat

22

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)

Martie, 2014

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

Inteligen artificial - metode de cutare informat

23

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

Aleator
Sistematic

Criteriul de acceptare a unei noi soluii

Martie, 2014

dependente
de problem

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
Inteligen artificial - metode de cutare informat

24

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 urcuul pe
munte)
Cutarea avanseaz n direcia mbuntirii valorii strilor
succesor pn cnd se atinge un optim
Criteriul de acceptare a unei noi soluii

mbuntire prin

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

Maximizarea calitii unei stri steepest ascent HC


Minimizarea costului unei stri gradient descent HC

HC steepest ascent/gradient descent (SA/GD)

Martie, 2014

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
Inteligen artificial - metode de cutare informat

25

Strategii de cutare local


Hill climbing (HC)

Exemplu

Construirea unor turnuri din diferite forme geometrice

Martie, 2014

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

Inteligen artificial - metode de cutare informat

26

Strategii de cutare local


Hill climbing (HC)

Exemplu

Iteraia 1

Starea curent x = starea iniial:


x = 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

Martie, 2014

Inteligen artificial - metode de cutare informat

27

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

Martie, 2014

Inteligen artificial - metode de cutare informat

28

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

Martie, 2014

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

Inteligen artificial - metode de cutare informat

29

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

Martie, 2014

Inteligen artificial - metode de cutare informat

30

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

Martie, 2014

Inteligen artificial - metode de cutare informat

31

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*;
}

Martie, 2014

Inteligen artificial - metode de cutare informat

32

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 este dificil sau imposibil de gsit

Nu necesit memorie (nu se revine n starea precedent)

Dezavantaje

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

Ex. TSP cu forate multe orae

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

Martie, 2014

Inteligen artificial - metode de cutare informat

33

Strategii de cutare local


Hill climbing (HC)

Variante

HC stocastic

HC cu prima opiune

Alegerea aleatoare a unui succesor


Generarea aleatoare a succesorilor pn la ntlnirea
unei mutri neefectuate

HC cu repornire aleatoare beam local search

Martie, 2014

Repornirea cutrii de la o stare iniial aleatoare


atunci cnd cutarea nu progreseaz

Inteligen artificial - metode de cutare informat

34

Strategii de cutare local


Simulated Annealing

Aspecte teoretice

Inspirat de modelarea proceselor fizice

Succesorii strii curente sunt alei i n mod aleator

Proporional cu valoarea diferenei (energia) E


Modelat de un parametru de temperatur T

Frecvena acestor mutri slabe i mrimea lor se reduce gradual prin


scderea temperaturii

evadarea din optimele locale

Probabilitatea p = eE/T

Dac un succesor este mai bun dect starea curent


atunci el devine noua stare curent
altfel succesorul este reinut doar cu o anumit probabilitate

Se permit efectuarea unor mutri slabe cu o anumit probabilitate p

Metropolis et al. 1953, Kirkpatrick et al. 1982;

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

Martie, 2014

Un vecin aleator mai bun sau mai slab (cu probabilitatea p) dect soluia curent
Inteligen artificial - metode de cutare informat

35

Strategii de cutare local


Simulated Annealing

Exemplu Problema celor 8 regine

Enun

Reprezentarea soluiei

f suma reginelor atacate de fiecare regin minimizare

Vecintate

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

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

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

Criteriul de acceptare a unei noi soluii

Martie, 2014

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

Inteligen artificial - metode de cutare informat

36

Strategii de cutare local


Simulated Annealing

Exemplu Problema celor 8 regine

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

f(s1) = 1+1 = 2

h
1
2
3
4
5
6
7
8

1
2
3
4
5
6
7
8

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)

Martie, 2014

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

1
2
3
4
5
6
7
8

Inteligen artificial - metode de cutare informat

1
2
3
4
5
6
7
8
a

h
37

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

Martie, 2014

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

Inteligen artificial - metode de cutare informat

38

Strategii de cutare local


Simulated Annealing

Analiza cutrii

Avantaje

Convergena (complet, optimal) lent spre optimul global

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)

Dezavantaje

Algoritm ncet convergena la soluie dureaz foarte mult timp

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

Martie, 2014

Inteligen artificial - metode de cutare informat

39

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

Criteriul de acceptare a unei noi soluii

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

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

Martie, 2014

Au rol n alegerea mutrilor tabu


Inteligen artificial - metode de cutare informat

40

Strategii de cutare local


Cutare tabu

Exemplu

Enun

Reprezentarea soluiei

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

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 S i valaorea monezilor alese minim

Dac valoarea monezilor depete S penalizare de 500 uniti

f2 = Numrul monezilor selectate maxim


f = f1 f2 minimizare

Vecintate

Martie, 2014

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

Inteligen artificial - metode de cutare informat

41

Strategii de cutare local


Cutare tabu

Exemplu

S = 500, penalizare = 500, n = 7


S=500

m1

m2

m3

m4

m5

m6

m7

vi

10

50

15

20

100

35

bi

10

Stare curent

Val. f

List
tabu

Stri vecine

Mutri

Val. f

2010021

384

2013021

plus4,3

321

2010031

plus6,1

348

0010021

minus1,2

406

2013521

plus5,5

316

2011021

minus4,2

363

2113021

plus2,1

270

2013021

2113021

321

270

plus4,3

plus4,3
plus2,1

...

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

Martie, 2014

Inteligen artificial - metode de cutare informat

42

Strategii de cutare local


Cutare tabu

Exemplu

S = 500, penalizare = 500, n = 7


m1

m2

m3

m4

m5

m6

m7

vi

10

50

15

20

100

35

bi

10

Stare
curent

Val. f

List tabu

Stri vecine

Mutri

Val. f

2010021

384

1014021

minus1,1,plus4,4

311

2040121

plus3,3,minus5,1

235

2010426

plus5,4, plus7,5

450

2050521

plus3,1, plus5,4

315

5040421

plus1,3, plus5,3

399

2240521

plus2,2, plus5,4

739

2040121

2040121

S=50

235

235

plus3,3, minus5,1

plus3,3, minus5,1

...

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

Martie, 2014

Inteligen artificial - metode de cutare informat

43

Strategii de cutare local


Cutare tabu

Algoritm
bool TS(S){
Select xS //S spaiul de cutare
x*=x
//cea mai bun soluie (pn la un mom. 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

Martie, 2014

Numr fix de iteraii


Numr de iteraii fr mbuntiri
Apropierea suficient de soluie (dac aceasta este cunoscut)
Epuizarea elementelor nevizitate dintr-o vecintate
Inteligen artificial - metode de cutare informat

44

Strategii de cutare local


Cutare tabu

Analiza cutrii

Avantaje

Convergena rapid spre optimul global

Algoritm general i simplu de implementat


Algoritm rapid (poate oferi soluia optim global n
scurt timp)

Dezavantaje

Stabilirea strilor vecine n spaii continue


Numr mare de iteraii
Nu se garanteaz atingerea optimului global

Martie, 2014

Inteligen artificial - metode de cutare informat

45

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

Martie, 2014

Inteligen artificial - metode de cutare informat

46

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*

Martie, 2014

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
Inteligen artificial - metode de cutare informat

47

Recapitulare

SC locale

Algoritmi iterativi

Lucreaz cu o soluie potenial soluia optim


Se pot bloca n optime locale

Alegerea strii
urmtoare

Criteriul de
acceptare

Convergena

HC

Cel mai bun vecin

Vecinul este mai bun


dect strarea curent

Optim local sau


gloabl

SA

Un vecin oarecare

Vecinul este mai bun


sau mai slab (acceptat
cu probabilitatea p)
dect starea curent

Optim global
(lent)

TS

Cel mai bun vecin


nevizitat nc

Vecinul este mai bun


dect strarea curent

Optim global
(rapid)

Martie, 2014

Inteligen artificial - metode de cutare informat

48

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

Definirea problemelor de cutare


Strategii de cutare

C.

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

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

Martie, 2014

Inteligen artificial - metode de cutare informat

49

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

Martie, 2014

Inteligen artificial - metode de cutare informat

50

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

Martie, 2014

Inteligen artificial - metode de cutare informat

51

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