Wprowadzenie do Sztucznej Inteligencji Wykład 6 Informatyka Studia InŜynierskie Systemy planowania działań Planowanie to jest techniką rozwiązywania problemów z dziedziny I, polegającą na określeniu ciągu akcji (operacji) jakie naleŝy podjąć, aby przejść z zadanego stanu początkowego do stanu końcowego będącego celem. Zbiór operatorów {O i } Stan początkowy S 0 System Planowania Działań Stan końcowy S g P l a n 1
Systemy planowania działań: charakterystyka echy szczególne systemów planowania działań ardzo złoŝona reprezentacja stanu problemu Niepewność i niepełność informacji Przestrzeń przeszukiwania o znacznym rozmiarze Występowanie konfliktów w trakcie przeszukiwania na skutek niejawnych interakcji pomiędzy operatorami/akcjami Systemy planowania działań: metody Wykorzystywane metody Planowanie liniowe Dekompozycja problemu (częściowa lub całkowita) Regresja operatorów Strategia least-commitment Planowanie nieliniowe Planowanie hierarchiczne 2
Systemy planowania działań: teoria Systemy planowanie działań tworzę pewną podklasę systemów reguł (produkcji). System produkcji składa się z trzech elementów: faktów (bazy danych) reguł produkcji (baza wiedzy) mechanizmu wnioskowania W systemie planowania: reguły są reprezentowane przez operatory/akcje mechanizm wnioskowania został zastąpiony przez mechanizm planowania (inaczej: generator planu) Systemy planowania działań: teoria Regułę produkcji nazywamy stosowalną w danym stanie bazy faktów, określanym jak kontekst D, jeŝeli wszystkie przesłanki jej części warunkowej są spełnione w D, czyli reguła jest aktywna (inaczej: uaktywniona albo gotowa do wykonania) 3
Systemy planowania działań: teoria Strategie sterowania mechanizmów wnioskowania dzielimy na dwie kategorie (wg Nilsson a) : nieodtwarzalne (ang. irrevocable) - wybór i uŝycie stosowalnych reguł (produkcji) bez moŝliwości ponownego rozwaŝenia tego wyboru w przyszłych krokach wnioskowania odtwarzalne (ang. tentative/revocable) - dopuszczające ponowny wybór i stosowanie reguł (produkcji) w przyszłości, czyli umoŝliwiające wybór alternatywnych reguł Systemy planowania działań: teoria Komutatywny system produkcji Systemem komutatywnym nazywamy system produkcji, który posiada następujące cechy: dowolna reguła stosowalna w kontekście D jest równieŝ stosowalna w kontekście wywiedzionym z D na skutek zastosowania kolejnych stosowalnych w D reguł jeŝeli cel jest spełniony w kontekście D, to jest on równieŝ spełniony w kontekście otrzymanym z D po wykonaniu stosowalnych w D reguł kontekst bazy faktów otrzymany na skutek wykonania ciągu stosowalnych w D reguł jest niezaleŝny od kolejności wykonywania tych reguł (inaczej: permutacji odpaleń reguł) 4
Systemy planowania działań: teoria Przykład komutatywnego system produkcji Reguły: 1. h :- e,f,g. 2. h :- a,b,f,g. 3. e :- a,b. 4. e :- g,a. 5. f :- c,d. 6. f :- b,d. Fakty(s 0 ): a. b. c. d. g. el(s g ): h. a 3. b e c 5. 1. d f h g g a c d 4. 5. e f 1. h a b c 5. 2. d f h g b d g a 6. 4. f e 1. h Systemy planowania działań: teoria Przykład komutatywnego system produkcji c.d. Przykładowe ciągi wykonań reguł: 3,5,1 albo 5,3,1 5,2 albo ----- 4,5,1 albo 5,4,1 6,4,1 albo 4,6,1 1 2 3 4 Reguły stosowalne w stanie początkowym w kolorze czerwonym 2 a b c 5. 2. d f h g 4 b d g a 6. 1 a 3. b e c 5. 1. d f h g 3 g a c d f 4. e 4. 5. e f 1. h 1. h 5
Systemy planowania działań: teoria Przykład komutatywnego system produkcji c.d. Przykładowe ciągi wykonań reguł: 3,5,1 albo 5,3,1 4,5,1 albo 5,4,1 6,4,1 albo 4,6,1 1 3 4 W systemie komutatywnym rozwaŝanie alternatywnej kolejności wykonań reguł stosowalnych w tym samym kontekście nie jest konieczne - system komutatywny pozwala na ograniczoną zmianę porządku wykonania reguł 1 a 3 b e c 5 d f h g 3 4 g a c d b d g a 4 e 5 f 5 4 f e h h Systemy planowania działań: teoria Komutatywny system produkcji - zalety JeŜeli system produkcji jest systemem komutatywnym, to wynikają z tego dwie korzyści: mechanizm wnioskowania systemu produkcji nie musi brać pod uwagę wszystkich permutacji wykonania reguł produkcji; moŝna uniknąć analizy tych ścieŝek wnioskowania, które prowadzą do rozwiązania a róŝnią się jedynie porządkiem w jakim wykonywane są reguły stosowalne w aktualnym stanie mechanizm wnioskowania moŝe korzystać z nieodtwarzalnej strategii wnioskowania 6
Systemy planowania działań: teoria Komutatywny system produkcji, a system planowania Systemy planowania działań: tworzą podklasę niekomutatywnych systemów reguł produkcji (ang. non-commutative production system) muszą wykorzystywać odtwarzalną strategię sterowania mechanizmu wnioskowania (ang. revocable control strategy) W systemach planowania krytyczne znaczenie dla rezultatu końcowego ma zatem kolejność planowanych i wykonywanych operacji. Systemy planowania działań: reprezentacja Dekompozycja problemu - istotny aspekt metod poszukiwania/konstruowania planu dekompozycja na poziomie formy reprezentacji stanu oraz reprezentacji akcji, umoŝliwiająca analizę jedynie wybranych elementów opisu stanu, przetwarzanych wybiórczo, a nie w całości problem ramki (ang. frame problem) - jak określić, które elementy w opisie stanu uległy zmianie, a które nie; inaczej: jak stwierdzić niezmienność/stałość pewnych faktów w trakcie przekształcania stanu w inny stan za pomocą operatora/akcji, czyli podczas planowania 7
Systemy planowania działań: reprezentacja Dekompozycja problemu - istotny aspekt metod poszukiwania/konstruowania planu dekompozycja na poziomie planu, umoŝliwiająca rozbijanie jednego złoŝonego/trudnego problemu na kilka mniejszych, prawdopodobnie prostszych, podproblemów większość problemów nie jest całkowicie dekomponowalna! moŝliwa częściowa dekompozycja z płytkim zaleŝnościami, która wymaga wykrycia wszelkich interakcji między podproblemami oraz eliminacji wynikających z tego konfliktów Wszystkie systemy planowania muszą zatem posiadać mechanizmy wykrywania i kontroli interakcji między problemami. Systemy planowania działań: niepewność informacji zy skutki wykonywanych operacji są zawsze przewidywalne? konstruowanie planu działań opiera się na załoŝeniu, Ŝe mamy pewność co do rezultatów jakie przynoszą wszystkie operacje uŝyte w planie! w dziedzinach o przewidywalnych skutkach planowanie jest moŝliwe mimo, iŝ operatory są jedynie formalnym opisem działań faktycznie podejmowanych w trakcie realizacji planu w dziedzinach nieprzewidywalnych moŝna rozwaŝać zbiory wszystkich moŝliwych skutków wykonania operacji, co pozwoli na rewizję planu, jeŝeli faktyczne rezultaty jego wykonania będą odbiegać od oczekiwanych 8
Systemy planowania działań: niepewność informacji o zrobić w sytuacji, gdy liczba moŝliwych skutków kaŝdej operacji jest duŝa, lecz prawdopodobieństwo ich wystąpienia niskie? REPLNOWNIE - ZDNI NIEDEKOMPONOWLNE konstruować tylko najbardziej prawdopodobny plan jeŝeli taki plan się nie powiedzie, porzucić tę część planu, której towarzyszą błędy i rozpocząć planowanie od ostatniej operacji zakończonej sukcesem Systemy planowania działań: niepewność informacji o zrobić w sytuacji, gdy liczba moŝliwych skutków kaŝdej operacji jest duŝa, lecz prawdopodobieństwo ich wystąpienia niskie? REPLNOWNIE - ZDNI DEKOMPONOWLNE konstruować tylko najbardziej prawdopodobny plan jeŝeli taki plan się nie powiedzie, zmienić te fragmenty planu, które okazały się błędne, a resztę planu pozostawić bez zmian - konieczna dekompozycja całkowita lub częściowa 9
Systemy planowania działań: niepewność informacji o zrobić w sytuacji, gdy liczba moŝliwych skutków kaŝdej operacji jest duŝa, lecz prawdopodobieństwo ich wystąpienia niskie? PLNOWNIE PRZYROSTOWE konstruować najpierw najbardziej prawdopodobny plan kaŝda operacja jest wykonywana skoro tylko znajdzie się w planie faktyczne skutki wykonania operacji są porównywane z oczekiwanymi rezultatami (monitoring planu) uzyskany stan faktyczny jest punktem wyjścia do dalszego planowania Struktura sterowania w systemach planowania działań otwarta pętla sterowania Stan końcowy S g Stan początkowy S 0 Mechanizm generacji planu akcje System sterowany W systemach planowania z otwartą pętlą sterowania konieczne jest posiadanie dodatkowej wiedzy na temat funkcjonowania sterowanego systemu. rak takiej wiedzy uniemoŝliwiłby bowiem skuteczne planowanie. 10
Struktura sterowania w systemach planowania działań zamknięta pętla sterowania Stan końcowy S g Mechanizm generacji planu akcja System sterowany Stan aktualny S i W systemach planowania z zamkniętą pętlą sterowania wiedza na temat funkcjonowania sterowanego systemu moŝe być niepełna lub niepewna. Rodzaje mechanizmów generacji planów Planowanie w przód od stanu początkowego do stanu końcowego - propagacja stanów w przód (progresja) Planowanie w tył od stanu końcowego do stanu początkowego - propagacja stanów wstecz (regresja) Systemy planowania w przód mają znaczenie tylko teoretyczne. Większość praktycznych systemów planowania, to systemy planowania wstecz. 11
Planowanie progresywne: generuj i testuj 1. Pod stan aktualny podstaw stan początkowy: s akt s 0 2. sprawdź, czy s g s akt : jeŝeli tak, to koniec(sukces plan gotowy) 3. utwórz zbiór wszystkich L O wszystkich operatorów O i, dla których spełnione są warunki stosowalności w stanie s akt ; 4. wybierz jeden operator 1 O i L O, wygeneruj próby stan s i+1, będący efektem zastosowanie tego operatora; jeŝeli L O =, to dokonaj nawrotu do poprzedniego stanu; jeŝeli brak alternatyw do nawrotów, to koniec(poraŝka brak planu) 5. a. sprawdź, czy w stanie s i+1 pojawiły się sprzeczne podcele; jeŝeli tak, to powrót do kroku 4 b. sprawdź, czy w stanie s i+1 pojawił się cykl 2 ; jeŝeli tak, to nawrót do stanu poprzedniego 3 s akt i przejście do kroku 4 6. podstaw: s akt s i+1 i przejdź do kroku 2 UWGI: 1-trzeba zastosować heurystyczny wybór np. na podstawie róŝnic pomiędzy stanami; 2-cykl oznacza ponowne wystąpienie tego samego stanu; 3-istnieje wiele sposobów eliminacji cykli! Planowanie progresywne: generuj i testuj Przykład 0 1 2 0 1 2 O i : move-up( ) s 0 3 4 5 s g 3 4 5 move-down( ) 6 7 8 6 7 8 move-left( ) move-right( ) Planowanie: 0 cykl! move-up s 0 0 3 move-left 3 cykl! move-down move-right 4 move-left 4 cykl! move-right 5 2 5 cykl! move-up move-down move-down 8 s g sukces! 12
Planowanie progresywne: wady Efektywność silnie uzaleŝniona od stopnia interakcji między operatorami im głębsze niejawne zaleŝności, tym większe wymagania zasobowe algorytmu planowania Proces generacji planu nie ukierunkowany stanem docelowym groźba kombinatorycznej eksplozji stanów Ściśle zdeterminowany porządek generacji planu zawsze od stanu początkowego do stanu docelowego Niska wydajność metody generacji planów moŝliwe zastosowanie tylko dla małych przestrzeni stanów Planowanie wstecz: system STRIPS Planowanie ukierunkowane stanem docelowym z wykorzystaniem stosu celów Reprezentacja stanów i akcji oparta na rachunku predykatów Specyficzna dziedzina planowania świat klocków 13
STRIPS: świat klocków ZałoŜenia świata klocków: powierzchnia/płaszczyzna/podłoŝe, na którym umieszczamy klocki jest gładka i nieograniczona wszystkie klocki mają takie same rozmiary klocki mogą być umieszczone jeden na drugim klocki mogą tworzyć stosy połoŝenie horyzontalne klocków jest nieistotne, liczy się ich wertykalne połoŝenie względem siebie manipulujemy klockami tylko za pomocą ramienia robota w danej chwili w ramieniu robota moŝe znajdować się tylko jeden klocek STRIPS: zbiór operatorów STK(x,y): umieszczenie klocka x na klocku y; w ramieniu robota musi znajdować się klocek x, a na klocku y nie moŝe znajdować się Ŝaden klocek UNSTK(x,y): zdjęcie klocka x z klocka y; ramię robota musi być puste/wolne a na klocku x nie moŝe znajdować się inny klocek PIKUP(x): podniesienie klocka x z podłoŝa; ramię robota musi być puste/wolne a na klocku x nie moŝe znajdować się inny klocek PUTDOWN(x): umieszczenie klocka x na podłoŝu; w ramieniu robota musi znajdować się klocek x 14
STRIPS: zbiór predykatów ON(x,y): ONTLE(x): LER(x): HOLDING(x): RMEMPTY: spełniony, gdy klocek x znajduje się na klocku y spełniony, gdy klocek x znajduje się bezpośrednio na podłoŝu spełniony, gdy powierzchnia klocka x jest pusta tzn. nie znajduje się na nim Ŝaden inny klocek spełniony, gdy w ramieniu robota znajduje się klocek x spełniony, gdy ramię robota jest puste/wolne Uniwersalne reguły rządzące światem klocków są reprezentowane z wykorzystaniem predykatów jako aksjomaty zapisane w postaci formuł rachunku predykatów, np.: [ x HOLDING(x)] RMEMPTY x ONTLE(x) y ON(x,y) x [ y ON(y,x)] LER(x) STRIPS: reprezentacja operatorów Problem ramki (ang. frame problem) w systemie STRIPS rozwiązano stosując odpowiednią formę reprezentacji operatorów. KaŜdy operatora zawiera: listę predykatów, które muszą być prawdziwe, aby jego uŝycie było moŝliwe - sekcja PREONDITION - warunki stosowalności operatora listę predykatów, które staną się prawdziwie po jego wykonaniu - sekcja DD listę predykatów, które przestaną być prawdziwe po jego wykonaniu - sekcja DELETE Wszystkie predykaty, które nie znalazły się na listach DD i DELETE pozostają niezmienione po wykonaniu operatora. Listy DD oraz DELETE opisują łącznie efekty uŝycia operatora. 15
STRIPS: definicja formalna operatorów STK(x,y): UNSTK(x,y): PIKUP(x): PUTDOWN(x): PREONDITION: LER(y) HOLDING(x) DELETE: LER(y) HOLDING(x) DD: RMEMPTY ON(x,y) PREONDITION: ON(x,y) LER(x) RMEMPTY DELETE: ON(x,y) RMEMPTY DD: HOLDING(x) LER(y) PREONDITION: LER(x) ONTLE(x) RMEMPTY DELETE: ONTLE(x) RMEMPTY DD: HOLDING(x) PREONDITION: HOLDING(x) DELETE: HOLDING(x) DD: ONTLE(x) RMEMPTY STRIPS: algorytm planowania wstecz Stos celów - podstawowa struktura danych generatora planu, zawierająca zarówno cele, jak i operatory słuŝące do ich osiągnięcia Przebieg planowania: wykrywanie róŝnic między stanem aktualnym a celem umieszczenie podcelów niespełnionych w akt. stanie na stosie wybór operatora redukującego róŝnicę zastąpienie podcelu wybranym operatorem na stosie umieszczenie na stosie warunków stosowalność wybranego operatora - nowy (złoŝony) cel rozkład warunku stosowalności na podcele - nowe cele jednostkowe/proste na stosie 16
STRIPS: przykład planowania Stan początkowy: ON(,) ONTLE() ONTLE() ONTLE(D) RMEPMTY D Stan końcowy (docelowy): ON(,) ON(,D) ONTLE() ONTLE(D) D STRIPS: przykład planowania Umieszczamy stan docelowy na stosie ON(,) ON(,D) ONTLE() ONTLE(D) D 17
STRIPS: przykład planowania Stan docelowy: D ON(,) ON(,D) RóŜnica między stanem aktualnym a celem ON(,) ON(,D) ONTLE() ONTLE(D) D STRIPS: przykład planowania ON(,) STK(,) ON(,D) Operator spełniający cel ze szczytu stosu ON(,) ON(,D) ONTLE() ONTLE(D) D 18
STRIPS: przykład planowania LER() HOLDING() STK(,) ON(,D) Warunek stosowalności operatora ON(,) ON(,D) ONTLE() ONTLE(D) D STRIPS: przykład planowania LER() HOLDING() LER() HOLDING() STK(,) ON(,D) Rozbicie warunku na podwarunki: kolejność wynika z wiedzy heurystycznej (stan HOLDING łatwiej zniweczyć) ON(,) ON(,D) ONTLE() ONTLE(D) D 19
STRIPS: przykład planowania LER() UNSTK(,) HOLDING() LER() HOLDING() STK(,) ON(,D) Operator spełniający cel ze szczytu stosu ON(,) ON(,D) ONTLE() ONTLE(D) D STRIPS: przykład planowania ON(,) LER() RMEPMTY UNSTK(,) HOLDING() LER() HOLDING() STK(,) ON(,D) Warunek stosowalności operatora ON(,) ON(,D) ONTLE() ONTLE(D) D 20
STRIPS: przykład planowania ON(,) LER() RMEPMTY ON(,) LER() RMEPMTY LER() UNSTK(,) HOLDING() LER() HOLDING() STK(,) ON(,D) Rozbicie warunku na podwarunki: kolejność heurystyczna ON(,) ON(,D) ONTLE() ONTLE(D) D STRIPS: przykład planowania ON(,) LER() RMEPMTY ON(,) LER() RMEPMTY UNSTK(,) HOLDING() LER() HOLDING() STK(,) ON(,D) Spełnione podwarunki usunięte ze stosu (LER() na podstawie reguł świata klocków) Ponownie sprawdzenie całego warunku stosowalności ON(,) ON(,D) ONTLE() ONTLE(D) D 21
STRIPS: przykład planowania ON(,) LER() RMEPMTY UNSTK(,) HOLDING() LER() HOLDING() STK(,) ON(,D) Warunek spełniony usuwamy ze stosu ON(,) ON(,D) ONTLE() ONTLE(D) D STRIPS: przykład planowania UNSTK(,) HOLDING() LER() HOLDING() STK(,) ON(,D) Usunięcie operatora ze szczytu stosu i... ON(,) ON(,D) ONTLE() ONTLE(D) jego wykonanie oraz... D Plan aktualny: UNSTK(,) dodanie operatora do planu HOLDING() ONTLE() ONTLE() ONTLE(D) LER() 22
STRIPS: przykład planowania lternatywny stos celów: ONTLE() LER() RMEMPTY ONTLE() LER() RMEPMTY HOLDING() PIKUP() LER() HOLDING() STK(,) ON(,D) ON(,) ON(,D) OTD * Podwarunki na stosie (LER( ) spełnione!) Warunek stosowalności operatora Operator spełniający cel ze szczytu stosu OTD * ONTLE() ONTLE(D) ON(,x) LER() RMEMPTY ON(,x) LER() RMEPMTY HOLDING() UNSTK(,x) LER() HOLDING() STK(,) ON(,D) ON(,) ON(,D) OTD * STRIPS: przykład planowania lternatywny stos celów: LER(x) HOLDING() Podwarunki na stosie LER(x) HOLDING() Warunek stosowalności operatora ON(,x) STK(,x) RMEMPTY Operator spełniający cel ze szczytu stosu ON(,x) LER() RMEPMTY HOLDING() UNSTK(,x) LER() HOLDING() STK(,) ON(,D) ykl (zapętlenie!) ON(,) ON(,D) ONTLE() ONTLE(D) D 23
STRIPS: przykład planowania ONTLE() LER() RMEMPTY Podwarunki spełnione Niespełniony (z reguł świata klocków) ONTLE() LER() RMEPMTY HOLDING() PIKUP() LER() HOLDING() STK(,) ON(,D) ON(,) ON(,D) ONTLE() ONTLE(D) D STRIPS: przykład planowania LER(D) HOLDING() RMEMPTY STK(,D) ONTLE() LER() RMEPMTY PIKUP() LER() HOLDING() STK(,) ON(,D) ON(,) ON(,D) ONTLE() ONTLE(D) Warunek stosowalności operatora Operator spełniający cel ze szczytu stosu lternatywny operator PUTDOWN(): taka sama liczba nie spełnionych PREONDITIONs (0), mniejsza liczba spełnionych DDs ( ON(,D) jest niŝej na stosie! ) D 24
STRIPS: przykład planowania LER(D) HOLDING() Warunek stosowalności spełniony STK(,D) Usunięcie operatora ze szczytu stosu i... ONTLE() LER() RMEPMTY jego wykonanie PIKUP() LER() HOLDING() STK(,) ON(,D) ON(,) ON(,D) ONTLE() ONTLE(D) D Plan aktualny: UNSTK(,) STK(,D) Dodanie operatora do planu STRIPS: przykład planowania ONTLE() LER() RMEPMTY PIKUP() LER() HOLDING() STK(,) ON(,D) ON(,) ON(,D) ONTLE() ONTLE(D) Warunek stosowalności spełniony Usunięcie operatora ze szczytu stosu i... jego wykonanie D Plan aktualny: UNSTK(,) STK(,D) PIKUP() Dodanie operatora do planu 25
STRIPS: przykład planowania LER() HOLDING() STK(,) ON(,D) Warunek stosowalności spełniony Usunięcie operatora ze szczytu stosu i... jego wykonanie ON(,) ON(,D) ONTLE() ONTLE(D) D Plan aktualny: UNSTK(,) STK(,D) PIKUP() STK(,) Dodanie operatora do planu STRIPS: przykład planowania el główny spełniony Warunek spełniony ON(,D) ON(,) ON(,D) ONTLE() ONTLE(D) D Stos pusty KONIE planowania! Plan aktualny: UNSTK(,) STK(,D) PIKUP() STK(,) 26
STRIPS: koniec przykładu Stan początkowy: Stan końcowy (docelowy): ON(,) ONTLE() ONTLE() ONTLE(D) RMEPMTY D ON(,) ON(,D) ONTLE() ONTLE(D) D Plan: UNSTK(,) STK(,D) PIKUP() STK(,) STRIPS: heurystyka Wiedza heurystyczna: kolejność umieszczania róŝnic (warunków) na stosie wybór operatora redukującego róŝnicę Kolejność róŝnic/warunków: wiedza heurystyczna wiedza o trudności w osiąganiu warunków (ten, który łatwo zniweczyć spełniamy później) zapis wiedzy heurystycznej odpowiednia kolejność warunków w sekcji PREONDITIONs operatora Wybór operatora: ten, który szybciej przybliŝy stan aktualny do stanu docelowego (ma mniejszą liczę niespełnionych warunków stosowalności) drugie kryterium: dodatkowo spełnia inny cel niŝej na stosie (efekt uboczny) 27
STRIPS: anomalia Sussman a Stan początkowy: ON(,) ONTLE() ONTLE() RMEPMTY Stan końcowy (docelowy): ON(,) ON(,) ONTLE() STRIPS: anomalia Sussmana a lternatywny stos celów: ON(,) ON(,) ONTLE() ON(,) ON(,) ONTLE() ON(,) ON(,) ONTLE() ON(,) ON(,) ONTLE() ON(,) ONTLE() ONTLE() RMEPMTY 28
STRIPS: anomalia Sussman a LER() RMEPMTY ON(,) LER() RMEPMTY ON(,) LER() UNSTK(,) RMEMPTY LER() RMEMPTY ONTLE() HOLDING() PIKUP() LER() HOLDING() ON(,) STK(,) ON(,) ON(,) ON(,) ONTLE() STRIPS: anomalia Sussman a LER() RMEPMTY ON(,) LER() RMEPMTY ON(,) LER() UNSTK(,) RMEMPTY LER() RMEMPTY ONTLE() HOLDING() PIKUP() LER() HOLDING() ON(,) STK(,) ON(,) ON(,) ON(,) ONTLE() Plan aktualny: UNSTK(,) 29
STRIPS: anomalia Sussman a HOLDING() PUTDOWN() RMEMPTY LER() RMEMPTY ONTLE() HOLDING() PIKUP() LER() HOLDING() ON(,) STK(,) ON(,) Warunek stosowalności ON(,) ON(,) ONTLE() Wybrany, bo spełnia ONTLE() poniŝej STRIPS: anomalia Sussman a HOLDING() PUTDOWN() LER() RMEMPTY ONTLE() HOLDING() PIKUP() LER() HOLDING() Plan aktualny: UNSTK(,) ON(,) STK(,) ON(,) PUTDOWN() ON(,) ON(,) ONTLE() 30
STRIPS: anomalia Sussman a LER() RMEMPTY ONTLE() HOLDING() PIKUP() LER() HOLDING() ON(,) STK(,) ON(,) ON(,) ON(,) ONTLE() Plan aktualny: UNSTK(,) PUTDOWN() PIKUP() STRIPS: anomalia Sussman a Plan aktualny: UNSTK(,) LER() HOLDING() ON(,) STK(,) ON(,) ON(,) ON(,) ONTLE() PUTDOWN() PIKUP() STK(,) 31
STRIPS: anomalia Sussman a LER() RMEPMTY ON(,) LER() UNSTK(,) LER() RMEMPTY ONTLE() HOLDING() PIKUP() LER() HOLDING() ON(,) STK(,) ON(,) ON(,) ONTLE() Plan aktualny: UNSTK(,) PUTDOWN() PIKUP() STK(,) STRIPS: anomalia Sussman a Plan aktualny: LER() RMEPMTY ON(,) UNSTK(,) LER() RMEMPTY ONTLE() PIKUP() LER() HOLDING() STK(,) ON(,) ON(,) ONTLE() UNSTK(,) PUTDOWN() PIKUP() STK(,) UNSTK(,) 32
STRIPS: anomalia Sussman a RMEPMTY Ponownie nie jest spełniony! LER() RMEMPTY ONTLE() PIKUP() LER() HOLDING() STK(,) ON(,) ON(,) ONTLE() Plan aktualny: UNSTK(,) PUTDOWN() PIKUP() STK(,) UNSTK(,) STRIPS: anomalia Sussman a HOLDING() RMEPMTY PUTDOWN() Nie STK(,) bo byłby cykl LER() RMEMPTY ONTLE() PIKUP() LER() HOLDING() STK(,) ON(,) ON(,) ONTLE() Plan aktualny: UNSTK(,) PUTDOWN() PIKUP() STK(,) UNSTK(,) 33
STRIPS: anomalia Sussman a HOLDING() PUTDOWN() LER() RMEMPTY ONTLE() PIKUP() LER() HOLDING() STK(,) ON(,) ON(,) ONTLE() Plan aktualny: UNSTK(,) PUTDOWN() PIKUP() STK(,) UNSTK(,) PUTDOWN() STRIPS: anomalia Sussman a Plan aktualny: UNSTK(,) LER() RMEMPTY ONTLE() PIKUP() LER() HOLDING() STK(,) ON(,) ON(,) ONTLE() PUTDOWN() PIKUP() STK(,) UNSTK(,) PUTDOWN() PIKUP() 34
STRIPS: anomalia Sussman a Plan aktualny: UNSTK(,) PUTDOWN() PIKUP() LER() HOLDING() STK(,) ON(,) ON(,) ONTLE() STK(,) UNSTK(,) PUTDOWN() PIKUP() STK(,) STRIPS: anomalia Sussman a Plan aktualny: UNSTK(,) LER() RMEMPTY ONTLE() HOLDING() PIKUP() LER() HOLDING() ON(,) STK(,) Ponownie nie jest spełnione! ON(,) ON(,) ONTLE() PUTDOWN() PIKUP() STK(,) UNSTK(,) PUTDOWN() PIKUP() STK(,) 35
STRIPS: anomalia Sussman a Plan aktualny: UNSTK(,) LER() RMEMPTY ONTLE() PIKUP() LER() HOLDING() STK(,) ON(,) ON(,) ONTLE() PUTDOWN() PIKUP() STK(,) UNSTK(,) PUTDOWN() PIKUP() STK(,) PIKUP() STRIPS: anomalia Sussman a Plan aktualny: UNSTK(,) PUTDOWN() PIKUP() LER() HOLDING() STK(,) Stos ON(,) pusty ON(,) koniec planowania! ONTLE() STK(,) UNSTK(,) PUTDOWN() PIKUP() STK(,) PIKUP() STK(,) 36
STRIPS: anomalia Sussman a Otrzymany plan nie jest optymalny: niektóre operacje zaraz po wykonaniu zostaną wycofane (bezpośredni następnik w planie to operacja odwrotna) takie dopełniające się pary operacji moŝna wykryć i usunąć z planu w drodze analizy końcowego planu, ale nie we wszystkich dziedzinach moŝliwe jest określenie, która operacja niweluję inną; dodatkowo, zbędne okazało się całe przetwarzanie, które zostało wykonane w trakcie planowania dla dopełniających się par operatorów Plan aktualny: UNSTK(,) PUTDOWN() PIKUP() STK(,) UNSTK(,) PUTDOWN() PIKUP() STK(,) PIKUP() STK(,) STRIPS: anomalia Sussman a Otrzymany plan nie jest optymalny: niektóre operacje zaraz po wykonaniu zostaną wycofane (bezpośredni następnik w planie to operacja odwrotna) takie dopełniające się pary operacji moŝna wykryć i usunąć z planu, ale nie we wszystkich dziedzinach moŝliwe jest określenie, która operacją niweluję inną; dodatkowo, zbędne okazało się całe przetwarzanie, które zostało wykonane w trakcie planowania dla takich dopełniających się par operatorów zy za nieoptymalny plan odpowiada uŝyta heurystyka, czy sam algorytm planowania liniowego? Sprawdźmy zatem skutki innych decyzji heurystycznych! 37
STRIPS: anomalia Sussman a lternatywny stos celów: LER() RMEPMTY ONTLE() LER() RMEMPTY ONTLE() HOLDING() PIKUP() LER() HOLDING() ON(,) STK(,) ON(,) ON(,) ON(,) ONTLE() Wszystkie warunki spełnione STRIPS: anomalia Sussman a lternatywny stos celów: Warunek spełniony LER() RMEMPTY ONTLE() PIKUP() LER() HOLDING() STK(,) ON(,) ON(,) ON(,) ONTLE() lternatywny plan: PIKUP() 38
STRIPS: anomalia Sussman a lternatywny stos celów: Warunek spełniony LER() HOLDING() STK(,) ON(,) ON(,) ON(,) ONTLE() lternatywny plan: PIKUP() STK(,) STRIPS: anomalia Sussman a lternatywny stos celów: itd. ON(,) ON(,) ON(,) ONTLE() 39
STRIPS: anomalia Sussman a Stan początkowy: lternatywny kompletny plan: PIKUP()... STK(,) UNSTK(,) PIKUP() STK(,) PUTDOWN() UNSTK(,) UNSTK(,) PUTDOWN() Stan końcowy: PUTDOWN()... PIKUP() STK(,) PIKUP() STK(,) STRIPS: anomalia Sussman a lternatywny plan równieŝ nie jest optymalny (a nawet jest gorszy!): jest dłuŝszy (o 4 operacje) zawiera więcej par niwelujących się operacji Za brak optymalności planowania nie odpowiada zatem uŝyta heurystyka, lecz sam algorytm planowania liniowego! lternatywny kompletny plan: PIKUP()... STK(,) PIKUP() UNSTK(,) STK(,) PUTDOWN() UNSTK(,) UNSTK(,) PUTDOWN() PUTDOWN() PIKUP()... STK(,) PIKUP() STK(,) 40
STRIPS: anomalia Sussman a Stan początkowy: Stan końcowy: Optymalny plan: UNSTK(,) PUTDOWN() PIKUP() STK(,) PIKUP() STK(,) Nieoptymalny plan nie jest jedynie efektem uŝytej heurystyki, lecz wynika z ograniczeń samego algorytmu planowania liniowego - nie jest istotna kolejność osiągania celów i porządek wybierania operatorów, lecz fakt, iŝ metoda nie uwzględnia interakcji zachodzących pomiędzy warunkami i operatorami. Poszukiwanie planu: metoda regresji celów Planowanie opiera się na zbiorze celów, spośród których dowolny podcel moŝe być wybrany jako kolejny, który naleŝy osiągnąć Planowanie odbywa się wstecz - od stanu docelowego do stanu początkowego Wybierany ze zbioru podcel jest traktowany tak jakby był ostatnim, który naleŝy osiągnąć (inaczej: zakładamy, Ŝe reszta celów jest juŝ spełniona i szukamy tylko tych operacji, które miałyby dopełnić plan poprzez spełnienie ostatniego podcelu) Wybrany operator poszerza zbiór podcelów o swoje warunki stosowalności 41
Regresja celów: przykład (anomalia Sussman a) Stan początkowy: ON(,) ONTLE() ONTLE() RMEPMTY Stan końcowy (docelowy): ON(,) ON(,) ONTLE() * * - dla uproszczenia rozwaŝań podcel ONTLE() nie będzie brany pod uwagę Regresja celów: przykład Drzewo przeszukiwania w przestrzeni zbiorów celów: STK(,) LER() HOLDING() ON(,) ON(,) ON(,) STK(,) LER() HOLDING() ON(,) k o n f l i k t 42
Regresja celów: przykład Drzewo przeszukiwania w przestrzeni zbiorów celów: STK(,) ON(,) ON(,) STK(,) UNSTK(x,) LER() HOLDING() ON(,) UNSTK(,x) PIKUP() LER() HOLDING() ON(,) STK(,) k o n f l i k t k o n f l i k t ON(x,) LER(x) RMEPMTY HOLDING() ON(,) Regresja celów: przykład Drzewo przeszukiwania w przestrzeni zbiorów celów: STK(,) ON(,) ON(,) STK(,) UNSTK(x,) LER() HOLDING() ON(,) UNSTK(,x) PIKUP() LER() HOLDING() ON(,) STK(,) k o n f l i k t k o n f l i k t ON(x,) LER(x) RMEPMTY HOLDING() ON(,) RMEPMTY LER() ONTLE() LER() ON(,) 43
Regresja celów: przykład Drzewo przeszukiwania w przestrzeni zbiorów celów: STK(,) ON(,) ON(,) STK(,) UNSTK(x,) LER() HOLDING() ON(,) UNSTK(,x) PIKUP() LER() HOLDING() ON(,) STK(,) k o n f l i k t k o n f l i k t ON(x,) LER(x) RMEPMTY HOLDING() ON(,) RMEPMTY LER() ONTLE() LER() ON(,) ON(,x) LER() RMEPMTY LER() ON(,) jeŝeli x= to konflikt; jeŝeli x= to cykl Regresja celów: przykład Drzewo przeszukiwania w przestrzeni zbiorów celów: STK(,) ON(,) ON(,) STK(,) UNSTK(x,) LER() HOLDING() ON(,) UNSTK(,x) PIKUP() LER() HOLDING() ON(,) STK(,) k o n f l i k t k o n f l i k t ON(x,) LER(x) RMEPMTY HOLDING() ON(,) RMEPMTY LER() ONTLE() LER() ON(,) ON(,x) LER() RMEPMTY LER() ON(,) LER() HOLDING() LER() HOLDING() jeŝeli x= to konflikt; jeŝeli x= to cykl k o n f l i k t 44
Regresja celów: operacja regresji Planowanie wstecz opiera się na załoŝeniu, Ŝe operator wybrany do spełnienia podcelu jest ostatnim w planie, a pozostałe podcele zarówno przed, jak i po jego wykonaniu są juŝ spełnione ZałoŜenie to jest prawdziwe tylko wtedy, gdy operatory są całkowicie niezaleŝne; najczęściej jednak jest inaczej - wykonanie jednego operatora moŝe zniweczyć skutki działania innego operatora Wsteczne zastosowanie operatora, określane mianem regresji operatora, wymaga kaŝdorazowo sprawdzenia jakie warunki muszą być spełnione, aby wykonanie operacji było moŝliwe i prowadziło do osiągnięcia podcelu bez naruszania innych (juŝ spełnionych) podcelów Regresja celów: operacja regresji Regresja podcelu za pomocą operatora, który nie wpływa na ten podcel daje w rezultacie ten sam podcel *, np. REGRESSION(ON(,), PIKUP()) = ON(,) * - jest to najczęstszy przypadek regresji operatora 45
Regresja celów: operacja regresji Regresja podcelu operatorem, których prowadzi do osiągnięcia tego podcelu nie wymaga spełnienia Ŝadnych warunków (warunki stosowalności operatora są obsługiwane w innych sposób * ), np. REGRESSION(ON(,),STK(,)) = True * - zgodnie z algorytmem dodawane są do zbioru celów Regresja celów: operacja regresji Regresja podcelu za pomocą niektórych operatorów moŝe prowadzić do sytuacji, w której spełnienie tego celu nie będzie juŝ więcej moŝliwe *, np. REGRESSION(RMEPMTY, PIKUP()) = False * - taka ścieŝka poszukiwania planu oznacza brak moŝliwości dalszego planowania 46
Regresja celów: operacja regresji Regresja jednego podcelu moŝe - jako efekt uboczny - prowadzić równieŝ do osiągnięcia podcelu, do którego spełnienia bezpośrednio nie została uŝyta *, np. REGRESSION(ON(,D), STK(,D)) = True ale równieŝ REGRESSION(RMEPMTY,STK(,D)) = True * - podcele o wartości True mogą zostać usunięte ze zbioru celów jako na pewno spełnione Regresja celów: warunki zakończenia planowania Proces planowania odbywa się wstecz - nie wiadomo jakie operacje zostały (a w zasadzie: zostaną) wykonane przed aktualnym operatorem oraz jakie były ich skutki poza tym, Ŝe doprowadziły do spełnienia wszystkich oprócz jednego podcelu ze zbioru celów Nie są znane skutki uboczne wykonania tych wcześniejszych operacji i ich ewentualny wpływ na inne podcele - Ŝaden podcel nie moŝe być zignorowany zanim nie ulegnie regresji do warunku True Proces planowania moŝe zakończyć się, gdy mamy pewność, Ŝe Ŝadne warunki nie ulegną juŝ zmianie - wszystkie podcele są jednocześnie spełnione w stanie początkowym i nie ma potrzeby stosowania jakichkolwiek operatorów poprzedzających ciąg operacji dopiero co znaleziony 47
Regresja celów: przykład Drzewo poszukiwania planu w przestrzeni zbiorów celów: PUTDOWN(x) HOLDING(x) LER() ONTLE() LER() ON(,) jeŝeli x= to konflikt; jeŝeli x= lub to konflikt STK(x,y) HOLDING(x) LER(y) LER() ONTLE() LER() ON(,) RMEPMTY LER() ONTLE() LER() ON(,) Regresja celów: przykład Drzewo poszukiwania planu w przestrzeni zbiorów celów: PUTDOWN(x) HOLDING(x) LER() ONTLE() LER() ON(,) jeŝeli x= to konflikt; jeŝeli x= lub to konflikt STK(x,y) HOLDING(x) LER(y) LER() ONTLE() LER() ON(,) RMEPMTY LER() ONTLE() LER() ON(,) UNSTK(x,) niespełnialny! False ON(x,) LER(x) ONTLE() LER() ON(,) 48
Regresja celów: przykład Drzewo poszukiwania planu w przestrzeni zbiorów celów: PUTDOWN(x) HOLDING(x) LER() ONTLE() LER() ON(,) jeŝeli x= to konflikt; jeŝeli x= lub to konflikt STK(x,y) HOLDING(x) LER(y) LER() ONTLE() LER() ON(,) RMEPMTY LER() ONTLE() LER() ON(,) UNSTK(x,) niespełnialny False ON(x,) LER(x) ONTLE() LER() ON(,) UNSTK(x,) niespełnialny! False ON(x,) LER(x) ONTLE() LER() ON(,) Regresja celów: przykład Drzewo poszukiwania planu w przestrzeni zbiorów celów: PUTDOWN(x) HOLDING(x) LER() ONTLE() LER() ON(,) jeŝeli x= to konflikt; jeŝeli x= lub to konflikt STK(x,y) HOLDING(x) LER(y) LER() ONTLE() LER() ON(,) RMEPMTY LER() ONTLE() LER() ON(,) UNSTK(x,) niespełnialny False ON(x,) LER(x) ONTLE() LER() ON(,) PUTDOWN() UNSTK(x,) True LER() HOLDING() LER() ON(,) niespełnialny False ON(x,) LER(x) ONTLE() LER() ON(,) 49
Regresja celów: przykład Drzewo poszukiwania planu w przestrzeni zbiorów celów: PUTDOWN(x) HOLDING(x) LER() ONTLE() LER() ON(,) jeŝeli x= to konflikt; jeŝeli x= lub to konflikt STK(x,y) HOLDING(x) LER(y) LER() ONTLE() LER() ON(,) RMEPMTY LER() ONTLE() LER() ON(,) UNSTK(x,) False ON(x,) LER(x) ONTLE() LER() ON(,) STK(,) niespełnialny HOLDING() LER() True LER() ONTLE() LER() PUTDOWN() UNSTK(x,) True LER() HOLDING() LER() ON(,) niespełnialny False ON(x,) LER(x) ONTLE() LER() ON(,) Regresja celów: heurystyki Warunkiem zatrzymania procesu planowania jest osiągnięcie stanu początkowego (wnioskowanie wstecz) - wiedza o tym stanie jest zatem kluczowa dla podejmowania decyzji o charakterze heurystycznym JeŜeli jeden z podcelów ze zbioru celów jest spełniony w stanie początkowym, to próbę jego osiągnięcia naleŝy odłoŝyć na później - być moŝe osiągnięcie jego nie będzie wymagało Ŝadnych dodatkowych nakładów, gdyŝ spełnianie innych podcelów nie naruszy jego prawdziwości JeŜeli jakiś podcel jest łatwo zniweczyć lub łatwo osiągnąć, to jego spełnienie naleŝy odłoŝyć na później 50
Regresja celów: przykład Drzewo poszukiwania planu w przestrzeni zbiorów celów: PUTDOWN(x) konflikt HOLDING(x) LER() ONTLE() LER() ON(,) STK(x,y) konflikt HOLDING(x) LER(y) LER() ONTLE() LER() ON(,) RMEPMTY LER() ONTLE() LER() ON(,) UNSTK(x,) False ON(x,) LER(x) ONTLE() LER() ON(,) STK(,) niespełnialny Spełniony w S 0 HOLDING() LER() True LER() ONTLE() LER() PUTDOWN() UNSTK(x,) True LER() HOLDING() LER() ON(,) niespełnialny False ON(x,) LER(x) ONTLE() LER() ON(,) Regresja celów: podsumowanie Generowane drzewo poszukiwań planu jest bardzo rozgałęzione algorytm wymaga analizy wszystkich moŝliwych uporządkowań podcelów (ewentualne nawroty!), jak równieŝ wszystkich moŝliwych sposobów ich spełnienia naliza taka jest bezcelowa w problemach całkowicie dekomponowalnych brak zaleŝności między podcelami lub zaleŝności te są bardzo słabe, więc kolejność w jakiej osiągamy wtedy podcele nie ma znaczenia rak uniwersalnego mechanizmu, który wskazywałby najlepsze kierunki poszukiwania planu, co moŝe prowadzić do analizy zupełnie marginalnych elementów planu, których występowanie w ostatecznym planie jest nieistotne 51
Planowanie liniowe: podsumowanie W metodach planowania liniowego plan generowany jest sekwencyjnie dla kolejnych podcelów, tak długo aŝ nie zostanie osiągnięty stan docelowy plan prowadzący do spełnienia pewnego podcelu nie jest generowany dopóty, dopóki nie zakończy się planowanie dla podcelu bezpośrednio go poprzedzającego kompletny plan składa się z ciągu operacji prowadzących do pierwszego podcelu, po których następuje ciąg operacji spełniających drugi podcel, itd. kompletny plan jest liniowo uporządkowaną sekwencją kompletnych podplanów Wprowadzenie do Sztucznej Inteligencji Wykład 7 Informatyka Studia InŜynierskie 52
Planowanie nieliniowe: charakterystyka W metodach planowania nieliniowego generowanie operacji na rzecz jednego celu moŝe przeplatać się z operacjami prowadzącymi do spełnienia innego podcelu Planowanie prowadzące do spełnienia pewnego podcelu moŝe zostać przerwane w celu zbudowania planu dla innego podcelu, po czym moŝliwy jest powrót do pierwotnego planowania lub moŝe rozpocząć się generacja planu dla jeszcze innego podcelu Nieliniowe konstruowanie planu przebiega niezaleŝnie od liniowej (i późniejszej) realizacja planu Plan nie jest wykonywany zanim nie zostanie kompletnie zbudowany Planowanie nieliniowe: charakterystyka planowanie odbywa się w przestrzeni planów a nie w przestrzeni stanów (sytuacji) rozpoczynamy od niepełnego, ogólnego planu operatory słuŝą do uszczegóławiania bądź modyfikacji planu: dodanie nowej operacji, zmiana kolejności operacji, wiązanie zmiennej wolnej itp. rozbudowa planu kończy się, gdy otrzymamy kompletny plan prowadzący od S 0 do S g planowanie odbywa się wstecz (wybieramy operatory na podstawie osiąganych przez nie warunków), aby ograniczyć rozmiar przeszukiwanej przestrzeni planów ustalanie kolejności operacji i wiązania zmiennych odbywa się zgodnie ze strategią least-commitment rezultatem planowanie jest częściowo uporządkowany plan w przeciwieństwie do systemów liniowych, w których plan jest całkowicie uporządkowanym ciągiem operacji 53
Planowanie nieliniowe: system NOH częściowy plan reprezentowany jest przez graf mamy cztery typy wierzchołków: warunki, akcje, S (ang. split) łączy wierzchołki, które nie są uporządkowane J (ang. join) łączy wierzchołki, które są juŝ uporządkowane planowanie podlega dodaniu operacji spełniającej warunek i uszczegóławianiu planu w oparciu o zbiór procedur zwanych krytykami: Resolveonflicts EliminateRedundantPreconditions UseExistingObjects przy ustalaniu kolejności operacji w planie wykorzystuje się strategię least-commitment NOH: przykład (anomalia Sussman a) Stan początkowy: ON(,) ONTLE() ONTLE() RMEPMTY Stan końcowy (docelowy): ON(,) ON(,) ONTLE() * * - dla uproszczenia rozwaŝań podcel ONTLE() nie będzie brany pod uwagę 54
NOH: przykład (anomalia Sussman a) Definicja operatorów PUT-ON(x,y): umieszczenie klocka x na klocku y (STK) albo klocka x na podłoŝu (PUTDOWN); klocek x musi być pusty/wolny i na klocku y nie moŝe znajdować się Ŝaden klocek; operacja ta obejmuje równieŝ podniesienie klocka (UNSTK/PIKUP) przed umieszczeniem go w miejscu y PUT-ON(x,y): PREONDITION: LER(x) LER(y) DELETE: LER(y) ON(x,z) DD: ON(x,y) LER(z) NOH: przykład (anomalia Sussman a) Konstruowanie planu w przestrzeni planów: Etap 1: inicjalizacja planu Legenda: S - split ON(,) ON(,) J - join Zainicjowanie grafu planu stanem docelowym. - condition - action Etap 2: dekompozycja celu ON(,) S ON(,) J Rozbicie złoŝonego warunku na warunku proste. Porządek osiągania podcelów pozostaje nieokreślony strategia least-commitment! 55
NOH: przykład (anomalia Sussman a) Konstruowanie planu w przestrzeni planów: Etap 3: wybór podcelu i wybór operatora Operator spełniający podcel STK(,) S S S LER() LER() LER() LER() J J PUT-ON(,) PUT-ON(,) J Wybór akcji prowadzących do spełnienia podcelów. Umieszczenie ich warunków stosowalności wcześniej w planie. Dekompozycja złoŝonych warunków stosowalności na podcele. Operator spełniający podcel STK(,) System NOH: krytyka Resolveonflicts el: analiza sprzeczności w porządku operatorów w planie Procedura: utworzenie listy wystąpień wszystkich literałów powtarzających się w planie wykrywanie konfliktów usunięcie literału z opisu stanu przez jeden z operatorów nie moŝe poprzedzać sprawdzania warunku prawdziwości tego literału przez inny operator w planie ustalenie właściwej kolejności operacji w planie na podstawie listy konfliktów eliminacja konfliktu przez umieszczenie operatora usuwającego literał później w planie 56
NOH: przykład (anomalia Sussman a) Konstruowanie planu w przestrzeni planów: Etap 3: naliza planu - wywołanie tzw. krytyk S 1 S 2 4 S 5 LER() LER() LER() LER() J J 3 6 PUT-ON(,) PUT-ON(,) Właściwa kolejność! J KaŜdorazowe umieszczenie akcji w planie wymaga jego analizy. naliza kolejności operacji krytyka Resolveonflicts: LER(): asserted: 2 dla LER() retracted: 3 dla listy DEL operatora PUT-ON(,) asserted: 4 dla LER() LER(): asserted: 5 dla LER() retracted: 6 dla listy DEL operatora PUT-ON(,) Konflikt! NOH: przykład (anomalia Sussman a) Konstruowanie planu w przestrzeni planów: Etap 3: naliza planu - wywołanie tzw. krytyk S 1 LER() S LER() 2 4 LER() S 5 LER() J J 3 PUT-ON(,) 6 PUT-ON(,) Ten warunek LER() zatem moŝna usunąć! Warunek LER() nadal spełniony po PUT-ON(,)! KaŜdorazowe zmiana kolejności akcji w planie wymaga jego analizy. Szukanie nadmiarowych podcelów krytyka EliminateRedundantPreconditions: LER(): asserted: 2 dla LER() Nadmiar! asserted: 4 dla LER() retracted: 3 dla listy DEL operatora PUT-ON(,) 57
NOH: przykład (anomalia Sussman a) Konstruowanie planu w przestrzeni planów: Etap 4: wybór podcelu i operatora LER() Warunek nie jest spełniony w stanie początkowym! S S LER() LER() J PUT-ON(,) J PUT-ON(,) Ponowny wybór akcji prowadzących do spełnienia podcelów (jeszcze nie spełnionych). Umieszczenie ich warunków stosowalności wcześniej w planie: Operator spełniający LER() PUT-ON(,x) podcel LER() S S LER() LER() J PUT-ON(,) J PUT-ON(,) NOH: przykład (anomalia Sussman a) Konstruowanie planu w przestrzeni planów: Etap 4: analiza planu wywołanie tzw. krytyk 1 7 LER() PUT-ON(,x) S 4 LER() 6 S J PUT-ON(,) LER() 5 J Właściwa kolejność! 3 PUT-ON(,) KaŜdorazowe umieszczenie akcji w planie wymaga jego analizy. naliza kolejności operacji krytyka Resolveonflicts: LER(): asserted: 1 dla LER() retracted: 6 dla listy DEL operatora PUT-ON(,) asserted: 5 dla LER() Konflikt! 58
NOH: przykład (anomalia Sussman a) Konstruowanie planu w przestrzeni planów: Etap 4: analiza planu - wywołanie tzw. krytyk 1 7 LER() PUT-ON(,x) S S 4 LER() J LER() 5 6 PUT-ON(,) Warunek LER() nadal spełniony po PUT-ON(,x)! J 3 PUT-ON(,) Ten warunek LER() zatem moŝna usunąć! KaŜdorazowe zmiana kolejności akcji w planie wymaga jego analizy. Szukanie nadmiarowych podcelów krytyka EliminateRedundantPreconditions: LER(): asserted: 1 dla LER() Nadmiar! asserted: 5 dla LER() retracted: 6 dla listy DEL operatora PUT-ON(,) NOH: przykład (anomalia Sussman a) Konstruowanie planu w przestrzeni planów: Etap 5: wybór podcelu i operatora LER() PUT-ON(,x) S J PUT-ON(,) PUT-ON(,) LER() Wszystkie pozostałe podcele spełnione w stanie początkowym koniec planowania!!! Wynik: gotowy kompletny plan PUT-ON(,x) PUT-ON(,) PUT-ON(,) 59
System NOH: krytyka UseExistingObjects elem jest ustalenie koniecznych wiązań zmiennych Procedura: utworzenie listy zmiennych wolnych w planie wykrywanie wszystkich obiektów występujących w planie wybór obiektów, który uŝycie upraszcza plan eliminacja nadmiarowych obiektów System NOH: podsumowanie Zalety: Pierwszy system wykorzystujący planowanie częściowe w przestrzeni planów Nieliniowy przebieg planowania niezaleŝnie od liniowej realizacji planu Dekompozycja problemu na podproblemy i niezaleŝna konstrukcja podplanów Wady: rak mechanizmów nawrotu decyzje podjęte podczas planowania (wybór podcelu, wybór operatora, ustalanie kolejności operacji, wiązania zmiennych) pozostają nie zmiennione Wysokie koszty obliczeniowe procedur-krytyk rak gwarancji znalezienia planu (system niepełny!) nie jest realizowane przeszukiwanie przestrzeni planów z nawrotami 60
Planowanie nieliniowe: podsumowanie System NONLIN casual links, mechanizmy nawrotu, wykrywanie zagroŝeń/konfliktów (ang. treats), ich eliminacja, nawroty typu dependency-directed, operatory modyfikacji planu System TWEK formalizacja planowania z wykorzystaniem mechanizmów spełniania ograniczeń (ang. constraint posting), gwarantująca poprawność i pełność algorytmu System SNLP/POP systematyczne częściowe planowanie, większa ekspresywność języka opisu celów Systemy planowania: zarys rozwoju GPS (Newell&Simon, 1957) STRIPS (Fikes&Nilsson, 1972) Hacker (Sussman, 1973) Warplan (Warrren, 1974) Interplan (Tate, 1974) NOH (Sacerdoti, 1975) Nonlin (Tate, 1976) Tweak (hapman, 1987) SNLP/POP (Soderland&Weld, 1991) UPOP (Weld, 1992) NLP (Peot&Smith, 1992) urdian (Draper&Weld&Hanks, 1993) urdian (Draper&Weld&Hanks, 1993) 61