Sunteți pe pagina 1din 11

Inteligena Artificial

Cap. 6. Planning

Cap. 6.
Planning

Obiective
1. nsuirea noiunilor de baz privind reprezentarea i rezolvarea
problemelor de inteligen artificial prin metoda de planning.
2. Formarea deprinderilor de reprezentare corect i eficient a problemelor
de inteligen artificial prin predicate pentru descrierea starilor problemei
i a operatorilor de tranziie.
3. Dezvoltarea abilitilor practice de operare cu raionamentele specifice
metodei planning.

Durata: 2 ore
Prin planning se nelege generarea secvenei de operaii care trebuie
executate, adeseori de ctre un robot, n vederea realizrii unui anumit task. Pe lng
aplicaiile evidente n robotic, planning-ul este utilizat n sistemele expert, pentru
controlul automat al proceselor de fabricaie, nelegerea limbajelor naturale etc.
Exemplele care se vor prezenta n continuare sunt alese din domeniul
roboticii. Componentele sau paii care compun un plan de operaii, pe care un
robot va trebui s le execute n vederea ndeplinirii unui anumit task, se vor numi
operaii elementare sau atomi. Un astfel de plan de operaii, prin care un robot ar
executa o comand de genul "adu (te rog) obiectul A din camera B", ar putea fi
urmtorul:
1. Las jos ce ai n prehensor;
2. Du-te n camera B;
3. Identific obiectul A;
4. Prehenseaz obiectul B;
5. Prsete camera B;
6. Revino la poziia iniial.
Planurile sunt elaborate prin cutare, n spaiul generat de operaiile
elementare, a secvenei de atomi necesare realizrii task-ului propus. Strile acestui
spaiu sunt configuraiile posibile ale mediului, mediu care se modific prin
intermediul operaiilor pe care robotul le execut.
Elaborarea planului de operaii se poate realiza off-line, acesta nefiind
condiionat de prezena fizic a robotului pentru care planul respectiv este generat.
n majoritatea variantelor de planning, debutate ncepnd cu anul 1960, ntregul
plan de operaii era generat nainte ca un robot s execute prima operaie a acestui
plan. Planurile erau generate n absena robotului, partea de inteligen artificial
63

Inteligena Artificial

Cap. 6. Planning

(planning-ul) fiind separat de cea de execuie (postprocesarea operaiilor


componente pentru robotul gazd).
Mai recent, odat cu implementarea unor senzori sofisticai i creterea
considerabil a performanelor microprocesoarelor, cercetrile s-au orientat n
direcia integrrii dintre generarea i execuia operaiilor unui task (on line).
Evident, acest nivel superior de planning d o mai mare autonomie robotului, un
astfel de plan ne mai fiind static, ci generat dinamic, permind conceperea unor
roboi autonomi de explorare, roboi capabili s rezolve situaii pentru care nu au
fost programai n mod explicit (ex. Lunahod).
Dei planning-ul este o problem de cutare n spaiul de stri, aceasta ridic
cteva probleme particulare, probleme ce vor fi punctate n continuare.
Prima dintre problemele ridicate de planning decurge din complexitatea
strilor. n exemplul considerat, o stare const n descrierea configuraiei curente a
mediului, fiind de o complexitate mult mai mare dect cea a strilor utilizate pn
acum n problemele de cutare. O astfel de stare este modelat de obicei printr-o
colecie de aseriuni n limbajul de calcul al predicatelor.
Complexitatea strilor atrage dup sine dificulti n ceea ce privete
modelarea operatorilor de tranziie i a impactului pe care aceti operatori l au
asupra mediului. Astfel, o particularitate care apare n cazul planning-ului este
necesitatea caracterizrii situaiilor care rmn neschimbate n urma execuiei unei
anumite operaii elementare. De exemplu, ridicarea unui obiect schimb poziia
obiectului i faptul c prehensorul nu mai este liber, ci conine obiectul respectiv; n
schimb, acea operaie nu schimb poziia altor obiecte din mediul robotului.

6.1. Prima metod de planning (John McCarthy)


Problema specificrii a ceea ce se modific i ce rmne invariant n
descrierea unei stri prin aplicarea unui operator de tranziie este cunoscut sub
numele de "problem de elaborare a planului" ("frame problem", McCarthy &
Hayes 1969, McCarthy 1980). Cu ct descrierea unei stri este mai complex, cu
att aceast problem este mai dificil. Pentru exemplificarea acestei metode se
consider situaia prezentat n fig. 6.1. Se presupune c toate obiectele notate a, b,
c i d sunt de form cubic, identice ca mrime i c prehensorul robotului poate s
prehenseze oricare din aceste cuburi cu condiia ca obiectul respectiv s nu aib un
alt cub situat deasupra sa (spunem c obiectul respectiv este liber).

Fig. 6.1. Dispunerea obiectelor n mediul robotului


64

Inteligena Artificial

Cap. 6. Planning

Se presupune c braul articulat al robotului poate executa urmtoarele


operaii elementare (primitive):
pickup(W)
Ridic cubul W de pe mas. Se presupune c cubul W este
liber i prehensorul era liber n momentul lansrii comenzii.
pudown (W) Pune cubul W pe mas. Cubul W trebuie s fie prehensat n
momentul activrii comenzii.
takeoff (U, V) Ridic cubul U de deasupra cubului V. U trebuie s fie situat
deasupra lui V, V s nu aib un alt cub deasupra sa i
prehensorul s fie liber.
puton (U, V) Pune cubul U deasupra cubului V. Cubul U trebuie s fie
prehensat, iar cubul V s fie liber n momentul lansrii
comenzii.
Starea curent din mediul robotului poate fi descris prin utilizarea
urmtoarele predicate:
on (U, V)
- cubul U este situat deasupra cubului V.
clear (X)
- cubul X este liber (poate fi prehensat).
hold (W)
- prehensorul conine obiectul W.
empty
- prehensorul est liber.
ontable (Y)
- obiectul Y este situat pe mas.
Regulile de mai jos descriu anumite proprieti cunoscute n domeniul
aplicaiei considerate:
1.
( X clear(X) ( Y on(Y, X)))
2.
( Y X on(Y, X) ontable(Y))
3.
( Y hold(Y) empty)
i anume cele trei proprieti afirm c:
1.
Un obiect oarecare X este liber dac nu exist nici un bloc Y situat
deasupra sa.
2.
Dac un bloc este pe mas el, nu se gsete deasupra altui bloc.
3.
Prehensorul este liber dac i numai dac acesta nu conine un
obiect.
Expresiile de mai sus au, nainte de toate, un aspect declarativ, descriind
anumite relaii i proprieti. Totodat, aceste expresii au i un aspect semantic (sau
procedural), sugernd procedeul prin care aceste proprieti pot fi ndeplinite.
Astfel, interpretat semantic, prima regul spune c un obiect X poate fi eliberat
prin nlturarea eventualelor obiecte Y situate deasupra sa.
Descrierea situaiei iniiale din mediul robotului (v. fig.6.1), se realizeaz
prin urmtoarele aseriuni:
Stare 1:
empty
clear (a).
clear (b).
on (a, c).
on (b, d).
ontable (c). ontable (d).

65

Inteligena Artificial

Cap. 6. Planning

Pornind de la aceast stare, spaiul de stri este generat prin aplicarea


operatorilor de tranziie corespunztori operaiilor elementare ale robotului.
Specificul acestei metode const n faptul c operatorii de tranziie sunt de forma:
(A(BC)),
n care formulele A, B i C au urmtoarele semnificaii:
A operatorul de tranziie;
C condiie pe care starea curent trebuie s o ndeplineasc ca operatorul s
fie aplicabil;
B colecie de predicate care arat proprietile noi ale strii generate prin
aplicarea operatorului de tranziie respectiv.
Cele patru operaii elementare pot fi descrise prin urmtoarele reguli:
(R1)
X (pickup(X)
(hold(X) (empty ontable(X) clear(X))))
(R2)
X (putdown(X)
((ontable(X) clear(X) empty) (hold(X)))))
(R3)
X Y (puton(X, Y)
((on(X, Y) clear(X) empty) (hold(X) clear(Y))))
(R4)
X Y (takeoff(X, Y)
((clear(Y) hold(X) (on(X, Y) clear(X) empty)))
Observaie: Cele patru reguli de mai sus sunt de forma A (B C);
operatorul A se poate utiliza pentru producerea noilor predicate B cnd condiiile C
sunt ndeplinite. Dar, pentru aplicarea operatorilor de tranziie trebuie rezolvat, n
prealabil, problema de elaborare a planului, definind aa numitele axiome de
elaborare a planului ("frame relations"). Axiomele de elaborare a planului sunt
reguli care descriu care din predicatele din descrierea strii curente rmn
invariante la aplicarea unui operator de tranziie, acestea fiind copiate ca atare n
descrierea strii generate prin aplicarea operatorului respectiv.
n cazul exemplului considerat, se pot scrie mai multe astfel de axiome. De
exemplu, urmtoarele dou axiome exprim faptul c un cub situat pe mas nu este
afectat de operatorii puton i takeoff:
X Y Z (puton(Y, Z) (ontable(X) ontable(X))),
X Y Z (takeoff(Y, Z) (ontable(X) ontable(X))),
regulile avnd aceeai semnificaie. Astfel, dac predicatul ontable (X) exist n
descrierea strii curente, acesta va fi copiat i n noua stare generat (pentru toate
instanierile posibile ale variabilei X), dac unul din cei doi operatori este aplicat.
Alte axiome de elaborare a planului ar putea preciza c on i clear sunt
afectate de operatorii puton i takeoff doar n cazuri particulare. De exemplu, on
(b, a) nu este afectat de takeoff(c, d).
Nu mai insistm asupra celorlalte axiome de elaborare a planului care se pot
defini pentru cazul considerat, dar s subliniem faptul c trebuie definite aceste
axiome pentru toate situaiile care pot surveni n contextul considerat; acesta este un
aspect care evideniaz nc o dat complexitatea elaborrii planului de operaii.
66

Inteligena Artificial

Cap. 6. Planning

mpreun, operatorii de tranziie i axiomele de elaborare a planului


definesc un spaiu. Pentru ca un operator s poat fi aplicat trebuie s fie ndeplinite
condiiile C din definiia acestuia. Astfel, pentru ca operatorul takeoff s poat fi
aplicat trebuie ca toate cele trei condiii:
on(X, Y), clear(X) i empty
s fie ndeplinite. Aceste condiii sunt satisfcute pentru dou substituii posibile ale
variabilelor X i Y. Aplicat prin unificarea {b/X, d/Y} operatorul takeoff va
produce urmtoarele dou predicate clear(d) i hold(b).
Noua stare generat, Stare 2, va fi descris din acele predicate din descrierea
strii curente, probate ca invariante prin aplicarea axiomelor de elaborare a planului,
la care se adaug noile predicate generate de operatorul de tranziie (lista A).
Stare 2
ontable(c)
on(a, c)

ontable(d)
hold(b)

clear(a)
clear(d)

Dei teoretic problema pare simpl, rezolvarea practic este foarte dificil,
numrul axiomelor de generare a planului crescnd exponenial, n funcie de
numrul predicatelor utilizate n descrierea strii. Complexitatea unui astfel de proces
de cutare impune necesitatea descompunerii unui goal n dou sau mai multe
subgoal-uri independente sau liniare (care se pot executa secvenial). Aici apare o
nou problem. O greit interpretare a independenei acestor subgoal-uri poate face
ca realizarea unui subgoal s fac imposibil realizarea unui alt subgoal.

6.2. Metoda STRIPS (STanford Research Institute Planning System)


Standford Reasearch Institute (SRI), nume de care se leag multe din
realizrile valoroase n domeniul inteligenei artificiale, este creatoarea a ceea ce se
numete STRIPS (Stanford Research Institute Planning System) implementat la
nceputul anilor '70 pentru controlul robotului SHAKEY, prin utilizarea unei
metode eficiente de planning. Sistemul este prevzut cu o metod de nvare,
planurile rezolvate cu succes sunt stocate ntr-o baz de cunotine sub form de
macro-operatori, care pot fi reutilizai n situaii similare ivite n viitor.
Caracteristic sistemului de producie conceput de cercettorii de la
Standford Reasearch Institute este modul de reprezentare al operatorilor de
tranziie. Concret, un operator de tranziie este un triplet ordonat (P, A, D). Primul
element al tripletului reprezint precondiiile care trebuie ndeplinite de starea
curent pentru ca operatorul respectiv s poat fi aplicat. Cel de al doilea element
definete lista de predicate pe care operatorul le va aduga (Aadd) n descrierea
noii stri generale (proprieti noi ale strii generale). Ultimul element al tripletului
definete secvena de predicate din descrierea strii curente care vor fi eliminate
(Ddelete) n descrierea noii stri, acestea ne mai fiind consistente n contextul strii
generate de operator.
Aceast reprezentare este mult mai natural i are avantajul de a ne scuti de
povara formulrii axiomelor de elaborare a planului.
67

Inteligena Artificial

Cap. 6. Planning

Revenind la exemplul anterior, cei patru operatori corespunztori operaiilor


elementare ale robotului sunt reprezentai n felul urmtor:
pickup(X)
P: ontable(X), clear(X), empty
A: hold(X)
D: ontable(X), clear(X), empty
putdown(X)
P: hold(X)
A: ontable(X), clear(X), empty
D: hold(X)
takeoff(X)
P: on (X, Y), clear(X), empty
A: clear(Y), hold(X)
D: on(X,Y), clear(X), empty
puton(X, Y)
P: hold(X), clear(Y)
A: on(X, Y), clear(X), empty
D: hold(X), clear(Y)
Observaie: n contextul listelor P, A, D de mai sus, virgula are semnificaia de
conjuncie logic.
Un dezavantaj minor al modelrii operatorilor de tranziie, prin utilizarea
celor trei liste, const n pstrarea unor informaii redundante n listele respective. De
exemplu, n cazul operatorului takeoff inserarea predicatului hold(X) implic
tergerea de la sine a predicatului empty. Acest dezavantaj este ns minor n raport
cu facilitile oferite de aceast modelare a operatorilor de tranziie i anume toi
descriptorii unei stri care nu sunt citai n listele A(add) sau D(delete) rmn
nemodificai n descrierea noii stri.
Spaiul strilor, generat cu oricare din cele dou metode prezentate mai sus,
este ilustrat n figura 6.2.

Fig. 6.2. Spaiul generat prin aplicarea operatorilor takeoff, puton, putdown i
pickup
68

Inteligena Artificial

Cap. 6. Planning

Problemele rezolvate, a cror soluie este memorat, pot fi utilizate pentru


rezolvarea altor probleme similare. De aceea, se impune stocarea unor soluii ntr-o
form fix. Forma fix propus de cercettorii de la SRI poart numele de tabela
triunghiular i este prezentat mai jos.

empty
clear(a)
on(a,c)
ontable(c)
clear(b)
on(b,d)
ontable(d)

takeoff(b,d)

clear(a)
on(a,c)
ontable(c)
ontable(d)

hold(b)
clear(d)

clear(a)
on(a,c)
ontable(c)
ontable(d)

clear(d)

ontable(c)
ontable(d)

clear(d)

putdown(b)

clear(b)
ontable(b)
empty

takeoff(a,c)

clear(b)
ontable(b)

hold(a)
clear(c)

Starea iniial este nscris n linia 0, coloana 0. Lista add corespunztoare


operatorului O1 (primul aplicat) n linia 1 coloana 1. n linia 1 coloana 0 se nscrie
rezultatul obinut prin tergerea din starea iniial a predicatelor din lista delete a
operatorului O1. Cu alte cuvinte, starea dup aplicarea operatorului O1 este nscris
n coloanele din linia 1. Rezultatul aplicrii operatorului O2 la aceast stare va fi
memorat n linia 3 .a.m.d. Starea nscris n ultimul rnd al tabelului triunghiular
satisface starea obiectiv.
Tabelele triunghiulare pot fi generalizate prin introducerea variabilelor,
definind aa numiii macrooperatori. Prin stocarea n baza de cunotine a
macrooperatorilor, sistemul STRIPS i-a sporit mult eficiena de elaborare a
planurilor, prin reutilizarea macrooperatorilor o dat "nvai" n situaii similare.
n diagrama de mai jos este prezentat o tabel triunghiular generalizat.
Operaiile elementare ale planului sunt nscrise de-a lungul diagonalei. Acestea sunt
cele patru operaii cunoscute: pickup, putdown, takeoff i puton.
n coloana 1 este precizat starea iniial, iar n linia 7 starea final.
Precondiiile fiecrei operaii sunt nregistrate n linia care precede numele
operaiei. Postcondiiile (coninute n listele add i delete) sunt nscrise n coloana
situat sub numele comenzii. Predicatele respective sunt nscrise n liniile
corespunztoare operaiilor care le utilizeaz drept precondiii, organiznd astfel
tabela ntr-o manier relevant pentru succesiunea operaiilor.
69

Inteligena Artificial

Cap. 6. Planning
Tabela triunghiular generalizat

clear(Y)
on(Y,V)
empty

2
3

takeoff(Y,V)

hold(Y)

putdown(Y)
empty

clear(X)
on(X,U)

takeoff(X,U)

4
5

ontable(U)

6
7

hold(X)

putdown(X)

clear(U)

empty

clear(V)

hold(U)
ontable(Y)
clear(Y)

ontable(V)
2

pickup(U)

ontable(X)
clear(X)

puton(U,V)
on(U,V)
clear(U)

Se numete nucleu de ordin n intersecia dintre liniile avnd numrul cel


puin egal cu n (r n) i coloanele avnd numrul cel mult egal cu n (c n). n
figur este reprezentat ngroat nucleul de ordin 2. n executarea unui plan
reprezentat printr-o tabel triunghiular, operaia i poate fi efectuat numai dac
toate predicatele coninute n nucleul i sunt adevrate.
Tabela triunghiular permite reluarea i refacerea planului ca urmare a
apariiei unor evenimente neateptate. De exemplu, cnd robotul execut primul
operator puton(c,d), el scap goalul c. Presupunnd c robotul poate localiza cubul
c prin intermediul unei camere video, starea curent satisface clauzele cuprinse n
nucleul 4, ceea ce face ca robotul s reia planul cu operaia pickup(c). Fiind dat o
tabel triunghiular, orice stare ce satisface toate clauzele nscrise ntr-un nucleu al
tabelei triunghiulare poate fi convertit n starea obiectiv.

REZUMAT
1.
2.
3.

Planning-ul poate fi privit ca o problem de cutare n spaiul de stri;


Strile sunt generate prin aplicarea operatorilor de tranziie i a axiomelor de
elaborare a planului;
Problema const n gsirea, n graful ce modeleaz spaiul de stri, a unui
drum de la starea iniial la cea final, denumit obiectiv. Operaiile
corespunztoare arcelor ce compun acest drum constituie planul de operaii
pentru realizarea obiectivului propus.
70

Inteligena Artificial
4.

Cap. 6. Planning

Dou metode reprezentative s-au impus n rezolvarea problemelor de


planning: a) metoda John McCarthy i b) metoda STRIPS.

PROBLEME PROPUSE
Problema 1. Descriei strile iniial i final ale problemei de planning de mai
jos i generai o soluie a acesteia prin cele dou metode expuse anterior.

a.

b.
Fig. 1

Problema 2. S se rezolve problema turnurilor din Hanoi tratat ca problem de


planning.

Fig. 2. Turnurile din Hanoi


Pentru descrierea situaiei curente se vor utiliza predicatele din tabelul de mai jos.
Predicat
handempty
hold(D)
turnempty(T)
ontable(D,T)
clear(D)
on(X,Y)

Semnificaie
Prehensorul este liber
Discul D este prehensat
Turnul T nu conine nici un disk
Discul D se afl la baza turnului T
Discul D este liber (poate fi prehensat)
Discul X este situat deasupra discului Y
71

Inteligena Artificial

Cap. 6. Planning

Concepei i completai listele P, A i D corespunztoare operaiilor


primitive indicate n tabelul de mai jos.
Operaia
pickup(X)

putdown(D,T)

takeoff(X,Y)

puton(X,Y)

Coninutul listelor P, A, D
P
A
D
P
A
D
P
A
D
P
A
D

Condiia de a nu plasa un disc de diametru mai mare peste unul de


diametru mai mic este deja implementat n contextul operaiei puton, a crui
operator de tranziie este reprodus mai jos:
move(puton(X,Y),Stare,Delete,Add) :- % Pune discul X
disc(X), disc(Y),
% peste un disc Y
diam(X,D1), diam(Y,D2), D1<D2,
Preconditii=[ * * * ],
subset(Preconditii,Stare),
Delete=[ * * * ], Add=[ * * * ].

TEST DE AUTOEVALUARE
1.

2.

3.

n exemplu (pickup (x)(hold (x)(empty ontable (x) clear (x)))) formula


hold (x) are urmtoarea semnificaie:
a. Produce noi predicate.
b. Este o condiie pe care starea curent trebuie s o ndeplineasc ca operatorul
s fie aplicabil.
c. Colecie de predicate care arata proprietile noi ale strii prin aplicarea
operatorului de tranziie respectiv.
Axiomele de elaborare a planului sunt:
a. Reguli care descriu care dintre predicate rmn invariante la aplicarea unui
operator de tranziie.
b. Reguli care descriu care dintre predicate se schimb la aplicarea unui operator
de tranziie.
c. Reguli care genereaz noi operatori de tranziie.
Macrooperatorii se folosesc, n probleme de planning, pentru:
a. Mrirea operatorilor de tranziie.
b. Generalizarea tabelei triunghiulare prin introducerea variabilelor.
c. Micorarea operatorilor de tranziie la aplicarea unui operator de tranziie.

72

Inteligena Artificial
4.

5.

6.

Cap. 6. Planning

Tabela triunghiular reprezint:


a. Reprezentarea tuturor soluiilor sub forma triunghiular.
b. Introducerea simbolurilor triunghiulare n rezolvarea problemei.
c. O modalitate de stocare a unei soluii ntr-o form fix triunghiular.
n forma operatorului de tranziie (A(BC)), formula C are urmtoarea
semnificaie:
a. Operator de tranziie.
b. Condiie pe care starea curent trebuie s o ndeplineasc ca operatorul s fie
aplicabil .
c. Colecia predicatelor noi generate prin aplicarea operatorului de tranziie.
n exemplul urmtor: P: on (x,y), clear (x), empty; A: clear (y), hold (x); D: on (x,y),
clear (x), empty; tripletul ordonat (P, A, D) are urmtoarea semnificaie:
a. Lista predicatelor adugate, a precondiiile i a predicatelor eliminate.
b. Lista precondiiilor, a predicatelor adugate i a celor eliminate .
c. Lista predicatelor eliminate, a celor adugate i a precondiiilor.

Rspuns
1. c
2. a

3. b
4. c

5. b
6. b

73