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, planningul 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): 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 pickup(W)

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) (R2) (R3) (R4) X (pickup(X) (hold(X) (empty ontable(X) clear(X)))) X (putdown(X) ((ontable(X) clear(X) empty) (hold(X))))) X Y (puton(X, Y) ((on(X, Y) clear(X) empty) (hold(X) clear(Y)))) 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) P: on (X, Y), clear(X), empty A: clear(Y), hold(X) D: on(X,Y), clear(X), empty

takeoff(X)

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.

puton(X, Y)

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(b) takeoff(a, c) Starea iniial empty on(a,c) on(b,d) ontable(c) ontable(d) clear(a) on(c,d) puton(c,d) 1 pickup(c) ontable(c) clear(c) empty clear(d) hold(c) clear(d) takeoff(c) clear(c) on(c,X) empty clear(d) final empty on(c,d) ontable(a) ontable(b) ontable(d) clear(a) putdown(a) pickup(c) puton(c, d). Starea

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) ontable(c) clear(b) on(b,d) ontable(d) clear(a) on(a,c) ontable(c) ontable(d) clear(a) on(a,c) ontable(c) ontable(d) ontable(c) ontable(d) 0

takeoff(b,d) hold(b) clear(d) putdown(b) clear(d) clear(b) ontable(b) empty clear(b) ontable(b) 2

takeoff(a,c) hold(a) clear(c) 3

clear(d) 1

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) on(Y,V) empty

1 2 3 4 5 6 7

takeoff(Y,V)

hold(Y) clear(X) on(X,U)

putdown(Y) empty takeoff(X,U)

hold(X) ontable(U) clear(V) ontable(V) 1 2 ontable(Y) clear(Y) 3 4 clear(U)

putdown(X) empty pickup(U) hold(U) ontable(X) clear(X) 5 6 puton(U,V) on(U,V) clear(U) 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