Sunteți pe pagina 1din 8

IASE 1/8 Cap. 6.

Planning

6.
Planning
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. Aceste operaii nu trebuie privite la nivel
"low level" (modul n care acestea sunt implementate pe robot), ci la un nivel mai nalt, sub aspectul pe
care aceste operaii l au asupra mediului robotului respectiv.
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
(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.
IASE 2/8 Cap. 6. Planning

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.
n cele ce urmeaz sunt prezentate dou metode de generare a planului de operaii. Pentru
exemplificarea acestor metode se consider situaia prezentat n fig. 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. 1. Dispunerea obiectelor n mediul robotului

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
IASE 3/8 Cap. 6. Planning
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 (STARE 1) (fig.1a), se realizeaz prin
urmtoarele aseriuni:
Stare 1:
empty
clear (a). clear (b).
on (a, c). on (b, d).
ontable (c). ontable (d).
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).
IASE 4/8 Cap. 6. Planning
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.
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) ontable(d)
on(a, c) hold(b)
clear(a) clear(d)
Rezumnd cele discutate pn acum se poate afirma:
1. Planning-ul poate fi privit ca o problem de cutare n spaiul de stri;
2. Strile sunt generate prin aplicarea operatorilor de tranziie i a axiomelor de elaborare a
planului;
3. 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.
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.
IASE 5/8 Cap. 6. Planning
Aceast reprezentare este mult mai natural i are avantajul de a ne scuti de povara formulrii
axiomelor de elaborare a planului.
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 2.

Fig. 2. Spaiul generat prin aplicarea operatorilor takeoff, puton, putdown i pickup
IASE 6/8 Cap. 6. Planning

Pentru rezolvarea problemelor de planning se utilizeaz de obicei o metod invers de cutare


("goal driven"), exprimnd starea obiectiv n form clauzal i identificnd clauzele ce nu pot fi derivate
de la starea iniial. Se alege unul dintre descriptorii strii finale care nu este satisfcut n starea iniial,
deci o clauz Ci dintre cele care nu pot fi derivate de la starea iniial. Se caut un operator ce conine Ci
n lista A, dup care se verific ndeplinirea precondiiilor aplicrii operatorului la starea curent. n
situaia n care condiiile sunt satisfcute, clauza Ci va fi satisfcut dup aplicarea operatorului selectat.
Repetnd operaiile, la un moment dat toate clauzele sunt satisfcute de ctre starea iniial i
problema este rezolvat.
Astfel, n exemplul din figura 1 starea obiectului on(C,D) nu este satisfcut de starea iniial,
aa c se va selecta operatorul puton(X,Y) ce conine on(X,Y) n lista A. Pentru ca precondiiile
operatorului s fie satisfcute, X este substituit cu c i Y cu d. De aceea, noul subobiectiv este dictat de
precondiiile operatorului, adic hold(c) i clear(d). Cnd un subobiectiv conine mai mult de o clauz,
chiar dac un operator satisface una dintre clauze, acesta nu va fi selectat dac alte clauze sunt
inconsistente cu listele D sau A ale operatorului. De exemplu, operatorul putdown(c), care are clear(d)
n add-list, conine n aceeai list i predicatul empty, inconsistent cu subgoal-ul hold(c) din descrierea
strii curente. Prima parte a spaiului de stri generat este ilustrat n figura 3. Comparnd strile (2) i
(3), (2) conine mai puine clauze ce nu sunt ndeplinite de starea iniial, aadar aceasta va fi expandat.
Clauzele din (2) care nu sunt ndeplinite de starea iniial sunt clear(c) i clear(d). Fiecare dintre
operatori poate avea o prioritate dat, dintre mai muli operatori selectai fiind aplicat cel cu prioritatea
maxim. n final, soluia va fi:
takeoff(b, d) putdown(a)
putdown(b) pickup(c)
takeoff(a, c) puton(c, d).

Starea 0 on(c,d) Starea


iniial final
puton(c,d)
empty empty
on(a,c) on(c,d)
1 hold(c)
on(b,d) ontable(a)
ontable(c) clear(d) ontable(b)
ontable(d) ontable(d)
pickup(c) takeoff(c)
clear(a) clear(a)

ontable(c) clear(c)
clear(c) on(c,X)
2 3
empty empty
clear(d) clear(d)

Fig. 3. Prima parte a spaiului de stri generat


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.
Inteligen Artificial 7/8 Curs 5

empty
clear(a)
on(a,c)
0 ontable(c)
clear(b)
on(b,d) takeoff(b,d)
ontable(d)
clear(a) hold(b)
1 on(a,c) clear(d)
ontable(c) putdown(b)
ontable(d)
clear(a) clear(d) clear(b)
2 on(a,c) ontable(b)
ontable(c) empty takeoff(a,c)
ontable(d)
3 ontable(c) clear(d) clear(b) hold(a)
ontable(d) ontable(b) clear(c)
0 1 2 3

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.

clear(Y)
1 on(Y,V) takeoff(Y,V)
empty

2 hold(Y) putdown(Y)

clear(X) empty takeoff(X,U)


3
on(X,U)

4 hold(X) putdown(X)

5 ontable(U) clear(U) empty pickup(U)

6 clear(V) hold(U) puton(U,V)


ontable(Y) ontable(X) on(U,V)
7 ontable(V)
clear(Y) clear(X) clear(U)

1 2 3 4 5 6 7

Fig. 4. Tabela triunghiular generalizat. n coloana 1 este precizat starea iniial,


iar n linia 7 starea final.
Inteligen Artificial 8/8 Curs 5

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 figura 4 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.
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.
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.

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