WYKŁAD 4 Systemy autonomiczne wykorzystujące sterowanie reaktywne DZIAŁANIE REAKTYWNE działanie poprzez 'reakcje', oparte na bezpośrednim przyporządkowaniu percepcji i akcji, bez modelowania i bez planowania DLACZEGO? Charakterystyczne cechy świata rzeczywistego: ( w odróżnieniu do świata "klocków" ) złożoność (np. dokładny opis łąki porośniętej trawą ) niepewność, nieprzewidywalność ( niedeterminizm, probabilistyka, np. przewidywanie pogody ) niekompletna wiedza świat dynamiczny - system czasu rzeczywistego ( najczęściej konieczna jest natychmiastowa reakcja, np. podczas gry komputerowej ) Eksperyment: z zaplanowaniem działania osoby, której zadaniem jest chwycenie długopisu Cechy "sterowania racjonalnego" planowania przez duże P :! generuje sekwencję zadań / akcji do wykonania! zakłada 'ślepe' wykonywanie (bez interakcji) - nie jest uniwersalne 1
Planowanie racjonalne generuje wiele problemów:! złożoność charakter kombinatoryczny! niepewność adekwatności i poprawnego wykonania zaplanowanych akcji! natychmiastowość reakcji Niemożliwa!! kompletna reprezentacja Niemożliwa! Jak natura problemów świata rzeczywistego wpływa na wewnętrzną architekturę oprogramowania "agenta"? Czy jest jakieś antidotum? Wniosek: Świat naturalny wymaga takich systemów sterowania, które są odporne na różnego rodzaju zakłócenia, szybko adaptują się do zmian dynamicznego otoczenia i jednocześnie działają w czasie rzeczywistym. Możliwa jest inna architektura agenta DZIAŁANIE REAKTYWNE Planowanie przez małe 'p' Reaktywne zachowanie to klasyfikacja aktualnego stanu i wykonywanie pre-planowanych akcji. Jest to wyliczenie (zaplanowanie?) reakcji na każdą możliwą sytuację. Najważniejsze paradygmaty:! omijanie obliczeń kiedy tylko możliwe (unikanie wnioskowania/planowania) Przykład: robot Lema > "byle nie myśleć a będzie dobra nasza"! unikanie reprezentacji stanu otoczenia " Najlepszym modelem świata, jest on sam! " (Rodney Brooks) 2
! Czy to się da zrobić?! Czy to będzie działać? PRZYKŁAD (z laboratoriów MIT): architektura systemu sterowania robota mobilnego zbierającego puszki po napojach Cechy sterowania reaktywnego:! bezpośrednie połączenie percepcji i akcji! brak modeli-reprezentacji otoczenia! zazwyczaj wykorzystuje dedykowany, współbieżnie działający hardware / software! predefiniowane, proste, szybkie odpowiedzi na zmiany otoczenia! przyczynowość działania to świat powoduje działanie 'odpalając' reguły, które zwrotnie oddziaływują na świat ( czyżby powrót od agenta do obiektu? )! Cele + proste umiejętności + skomplikowany świat =? Różnice w porównaniu do planowania racjonalnego:! brak stanu początkowego! brak unikalnego stanu końcowego! przewidywanie wszystkich możliwych sytuacji i przyporządkowywanie reakcji (planowanie off line) Rezultaty stosowania systemów reaktywnych: otrzymujemy wysoko reaktywne zachowania w czasie rzeczywistym, możliwe jest działanie w złożonych, dynamicznych i niepewnych otoczeniach. 3
Możliwe wersje architektury reaktywnej:! Równoległe wykonywanie wielu działań ( każde źródło sygnałów steruje innym rodzajem działania )! Agregacja składanie wielu sygnałów (percepcji) otoczenia w celu wyznaczenia sterowania jednym rodzajem działania! Priorytetowanie gdy różne działania wzajemnie się zakłócają, pierwszeństwo ma najważniejsze działanie ( pozostałe działania są blokowane ) 4
PRZYKŁAD: Vehicles: Experiments in Synthetic Psychology, Valentino Braitenberg, Cambridge, MIT Press, 1984 vehicle 1 vehicle 2a vehicle 2b vehicle 3 Za pomocą bardzo prostych środków możliwe jest zbudowanie złożonych zachowań:! omijanie przeszkód! dopasowanie prędkości! algorytmy stada tworzenie różnych formacji które są postrzegane jako działania celowe i inteligentne chociaż nie wykorzystują żadnej wewnętrznej reprezentacji takiego abstrakcyjnego celu. 5
KRYTYKA :! wiedza systemu reaktywnego jest ograniczona zakresem obserwowalności sensorów! nie potrafią wykrywać zmian lub powtórzeń względem przeszłości! nie potrafią zliczać! mała podatność na "formalną" analizę! słaba przewidywalność działania całego systemu w nieznanym i dynamicznym otoczeniu. ( Ta słaba przewidywalność jest szczególnie akcentowana w zastosowaniach związanych z dużą odpowiedzialnością np. wojsko, medycyna, duże systemy produkcyjne )! Ograniczenie "wnioskowania" do lokalnego kontekstu tzn. podejmowania decyzji na podstawie analizy małego fragmentu czaso-przestrzeni otoczenia! W efekcie algorytmy reaktywne bardzo często zatrzymują się na rozwiązaniach lokalnie optymalnych, a działanie całego systemu jest sub-optymalne Istnieje duża klasa zadań "niereaktywnych"!!! Największą trudność sprawiają próby reaktywnej realizacji zadań, które "z natury" wymagają wykonywania uszeregowanychsekwencyjnych planów działania.! Np. typowe zadanie klasycznego systemu wnioskowania: "użyj równi pochyłej do postawienia klocka A na klocku B zajętym przez klocek C" jest niemożliwe do rozwiązania przez system reaktywny jeżeli stan klocków A,B,C i równi pochyłej nie może być obserwowany jednocześnie.! Negacja stosowania elementów pamięciowych (abstrakcyjnych modeli) uniemożliwia wymuszanie stanów pośrednich w których system "opuszcza" lokalne ekstremum, aby po jakimś czasie znaleźć lepsze rozwiązanie!!! ( przykład zwierząt: ptak vs. kot, które próbują się dostać do pożywienia ukrytego za szybą ) 6
Architektura reaktywna z reprezentacją stanu Dzięki wprowadzeniu jakiejkolwiek formy pamięci, modelowania stanu (systemu i/lub otoczenia):! wiedza agenta nie jest ograniczona do bezpośredniego otoczenia! agent potrafi zliczać, co umożliwia realizację działań które muszą być wykonywane zadana ilość razy ( iteracyjnych, cyklicznych )! możliwe jest wprowadzanie opóźnienie wykonania akcji względem percepcji! możliwe jest tworzenie działań opartych na sekwencjach percepcji/akcji np. reagowanie na sekwencję zmian otoczenia lub reagowanie na długotrwały brak zmian otoczenia! agent jest w stanie wykryć niepowodzenie akcji wykonywanych w przeszłości i wybrać zastosować inną regułę działania 7
Wielopoziomowa architektura SUBSUMPTION Architektura Subsumption składa się z wielu hierarchicznie zorganizowanych poziomów (zachowań), odpowiedzialnych za niezależną realizację różnych celów. Poszczególne poziomy działają współbieżnie, asynchronicznie, posiadają własne podsystemy percepcji oraz działania. Podstawowym elementem konstrukcyjnym jest zachowanie : Zachowania:! są opisywane za pomocą zbioru reguł definiujących działanie automatu skończonego! każde z zachowań posiada własne sensory i efektory! wyjście jednego zachowania może być wejściem innego W ramach tej architektury! bardziej złożone zachowania subsume prostsze zachowania, które znajdują się na niższych poziomach hierarchii! niższe poziomy nie posiadają żądnej wiedzy na temat wyższych! wyjścia niższych poziomów mogą być odczytywane przez zachowania z wyższych poziomów! wyższe poziomy sterują działaniem niższych poprzez: blokowanie sygnałów wejściowych (inhibition) zamianę sygnałów wyjściowych na inne (suppression) wymuszenie powrotu zachowania do stanu początkowego (reset) 8
PRZYKŁAD: System sterowania robotem zbierającym zadane obiekty ( Maja Matarić, Kin recognition, similarity, and group behavior, 1993 ) System składał się z 4 zachowań:! wandering losowa eksploracja terenu poprzez poruszanie się w przypadkowych kierunkach przez losowany okres czasu! avoiding : skręcanie w prawo (lewo) jeżeli zaobserwowano przeszkodę z lewej (prawej) strony po trzech próbach, wycofanie się i losowy obrót jeżeli przeszkody po obu stronach,! pickup obrót w kierunku obiektu, ruch do przodu, jeżeli obiekt w zasięgu chwytu zamknięcie chwytaka! homing obrót w kierunku bazy i następnie ruch do przodu, jeżeli na terenie bazy, to koniec działania. 9
POSUMOWANIE:! Podstawowy postulat "reaktywności" to kompilacja wiedzy systemu do postaci kolekcji prostych bezpośrednich odwzorowań: percepcja akcja! W rezultacie, zamiast powolnej sekwencji klasycznego wnioskowania percepcja abstrakcja modelowanie planowanie heurystyczne przeszukiwanie wykonywanie uzyskujemy bardzo szybkie systemy sterowania, których inteligencja osiągana jest poprzez bezpośrednią interakcję z otoczeniem.! Zamiast budować sztuczny model świata, wykorzystujemy świat jako jego własny model.! Prekursorem zastosowań reaktywności w robotyce był Rodney Brooks oraz zaproponowana przez niego subsumption architecture "A Robust Layered Control System for a Mobile Robot" R.A. Brooks, MIT, 1986 10