Documente Academic
Documente Profesional
Documente Cultură
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
C.
Sisteme inteligente
Arbori de decizie
Reele neuronale artificiale
Maini cu suport vectorial
Algoritmi evolutivi
Sisteme hibride
Martie, 2014
Sumar
Martie, 2014
Strategii globale
Best first search
Strategii locale
Hill Climbing
Simulated Annealing
Tabu search
Martie, 2014
Topologie
Martie, 2014
Caracteristici
Topologie
Strategii globale
Best-first search
Strategii locale
Martie, 2014
Cutare tabu
Hill climbing
Simulated annealing
Inteligen artificial - metode de cutare informat
SC n structuri arborescente
Noiuni necesare
start
estimat
g(n)
obiectiv
h(n)
f(n)
Martie, 2014
Aspecte teoretice
f = costul drumului
Exemplu
Martie, 2014
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
Analiza cutrii
Complexitate temporal:
Complexitate spaial
Dezavantaje
Avantaje
Nu- drumuri infinite dac euristica evalueaz fiecare stare din drum ca fiind cea mai bun alegere
Optimalitate
S(n) = T(n)
Completitudine
Aplicaii
Martie, 2014
10
Utilitate
a gsi, a descoperi
studiul metodelor i regulilor de descoperire i invenie
Caracteristici
Martie, 2014
11
Exemple
8-puzzle
Martie, 2014
12
SCI - Greedy
Aspecte teoretice
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
13
3 G
SCI - Greedy
Analiza cutrii:
posibil
Completitudine
Optimalitate
Avantaje
Gsirea rapid a unei soluii (dar nu neaprat soluia optim), mai ales pentru probleme mici
Dezavantaje
Aplicaii
Probleme de planificare
Probleme de sume pariale
Puzzle-uri
Drumul optim ntr-un graf
Martie, 2014
14
SCI A*
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
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
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
Martie, 2014
o4
14
3
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
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
Aplicaii
Probleme de planificare
Probleme de sume pariale
Puzzle-uri
Drumul optim ntr-un graf
Martie, 2014
17
SCI A*
Variante
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
18
Cutare constructiv
Cutare perturbativ
Cutare sistematic
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
O soluie candidat este modificat n vederea obinerii unei noi soluii candidat
Ex. SAT - Propositional Satisability Problem
Cutare determinist
Algoritmi de identificare exact a soluiei
Cutare stocastic
Algoritmi de aproximare a soluiei
Martie, 2014
Cutare secvenial
Cutare paralel
19
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
Exemple
Martie, 2014
probleme de planificare,
proiectarea circuitelor digitale, etc
20
Algoritmi
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;
21
Avantaje
Simplu de implementat
Poate gsi soluii rezonabile n spaii de cutare (continue) foarte mari pentru care ali
algoritmi sistematici nu pot fi aplicai
Martie, 2014
22
Tipologie
Martie, 2014
Algoritmi evolutivi
Optimizare bazat pe comportamentul de grup (Particle swarm
optimisation)
Optimizare bazat pe furnici (Ant colony optmisation)
23
Reprezentarea soluiei
Aleator
Sistematic
Martie, 2014
dependente
de problem
24
Aspecte teoretice
mbuntire prin
cel mai bun vecin al soluiei curente mai bun dect soluia curent
Martie, 2014
25
Exemplu
Martie, 2014
26
Exemplu
Iteraia 1
x* = x
Martie, 2014
27
Exemplu
Iteraia 2
Martie, 2014
28
Exemplu
Vecintate
Mutri posibile
Martie, 2014
29
Exemplu
Iteraia 1
x* = x
Martie, 2014
30
Exemplu
Iteraia 2
Iteraia 3
...
Martie, 2014
31
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
32
Analiza cutrii
Avantaje
Simplu de implementat se poate folosi usor pentru a aproxima soluia unei probleme cnd
soluia exact este dificil sau imposibil de gsit
Dezavantaje
Aplicaii
Problema canibalilor
8-puzzle, 15-puzzle
TSP
Problema damelor
Martie, 2014
33
Variante
HC stocastic
HC cu prima opiune
Martie, 2014
34
Aspecte teoretice
Probabilitatea p = eE/T
T = 0 hill climbing
T mutrile slabe sunt tot mai mult executate
Martie, 2014
Un vecin aleator mai bun sau mai slab (cu probabilitatea p) dect soluia curent
Inteligen artificial - metode de cutare informat
35
Enun
Reprezentarea soluiei
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
Mutri posibile
Mutarea unei regine de pe o linie pe alta (interschimbarea a 2 elemente din permutare)
Martie, 2014
T
P
(
E
)
e
mai slab dect soluia curent cu o anumit probabilitate
unde:
36
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
Martie, 2014
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
a
h
37
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
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
38
Analiza cutrii
Avantaje
Dezavantaje
Aplicaii
Martie, 2014
39
Aspecte teoretice
Ideea de baz
2 elemente importante
Martie, 2014
40
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
Vecintate
Martie, 2014
Mutri posibile
41
Exemplu
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
...
Martie, 2014
42
Exemplu
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
...
Martie, 2014
43
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
44
Analiza cutrii
Avantaje
Dezavantaje
Martie, 2014
45
Aplicaii
Martie, 2014
46
Recapitulare
SCI de tip A*
Martie, 2014
47
Recapitulare
SC locale
Algoritmi iterativi
Alegerea strii
urmtoare
Criteriul de
acceptare
Convergena
HC
SA
Un vecin oarecare
Optim global
(lent)
TS
Optim global
(rapid)
Martie, 2014
48
Cursul urmtor
A. Scurt introducere n Inteligena Artificial (IA)
B. Rezolvarea problemelor prin cutare
C.
Sisteme inteligente
Arbori de decizie
Reele neuronale artificiale
Maini cu suport vectorial
Algoritmi evolutivi
Sisteme hibride
Martie, 2014
49
Cursul urmtor
Materiale de citit i legturi utile
Martie, 2014
50
Martie, 2014
51