Planowanie ---------- 1. Klasyka, czyli małpa i banany (11.4). W najprostszym sformułowaniu występują 3 miejsca A, B, i C oraz 3 obiekty: małpa (w A), pudło (w B) oraz banany (w C). Celem małpy jest dobranie się do bananów, one jednak wiszą wysoko, musi więć podsunąć pod nie pudło i wjeść na nie. Akcje: Idż(w podane miejsce), Wejdź(na pudło, trzeba być w tym samym miejscu), Zejdź (z pudła, trzeba na nim być), Przesuń(pudło w podane miejsce, trzeba być w tym samym miejscu co pudło), Zerwij (trzeba być na pudle w tym samym miejscu co banany). a. Zapisać to w STRIPSIE (stan początkowy, akcje, cel). b. Przeprowadzić planowanie metodą przeszukiwania przestrzeni klasyczne (warto dodać kilka miejsc, wtedy widać jak się robi nieefektywna) oraz backward chaining od celu. c. Zapisać to samo w rachunku sytuacji. d. Spróbować udowodnić, że istnieje plan. e. Zbudować graf planowania typu GraphPlan, pokazać konflikty i leveling off. Ad hoc wydobyć plan z grafu. 2. Anomalia Sussmana (11.11) - sytuacja początkowa ----- | C | ----- ----- | B | | A | --------------------- | | | | - sytuacja docelowa ----- | A | ----- | B | ----- | C | --------------------- | | | | - operacja oczywista: przełożenie klocka w inne miejsce (także na stół), pod warunkiem, że na klocku nic nie leży; - pokazać, że nie można planować osobno dla każdego podcelu, ponieważ nie są one niezależne i planowanie musi być przeplatane. 3. DWR = Dock Worker Robot, przykład z najnowszej książki o planowaniu ,,Automated Planning'', Ghalab, Nau, Travers, www.laas.fr/planning. - zbiór miejsc m1, m2, ... - zbiór robotów r1, r2, ... - zbiór dźwigów d1, d2, ... (nieruchomych) - zbiór stosów s1, s2, ... (także o ustalonym położeniu) - zbiór kontenerów k1, k2, ... - symbol PALETA, znajdujący się na spodzie każdego stosu (ułatwia opis). Topologia opisana predykatami: - sąsiaduje(mi, mj) - stoi-w(di, mj) - jest-w(si, mj) Pozostałe predykaty (ale studenci mogą tę formalizację wymyślić sami) - zajęte(mi) -- jest tam jakiś robot, tylko jeden robot może być w danym miejscu - stoi-w(ri, mj) - załadowany(ki, rj) -- na robota można załadować tylko jeden kontener - rozładowany(ri) -- czyli pusty, ale zob. niżej - trzyma(di, kj) -- dźwig może trzymać tylko jeden kontener na raz - pusty(di) - leży(ki, sj) -- kontener jest fragmentem danego stosu - leży-na(ki, kj) -- kj może być symbolem PALETA (dla najniższego kontenera na stosie) - na-wierzchu(ki, sj) -- oczywiście tylko jeden dla danego stosu Akcje: - Przejdź(ri, mj, mk) -- muszą sąsiadować - Weź(di, kj, sk) -- ze stosu (kj zbędny, ale ułatwia życie) - Połóż(di, kj, sk) -- ze stosu (kj zbędny, ale ułatwia życie) - Załąduj(di, kj, rk) -- na robota (kj zbędny, ale ułatwia życie) - Wyładuj(di, kj, rk) -- z robota (kj zbędny, ale ułatwia życie) Uproszczona wersja nie posiada dźwigów. 4. Sokoban ;-)