1 Wprowadzenie do Sztucznej Inteligencji Wykład 6 Informatyka Studia Inżynierskie Systemy planowania działań 2 Planowanie to jest techniką rozwiązywania zywania problemów 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 b celem. Zbiór r operatorów {O i } Stan początkowy S 0 System Planowania Działań Stan końcowy S g P l a n 1
Reprezentacje wykorzystywane w algorytmach przeszukiwania 3 Reprezentacja akcji - realizowana przez mechanizm generacji następnik pników Reprezentacja stanów - kompletny opis stanu; akcje dokonują transformacji całych stanów; ; odwołanie do niej następuje w: generatorze następnik pników, heurystycznej funkcji oceny, w funkcji wykrywania celu Reprezentacja celu - wykorzystywana jedynie przy oszacowaniu heurystycznym i testowaniu celu, które pełni nią w algorytmie przeszukiwania wyłą łącznie rolę czarnych skrzynek - brak innych odwołań do definicji celu Reprezentacja rozwiązania zania - ciągła, nieprzerwana ścieżka od stanu początkowego do celu Przeszukiwanie w celu generowania planu? 4 Przykład: Zaplanować zakupy mleka, gazety i wiertarki. Przestrzeń przeszukiwania: Iść_do_szkoły pójść_na_wykładad Start pójść_spać Iść_do_marketu kupić_mleko kupić_makaron kupić_chleb el usiąść ąść_w_fotelu czytać_ksi _książkę itd., itp. siedzieć_dalej W systemach planowania, gdy liczba dopuszczalnych akcji jest duża, przestrzeń może e być ogromna!!! 2
Przeszukiwanie w celu generowania planu? 5 W algorytmach przeszukiwani funkcja heurystyczna wskazuje potencjalnie najlepsze kierunki przeszukiwania Funkcja heurystyczne nie jest jednak nieomylną wyrocznią! Skoro wybór r odbywa się trochę na zasadzie zgadywania,, każda dopuszczalna zmiana (kierunek) musi być przeanalizowana Funkcja oceny heurystycznej nie pozwala wyeliminować akcji w trakcie przeszukiwania, lecz pomaga jedynie je uporządkowa dkować Określona akcja jest analizowana jednak nie dlatego, że e prowadzi do osiągni gnięcia celu, lecz dlatego, że e jest dopuszczalna w danym stanie Planowanie: inna reprezentacja 6 Reprezentacja w systemach planowanie powinna: dopuszczać analizę częś ęści składowych stanów, akcji i celu umożliwia liwiać dekompozycję stanów, akcji i celu Mechanizm planowania powinien generować plan niekoniecznie w sposób przyrostowy poprzez dodawanie akcji po kolei, poczynając c od stanu inicjującego cego Większo kszość obiektów świata, z którym planujmy jest niezależna na od siebie,, więc c należy y redukować złożoność zadania planowania poprzez jego dekompozycję na podplany Wniosek: tylko deklaratywny język j opisu stanów, akcji i celów pozwoli spełni nić powyższe warunki 3
Rodzaje mechanizmów w generacji planów 37 Planowanie w przód od stanu początkowego do stanu końcowego - propagacja stanów w w przód d (progresja) Planowanie w tył od stanu końcowego do stanu początkowego - propagacja stanów w wstecz (regresja) Systemy planowania w przód d mają znaczenie tylko teoretyczne. Większo kszość praktycznych systemów planowania, to systemy planowania wstecz. Planowanie progresywne: generuj i testuj 38 1. Pod stan aktualny podstaw stan początkowy: s akt s 0 2. sprawdź,, czy s g s akt : jeżeli eli tak, to koniec(sukces plan gotowy) 3. utwórz zbiór r wszystkich L O wszystkich operatorów O i, dla których spełnione są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 b efektem zastosowanie tego operatora; jeżeli eli L O =,, to dokonaj nawrotu do poprzedniego stanu; jeżeli eli brak alternatyw do nawrotów, w, to koniec(porażka ka brak planu) 5. a. sprawdź,, czy w stanie s i+1 pojawiły y się sprzeczne podcele; jeżeli eli tak, to powrót do kroku 4 b. sprawdź,, czy w stanie s i+1 pojawił się cykl 2 ; jeżeli eli tak, to nawrót 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 r np. na podstawie różnic r pomiędzy stanami; 2-cykl oznacza ponowne wystąpienie tego samego stanu; 3-istnieje wiele sposobów w eliminacji cykli! 4
Planowanie progresywne: generuj i testuj 39 Przykład 0 1 2 0 1 2 O i : move-up up( ) s 0 3 4 5 s g 3 4 5 move-down down( ) 6 7 8 6 7 8 move-left left( ) move-right right( ) Planowanie: 0 cykl! s 0 move-up 0 3 3 move-down move-right move-left cykl! 4 4 move-right move-left cykl! 5 2 5 move-down move-up move-down cykl! 8 s g sukces! Planowanie progresywne: wady 40 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 Efektywność silnie uzależniona od stopnia interakcji między operatorami im głęg łębsze niejawne zależno ności, tym większe wymagania zasobowe algorytmu planowania 5
Systemy planowania działań: metody 41 Wykorzystywane metody Planowanie liniowe Dekompozycja problemu (częś ęściowa lub całkowita) Regresja operatorów Strategia least-commitment Planowanie nieliniowe Planowanie hierarchiczne Planowanie wstecz: system STRIPS 42 Planowanie ukierunkowane stanem docelowym z wykorzystaniem stosu celów Reprezentacja stanów w i akcji oparta na rachunku predykatów Specyficzna dziedzina planowania świat klocków 6
STRIPS: świat klocków 43 Założenia świata klocków: powierzchnia/płaszczyzna/pod aszczyzna/podłoże, na którym umieszczamy klocki jest gładka g 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 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 e znajdować się tylko jeden klocek STRIPS: zbiór r operatorów 48 STK(x,y): umieszczenie klocka x na klocku y; ; w ramieniu robota musi znajdować się klocek x,, a na klocku y nie może 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 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 e znajdować się inny klocek PUTDOWN(x): umieszczenie klocka x na podłożu; w ramieniu robota musi znajdować się klocek x 7
STRIPS: zbiór r predykatów 49 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 y rządz dzące światem klocków w sąs reprezentowane z wykorzystaniem tych predykatów w jako aksjomaty zapisane w postaci formuł rachunku predykatów, np.: [ x x HOLDING(x)] RMEMPTY x x ONTLE(x) y y ON(x,y) x x [ [ y y ON(y,x)] LER(x) STRIPS: reprezentacja operatorów 50 Problem tła t (ang. frame problem) ) w systemie STRIPS rozwiązano zano stosując c odpowiednią formę reprezentacji operatorów. Każdy operatora zawiera: listę predykatów, które muszą być prawdziwe, aby jego użycie u było 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 u operatora. 8
STRIPS: definicja formalna operatorów 52 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 53 Stos celów - podstawowa struktura danych generatora planu, zawierająca zarówno cele, jak i operatory służąs żące do ich osiągni gnięcia Przebieg planowania: wykrywanie różnic r między stanem aktualnym a celem umieszczenie podcelów w niespełnionych nionych w akt. stanie na stosie wybór r operatora redukującego różnicr nicę zastąpienie podcelu wybranym operatorem na stosie umieszczenie na stosie warunków w stosowalność wybranego operatora - nowy (złożony) ony) cel rozkład warunku stosowalności na podcele - nowe cele jednostkowe (proste) na stosie 9
STRIPS: przykład planowania 54 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 55 Umieszczamy stan docelowy na stosie ON(,) ON(,D) ONTLE() ONTLE(D) D 10
STRIPS: przykład planowania 56 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 57 ON(,) STK(,) ON(,D) Operator spełniaj niający cel ze szczytu stosu ON(,) ON(,D) ONTLE() ONTLE(D) D 11
STRIPS: przykład planowania 58 LER() HOLDING() STK(,) ON(,D) Warunek stosowalności operatora ON(,) ON(,D) ONTLE() ONTLE(D) D STRIPS: przykład planowania 59 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 12
STRIPS: przykład planowania 60 LER() UNSTK(,) HOLDING() LER() HOLDING() STK(,) ON(,D) Operator spełniaj niający cel ze szczytu stosu ON(,) ON(,D) ONTLE() ONTLE(D) D STRIPS: przykład planowania 61 ON(,) LER() RMEPMTY UNSTK(,) HOLDING() LER() HOLDING() STK(,) ON(,D) Warunek stosowalności operatora ON(,) ON(,D) ONTLE() ONTLE(D) D 13
STRIPS: przykład planowania 62 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 63 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 14
STRIPS: przykład planowania 64 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 65 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() 15
STRIPS: przykład planowania 66 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 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 67 lternatywny stos celów: LER(x) HOLDING() Podwarunki na stosie LER(x) HOLDING() ON(,x) STK(,x) RMEMPTY Warunek stosowalności operatora Operator spełniaj niający cel ze szczytu stosu ON(,x) LER() RMEPMTY HOLDING() UNSTK(,x) LER() HOLDING() STK(,) ON(,D) ON(,) ON(,D) ONTLE() ONTLE(D) ykl (zapętlenie!) D 16
STRIPS: przykład planowania 68 ONTLE() LER() RMEMPTY ONTLE() LER() RMEPMTY HOLDING() PIKUP() LER() HOLDING() STK(,) ON(,D) Podwarunki spełnione Niespełniony (z reguł świata klocków) ON(,) ON(,D) ONTLE() ONTLE(D) D STRIPS: przykład planowania 69 LER(D) HOLDING() RMEMPTY STK(,D) ONTLE() LER() RMEPMTY PIKUP() LER() HOLDING() STK(,) ON(,D) Warunek stosowalności operatora ON(,) ON(,D) ONTLE() ONTLE(D) Operator spełniaj niający cel ze szczytu stosu lternatywny operator PUTDOWN(): taka sama liczba nie spełnionych PREONDITIONs (0), mniejsza liczba spełnionych DDs ( bo ON(,D) jest niżej na stosie! ) D 17
STRIPS: przykład planowania 70 LER(D) HOLDING() STK(,D) ONTLE() LER() RMEPMTY PIKUP() Warunek stosowalności spełniony Usunięcie operatora ze szczytu stosu i jego wykonanie oraz 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 71 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 oraz D Plan aktualny: UNSTK(,) STK(,D) PIKUP() dodanie operatora do planu 18
STRIPS: przykład planowania 72 LER() HOLDING() STK(,) ON(,D) Warunek stosowalności spełniony Usunięcie operatora ze szczytu stosu i jego wykonanie oraz ON(,) ON(,D) ONTLE() ONTLE(D) D Plan aktualny: UNSTK(,) STK(,D) PIKUP() STK(,) dodanie operatora do planu STRIPS: przykład planowania 73 ON(,D) Warunek spełniony el główny g spełniony ON(,) ON(,D) ONTLE() ONTLE(D) D Stos pusty KONIE planowania! Plan aktualny: UNSTK(,) STK(,D) PIKUP() STK(,) 19
STRIPS: koniec przykładu 74 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 75 Wiedza heurystyczna: kolejność umieszczania różnic r (warunków) w) na stosie wybór r operatora redukującego różnicr nicę Kolejność różnic/warunków: w: wiedza heurystyczna wiedza o trudności w osiąganiu warunków (ten, który łatwo zniweczyć spełniamy później) p zapis wiedzy heurystycznej odpowiednia kolejność warunków w w sekcji PREONDITIONs operatora Wybór r operatora: ten, który szybciej przybliży y stan aktualny do stanu docelowego (ma mniejszą liczę niespełnionych nionych warunków w stosowalności) drugie kryterium: dodatkowo spełnia inny cel niżej na stosie (efekt uboczny) 20
STRIPS: anomalia Sussman a 76 Stan początkowy: ON(,) ONTLE() ONTLE() RMEPMTY Stan końcowy (docelowy): ON(,) ON(,) ONTLE() STRIPS: anomalia Sussmana a 77 lternatywny stos celów: ON(,) ON(,) ONTLE() ON(,) ON(,) ONTLE() ON(,) ON(,) ONTLE() ON(,) ON(,) ONTLE() ON(,) ONTLE() ONTLE() RMEPMTY 21
STRIPS: anomalia Sussman a 78 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 79 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(,) 22
STRIPS: anomalia Sussman a 80 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 81 HOLDING() PUTDOWN() LER() RMEMPTY ONTLE() HOLDING() PIKUP() LER() HOLDING() ON(,) STK(,) ON(,) ON(,) ON(,) ONTLE() Plan aktualny: UNSTK(,) PUTDOWN() 23
STRIPS: anomalia Sussman a 82 LER() RMEMPTY ONTLE() HOLDING() PIKUP() LER() HOLDING() ON(,) STK(,) ON(,) ON(,) ON(,) ONTLE() Plan aktualny: UNSTK(,) PUTDOWN() PIKUP() STRIPS: anomalia Sussman a 83 Plan aktualny: UNSTK(,) LER() HOLDING() ON(,) STK(,) ON(,) ON(,) ON(,) ONTLE() PUTDOWN() PIKUP() STK(,) 24
STRIPS: anomalia Sussman a 84 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 85 LER() RMEPMTY ON(,) UNSTK(,) LER() RMEMPTY ONTLE() PIKUP() LER() HOLDING() STK(,) ON(,) ON(,) ONTLE() Plan aktualny: UNSTK(,) PUTDOWN() PIKUP() STK(,) UNSTK(,) 25
STRIPS: anomalia Sussman a 86 RMEPMTY LER() RMEMPTY ONTLE() PIKUP() LER() HOLDING() STK(,) Ponownie nie jest spełniony! ON(,) ON(,) ONTLE() Plan aktualny: UNSTK(,) PUTDOWN() PIKUP() STK(,) UNSTK(,) STRIPS: anomalia Sussman a 87 HOLDING() RMEPMTY PUTDOWN() LER() RMEMPTY ONTLE() PIKUP() LER() HOLDING() STK(,) ON(,) ON(,) ONTLE() Nie STK(,) bo byłby cykl Plan aktualny: UNSTK(,) PUTDOWN() PIKUP() STK(,) UNSTK(,) 26
STRIPS: anomalia Sussman a 88 HOLDING() PUTDOWN() LER() RMEMPTY ONTLE() PIKUP() LER() HOLDING() STK(,) ON(,) ON(,) ONTLE() Plan aktualny: UNSTK(,) PUTDOWN() PIKUP() STK(,) UNSTK(,) PUTDOWN() STRIPS: anomalia Sussman a 89 Plan aktualny: UNSTK(,) LER() RMEMPTY ONTLE() PIKUP() LER() HOLDING() STK(,) ON(,) ON(,) ONTLE() PUTDOWN() PIKUP() STK(,) UNSTK(,) PUTDOWN() PIKUP() 27
STRIPS: anomalia Sussman a 90 Plan aktualny: UNSTK(,) PUTDOWN() PIKUP() LER() HOLDING() STK(,) ON(,) ON(,) ONTLE() STK(,) UNSTK(,) PUTDOWN() PIKUP() STK(,) STRIPS: anomalia Sussman a 91 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(,) 28
STRIPS: anomalia Sussman a 92 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 93 Plan aktualny: UNSTK(,) PUTDOWN() PIKUP() LER() HOLDING() STK(,) Stos ON(,) pusty ON(,) koniec planowania! ONTLE() STK(,) UNSTK(,) PUTDOWN() PIKUP() STK(,) PIKUP() STK(,) 29
STRIPS: anomalia Sussman a 95 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 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 o się całe przetwarzanie, które zostało o wykonane w trakcie planowania dla dopełniaj niających się par operatorów Plan aktualny: UNSTK(,) PUTDOWN() PIKUP() STK(,) UNSTK(,) PUTDOWN() PIKUP() STK(,) PIKUP() STK(,) STRIPS: anomalia Sussman a 96 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 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 o się całe e przetwarzanie, które zostało wykonane w trakcie planowania dla takich dopełniaj niających się par operatorów zy za nieoptymalny plan odpowiada użyta u heurystyka, czy sam algorytm planowania liniowego? Sprawdźmy zatem skutki innych decyzji heurystycznych! 30
STRIPS: anomalia Sussman a 97 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 98 lternatywny stos celów: Warunek spełniony LER() RMEMPTY ONTLE() PIKUP() LER() HOLDING() STK(,) ON(,) ON(,) ON(,) ONTLE() lternatywny plan: PIKUP() 31
STRIPS: anomalia Sussman a 99 lternatywny stos celów: Warunek spełniony LER() HOLDING() STK(,) ON(,) ON(,) ON(,) ONTLE() lternatywny plan: PIKUP() STK(,) STRIPS: anomalia Sussman a 100 lternatywny stos celów: itd. ON(,) ON(,) ON(,) ONTLE() 32
STRIPS: anomalia Sussman a 101 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 102 lternatywny plan równier wnież nie jest optymalny (a nawet jest gorszy!): jest dłuższy d (o 4 operacje) zawiera więcej par niwelujących się operacji Za brak optymalności planowania nie odpowiada zatem użyta u heurystyka, lecz sam algorytm planowania liniowego! lternatywny kompletny plan: PIKUP() STK(,) UNSTK(,) PUTDOWN() UNSTK(,) PUTDOWN()...... PIKUP() STK(,) UNSTK(,) PUTDOWN() PIKUP() STK(,) PIKUP() STK(,) 33
STRIPS: anomalia Sussman a 103 Stan początkowy: Stan końcowy: Optymalny plan: UNSTK(,) PUTDOWN() PIKUP() STK(,) PIKUP() STK(,) Nieoptymalny plan nie jest jedynie efektem użytej u heurystyki, lecz wynika z ograniczeń samego algorytmu planowania liniowego - nie jest istotna kolejność osiągania celów w i porządek wybierania operatorów, lecz fakt, iżi metoda nie uwzględnia interakcji zachodzących cych pomiędzy warunkami i operatorami. Poszukiwanie planu: metoda regresji celów 104 Planowanie opiera się na zbiorze celów,, spośród których dowolny podcel może e być wybrany jako kolejny, który należy y osiągn gnąć Planowanie odbywa się wstecz (regresywnie) od stanu docelowego do stanu początkowego Wybierany ze zbioru podcel jest traktowany tak jakby był ostatnim,, który należy y osiągn gnąć (inaczej: zakładamy, adamy, że e reszta celów w jest już spełniona i szukamy tylko tych operacji, które miałyby dopełni nić plan poprzez spełnienie ostatniego podcelu) Wybrany operator poszerza zbiór r podcelów o swoje warunki stosowalności 34
Regresja celów: przykład (anomalia Sussman a) 105 Stan początkowy: ON(,) ONTLE() ONTLE() RMEPMTY Stan końcowy (docelowy): ON(,) ON(,) ONTLE() * * - dla uproszczenia rozważań podcel ONTLE() nie będzie b brany pod uwagę Regresja celów: przykład 107 Drzewo przeszukiwania w przestrzeni zbiorów w celów: STK(,) ON(,) ON(,) STK(,) LER() HOLDING() ON(,) LER() HOLDING() ON(,) kon fli kt 35
Regresja celów: przykład 108 Drzewo przeszukiwania w przestrzeni zbiorów w celów: STK(,) ON(,) ON(,) STK(,) UNSTK(x,) LER() HOLDING() ON(,) UNSTK(,x) PIKUP() LER() HOLDING() ON(,) STK(,) kon fli kt kon fli kt ON(x,) LER(x) RMEPMTY HOLDING() ON(,) Regresja celów: przykład 109 Drzewo przeszukiwania w przestrzeni zbiorów w celów: STK(,) ON(,) ON(,) STK(,) UNSTK(x,) LER() HOLDING() ON(,) UNSTK(,x) PIKUP() LER() HOLDING() ON(,) STK(,) kon fli kt kon fli kt ON(x,) LER(x) RMEPMTY HOLDING() ON(,) RMEPMTY LER() ONTLE() LER() ON(,) 36
Regresja celów: przykład 110 Drzewo przeszukiwania w przestrzeni zbiorów w celów: STK(,) ON(,) ON(,) STK(,) UNSTK(x,) LER() HOLDING() ON(,) UNSTK(,x) PIKUP() LER() HOLDING() ON(,) STK(,) kon fli kt kon fli kt ON(x,) LER(x) RMEPMTY HOLDING() ON(,) RMEPMTY LER() ONTLE() LER() ON(,) ON(,x) LER() RMEPMTY LER() ON(,) jeżeli eli x= to konflikt; jeżeli eli x= to cykl Regresja celów: przykład 111 Drzewo przeszukiwania w przestrzeni zbiorów w celów: STK(,) ON(,) ON(,) STK(,) UNSTK(x,) LER() HOLDING() ON(,) UNSTK(,x) PIKUP() LER() HOLDING() ON(,) STK(,) kon fli kt kon fli kt ON(x,) LER(x) RMEPMTY HOLDING() ON(,) RMEPMTY LER() ONTLE() LER() ON(,) ON(,x) LER() RMEPMTY LER() ON(,) LER() HOLDING() LER() HOLDING() jeżeli eli x= to konflikt; jeżeli eli x= to cykl kon fli kt 37
Regresja celów: operacja regresji 112 Planowanie wstecz opiera się na założeniu, że e operator wybrany do spełnienia podcelu jest ostatnim w planie, a pozostałe 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 ne; ; najczęś ęściej jednak jest inaczej - wykonanie jednego operatora może e zniweczyć skutki działania 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 o możliwe i prowadziło o do osiągni gnięcia podcelu bez naruszania innych (już spełnionych) podcelów Regresja celów: operacja regresji 113 Regresja podcelu za pomocą operatora, który nie wpływa na ten podcel daje w rezultacie ten sam podcel *, np. REGRESSION(ON(,) ON(,),, PIKUP()) = ON(,) * - jest to najczęstszy przypadek regresji operatora 38
Regresja celów: operacja regresji 114 Regresja podcelu operatorem, których prowadzi do osiągni gnięcia tego podcelu nie wymaga spełnienia żadnych warunków w (warunki stosowalności operatora sąs obsługiwane w innych sposób * ), np. REGRESSION(ON(,) ON(,),STK(,)),STK(,)) = True * - zgodnie z algorytmem dodawane sąs do zbioru celów Regresja celów: operacja regresji 115 Regresja podcelu za pomocą niektórych operatorów może e prowadzić do sytuacji, w której spełnienie tego celu nie będzie b już więcej możliwe *, np. REGRESSION(RMEPMTY RMEPMTY,, PIKUP()) = False * - taka ścieżka poszukiwania planu oznacza brak możliwo liwości dalszego planowania 39
Regresja celów: operacja regresji 116 Regresja jednego podcelu może - jako efekt uboczny - prowadzić również do osiągni gnięcia podcelu, do którego spełnienia bezpośrednio nie została a użytau *, np. REGRESSION(ON(,D) ON(,D),, STK(,D)) = True ale równier wnież REGRESSION(RMEPMTY RMEPMTY,STK(,D)) = True * - podcele o wartości True mogą zostać usunięte ze zbioru celów w jako na pewno spełnione Regresja celów: warunki zako warunki zakończenia planowania Proces planowania odbywa się wstecz - nie wiadomo jakie operacje zostały y (a w zasadzie: zostaną) ) wykonane przed aktualnym operatorem oraz jakie były y ich skutki poza tym, że doprowadziły y do spełnienia wszystkich oprócz jednego podcelu ze zbioru celów Nie sąs znane skutki uboczne wykonania tych wcześniejszych operacji i ich ewentualny wpływ na inne podcele - żaden podcel nie może e być zignorowany zanim nie ulegnie regresji do warunku True Proces planowania może e zakończy czyć się,, gdy mamy pewność ść, że żadne warunki nie ulegną już zmianie - wszystkie podcele są jednocześnie nie spełnione w stanie początkowym i nie ma potrzeby stosowania jakichkolwiek operatorów poprzedzających ciąg g operacji dopiero co znaleziony 117 40
Regresja celów: przykład Drzewo poszukiwania planu w przestrzeni zbiorów w celów: 119 PUTDOWN(x) HOLDING(x) LER() ONTLE() LER() ON(,) jeżeli eli x= to konflikt; jeżeli 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 w celów: 120 PUTDOWN(x) HOLDING(x) LER() ONTLE() LER() ON(,) jeżeli eli x= to konflikt; jeżeli 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! nialny! False ON(x,) LER(x) ONTLE() LER() ON(,) 41
Regresja celów: przykład Drzewo poszukiwania planu w przestrzeni zbiorów w celów: 121 PUTDOWN(x) HOLDING(x) LER() ONTLE() LER() ON(,) jeżeli eli x= to konflikt; jeżeli 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 nialny False ON(x,) LER(x) ONTLE() LER() ON(,) UNSTK(x,) niespełnialny! nialny! False ON(x,) LER(x) ONTLE() LER() ON(,) Regresja celów: przykład Drzewo poszukiwania planu w przestrzeni zbiorów w celów: 122 PUTDOWN(x) HOLDING(x) LER() ONTLE() LER() ON(,) jeżeli eli x= to konflikt; jeżeli 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 nialny False ON(x,) LER(x) ONTLE() LER() ON(,) PUTDOWN() UNSTK(x,) True LER() HOLDING() LER() ON(,) niespełnialny nialny False ON(x,) LER(x) ONTLE() LER() ON(,) 42
Regresja celów: przykład c.d. Drzewo poszukiwania planu w przestrzeni zbiorów w celów: 123 PUTDOWN(x) HOLDING(x) LER() ONTLE() LER() ON(,) jeżeli eli x= to konflikt; jeżeli eli x= lub to konflikt STK(x,y) HOLDING(x) LER(y) LER() ONTLE() LER() ON(,) RMEPMTY LER() ONTLE() LER() ON(,) STK(,) UNSTK(x,) niespełnialny nialny False ON(x,) LER(x) ONTLE() LER() ON(,) HOLDING() LER() True LER() ONTLE() LER() PUTDOWN() UNSTK(x,) True LER() HOLDING() LER() ON(,) niespełnialny nialny False ON(x,) LER(x) ONTLE() LER() ON(,) Regresja celów: heurystyki 124 Warunkiem zatrzymania procesu planowania jest osiągni gnięcie stanu początkowego (wnioskowanie wstecz) - wiedza o tym stanie jest zatem kluczowa dla podejmowania decyzji o charakterze heurystycznym Jeżeli eli jeden z podcelów w ze zbioru celów jest spełniony w stanie początkowym tkowym,, to próbę jego osiągni gnięcia należy odłożyć na później p - być może e osiągni gnięcie jego nie będzie wymagało żadnych dodatkowych nakład adów, gdyż spełnianie innych podcelów w nie naruszy jego prawdziwości Jeżeli eli jakiś podcel jest łatwo zniweczyć lub łatwo osiągn gnąć,, to jego spełnienie należy y odłożyć na późniejp 43
Regresja celów: przykład Drzewo poszukiwania planu w przestrzeni zbiorów w celów: 125 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 nialny Spełniony w S 0 HOLDING() LER() True LER() ONTLE() LER() PUTDOWN() UNSTK(x,) True LER() HOLDING() LER() ON(,) niespełnialny 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 dkowań podcelów w (ewentualne nawroty!), jak równier wnież wszystkich możliwych sposobów ich spełnienia naliza taka jest bezcelowa w problemach całkowicie dekomponowalnych brak zależno ności między podcelami lub zależno ności te sąs bardzo słabe, s więc 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 127 44
Planowanie liniowe: podsumowanie 128 W metodach planowania liniowego plan generowany jest sekwencyjnie dla kolejnych podcelów, tak długo d aża nie zostanie osiągni 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 g operacji spełniaj niających drugi podcel, itd. kompletny plan jest liniowo uporządkowan dkowaną sekwencją kompletnych podplanów 45