Roboty pasterskie i inne „systemy wieloagentowe”

Napisanie programu do sterowania pojedynczym autonomicznym robotem poruszającym się w niepewnym środowisku z nieregularnym łączem komunikacyjnym jest wystarczająco trudne; napisz jeden dla wielu robotów, które mogą lub nie muszą pracować w tandemie, w zależności od zadania, jest jeszcze trudniejsze.





W konsekwencji inżynierowie projektujący programy sterujące dla systemów wieloagentowych — czy to zespołów robotów, czy sieci urządzeń o różnych funkcjach — na ogół ograniczyli się do szczególnych przypadków, w których można założyć wiarygodne informacje o środowisku lub stosunkowo proste zadanie współpracy może być jasno określone. określone z góry.

W maju tego roku, na Międzynarodowej Konferencji na temat agentów autonomicznych i systemów wieloagentowych, naukowcy z MIT Laboratorium Informatyki i Sztucznej Inteligencji (CSAIL) zaprezentuje nowy system, który łączy ze sobą istniejące programy sterujące, aby umożliwić systemom wieloagentowym współpracę na znacznie bardziej złożone sposoby. System bierze pod uwagę niepewność — na przykład prawdopodobieństwo, że połączenie komunikacyjne zostanie przerwane lub że określony algorytm niechcący skieruje robota w ślepy zaułek — i automatycznie planuje wokół niego.

W przypadku małych wspólnych zadań system może zagwarantować optymalną kombinację programów — że przyniesie najlepsze możliwe wyniki, biorąc pod uwagę niepewność otoczenia i ograniczenia samych programów.



Współpracując z Jon How, profesorem aeronautyki i astronautyki Richard Cockburn Maclaurin oraz jego uczniem Chrisem Maynorem, naukowcy testują obecnie swój system w symulacji aplikacji magazynowej, w której zespoły robotów musiałyby odzyskać dowolne obiekty z nieokreślonych lokalizacji, współpracując w razie potrzeby przy transporcie ciężkich ładunków. Symulacje obejmują małe grupy robotów iRobot Creates, programowalnych robotów, które mają taką samą obudowę jak odkurzacz Roomba.

Uzasadnione wątpliwości



Ogólnie rzecz biorąc, w systemach [wieloagentowych], w prawdziwym świecie, bardzo trudno jest im skutecznie komunikować się, mówi Christopher Amato, stażysta w CSAIL i pierwszy autor nowego artykułu. Jeśli masz kamerę, niemożliwe jest, aby kamera stale przesyłała wszystkie informacje do wszystkich innych kamer. Podobnie roboty znajdują się w sieciach, które są niedoskonałe, więc przesłanie wiadomości do innych robotów zajmuje trochę czasu i być może nie są one w stanie komunikować się w pewnych sytuacjach wokół przeszkód.

Agent może nawet nie mieć doskonałych informacji o swojej lokalizacji, mówi Amato – na przykład w której alejce magazynu się znajduje. Co więcej, kiedy próbujesz podjąć decyzję, istnieje pewna niepewność, jak to się rozwinie, mówi. Być może próbujesz poruszać się w określonym kierunku i pojawia się poślizg wiatru lub koła, albo w sieciach jest niepewność z powodu utraty pakietów. Tak więc w tych rzeczywistych domenach, z całym tym hałasem komunikacyjnym i niepewnością co do tego, co się dzieje, trudno jest podejmować decyzje.

Nowy system MIT, który Amato opracował wraz ze współautorami Leslie Kaelblingiem, profesorem informatyki i inżynierii firmy Panasonic oraz Georgem Konidarisem, doktorantem, wymaga trzech danych wejściowych. Jednym z nich jest zestaw algorytmów kontroli niskiego poziomu — które badacze z MIT nazywają makrodziałaniami — które mogą zarządzać zachowaniami agentów zbiorowo lub indywidualnie. Drugi to zestaw statystyk dotyczących wykonywania tych programów w określonym środowisku. A trzeci to schemat wyceny różnych wyników: wykonanie zadania wiąże się z wysoką wartością dodatnią, ale zużycie energii powoduje wycenę ujemną.



Szkoła mocnych uderzeń

Amato przewiduje, że statystyki mogą być gromadzone automatycznie, po prostu pozwalając systemowi wieloagentowemu działać przez jakiś czas — czy to w świecie rzeczywistym, czy w symulacjach. Na przykład w aplikacji magazynowej roboty miałyby wykonywać różne makroakcje, a system zbierałby dane o wynikach. Roboty próbujące przemieścić się z punktu A do punktu B w magazynie mogą przez pewien procent czasu trafić w ślepą uliczkę, a ich przepustowość komunikacyjna może spaść o inny procent czasu; te wartości procentowe mogą się różnić w przypadku robotów przemieszczających się z punktu B do punktu C.

System MIT bierze te dane wejściowe, a następnie decyduje, jak najlepiej połączyć makrodziałania, aby zmaksymalizować funkcję wartości systemu. Może używać wszystkich akcji makr; może używać tylko małego podzbioru. I może ich użyć w sposób, o jakim nie pomyślałby ludzki projektant.



Załóżmy na przykład, że każdy robot ma mały zestaw kolorowych światełek, których może użyć do komunikacji ze swoimi odpowiednikami, jeśli ich łącza bezprzewodowe nie działają. Zazwyczaj programista decyduje, że czerwone światło oznacza pójście do tego pokoju i pomoc komuś, zielone światło oznacza pójście do tego pokoju i pomoc komuś, mówi Amato. W naszym przypadku możemy po prostu powiedzieć, że są trzy światła, a algorytm wypluwa, czy ich używać i co oznacza każdy kolor.

Prace naukowców z MIT określają problem kontroli wieloagentowej jako coś, co nazywa się częściowo obserwowalnym procesem decyzyjnym Markowa lub POMDP. POMDP, a zwłaszcza Dec-POMDP, które są wersją zdecentralizowaną, są w zasadzie nie do rozwiązania w przypadku prawdziwych problemów z wieloma robotami, ponieważ są tak złożone i obliczeniowo drogie do rozwiązania, że ​​po prostu eksplodują, gdy zwiększysz liczbę robotów, mówi Nora Ayanian, asystentka profesor informatyki na Uniwersytecie Południowej Kalifornii, który specjalizuje się w systemach wielorobotowych. Nie są więc zbyt popularne w świecie multirobotów.

Zwykle, gdy używasz tych Dec-POMDP, pracujesz na bardzo niskim poziomie szczegółowości, wyjaśnia. Ciekawą rzeczą w tym artykule jest to, że wykorzystują te bardzo złożone narzędzia i w pewnym sensie zmniejszają rozdzielczość.

To z pewnością sprawi, że POMDP staną się obiektem zainteresowania ludzi zajmujących się systemami wielorobotowymi, dodaje Ayanian. To coś, co naprawdę sprawia, że ​​można go lepiej zastosować do złożonych problemów.

ukryć