Planowanie dzia lań agenta Klasyczne zagadnienie planowania (ang. classical planning) rozumiane jest jako zadanie wyznaczenia sekwencji dzia lań agenta, majac dane informacje o stanie poczatkowym i docelowym, oraz wiedze o dostepnych akcjach agenta (operatorach przejścia od stanu do stanu). W tradycyjnych zagadnieniach planowania zak lada sie jawnie, że agent posiada pe lna wiedze o swoim środowisku, które jest deterministyczne, skończone, i statyczne, czyli nie zmienia sie, z wyjatkiem zmian wywo lywanych przez dzia lania agenta. Ponadto zmiany zachodzace w środowisku sa dyskretne (czyli skokowe), zarówno w sferze faktów jak i czasu. Zauważmy, że takie sformu lowanie zadania jest podobne do typowego zagadnienia przeszukiwania w przestrzeni stanów. Klasyczne planowanie dzia lań wstep 1
Klasyczne planowanie dzia lań wstep 2
Planowanie jako przeszukiwanie Przyk lad zadania: należy zrobić zakupy - mleko, banany, itp. Talk to Parrot Go To Pet Store Buy a Dog Go To School Go To Class Start Go To Supermarket Buy Tuna Fish Go To Sleep Buy Arugula Read A Book Buy Milk... Finish Sit in Chair Sit Some More Etc. Etc....... Read A Book Zauważmy: opisy stanów dla świata rzeczywistego sa z lożone, agent ma bardzo wiele możliwych akcji do wykonania. Klasyczne planowanie dzia lań wstep 3
Planowanie jako przeszukiwanie cd. Zadanie planowania jest zupe lnie typowym przypadkiem zadania przeszukiwania w przestrzeni stanów. Sa zatem możliwe do zastosowania wszystkie algorytmy przeszukiwania w takich przestrzeniach. Jednak w świecie rzeczywistym opisy stanów sa typowo z lożone, a agent inteligentny ma wiele możliwych akcji w swoim repertuarze. Usi lujacy zaplanować swoje czynności przez przeszukiwanie agent ma do czynienia z eksplozja kombinatoryczna. Jednocześnie trudno mu sformu lować skuteczna heurystyke, która pozwoli laby mu ukierunkować przeszukiwanie przez wybieranie w laściwych kolejnych akcji. Zastosowanie ogólnych metod przeszukiwania do planowania nie uwzglednia i nie potrafi skutecznie wykorzystać szczególnych cech zadań planowania: akcje i ich efekty dotycza zwykle ma lej liczby w lasności świata, cele zadania planowania wyrażone sa również ma la liczba w lasności. Przydatna by laby specjalna reprezentacja i algorytmy dla planowania. Klasyczne planowanie dzia lań wstep 4
Planowanie z użyciem rachunku sytuacji Przyk lad z ma lp a i bananami ilustruje podejście oparte na rachunku sytuacji, które może być zastosowane do planowania dzia lań, wed lug schematu: sytuacje sa jawnie określane i wprowadzone do formu l jako wartości zmiennej sytuacyjnej (reification traktowanie jako obiektów) funkcje wynikowe At(Monkey,P 1,S 0 ) At(Monkey,P 2,S 1 ) S 1 = Result(Goto(P 1,P 2,S 0 )) aksjomaty efektów p,s At(Monkey,p,Goto(p,s)) x,s Present(x,s) Portable(x) Holding(x,Result(Grab,s)) aksjomaty t la (frame axioms) a,x,s Holding(x,s) (a Release) Holding(x,Result(a,s)) p,p 1,p 2,s At(Bananas,p,s) At(Bananas,p,Move(Box,p 1,p 2,s)) twierdzenie formu luje sie w postaci: s HaveBananas(s) wynik może być uzyskany w postaci: Havebananas(Grab(Bananas,Climb(Box,Move(Box,P 2,P 3,Goto(P 2,S 0 ))))) Klasyczne planowanie dzia lań wstep 5
Planowanie z użyciem rachunku sytuacji cd. Planowanie z wykorzystaniem logiki i dowodzenia twierdzeń dzia la. Jednak w praktyce jest ma lo efektywne, co wynika ze z lożoności procedury dowodzenia twierdzeń rachunku predykatów. Zauważmy, że stan poczatkowy zwykle nie jest opisany w sposób kompletny, określajacy po lożenie i stan wszystkich obiektów. Podane sa tylko kluczowe warunki wyjściowe określajace stan agenta i obiektów na których ma on dzia lać w sumie definiujace duży zbiór stanów. Mamy tu do czynienia ze zjawiskiem, gdzie wykorzystujemy ogólne (i ca lkiem eleganckie) rozwiazanie do szczególnej sytuacji. Nie bierzemy jednak pod uwage i nie wykorzystujemy szczególnych cech zadania planowania. Algorytm dowodzenia twierdzeń ma znaleźć rozwiazanie, ale jest limitowany przez swoja efektywność, która w odniesieniu do reprezentacji sytuacji świata rzeczywistego zwykle okazuje sie niewystarczajaca. Gdy mamy do czynienia z pewnym konkretnym zagadnieniem, i podanymi faktami, możemy wykorzystać te fakty do skoncentrowania sie na akcjach, które maja ścis ly zwiazek z tymi faktami. Maszyna dowodzenia twierdzeń również to robi, ale w sposób w laściwy dla dowodzenia. Pytanie: czy nie istnieje wyspecjalizowana reprezentacja w laściwa dla planowania dzia lań? Klasyczne planowanie dzia lań wstep 6
Specjalne reprezentacje dla planowania dzia lań Wydaje sie, że efektywne planowanie dzia lań wymaga wyspecjalizowanych reprezentacji, umożliwiajacych agentowi koncentrowanie sie na wybieraniu i dopasowywaniu kroków planu. Jakie sa specjalne wymagania takiej reprezentacji: opisy akcji powinny być powiazane z elementami opisu stanu, wyszukiwanie akcji niezbednych w planie dzia lań powinno nastepować w dowolnej kolejności, niekoniecznie w kolejności ich użycia (metafora: chcac zaplanować trudny dzień pracy, niekoniecznie pierwszym pytaniem jest która noga należy wstać z lóżka), jeśli wystepuje kilka celów zadania planowania, które sa niezależne, powinno być możliwe planowanie osiagniecia ich od siebie niezależnie, i po laczenie otrzymanych planów czastkowych w jeden spójny plan, przydatny by lby wyspecjalizowany jezyk opisu problemów planowania, ograniczajacy ilość możliwości jakie moga być brane pod uwage. Klasyczne planowanie dzia lań wstep 7
Klasyczne planowanie dzia lań wstep 8
Schemat reprezentacji STRIPS STRIPS STanford Research Institute Problem Solver (1970). By l nazwa systemu planowania dzia lań robota dzia lajacego w bardzo ograniczonym świecie sześciennych bloków, które robot przepycha l z pomieszczenia do pomieszczenia. System dzia la l na minikomputerze z tamtej epoki i by l bardzo minimalistyczny. Jednak reprezentacja, która wykorzystywa l, przeży la swoja epoke i jest nadal podstawa konstrukcji reprezentacji wiedzy dla systemów planowania dzia lań. Reprezentacja STRIPS wykorzystuje zapis w postaci prostych formu l logicznych sk ladajacych sie z litera lów (formu l atomowych i negacji) podstawionych (bez zmiennych) i nie zawierajacych funkcji. Jedynym spójnikiem logicznym dozwolonym w formu lach jest koniunkcja. (Ponieważ koniunkcja jest domyślna, formu ly można alternatywnie zapisywać w postaci list litera lów.) Pozwala to na przetwarzanie opisów stanów przez algebraiczne manipulacje formu l bez dowodzenia twierdzeń. Opis stanu poczatkowego: koniunkcja pozytywnych litera lów podstawionych. Zadanie planowania jest również zapisywane jako koniunkcja litera lów. Reprezentacja akcji jest nieco bardziej rozbudowana. Klasyczne planowanie dzia lań reprezentacja STRIPS 9
L STRIPS reprezentacja akcji Reprezentacja akcji w STRIPSie jest tzw. schemat operatora, czyli sparametryzowany opis operatora, zawierajacy zmienne, które w konkretnym przypadku sa podstawiane konkretnymi wartościami. Zapis schematu operatora sk lada sie z: warunków stosowalności operatora (preconditions), w postaci listy pozytywnych litera lów. efektów jego zastosowania, również w postaci koniunkcji litera lów, które moga być pozytywne lub zanegowane; po wykonania operatora pozytywne litera ly sa dodawane, a negatywne usuwane z opisu stanu. (Oryginalny STRIPS zamiast koniunkcji litera lów pozytywnych i negatywnych mia l dwie listy litera lów: Add list i Delete list.) Przyk ladowy schemat operatora: At(p), Sells(p,x), Have($$$) Buy(x,p) Have(x), Have($$$) Akcja: Buy(x, p) Warunki stosowalności: At(p), Sells(p, x), Have($$$) Efekty: Have(x), Have($$$) Klasyczne planowanie dzia lań reprezentacja STRIPS 10
Schemat reprezentacji STRIPS przyk lad Rozważmy zadanie planowania zakupów. Dostepne sa operatory: Go(p 1,p 2 ) (udaj sie z miejsca p 1 do p 2 ), i Buy(x,p) (kup towar x w miejscu p). W stanie poczatkowym agent znajduje sie w domu, oraz znane sa mu też fakty niezbedne przy planowaniu zakupów, tj. że pożadane towary (mleko i banany) można kupić w supermarkecie. Celem dzia lania agenta bedzie kupienie tych dwóch artyku lów. S 0 = {At(Home),Sells(SM,Milk),Sells(SM,Bananas)} G = {Have(M ilk), Have(Bananas)} Akcja: Go(p 1,p 2 ) Akcja: Buy(x,p) Warunki: At(p 1 ) Warunki: At(p),Sells(p,x) Efekty: At(p 1 ),At(p 2 ) Efekty: Have(x) Klasyczne planowanie dzia lań reprezentacja STRIPS 11
Schemat reprezentacji STRIPS ograniczenia W powyższym sformu lowaniu reprezentacja operatora kupowania ignoruje pewien istotny aspekt zagadnienia, a mianowicie p lacenie. Uwzglednienie pieniedzy nie jest latwe ponieważ ani reprezentacja STRIPS ani wykorzystywane w niej formu ly logiczne nie obs luguj a arytmetyki. Można próbować: S 0 = {At(Home),Have($$$),Sells(SM,Milk),Sells(SM,Bananas)} Akcja: Buy(x, p) Warunki: At(p), Sells(p, x), Have($$$) Efekty: Have(x), Have($$$) W tym uproszczonym sformu lowaniu zadania agentowi starczy pieniedzy tylko na kupno jednego artyku lu. Do zaplanowania lacznych zakupów mleka i bananów to rozwiazanie jest już niewystarczajace. Klasyczne planowanie dzia lań reprezentacja STRIPS 12
Schemat reprezentacji STRIPS ograniczenia (cd.) Innym poważnym ograniczeniem jezyka reprezentacji STRIPS jest, że fakty musza być wyrażane pozytywnymi litera lami podstawionymi. Na przyk lad, aby poprawnie zapisać operator Go, jego argumentami musza być miejsca skad i dokad agent ma sie przemieścić. Nie może on rozważać akcji typu: Jedź do sklepu, a wy lacznie typu: Jedź z domu do sklepu. Próba opisania jednoargumentowego operatora Go wymaga laby użycia konstrukcji wykraczajacej poza schemat STRIPS: Akcja: Go(p) Warunki: {} Efekty: At( ), At(p) //brak warunków Konstrukcje takie jak At( ) (tzn. usuń z reprezentacji bieżacego świata wszystkie fakty At(...)) sa czesto przydatne, i nietrudne do zaimplementowania. Fakt, że sa niedozwolone w STRIPS-ie jest kwestia jego ogólnej prostoty, a nie świadoma decyzja projektowa jego twórców. Klasyczne planowanie dzia lań reprezentacja STRIPS 13
Schemat reprezentacji STRIPS ograniczenia (cd.) Oryginalny STRIPS powsta l w czasach wczesnej technologii obliczeniowej. W dodatku zosta l zastosowany w prawdziwym robocie jeżdżacym po laboratorium, analizujacym obraz otoczenia z kamery, oraz planujacym i wykonujacym dzia lania w czasie rzeczywistym. Z konieczności wiec jego reprezentacja by la skrojona na minimum. Czy nie warto by loby jej rozszerzyć? Pomimo iż dziś możliwości mobilnego sprzetu obliczeniowego sa dużo wieksze, aparat logiki i dowodzenia twierdzeń wprowadzi lyby poziom z lożoności, którego nadal chcemy uniknać. Istnieja jednak pewne konstrukcje rozszerzajace oryginalny schemat STRIPSa, które pozwalaja na wieksz a elastyczność opisu, nie wymagajac zastosowania pe lnego aparatu logiki. Na przyk lad, logika STRIPSa przyjmuje domyślnie za lożenie świata zamknietego (CWA), tzn. każdy warunek nieobecny jawnie w opisie stanu jest traktowany jako fa lszywy. W konsekwencji, poczatkowy opis świata sk lada sie tylko z litera lów pozytywnych; negatywnych nie ma potrzeby ani możliwości podawać. Klasyczne planowanie dzia lań reprezentacja STRIPS 14
Schemat reprezentacji ADL STRIPS zosta l rozszerzony w schemat reprezentacji ADL (Action Description Language). ADL dopuszcza negatywne litera ly w opisach stanów, formu ly z lożone z koniunkcji i alternatyw w zapisie celu, a także odrzuca CWA. STRIPS Language ADL Language Only positive literals in states: Positive and negative literals in states: Poor Unknown Rich Famous Closed World Assumption: Open World Assumption: Unmentioned literals are false. Unmentioned literals are unknown. Effect P Q means Effect P Q means add P and delete Q add P and Q and delete P and Q. Only ground literals in goals: Quantified variables in goals: Rich Famous xat(p1,x) At(P2,x) is the goal of having P1 and P2 in the same place. Goals are conjunctions: Goals allow conjunction and disjunction: Rich Famous Poor (Famous Smart) Effects are conjunctions. Conditional effects allowed: when P : E means E is an effect only if P is satisfied. No support for equality. Equality predicate (x = y) is built in. No support for types. Variables can have types, as in (p : Plane). Klasyczne planowanie dzia lań schemat reprezentacji ADL 15
Jezyk PDDL PDDL (Planning Domain Definition Language) jest jezykiem zapisu problemów planowania wprowadzonym jako standard pozwalajacy różnym programom rozumieć i rozwiazywać jednolicie opisane zadania. PDDL jest jezykiem ogólniejszym zarówno od STRIPSa jak i ADL, ale definiuje podzbiory jezyka dla obu tych schematów reprezentacji. Sk ladnia PDDL jest oparta na jezyku Common Lisp. Opis problemu w PDDL sk lada sie z dwóch cześci, typowo w oddzielnych plikach: opisu dziedziny, tzn. s lownika predykatów i reprezentacji akcji, opisu instancji problemu, tzn. obiektów, stanu poczatkowego, i specyfikacji celu. Klasyczne planowanie dzia lań jezyk PDDL 16
PDDL przyk lad Robot zwany Robby może poruszać sie pomiedzy dwoma pokojami, oraz posiada dwa chwytaki, którymi może podnosić pi leczki oraz przenosić je miedzy tymi pokojami. Opis tej dziedziny: (define (domain gripper-strips) (:predicates (room?r) (ball?b) (gripper?g) (at-robby?r) (at?b?r) (free?g) (carry?o?g)) (:action move :parameters (?from?to) :precondition (and (room?from) (room?to) (at-robby?from)) :effect (and (at-robby?to) (not (at-robby?from)))) Klasyczne planowanie dzia lań jezyk PDDL 17
(:action pick :parameters (?obj?room?gripper) :precondition (and (ball?obj) (room?room) (gripper?gripper) (at?obj?room) (at-robby?room) (free?gripper)) :effect (and (carry?obj?gripper) (not (at?obj?room)) (not (free?gripper)))) (:action drop :parameters (?obj?room?gripper) :precondition (and (ball?obj) (room?room) (gripper?gripper) (carry?obj?gripper) (at-robby?room)) :effect (and (at?obj?room) (free?gripper) (not (carry?obj?gripper))))) Klasyczne planowanie dzia lań jezyk PDDL 18
W pewnym zadaniu planowania poczatkowo robot i wszystkie pi leczki sa w pierwszym pokoju. Celem jest przeniesienie ich do drugiego. (define (problem strips-gripper2) (:domain gripper-strips) (:objects rooma roomb ball1 ball2 left right) (:init (room rooma) (room roomb) (ball ball1) (ball ball2) (gripper left) (gripper right) (at-robby rooma) (free left) (free right) (at ball1 rooma) (at ball2 rooma)) (:goal (at ball1 roomb))) Klasyczne planowanie dzia lań jezyk PDDL 19
Klasyczne planowanie dzia lań jezyk PDDL 20
Strategie planowania W najprostszym przypadku system planujacy posuwa sie od poczatku do końca, i generuje pe lny i ca lkowicie wyspecyfikowany plan dzia lań. Taki system planujacy jest określany jako total order progression planner. Ze wzgledu na brak heurystyk ukierunkowujacych przeszukiwanie, czesto chetniej wybieranym wariantem okazuje sie przeszukiwanie od końca, czyli dopasowujace akcje agenta do postawionego mu zadania regression planning. Polega on na rozpoczeciu pracy od wybrania akcji końcowej, czyli takiej, która pośród swoich efektów posiada litera l celowy (ponieważ formu la celu może mieć wiele litera lów, wiec akcji końcowych może być wiele). Nastepnie sprawdza sie, czy sa spe lnione warunki jej zastosowania, a jeśli nie sa, to ich osiagniecie jest dodawane (lub podstawiane) jako nowy cel planowania. W kolejnym etapie planowania wybierany jest nastepny operator (od końca), i tak aż do osiagniecia takiego zestawu wymagań, który by lby spe lniony w stanie poczatkowym. Klasyczne planowanie dzia lań strategie planowania 21
Użycie heurystyk Jednak w praktycznych przypadkach zarówno planowanie wprzód jak i wstecz okazuja sie zbyt ma lo efektywne. Można je stosować jedynie w po laczeniu z pewnymi heurystykami, które daje sie sformu lować w sposób ca lkowicie uniwersalny, czyli niezależny od dziedziny problemowej. Na przyk lad, poznana już metoda generowania i rozwiazywania zagadnienia uproszczonego, i traktowania jego kosztu jako oszacowania kosztu zagadnienia oryginalnego, jest przyk ladem takiej heurystyki. Klasyczne planowanie dzia lań strategie planowania 22
Trudne przypadki interakcje pomiedzy podcelami Algorytm planowania powinien wykorzystywać strategie dziel i rzadź, i budować plany oddzielnie dla niezależnych podcelów, gdy tylko jest to możliwe. Istnieja jednak przypadki trudne, gdzie podcele nie sa niezależne, i ich niezależne planowanie prowadzi do kolizji, jak w poniższej sytuacji, zwanej anomalia Sussmana: "Sussman anomaly" problem A B C A B C Start State Goal State Clear(x) On(x,z) Clear(y) PutOn(x,y) ~On(x,z) ~Clear(y) Clear(z) On(x,y) Clear(x) On(x,z) PutOnTable(x) ~On(x,z) Clear(z) On(x,Table) + several inequality constraints Klasyczne planowanie dzia lań strategie planowania 23
Krótkie podsumowanie pytania sprawdzajace 1. Dlaczego pożadane jest stosowanie specjalistycznych reprezentacji do planowania dzia lań, zamiast reprezentacji w przestrzeni stanów, albo reprezentacji logicznej? 2. Utwórz reprezentacje STRIPS pozwalajac a wyrazić problem studenta, który musi zdać egzaminy z dwóch przedmiotów, i aby zdać każdy egzamin musi najpierw nauczyć sie danego przedmiotu, lecz uczac sie jednego, traci wszelka wiedze nabyta wcześniej. Wykorzystujac opracowana reprezentacje zapisz problem tego studenta. 3. Spróbuj rozwiazać zapisany wcześniej problem studenta, najpierw wykorzystujac strategie wprzód, a nastepnie wstecz. Jeśli w trakcie tej pracy zrozumiesz podstawowy dylemat studiujacego studenta (troche podobny do anomalii Sussmana), przemyśl, jakiego rodzaju mechanizm(y) by lby niezbedny(e) aby skutecznie rozwiazywać ten dylemat. Klasyczne planowanie dzia lań podstawowa reprezentacja i strategie 24
Planowanie w przestrzeni planów Alternatywna reprezentacje do podstawowego schematu planowania daje użycie przestrzeni planów. Polega ona na utworzeniu i nastepnie stopniowym przekszta lcaniu planu cześciowo uporzadkowanego, który jest trójka: Zbiór kroków planu (podstawionych schematów operatorów) Poczatkowy zbiór kroków zawiera dwa operatory techniczne: operator Start, którego efekty stanowia opis stanu poczatkowego, i operator Finish, którego warunki stosowalności stanowia cel zadania planowania. Niektóre kroki planu moga nie mieć spe lnionych swoich warunków stosowalności, takie warunki nazywamy otwartymi. Zbiór zwiazków przyczynowych Zwiazki przyczynowe lacz a kroki planu z konkretnymi warunkami stosowalności innych kroków planu. Wskazuja, że jakiś krok planu wymaga dla spe lnienia swojego warunku stosowalności wykonania innego kroku. Zbiór zwiazków chronologicznych Dodatkowe niezbedne zależności chronologiczne określone przez system. Plan jest kompletny jeśli wszystkie warunki stosowalności kroków planu sa osiagniete wcześniejszymi krokami, i nie naruszaja ich inne kroki. Klasyczne planowanie dzia lań plany cześciowo uporzadkowane 25
Przyk lad: zak ladanie butów Rozważmy przyk lad: chcemy zbudować plan na lożenia na nogi butów (obydwu), lecz warunkiem na lożenia buta na noge jest wcześniejsze na lożenie skarpetki. Istnieje szereg planów dzia lań w pe lni uporzadkowanych dla tego zadania, lub poniższy plan cześciowy: Start Start Left Sock Right Sock LeftShoeOn, RightShoeOn Finish LeftSockOn Left Shoe RightSockOn Right Shoe LeftShoeOn, RightShoeOn Finish Pierwszy plan (po lewej) jest punktem startowym planowania, natomiast plan po prawej jest gotowym, ostatecznym rozwiazaniem zadania. Klasyczne planowanie dzia lań plany cześciowo uporzadkowane 26
Przekszta lcenia planów cześciowych Operacje przekszta lcania planów: dodanie po laczenia (przyczynowego) istniejacego kroku planu z otwartym warunkiem (innego kroku), dodanie kroku w celu spe lnienia otwartego warunku innego kroku (z po laczeniem przyczynowym), wprowadzenie relacji porzadku (chronologicznego) dwóch kroków. Klasyczne planowanie dzia lań plany cześciowo uporzadkowane 27
Klasyczne planowanie dzia lań plany cześciowo uporzadkowane 28
Przyk lad: zakupy (1) Start At(Home) Sells(HWS,Drill) Sells(SM,Milk) Sells(SM,Ban.) Have(Milk) At(Home) Have(Ban.) Have(Drill) Finish Klasyczne planowanie dzia lań plany cześciowo uporzadkowane 29
Przyk lad: zakupy (2) Start At(Home) Sells(HWS,Drill) Sells(SM,Milk) Sells(SM,Ban.) At(HWS) Sells(HWS,Drill) Buy(Drill) At(x) Go(SM) At(SM) Sells(SM,Milk) Buy(Milk) Have(Milk) At(Home) Have(Ban.) Have(Drill) Finish Klasyczne planowanie dzia lań plany cześciowo uporzadkowane 30
Zagrożenia Nie wystarczy zadbać o to, żeby w planie znalaz ly sie kroki spe lniajace wszystkie warunki stosowalności wszystkich kroków planu. Warunek spe lniony przez jeden krok planu (Go(Supermarket)) i potrzebny drugiemu krokowi (Buy(Milk)), co wskazuje po laczenie zwiazkiem przyczynowym móg lby zostać zniweczony w efekcie wykonania jakiegoś innego kroku (Go(Home)), jeśli ten inny krok planu by lby wykonany pomiedzy krokami powiazanymi zwiazkiem przyczynowym. Go(Supermarket) At(Supermarket) Buy(Milk) PROMOTION DEMOTION Go(Home) At(Home) At(Home) Finish Taki inny krok nazywamy zagrożeniem dla zwiazku przyczynowego dwóch kroków planu. Zagrożenia moga zostać wyeliminowane przez wprowadzenie dodatkowych uporzadkowań chronologicznych. Krok zagrożenia może poprzedzać wcześniejszy krok zwiazku przyczynowego (ang. demotion, pol. degradacja), lub nastepować po późniejszym kroku zwiazku (ang. promotion, pol. promocja). Klasyczne planowanie dzia lań plany cześciowo uporzadkowane 31
Przyk lad: zakupy (3) Start At(Home) Go(HWS) At(HWS) Sells(HWS,Drill) Buy(Drill) At(HWS) Go(SM) At(SM) Sells(SM,Milk) At(SM) Sells(SM,Ban.) Buy(Milk) Buy(Ban.) At(SM) Go(Home) Have(Milk) At(Home) Have(Ban.) Have(Drill) Finish Klasyczne planowanie dzia lań plany cześciowo uporzadkowane 32
Algorytm planowania POP Pos luguj ac sie reprezentacja w przestrzeni planów cześciowych można sformu lować algorytm POP (Partial Order Planner) konstruujacy kompletne plany cześciowo uporzadkowane. function POP(Initial, Goal, Operators) returns Plan Plan Make-Minimal-Plan(Initial, Goal) loop do if Solution?(Plan) then return Plan S need,c Select-Subgoal(Plan) Choose-Operator(Plan, Operators, S need,c) Resolve-Threats(Plan) end function Select-Subgoal(Plan) returns S need,c S need spośród Steps(Plan) wybierz krok z niespe lnionym warunkiem c return S need,c Klasyczne planowanie dzia lań plany cześciowo uporzadkowane 33
procedure Choose-Operator(Plan, Operators, S need,c) S add spośród Operators albo Steps(Plan) wybierz krok z efektem c if nie ma takiego kroku then fail c do Links(Plan) dodaj po laczenie przyczynowe S add S need do Orderings(Plan) dodaj uporzadkowanie S add S need if S add jest nowo dodanym krokiem spośród Operators then dodaj S add do Steps(Plan) dodaj Start S add Finish do Orderings(Plan) procedure Resolve-Threats(Plan) c for each S threat Steps(Plan) który zagraża S i S j Links(Plan) do choose jedno z Demotion: dodaj S threat S i do Orderings(Plan) Promotion: dodaj S j S threat do Orderings(Plan) if not Consistent(Plan) then fail end Klasyczne planowanie dzia lań plany cześciowo uporzadkowane 34
W lasności algorytmu POP Algorytm POP jest poprawny i kompletny, to znaczy zwraca wy lacznie poprawne plany, i jeśli tylko plan istnieje, to POP go znajdzie (o ile używa przeszukiwania wszerz, lub z iteracyjnym pog lebianiem). W algorytmie jest szereg elementów wyboru, które moga być wykonywane niedeterministycznie: wybór kroku S need,c i otwartego (niespe lnionego) warunku c wybór kroku S add dla spe lnienia S need,c wybór kolejności kroków przy rozwiazywaniu zagrożenia Te elementy moga stanowić punkty nawracania, gdyby algorytm osiagn a l porażke planowania na skutek: braku możliwości spe lnienia otwartego warunku nierozwiazywalnego konfliktu (kroków planu zagrażajacych sobie nawzajem) Istnieje ponadto szereg rozszerzeń podstawowej wersji algorytmu, niektóre omówione poniżej. Klasyczne planowanie dzia lań plany cześciowo uporzadkowane 35
Przyk lad: świat klocków (1) "Sussman anomaly" problem A B C A B C Start State Goal State Clear(x) On(x,z) Clear(y) PutOn(x,y) ~On(x,z) ~Clear(y) Clear(z) On(x,y) Clear(x) On(x,z) PutOnTable(x) ~On(x,z) Clear(z) On(x,Table) + several inequality constraints Klasyczne planowanie dzia lań plany cześciowo uporzadkowane 36
Przyk lad: świat klocków (2) START On(C,A) On(A,Table) Cl(B) On(B,Table) Cl(C) B C A On(A,B) On(B,C) FINISH A B C Klasyczne planowanie dzia lań plany cześciowo uporzadkowane 37
Przyk lad: świat klocków (3) START On(C,A) On(A,Table) Cl(B) On(B,Table) Cl(C) B C A Cl(B) On(B,z) Cl(C) PutOn(B,C) On(A,B) FINISH On(B,C) A B C Klasyczne planowanie dzia lań plany cześciowo uporzadkowane 38
Przyk lad: świat klocków (4) START On(C,A) On(A,Table) Cl(B) On(B,Table) Cl(C) B C A PutOn(A,B) clobbers Cl(B) => order after PutOn(B,C) Cl(A) On(A,z) Cl(B) PutOn(A,B) Cl(B) On(B,z) Cl(C) PutOn(B,C) On(A,B) On(B,C) FINISH A B C Klasyczne planowanie dzia lań plany cześciowo uporzadkowane 39
Przyk lad: świat klocków (5) START On(C,A) On(A,Table) Cl(B) On(B,Table) Cl(C) B C A On(C,z) Cl(C) PutOnTable(C) Cl(A) On(A,z) Cl(B) PutOn(A,B) Cl(B) On(B,z) Cl(C) PutOn(B,C) PutOn(A,B) clobbers Cl(B) => order after PutOn(B,C) PutOn(B,C) clobbers Cl(C) => order after PutOnTable(C) On(A,B) On(B,C) FINISH A B C Klasyczne planowanie dzia lań plany cześciowo uporzadkowane 40
Planowanie z cześciowo podstawionymi operatorami W przypadku, gdyby któryś z operatorów użytych w planie nie mia l podstawionych wszystkich parametrów, może sie zdarzyć, że pojawia sie możliwe zagrożenia, zależne od konkretnych przypisań wartości dla tych parametrów. Można rozszerzyć nieco algorytm POP, aby uwzglednia l takie przypadki. procedure Choose-Operator(Plan, Operators, S need,c) S add spośród Operators albo Steps(Plan) wybierz krok z efektem c add takim, że u =Unify(c,c add,bindings(plan)) if nie ma takiego kroku then fail do Bindings(Plan) dodaj podstawienie u c do Links(Plan) dodaj po laczenie przyczynowe S add S need do Orderings(Plan) dodaj uporzadkowanie S add S need if S add jest nowo dodanym krokiem spośród Operators then dodaj S add do Steps(Plan) dodaj Start S add Finish do Orderings(Plan) Klasyczne planowanie dzia lań plany cześciowo uporzadkowane 41
procedure Resolve-Threats(Plan) c for each S i S j Links(Plan) do for each S threat Steps(Plan) do for each c Effects(S threat ) do if Subst(Bindings(Plan),c) = Subst(Bindings(Plan), c ) then choose jedno z Demotion: dodaj S threat S i do Orderings(Plan) Promotion: dodaj S j S threat do Orderings(Plan) if not Consistent(Plan) then fail end end end Algorytm POP rozszerzony w ten sposób nadal jest poprawny i kompletny. Klasyczne planowanie dzia lań plany cześciowo uporzadkowane 42
Dalsze rozszerzenia POP Algorytm POP sprawnie radzi sobie z niektórymi zadaniami planowania dzia lań, jednak cześciowo wynika to z ubogości domeny jego stosowalności, m.in. ubogości jezyka opisu operatorów z deterministycznymi, niezależnymi efektami, itp. Jezyk ten można rozszerzyć na szereg sposobów: operatory z warunkowymi efektami dzia lania wymagaja uwzglednienia dodatkowych warunków w Resolve-Threats osiaganie zanegowanych celów, potrzebne dla poprzedniego, wymaga sprawnego pos lugiwania sie negacja, a także wprowadzenia za lożenia świata zamknietego dla opisu stanu poczatkowego (aby uniknać wypisywania faktów, które nie sa w nim spe lnione) warunki stosowalności operatorów z alternatywami uniwersalnie kwantyfikowane warunki stosowalności i efekty operatorów Należy podkreślić, że stosowany jezyk opisu, pomimo iż zawiera coraz wiecej elementów rachunku predykatów pierwszego rzedu, nie jest nim. Nadal jest to prosty jezyk dopuszczajacy pewne typy klauzul w określonych rolach, i nic wiecej. Na przyk lad, nie ma w ogóle mowy o alternatywnych efektach operatorów. Algorytmy tutaj stosowane pos luguja sie jedynie unifikacja formu l, a nigdy dowodzeniem twierdzeń. Klasyczne planowanie dzia lań plany cześciowo uporzadkowane 43
Planowanie warunkowe Planowanie warunkowe pozwala uwzglednić zarówno różne możliwe efekty dzia lań agenta, jak i fakty nieznane w chwili planowania. Algorytm konstrukcji planów warunkowych CPOP jest rozszerzeniem algorytmu POP przez uwzglednienie: kontekstu (warunków, które musza być spe lnione) dla kroków planu, kroków warunkowych (które nie powoduja konkretnych efektów, ale moga pozyskać wiedze o ich spe lnieniu), powielonych stanów Finish (dla uwzglednienia kontekstów, których nie uwzglednia konstruowany plan), i warunkowego rozwiazywania zagrożeń. Algorytm planowania warunkowego można w dalszym ciagu rozszerzyć o wielowartościowe kroki warunkowe (zamiast prostego sprawdzania z wynikiem binarnym), oraz o petle powtórzeniowe, które sa podobne do kroków warunkowych, tylko zamiast powodować warunkowego wykonania jakiegoś kroku (lub ga lezi) planu, powoduja jego/jej warunkowe powtórzenie, i ponowne sprawdzenie warunku. Takie plany maja silny charakter programów, ich wykonywanie przypomina interpretacje programów, a konstrukcja planu jest analogiczna do automatycznego pisania programu ze specyfikacji. Klasyczne planowanie dzia lań plany cześciowo uporzadkowane 44
Krótkie podsumowanie pytania sprawdzajace 1. Z jakich elementów sk lada sie reprezentacja problemu dla planowania w przestrzeni planów? Czy ma ona jakieś elementy wspólne (albo podobne) do reprezentacji STRIPS? 2. Co to jest plan cześciowo uporzadkowany? Podaj przyk lad takiego planu dla wcześniej rozważanego zagadnienia studenta majacego do zdania dwa egzaminy. 3. Wymień operacje jakie wykonuje na planach cześciowo uporzadkowanych system planowania w przestrzeni planów. 4. Na czym polegaja zagrożenia w planach cześciowo uporzadkowanych? Jakie zagrożenie może powstać (raczej na pewno powstanie) w trakcie rozwiazywania problemu studenta? 5. Na czym polegaja niedeterministyczne elementy algorytmu POP i jaka pe lnia w nim role? Klasyczne planowanie dzia lań planowanie w przestrzeni planów, algorytm POP 45
Klasyczne planowanie dzia lań planowanie w przestrzeni planów, algorytm POP 46
Grafy planowania Grafy planowania stanowia zupe lnie inne podejście do planowania dzia lań, którego zaleta jest możliwość zastosowania bardziej przydatnych heurystyk. Dzieki tym heurystykom możliwe jest zastosowanie szerszej klasy metod przeszukiwania. Możliwe jest również bezpośrednie otrzymanie planu dzia lań z gotowego grafu planowania. Graf planowania sk lada sie z poziomów, odpowiadajacych krokom w czasie, gdzie pierwszy poziom opisuje stan poczatkowy S 0. Poziomy zbudowane sa naprzemiennie z opisów stanu, i zbiorów akcji. Opisy stanu nie sa kompletnymi opisami jakiegoś rzeczywistego stanu, lecz raczej zbiorami litera lów logicznych, które moga być elementem opisu stanu, wynikajacego z jakiejś akcji. Akcje sa podstawionymi operatorami po laczonymi z jednej strony z litera lami zapewniajacymi spe lnienie warunków stosowalności, a z drugiej strony z litera lami opisujacymi wyniki akcji. W dodatku do rzeczywistych operatorów uwzgledniane sa akcje puste, odpowiadajace aksjomatom niezmienniczości. Istotnym ograniczeniem grafów planowania jest brak obs lugi zmiennych. Gdy dziedzina planowania zawiera operatory z argumentami, wtedy musza one być rozpisane na wszystkie możliwe szczególne przypadki. Klasyczne planowanie dzia lań grafy planowania 47
Grafy planowania przyk lad Init(Have(Cake)) Goal(Have(Cake) Eaten(Cake)) Action(Eat(Cake) PRECOND: Have(Cake) EFFECT: Have(Cake) Eaten(Cake)) Action(Bake(Cake) PRECOND: Have(Cake) EFFECT: Have(Cake)) S 0 A 0 S 1 A 1 S 2 Bake(Cake) Have(Cake) Have(Cake) Have(Cake) Eat(Cake) Eaten(Cake) Have(Cake) Have(Cake) Eat(Cake) Eaten(Cake) Eaten(Cake) Eaten(Cake) Eaten(Cake) Szare luki miedzy akcjami i litera lami oznaczaja wzajemne wykluczanie (mutex). Klasyczne planowanie dzia lań grafy planowania 48
Muteksy w grafie planowania Skonstruowany graf planowania nie określa wyboru ani kolejności wykonywanych akcji, a jedynie możliwość wykonywania akcji i osiagania efektów. Dzieki temu algorytm tworzenia tego grafu jest prosty i efektywny (wielomianowy w zależności od liczby akcji i litera lów), gdy przestrzeń przeszukiwania planów jest eksponencjalna w liczbie litera lów. Algorytm obliczania muteksów określony jest nastepuj acymi regu lami: Mutex istnieje pomiedzy dwoma akcjami na każdym poziomie grafu planowania jeśli zachodzi jeden z warunków: jedna akcja neguje efekty drugiej, jeden z efektów jednej z akcji zaprzecza warunkowi drugiej, jeden z warunków jednej z akcji jest mutex z którymś z warunków drugiej. Mutex istnieje pomiedzy dwoma litera lami na każdym poziomie grafu planowania: (i) jeśli jeden jest negacja drugiego, albo (ii) jeśli miedzy każda para akcji pozwalajac a osiagn ać oba litera ly zachodzi mutex. Klasyczne planowanie dzia lań grafy planowania 49
S 0 A 0 S 1 A 1 S 2 Bake(Cake) Have(Cake) Have(Cake) Have(Cake) Eat(Cake) Eaten(Cake) Have(Cake) Have(Cake) Eat(Cake) Eaten(Cake) Eaten(Cake) Eaten(Cake) Eaten(Cake) Zwróćmy uwage, litera ly Have(Cake) i Eaten(Cake) sa mutex w poziomie S 1, ponieważ jedyny sposób osiagniecia Have(Cake), czyli akcja niezmienniczości, jest muteks z jedyna akcja osiagaj ac a Eaten(Cake), czyli Eat(Cake). Jednocześnie, te litera ly nie sa mutex w poziomie S 2, ponieważ pojawi ly sie nowe akcje osiagaj ace te litera ly, i nie wszystkie sa muteks: Bake(Cake) i niezmienniczość Eaten(Cake). Klasyczne planowanie dzia lań grafy planowania 50
Czym sa grafy planowania? Graf planowania jest struktura, w której każdy poziom A i zawiera wszystkie akcje, które sa potencjalnie możliwe w S i, z zaznaczeniem, które akcje nie sa jednocześnie możliwe. Fakt, że pewna akcja pojawi la sie w grafie planowania w poziomie A i nie oznacza, że bedzie możliwe wykonanie tej akcji po i krokach. Jednak najwcześniejszy poziom A n, w którym dana akcja sie pojawi la niesie wiadomość, że wykonanie tej akcji nie bedzie możliwe wcześniej niż po n krokach. Każdy poziom S i zawiera wszystkie litera ly, które moga wynikać z wybrania akcji z poziomu A i 1, z zaznaczeniem, które pary litera lów nie sa jednocześnie możliwe. Zauważmy, że konstrukcja grafu planowania nie wymaga wybierania akcji, co wymaga loby przeszukiwania kombinatorycznego. Tu jedynie odnajdujemy akcje możliwe, i zaznaczamy muteksami pewne wybory jako niemożliwe. Graf z n poziomami, a akcjami, i l litera lami ma rozmiar O(n(a+l) 2 ), i czas wymagany do jego zbudowania ma taka sama z lożoność. Klasyczne planowanie dzia lań grafy planowania 51
Graf planowania jako źród lo heurystyk do przeszukiwania Z grafu planowania można odczytywać przydatne informacje o problemie. Na przyk lad, litera l, którego brak w końcowym stanie grafu jest niemożliwy do osiagniecia dowolnym planem. Dla przeszukiwania w przestrzeni stanów możemy takiemu stanowi przypisać h(n) =. W przestrzeni planów cześciowych można wykluczyć każdy plan cześciowy, który posiada niespe lnialny otwarty warunek. Można uogólnić te obserwacje definiujac koszt osiagniecia litera lu celowego jako poziomu w grafie planowania, na którym ten litera l sie po raz pierwszy pojawi l. Latwo zauważyć, że ta definicja jest oszacowaniem rzeczywistej d lugości drogi do osiagniecia każdego celu, przy czym czesto może to być oszacowanie optymistyczne. Można wykazać, że tak zdefiniowana heurystyka jest dopuszczalna w sensie algorytmu A*. Jeszcze lepsze oszacowanie daje seryjny graf planowania zawierajacy muteksy miedzy wszystkimi parami niepustych akcji, co odzwierciedla konieczność wykonywania akcji krok po kroku i daje odpowiednio d luższy graf. Aby oszacować koszt osiagniecia koniunkcji celów można obliczać: (i) sume kosztów, (ii) maksimum, lub (iii) liczbe kroków do stanu, w którym wszystkie cele sa obecne i nie wykluczaja sie wzajemnie. Ostatnia heurystyka dobrze sprawdza sie w szeregu przypadków z istotnymi zależnościami miedzy celami. Klasyczne planowanie dzia lań grafy planowania 52
Bezpośrednia generacja planu algorytm GRAPHPLAN function Graphplan(problem) returns solution or failure graph Initial-Planning-Graph(problem) goals Goals[problem] loop do if goals all non-mutex in last level of graph then do solution Extract-Solution(graph, goals, Length(graph)) if solution failure then return solution else if No-Solution-Possible(graph) then return failure graph Expand-Graph(graph, problem) Initial-Planning-Graph tworzy graf ze stanem S 0. Expand-Graph dodaje jeden krok do planu: wszystkie możliwe akcje (w lacznie z pustymi), ich wyniki, i oblicza muteksy. Extract-Solution oblicza binarny problem CSP którego zmiennymi sa akcje na każdym poziomie, ich wartościami sa: in i out, a wiezami spe lnienie warunków stosowalności, i obecność wszystkich celów planowania wśród efektów akcji ostatniego poziomu. Sekwencja operatorów z wartościa in tworzy kompletny plan cześciowo uporzadkowany. Klasyczne planowanie dzia lań algorytm GRAPHPLAN 53
S 0 A 0 S 1 A 1 S 2 At(Spare,Trunk) At(Spare,Trunk) At(Spare,Trunk) Remove(Spare,Trunk) At(Spare,Trunk) Remove(Spare,Trunk) At(Spare,Trunk) At(Flat,Axle) Remove(Flat,Axle) LeaveOvernight At(Flat,Axle) At(Flat,Axle) Remove(Flat,Axle) At(Flat,Axle) At(Flat,Axle) At(Spare,Axle) At(Spare,Axle) LeaveOvernight At(Spare,Axle) At(Flat,Ground) At(Flat,Ground) PutOn(Spare,Axle) At(Spare,Axle) At(Flat,Ground) At(Spare,Ground) At(Flat,Ground) At(Spare,Ground) At(Flat,Ground) At(Spare,Ground) At(Spare,Ground) At(Spare,Ground) Klasyczne planowanie dzia lań algorytm GRAPHPLAN 54
Krótkie podsumowanie pytania sprawdzajace 1. Co to jest graf planowania, jak jest zbudowany? 2. Jaka role pe lni a w grafach planowania muteksy? 3. Skonstruuj graf planowania dla rozważanego wcześniej zagadnienia studenta, który ma do zdania egzaminy z dwóch przedmiotów. Klasyczne planowanie dzia lań grafy planowania, algorytm GRAPHPLAN 55
Planowanie hierarchiczne 56
Planowanie hierarchiczne Klasyczne planowanie dzia lań zak lada, że plany uk ladane sa z akcji atomowych, tzn. elementarnych (najdrobniejszych). W oczywisty sposób ludzie nie tak uk ladaja plany. Nie bierzemy pod uwage każdego elementarnego ruchu (który i tak sk lada sie z szeregu skomplikowanych procesów na poziomie mieśni), tylko operacje wyższego poziomu, dobrane z punktu widzenia trudności zadania i możliwości agenta. Oznacza to planowanie na wyższym poziomie abstrakcji. Na przyk lad, planujac wyjazd na wakacje, możemy je rozbić na: (1) podróż tam, (2) pobyt, wypoczynek, rozrywki, (3) podróż z powrotem. Pierwsza akcja: podróż tam może być potem rozważana jako zadanie planowania samo w sobie, sk ladajace sie z drobniejszych kroków, które nastepnie bed a planowane i realizowane za pomoca jeszcze drobniejszych akcji. Planowanie hierarchiczne 57
W tym schemacie planowanie może wystapić zarówno przed, jak i w czasie wykonywania akcji. Na przyk lad, elementem akcji podróż z powrotem moga być: dojazd do dworca kolejowego, jazda pociagiem, przejazd ze stacji do domu. Te kroki musza być dalej zaplanowane szczegó lowo. Jednak może nie mieć sensu wczesne dok ladne planowanie kroku: dojazd do dworca kolejowego, ponieważ moga pojawić sie różne warianty, o których agent nie ma pewnej wiedzy na etapie uk ladania ca lego planu przed wyjazdem, np.: może być autobus podstawiony przez hotel, moga pojawić sie inne osoby chetne do wspó ldzielenia taksówki, itp. Kluczowa koncepcja jest tu dekompozycja hierarchiczna, która jest ogólnie czesto stosowana technika przezwycieżenia z lożoności różnych zjawisk. Programy komputerowe buduje sie z procedur lub modu lów, duże korporacje oraz rzady różnego poziomu tworza wydzia ly, biura, itp. Zaleta tego modelu jest, że na każdym poziomie struktury hierarchicznej mamy do czynienia z ma la liczba akcji drobniejszych, podczas gdy podejście niehierarchiczne musi rozbić ca le zadanie na wielka liczbe akcji zupe lnie elementarnych. Planowanie hierarchiczne 58
Akcje wysokiego poziomu Opisywany tu schemat nazywa sie hierarchicznymi sieciami zadań (hierarchical task networks, HTN). Jego za lożenia sa takie jak dla klasycznego planowania dzia lań. W laściwe akcje dostepne agentowi nazywa sie akcjami elementarnymi (primitive actions) z wykorzystaniem reprezentacji preconditions/effects. Dodatkowym elementem sa akcje wysokiego poziomu (high-level actions, HLA). Dla każdej HLA może istnieć jedno lub wiecej rozwinieć (refinement) w sekwencje akcji, z których każda jest akcja elementarna albo inna HLA. W szczególności, w rozwinieciu danej HLA może wystapić ta sama HLA, z innymi parametrami (rozwiniecie rekurencyjne). Planowanie hierarchiczne 59
Akcje wysokiego poziomu i ich rozwiniecia zawieraja wiedze o tym jak można wykonywać różne dzia lania. Na przyk lad, aby dostać sie na lotnisko można jechać w lasnym samochodem, albo taksówka. Nie wchodza tu w gre: kupowanie mleka, ustawianie jednego bloku na drugim, itp. Rozwiniecie HLA zawierajace wy lacznie akcje elementarne nazywamy implementacja tej HLA. Implementacja planu dzia lań wysokiego poziomu (sekwencji HLA) jest konkatenacja implementacji poszczególnych HLA. Ponieważ w opisach akcji elementarnych znajduja sie ich warunki i efekty, można latwo określić czy dana implementacja planu wysokiego poziomu osiaga cel dzia lania. Tak bedzie jeśli co najmniej jedna z jego implementacji osiaga ten cel. Znalezienie poprawnego planu dla danego zadania planowania sprowadza sie zatem do znalezienia takiej sekwencji implementacji HLA, która osiaga cel zadania. Można rozważać dwa podejścia: poszukiwanie implementacji HLA, która spe lnia wymagania, i analizowanie samych HLA w celu wyznaczenia planu wysokiego poziomu bez sprawdzania wszystkich implementacji. Planowanie hierarchiczne 60
Poszukiwanie rozwiazań elementarnych Możliwa realizacja planowania HTN: definiujemy jedna akcje HLA o nazwie Act, gdzie celem bedzie poszukiwanie jej implementacji osiagaj acej cel zadania. Dla wszystkich akcji elementarnych a i definiujemy rozwiniecie: [a i,act], pozwalajace wprowadzać dowolne akcje za pomoca rekurencji. Dla zatrzymania tej rekursji definiujemy dodatkowe rozwiniecie Act z pusta lista kroków i warunkiem stosowalności równym celowi zadania. Oznacza ono, że gdy cel zosta l osiagniety, to pusta lista kroków jest w laściwym planem dzia lania. Implementacja takiego planowania wykorzystujaca przeszukiwanie BFS: Planowanie hierarchiczne 61
Przeszukiwanie hierarchiczne tego typu wykorzystuje wiedze zawarta w posiadanej kolekcji HLA o tym jak sie wykonuje pewne znane operacje. Dzieki dobrej reprezentacji można zbudować praktyczne systemy zdolne do wyznaczania poteżnych planów z niewielkim przeszukiwaniem. Np. system O-Plan (1985) w firmie Hitachi planujacy prace linii produkcyjnej z 350 różnymi produktami, i 35 maszynami produkcyjnymi, wykonujacymi l acznie ponad 2000 różnych operacji. System generowa l 30-dniowe plany produkcji obejmujace trzy 8-godzinne zmiany, zawierajace dziesiatki milionów kroków. Kluczowa dla planowania HTN jest zatem budowa dobrej biblioteki planów zawierajacej znane metody implementacji z lożonych operacji wysokiego poziomu. Taka biblioteka może być budowana recznie, ale można sie jej dopracować w procesie uczenia sie przez: (1) zapamietywanie planów opracowanych od podstaw, i (2) uogólnianie zbudowanych planów przez pomijanie nieistotnych szczegó lów, i zamienianie ich w parametry planu. Istotna zaleta planów hierarchicznych jest zrozumia lość ich struktury dla ludzi. Planowanie hierarchiczne 62
Kombinatoryczna moc planowania hierarchicznego Rozważmy problem planowania, którego rozwiazanie zawiera d akcji elementarnych. Z lożoność planowania niehierarchicznego, prograsywnego, z b możliwymi akcjami w każdym stanie wynosi O(b d ). Przyjmijmy wyidelizowany przypadek hierarchiczny, gdzie każda HLA ma r możliwych rozwinieć, każda na k akcji niższego poziomu. Planowanie hierarchiczne 63