Documente Academic
Documente Profesional
Documente Cultură
INTELIGEN
ARTIFICIAL
Rezolvarea problemelor de cutare
Strategii de cutare neinformat
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
Probleme
Rezolvarea problemelor
Martie, 2014
Martie, 2014
Probleme
Martie, 2014
Probleme
Tipologie
Probleme de cutare/optimizare
intrri
Probleme de modelare
model
ieiri
Predicii, clasificri
intrri
model
ieiri
Probleme de simulare
Martie, 2014
intrri
model
ieiri
Rezolvarea problemelor
Cum?
Martie, 2014
Definirea problemei
Analiza problemei
cutare
reprezentarea cunotinelor
abstractizare
Martie, 2014
Martie, 2014
reprezentare
unui/unor drum(uri)
succesiuni de stri
Martie, 2014
funcii obiectiv care verific dac s-a ajuns ntr-o stare final
10
Exemple
7 2 1
5 6
3 8 4
Martie, 2014
1 2 3
4 5 6
7 8
11
Exemple
Joc cu n dame
h
1
2
3
4
5
6
7
8
Martie, 2014
1
2
3
4
5
6
7
8
12
Martie, 2014
13
Martie, 2014
14
Martie, 2014
15
Martie, 2014
16
Martie, 2014
17
Componentele problemei
Spaiul de cutare
Martie, 2014
Stare iniial
Operatori (funcii succesor)
Stare final
Soluia = un drum (de cost optim) de la starea iniial la starea final
Mulimea tuturor strilor n care se poate ajunge din starea iniial prin aplicarea
operatorilor
stare = o component a soluiei
Exemple
Problema comisului voiajor
Algoritmi
Ideea de baz: se ncepe cu o component a soluiei i se adaug noi
componente pn se ajunge la o soluie complet
Recursivi se re-aplic pn la ndeplinirea unei condiii
Istoricul cutrii (drumul parcurs de la starea iniial la starea final) este
reinut n liste de tip LIFO sau FIFO
Avantaje
Nu necesit cunotine (informaii inteligente)
18
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
Avantaje
Martie, 2014
Algoritmi
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
19
Martie, 2014
20
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
21
Cutare uni-obiectiv
Cutare multi-obiectiv
Cutare uni-modal
Cutare multi-modal
Cutare euristic
Cutare tradiional
Cutare modern
Cutare local
Cutare global
Martie, 2014
22
Cutare liniar
Cutare neliniar
Clasic (determinist)
Enumerativ
Stocastic
Martie, 2014
23
Cutare sistematic
Cutare local
Cutare constructiv
Cutare perturbativ
Cutare determinist
Cutare stocastic
Martie, 2014
Cutare secvenial
Cutare paralel
24
Se dau:
Se cere
Martie, 2014
25
C
B
L
V
L
V
C
B
L
B
L
V
B
C
L
V
C
C
V
Martie, 2014
B
V
C
B
C
B
L
C
B
C
V
V
L
B
V
L
26
Strategii de cutare
Elemente fundamentale
TAD
Domeniu i operaii
Reprezentare
Martie, 2014
27
Strategii de cutare
Elemente fundamentale TAD List
Domeniu
D = {l | l = (el1, el2, ), unde eli, i=1,2,3, sunt de acelai tip TE (tip element) i fiecare element eli,
i=1,2,3, are o poziie unic n l de tip TP (TipPoziie)}
Operaii
Reprezentare
Creare(l)
Prim(l)
Ultim(l)
Urmtor(l,p)
Anterior(l,p)
Valid(l,p)
getElement(l,p)
getPoziie(l,e)
Modific(l,p,e)
AdugareLanceput(l,e)
AdugareLaSfrit(l,e)
AdugareDup(l,p,e)
Adugarenainte(l,p,e)
Eliminare(l,p)
Cutare(l,e)
Vid(l)
Dimensiune(l)
Distrugere(l)
getIterator(l)
Vectorial
Liste (simplu sau dublu) nlnuite, etc
Cazuri particulare
Stiv LIFO
Coad FIFO
Coad cu prioriti
Martie, 2014
28
Strategii de cutare
Elemente fundamentale TAD List
Domeniu
D = {l | l = (el1, el2, ), unde eli, i=1,2,3, sunt de acelai tip TE (tip element) i fiecare element eli,
i=1,2,3, are o poziie unic n l de tip TP (TipPoziie)}
Operaii
Reprezentare
Creare(l)
Prim(l)
Ultim(l)
Urmtor(l,p)
Anterior(l,p)
Valid(l,p)
getElement(l,p)
getPoziie(l,e)
Modific(l,p,e)
AdugareLanceput(l,e)
AdugareLaSfrit(l,e)
AdugareDup(l,p,e)
Adugarenainte(l,p,e)
Eliminare(l,p)
Cutare(l,e)
Vid(l)
Dimensiune(l)
Distrugere(l)
getIterator(l)
Vectorial
Liste (simplu sau dublu) nlnuite, etc
Cazuri particulare
Stiv LIFO
Coad FIFO
Coad cu prioriti
Martie, 2014
29
Strategii de cutare
Elemente fundamentale TAD List
Domeniu
D = {l | l = (el1, el2, ), unde eli, i=1,2,3, sunt de acelai tip TE (tip element) i fiecare element eli,
i=1,2,3, are o poziie unic n l de tip TP (TipPoziie)}
Operaii
Reprezentare
Creare(l)
Prim(l)
Ultim(l)
Urmtor(l,p)
Anterior(l,p)
Valid(l,p)
getElement(l,p)
getPoziie(l,e)
Modific(l,p,e)
AdugareLanceput(l,e)
AdugareLaSfrit(l,e)
AdugareDup(l,p,e)
Adugarenainte(l,p,e)
Eliminare(l,p)
Cutare(l,e)
Vid(l)
Dimensiune(l)
Distrugere(l)
getIterator(l)
Vectorial
Liste (simplu sau dublu) nlnuite, etc
Cazuri particulare
Stiv LIFO
Coad FIFO
Coad cu prioriti
Martie, 2014
30
Strategii de cutare
Elemente fundamentale TAD Graf
Operaii
creare
creareNod
traversare
getIterator
distrugere
Reprezentare
D = {nod1,nod2,...,nodn, leg1, leg2, ...,legm, unde nodi, cu i=1,2,...,n sunt noduri, iar legi, cu i=1,2,...,m sunt
muchii ntre noduri}
Lista muchilor
Lista de adiacen (Tradiional i Modern)
Matricea de adiacen (Tradiional i Modern)
Matricea de inciden
Cazuri particulare
Grafuri
Grafuri
Grafuri
Grafuri
Grafuri
Martie, 2014
orientate i neorientate
simple sau multiple
conexe sau nu
complete sau nu
cu sau fr cicluri (aciclice pduri, arbori)
31
Strategii de cutare
Elemente fundamentale TAD Arbore
Operaii
creare
creareFrunz
adugareSubarbore
getInfoRdcin
getSubarbore
traversare
getIterator
distrugere
Reprezentare
D = {nod1,nod2,...,nodn, leg1, leg2, ...,legm, unde nodi, cu i=1,2,...,n sunt noduri, iar
legi, cu i=1,2,...,m sunt muchii ntre noduri astfel nct s nu se formeze cicluri}
Vectorial
Liste nlnuite ale descendenilor
Cazuri particulare
Martie, 2014
32
Strategii de cutare
Elemente fundamentale parcurgerea grafelor
Drumuri
drum (path)
trail
circuit
fr restricii
drum nchis
walk
un trail nchis
ciclu
Martie, 2014
un path nchis
Inteligen artificial - metode de cutare neinformat
33
Caracteristici
Topologie
Martie, 2014
34
Aspecte teoretice
Exemplu
Lista = ( 2, 3, 1, ,7, 5)
Elem = 7
Algoritm
bool LS(elem, list){
found = false;
i = 1;
while ((!found) && (i <= list.length)){
if (elem = list[i])
found = true;
else
i++;
} //while
return found;
}
Martie, 2014
35
Analiza cutrii
Complexitate temporal
Complexitate spaial
Completitudine
Optimalitate
da
da
Dezavantaje
S(n) = n
Avantaje
Aplicaii
Martie, 2014
36
Aspecte teoretice
Exemplu
List
List
List
List
=
=
=
=
(
(
(
(
2, 3, 5, 6, 8, 9, 13,16, 18)
2, 3, 5, 6)
5, 6 )
6)
Algoritm
bool BS(elem, list){
found = false;
left = 1;
right = list.length;
while((left < right) && (!found)){
middle = left + (right - left)/2;
if (element == list[middle])
found = true;
else
if (element < list[middle])
right = middle 1;
else
left = middle + 1;
} //while
return found;
}
Martie, 2014
37
Analiza cutrii
T(n/2k-1) = T(n/2k) + 1
-----------------------------T(n) = k + 1 = log2n + 1
Avantaje
Dezavantaje
Aplicaii
Martie, 2014
38
SC n structuri arborescente
Noiuni necesare
f(n) funcie de evaluare pentru estimarea costului soluiei prin nodul (starea) n
actual
start
estimat
n
g(n)
obiectiv
h(n)
f(n)
Martie, 2014
39
Aspecte teoretice
Toate nodurile aflate la adncimea d se expandeaz naintea nodurile aflate la adncimea d+1
Toate nodurile fii obinute prin expandarea nodului curent se adaug ntr-o list de tip FIFO (coad)
A
Exemplu
B
Ordinea vizitrii: A, B, C, D, E, F, G, H, I, J, K
E
Algoritm
toVisit = {start};
//FIFO list
A
while((toVisit != ) && (!found)){
node = pop(toVisit);
A, B
visited = visited U {node};
if (node == elem)
A, B, C
found = true;
A, B, C, D
else{
aux = ;
for all (unvisited) children of node do{ A, B, C, D, E
aux = aux U {child};
A, B, C, D, E, F
}
A, B, C, D, E, F, G
}
toVisit = toVisit U aux;
A, B, C, D, E, F, G, H
} //while
return found;
A, B, C, D, E, F, G, H, I
}
A, B, C, D, E, F, G, H, I, J
Martie, 2014
A, B, C, D, E, F, G, H, I, J, K
De vizitat
A
B, C, D
C, D, E, F
D, E, F, G
E, F, G, H, ,I, J
F, G, H, I, J
G, H, I, J
H, I, J
I, J
J, K
K
40
Analiza cutrii:
Complexitate temporal:
Complexitate spaial
Completitudine
Optimalitate
Avantaje
Gsirea drumului de lungime minim pn la nodul obiectiv (soluia cea mai puin adnc)
Dezavantaje
Generarea i stocarea unui arbore a crui mrime crete exponenial cu adncimea nodului obiectiv
Complexitate temporal i spaial exponenial
A
Experimentul Russel&Norvig????
Funcional doar pentru spaii de cutare mici
B
Aplicaii
Martie, 2014
F
Vizitate deja
De vizitat
A, E, F
B, A
E, F, C
B, A, E
F, C
B, A, E, F
B, A, E, F, C
41
Aspecte teoretice
BFS + procedur special de expandare a nodurilor (bazat pe costurile asociate legturilor dintre noduri)
Toate nodurile de la adncimea d sunt expandate naintea nodurilor de la adncimea d+1
Toate nodurile fii obinute prin expandarea nodului curent se adaug ntr-o list ORDONAT de tip FIFO
Exemplu
10
15
5
G
found = false;
visited = ;
toVisit = {start};
//FIFO sorted list
while((toVisit != ) && (!found)){
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};
} // for
toVisit = toVisit U aux;
TotalCostSort(toVisit);
} //while
return found;
Martie, 2014
Algoritm
3
I
visited
toVisit
A, C
A, C, B
A, C, B, D
A, C, B, D, G
A, C, B, D, G, I
A, C, B, D, G, I, J
A, C, B, D, G, I, J, H
A, C, B, D, G, I, J, H, E
F(22), K(19)
A, C, B, D, G, I, J, H, E, F
K(19)
A, C, B, D, G, I, J, H, E, F, K
42
Analiza complexitii
Complexitate temporal:
Complexitate spaial
A
5
Aplicaii
Martie, 2014
10
Dezavantaje
Da
Avantaje
Optimalitate
S(n) = T(n)
Completitudine
C
3
D
5
Vizitate deja
De vizitat
A(0)
A(0)
B(5), C(10)
A(0), B(5)
C(9), E(10)
E(10), H(14)
H(14)
43
Aspecte teoretice
Exemplu
Algoritm
visited = ;
A
toVisit = {start};
//LIFO list
while((toVisit != ) && (!found)){
A, B
node = pop(toVisit);
A, B, E
visited = visited U {node};
if (node== elem)
A, B, E, F
found = true;
A, B, E, F, C
else{
A, B, E, F, C, G
aux = ;
for all (unvisited) children of node do{
A, B, E, F, C, G, D
aux = aux U {child};
A, B, E, F, C, G, D, H
}
toVisit = aux U toVisit;
A, B, E, F, C, G, D, H, I
}
A, B, E, F, C, G, D, H, I, K
} //while
Martie, 2014
A, B, E, F, C, G, D, H, I, K, J
Inteligen artificial - metode de cutare neinformat
return found;
}
De vizitat
A
B, C, D
E, F, C, D
F, C, D
C, D
G, D
D
H, I, J
I, J
K, J
J
44
Analiza complexitii
Complexitate temporal:
Complexitate spaial
Completitudine
S(n) = b * dmax
Optimalitate
Nu cutarea n adncime poate gsi un drum soluie mai lung dect drumul optim
Avantaje
versiunea recursiv
Dezavantaje
Ciclu infinit
Gsirea unei soluii mai lungi dect soluia optim
Aplicaii
Sortare topologic
Testarea planaritii
Martie, 2014
L
M
45
Martie, 2014
Muchii vizitate
deja
Muchii de vizitat
napoi
Noduri vizitate
AB, AF
AB
AB
BC, BK, AF
A, B
BC
AB, BC
CD, BK, AF
A, B, C
CD
AB. BC, CD
DE, BK, AF
A, B, C, D
DE
A, B, C, D, E
EF
A, B, C, D, E, F
FI
A, B, C, D, E, F, I
FG
A, B, C, D, E, F, I,
G
GA
EH, BK, AF
GA
A, B, C, D, E, F, I,
G
EH
GA
A, B, C, D, E, F, I,
G, H
HJ
HN, BK, AF
GA
A, B, C, D, E, F, I,
G, H, J
HN
BK, AF
GA
A, B, C, D, E, F, I,
G, H, N
Muchia
46
Aspecte teoretice
Exemplu
dlim = 2
Ordinea vizitrii nodurilor: A, B, E, F, C, G, D, H, I, J
Algoritm
node = pop(toVisit);
visited = visited U {node};
A
if (node.depth <= dlim){
A, B
if (node == elem)
found = true;
A, B, E
else{
A, B, E, F
aux = ;
A, B, E, F, C
for all (unvisited) children of node do{
aux = aux U {child};
A, B, E, F, C, G
}
A, B, E, F, C, G, D
toVisit = aux U toVisit;
}//if found
A, B, E, F, C, G, D, H
}//if dlim
A, B, E, F, C, G, D, H, I
} //while
A, B, E, F, C, G, D, H, I, K, J
return found;
}
Martie, 2014
Inteligen artificial - metode de cutare neinformat
De vizitat
A
B, C, D
E, F, C, D
F, C, D
C, D
G, D
D
H, I, J
I, J
J
47
Analiza complexitii
Complexitate temporal:
Complexitate spaial
Dezavantaje
Nu cutarea n adncime poate gsi un drum soluie mai lung dect drumul optim
Avantaje
Optimalitate
S(n) = b * dlim
Completitudine
Aplicaii
Martie, 2014
48
Aspecte teoretice
Exemplu
lim_d=0
dlim
=0
lim_d=1
dlim
=1
dlim
=2
lim_d=2
Algoritm
bool IDS(elem, list){
found = false;
dlim = 0;
while ((!found) && (dlim < dmax)){
found = DLS(elem, list, dlim);
dlim++;
}
return found;
Martie, 2014
49
Analiza complexitii
Complexitate temporal:
Nodurile
Nodurile
...
Nodurile
Nodurile
d max
Complexitate spaial
Completitudine
Optimalitate
Da
Dezavantaje
Da
Avantaje
S(n) = b * dmax
Aplicaii
Martie, 2014
50
Martie, 2014
51
Aspecte teoretice
2 cutri simultane
Exemplu
Algoritm
Martie, 2014
52
Analiza complexitii
Complexitate temporal
S(n) = T(n)
da
da
Complexitate spaial
Completitudine
Optimalitate
Avantaje
Dezavantaje
Aplicaii
Problema partiionrii
Cel mai scurt drum
Martie, 2014
53
FIFO
BFS
SCnI
cu euristici
SCI
LIFO
DFS
Se impune o anumit
limit adncimii
FIFO cu
prioriti
UCS
SC
DLS
Se crete gradual limita
adncimii
IDDS
Martie, 2014
54
Metoda de
cutare
Complexitate
temporal
Complexitate
spaial
Completitudin
e
Optimalitate
BFS
O(bd)
O(bd)
Da
Da
UCS
O(bd)
O(bd)
Da
Da
DFS
O(bdmax)
O(b*dmax)
Nu
Nu
DLS
O(bdlim)
O(b*dlim)
Da
dac dlim > d
Nu
IDS
O(bd)
O(b*d)
Da
Da
BDS
O(bd/2)
O(bd/2)
Da
Da
Martie, 2014
55
Cursul urmtor
A. Scurt introducere n Inteligena Artificial (IA)
B. Rezolvarea problemelor prin cutare
C.
Strategii de
Strategii de
Strategii de
PSO, ACO)
Strategii de
cutare neinformate
cutare informate
cutare locale (Hill Climbing, Simulated Annealing, Tabu Search, Algoritmi evolutivi,
cutare adversial
Sisteme inteligente
Arbori de decizie
Reele neuronale artificiale
Maini cu suport vectorial
Algoritmi evolutivi
Sisteme hibride
Martie, 2014
56
Cursul urmtor
Materiale de citit i legturi utile
Martie, 2014
57
Martie, 2014
58