Documente Academic
Documente Profesional
Documente Cultură
Cap. 06 - Planning PDF
Cap. 06 - Planning PDF
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
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).
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.
putdown(X) P: hold(X)
A: ontable(X), clear(X), empty
D: hold(X)
Fig. 2. Spaiul generat prin aplicarea operatorilor takeoff, puton, putdown i pickup
IASE 6/8 Cap. 6. Planning
ontable(c) clear(c)
clear(c) on(c,X)
2 3
empty empty
clear(d) clear(d)
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)
4 hold(X) putdown(X)
1 2 3 4 5 6 7