Documente Academic
Documente Profesional
Documente Cultură
Cap. 4.
Structuri i strategii de cutare n spaiul de stri
Obiective
1. nsuirea noiunilor de baz privind reprezentarea problemelor de
inteligen artificial ca structuri de stri i rezolvarea acestora cu ajutorul
metodelor de cutare.
2. Formarea deprinderilor de reprezentare corect i eficient a problemelor
de inteligen artificial n spaiul de stri.
3. Dezvoltarea abilitilor practice de operare cu strategiile inteligente de
rezolvare prin metode de cutare n structuri arborescente (grafuri, n
general).
Durata: 2 ore
4.1. Inteligena artificial ca reprezentare i cutare
n lucrarea ACM Turing Award Lecture, Newell i Simon (1976) demonstreaz
c activitatea inteligent, uman sau artificial, se realizat prin intermediul:
1. Simbolurilor pentru reprezentarea aspectelor semnificative din domeniul
problemei;
2. Operaii pe aceste simboluri pentru generarea unor poteniale soluii
ale problemei;
3. Cutarea n vederea selectrii unei soluii dintre aceste posibiliti.
Cu alte cuvinte, trebuie definit o reprezentare simbolic a obiectelor din
domeniul aplicaiei i trebuie definii nite operatori prin care se poate modifica
aceast reprezentare.
Rezolvarea unei probleme de ctre o main gnditoare presupune
reprezentarea cunotinelor i cutarea soluiei, cele dou principii fiind ntr-o
interdependen reciproc.
4.1.1. Reprezentarea cunotinelor
nainte ca un calculator s poat ncepe soluionarea unei probleme, trebuie
ca detaliile problemei respective s fie reprezentate i codificate ntr-un limbaj
neles de calculator. Programatorul de inteligen artificial trebuie s
abstractizeze aceste detalii i s introduc n calculator numai acele date
indispensabile rezolvrii problemei.
39
Inteligena Artificial
4.1.2 Cutarea
Un al doilea aspect subliniat de Newell i Simon este acela c o problem
este soluionat prin cutarea soluiei printre nite alternative posibile. Acest
aspect este susinut de analogia cu gndirea uman. Omul utilizeaz de asemenea
un numr de strategii n modul lui de a rezolva o problem. De exemplu, un
juctor de ah analizeaz un anumit numr de micri viitoare, alegnd micarea
n funcie de un criteriu de eficien, astfel ales nct s-i asigure un avantaj
maxim. Un matematician alege dintre diferite strategii, nu mai puin complexe, pe
acelea care-i permit demonstrarea unei teoreme complexe; un fizician poate
investiga un anumit numr de cauze posibile ale unui anumit fenomen .a.m.d.
Acest aspect al inteligenei contureaz aa numita tehnica de rezolvare prin
cutare n spaiul de stri.
Prin stare se nelege o anumit configuraie a problemei investigate. De
exemplu, n jocul de ah o stare este o anumit poziie de pe tabla de ah. n
calculator, o poziie este reprezentat printr-o aa numit baz de date, baz a
crei complexitate depinde de natura problemei abordate, mergnd de la cteva
numere pn la o baz de date relaional. n procesul de rezolvare a unei
probleme, omul sau maina poate utiliza anumite reguli, poate aplica anumite
procedee sau artificii sau, n cazul jocurilor, poate efectua anumite mutri. De
exemplu, n jocul de ah poate efectua oricare din mutrile posibile. Aceste reguli,
procedee sau mutri vor produce modificri asupra bazei de date, aceasta
reflectnd starea curent a problemei.
Totalitatea acestor stri vor constitui un spaiu pe care-l vom denumi spaiul
de stri. Dintre acestea, vom deosebi o stare denumit stare iniial reflectnd
datele iniiale ale problemei. De asemenea, strile ce constituie soluii posibile ale
problemei vor fi denumite stri finale.
Grafurile constituie un instrument practic i eficient de reprezentare a
obiectelor i a relaiilor dintre acestea. Teoria grafurilor a fost introdus la
nceputul secolului al XVIII-lea de matematicianul austriac Leonhard Euler n
vederea soluionrii celebrei probleme cunoscut sub numele de podurile din
Knigsberg.
Grafurile ofer un instrument ideal de reprezentare al spaiului de stri al unei
probleme. Astfel, nodurile vor reprezenta strile distincte ale problemei, iar arcele
regulile, operaiile sau mutrile efectuate n procesul de rezolvare al problemei. La
un astfel de graf deosebim un nod corespunztor strii iniiale, nod ce va constitui
rdcina grafului. De asemenea, graful va conine cel puin un nod care va
constitui starea final sau soluia problemei (evident, n ipoteza c problema are
soluie). Acest astfel de nod este denumit nod final sau goal.
Utiliznd grafurile pentru reprezentarea spaiului de stri, rezolvarea
problemei se reduce la cutarea n graful asociat a unui drum de la nodul iniial la
unul din nodurile finale.
40
Inteligena Artificial
8
7
3
4
Inteligena Artificial
6
2
7
5
up
1
left
6
2
right
left
1
6
2
6
2
6
2
up
6
2
right
down
down
6
2
6
2
6
2
42
up
right
left
down
3
2
Inteligena Artificial
s8
s6
s4
s0
s1
s9
s4
s7
s7
s5
Depth First
s2
s5
s8
s3
s6
s9
Breadth First
D {d S | s
d , t T}
for d in D do
if ((d, _) Open) ((d, _) Close) then insert ((d,s), Open);
{Se insereaz (d,s) la nceputul listei Open);
end;
writeln(Problema nu are soluie)
end;
43
Inteligena Artificial
Lista Close
Lista Close
Lista Open
Lista Open
i
4
10
f
7
g
goal
Rezolvare
Open =[ a], Close =[ ]
1. Open =[ ], x = a
D(x) =b, e, i;
Close =[ a], Open =[ b, e, i],
2. x = b, Open =[ e, i],
Dx=c, d;
Close =[ a, b], Open =[ c, d, e, i],
3. x = c, Open =[ d, e, i], Close =[ a, b, c],
4. x = d, Open =[ e, i], Close =[ a, b, c, d],
5. x = e, Open =[ i], Close =[ a, b, c, d, e],
D(x)= d, f; % d nu se mai examineaz
Open =[ f, i],
11
44
Inteligena Artificial
Open
s
s
Close
4
10
11
12
d1
13
d2
d3
14
Inteligena Artificial
descendentul de la care costul determinrii soluiei este cel mai mic. Se spune c
descendentul dmin are anse mai mari sau se gsete cu o probabilitate mai mare pe
drumul optim de la starea s la soluia problemei.
Atunci cnd spaiul strilor este foarte mare, acesta nu poate fi memorat sau
parcurs ntr-un timp rezonabil.
Cutarea euristic este incomplet, dar informaional. Avnd n vedere
caracterul incomplet al cutrii, un algoritm de cutare euristic poate conduce la
o soluie suboptimal sau poate chiar eua, n sensul c nu poate determina o
soluie. Cu toate acestea, n multe situaii cutarea euristic constituie singurul
mod de rezolvare a unei mod a unei probleme.
Cutarea euristic poate fi:
complet sau incomplet. Cele incomplete pot fi cu 1 descendent (Hill
Climbing) sau cu civa (cei mai buni Beam search);
cu revenire sau fr revenire (Hill Climbing).
s
d1
d2
dk
dj
f(dj)=min f(d)
dk
d2
d1
Exemplul 1: TICTACTOE
Se consider c maina (calculatorul) joac prima (cu simbolul ), iar
juctorul cu caracterul o. Euristica se definete astfel: unei stri oarecare i se
atribuie
ca
valoare
euristic
numrul
posibilelor
combinaii
(linii+coloane+diagonale) ctigtoare ale calculatorului, deci numrul
liniilor/coloanelor/diagonalelor care conin i nu conin simbolul o.
Maina
Jucatorul A
46
Inteligena Artificial
Exemplul 2: 8 puzzle
h1(s) numrul jetoanelor care nu se gsesc pe poziia corect.
h2(s) suma deplasrilor
8 1
1 2 3
jetoanelor spre poziia corect.
h1(s) = 8.
h2(s) = 1+1+3+3+1+1+3+3= 16.
2
5
Starea s
7
4
X k +1 = X k +
f k k
x1 , x2 , K, xnk .
xi
Inteligena Artificial
procedure BestFirstSearch
begin
Open := [(s nil, 0, h(s)]; Close := [ ];
while Open [ ] do
begin
extract ((s, p, g, h), Open)
insert ((s, p, g, h), Close)
if goal (s) then begin
compune_solutia (Close); exit;
end;
t
D:={d S | s
d , t T}
for d in D do
begin
gc := g + Cost(t); fc := gc + h(d);
end;
case d of
(d, _, _, _)Open Close: insert ((d, s, gc, fc), Open);
(d, pe, ge, fe)Open:
if fc<fe then
begin
remove ((d, pe, ge, fe), Open);
insert ((d, pc, gc, fc), Open);
end;
(d, pe, ge, fe)Close:
if fc<fe then
begin
remove ((d, pe, ge, fe), Close);
insert ((d, pc, gc, fc), Open);
end;
end; {case}
Ordoneaz(Open); { f minimal pe prima poziie}
end; {while}
writeln(Problema nu are soluie)
end;
Exemplul 1: Cutare ntr-un spaiu cu obstacole
Euristica: f(s) = f(x, y) = |xgx| + |ygy|. f(s) = 5.
r
Operatori
48
Inteligena Artificial
Exemplul 2: 8 puzzle
h(s) numrul pieselor care nu se gsesc n poziia corect (fr a include
spaiul liber);
Funcia de evaluare va fi de forma f(s) = g(s) + h(s):
g(s) adncimea sau costul cu care a fost generat starea s;
h(s) estimare euristic a costului soluiei pornind din starea s.
Starea curent
2
4
5
h=5
f=6
h=3
f=4
4
5
h=4
f=6
2
h=2
f=5
4
5
h=3
f=5
4
5
4
5
g=1
g=2
h=4
f=7
4
5
49
h=3
f=5
2
4
5
h=5
f=6
g=3
4
5
Inteligena Artificial
REZUMAT
1.
2.
3.
4.
PROBLEME PROPUSE
Problema 1: Utiliznd metodele a) Depth First; b) algoritmul Breadth First i c) Best
First, s se gseasc drumul de la Start la Goal n labirintul din figura de mai jos.
Start
Goal
12
10
11
9
8
Ordinea operatorilor:
1
2
4
5
Inteligena Artificial
i
4
10
f
7
g
goal
11
TEST DE AUTOEVALUARE
1.
2.
3.
4.
5.
6.
Rspuns
1. b
2. c
51
3. b
4. c
5. a
6. b
7. b
8. a
9. b
10. a.