POLITECHNIKA WROCŁAWSKA WYDZIAŁ ELEKTRONIKI Informatyka Systemów Autonomicznych Agent jako autonomiczna jednostka oraz ich grupy w MAS AUTOR Jacek Polewski Indeks: 133339 E-mail: jpolewski@gmail.com PROWADZĄCY ZAJĘCIA: dr inż. Marek Piasecki OCENA PRACY: Spis treści 1. Wstęp... 2 2. Agent jako jednostka w MAS... 3 3. Grupy agentów w MAS... 4 3.1. Współpraca... 5 3.2. Negocjacja... 5 3.3. Koordynacja i planowanie... 6 4. Podsumowanie... 8 5. Literatura... 9 Wrocław 2007
1. Wstęp Ludzie spędzają dużo czasu na decydowanie i wnioskowaniu o otaczającej ich rzeczywistości. Rozważają sytuacje mniej lub bardziej dogłębnie. Mają wiele życzeń, które chcieliby zaspokoić, jedne ważniejsze, inne mniej ważne. W swoim rozważaniach poruszają się jednak w przestrzeni rozmytej, tzn. nie posiadają całej wiedzy na temat obecnej i przyszłej sytuacji. W związku z tym muszą rozwiązywać na bieżąco wewnętrzne konflikty, planować - dokonywać wyborów i podejmować decyzję jakich środków użyć do spełnienia swoich życzeń. Często muszą zdobyć dodatkowe informację o zadaniach, które chcą zrealizować, na ogół od innych ludzi. Wykonując zadanie człowiek musi także brać pod uwagę, jakie konsekwencje będzie ono miało dla innych, i jak inni ludzie wpłyną na jego wykonanie. Ten intuicyjny opis świata, w którym żyjemy odpowiada idei systemu wieloagentowego. Człowiek w tym przypadku odpowiada 1:1 agentowi, a otaczająca rzeczywistość systemowi wieloagentowemu (MAS Multiagent systems). Spójrzmy na taki system jako całość. Mamy w nim do wykonania wiele różnych zadań. Każde z nich jest przydzielone suwerennemu autonomicznemu programowi (agentowi). Takie programy często bywają heterogeniczne, ponieważ z natury różnorodność zadań zmusza do tego, aby każdy agent posiadał specyficzne zdolności. Naturalną cechą takich agentów jest ich rozproszenie. Rozproszenie takie może być przestrzenne, jak w przypadku specjalnych grup robotów, które mają za zadanie wychwycenie informacji wysyłanych przez czujniki umiejscowione w określonych miejscach. Inne rozproszenia są funkcjonalnie, wtedy agenci mają za zadanie rozwiązać określone problemy w różnych środowiskach. MAS charakteryzuje się szybszym rozwiązywaniem problemów przez ich rozproszenie, mniejszą ilością wymiany informacji dzięki transmisji jedynie komunikatów istotnych pomiędzy poszczególnymi agentami. W systemach centralistycznych dane są dostarczane masowo do specjalnego programu dokonującego obliczeń, co stanowi znaczne obciążenia obliczeniowe. Kolejną cechą charakterystyczną MAS jest umiejętność dynamicznego dostosowywania się agentów z różnymi zdolnościami do poszczególnych typów problemów oraz większa niezawodność. Jest ona wynikiem ich rozproszenia oraz możliwości uczenia się jednych agentów na błędach popełnionych przez innych.
Istnieją dwie główne perspektywy spojrzenia na MAS: agent - jednostka w MAS (rodzaje agentów, struktura wiedzy, zdolności rozumowania, zdolności przystosowania i uczenia się, architektura) grupa - organizacja zrzeszająca pewną ilość agentów (koordynacja, kooperacja, negocjacje, planowanie, komunikacja, organizacja i struktura, grupy grup) 2. Agent jako jednostka w MAS W większości przypadków agent stanowi pewnego rodzaju autonomiczny obiekt, który sam jest w stanie dążyć do zadanego celu poprzez wyznaczanie sobie podzadań, analizę otrzymanych danych, skonfrontowanie tych danych z bazą swojej wiedzy lub z regułami wnioskowania, odpowiednie rozumowanie w celu optymalnego wyboru podejmowanych akcji, a następnie ich wykonanie. Dodatkowo zawiera takie elementy jak uczenie się, zdolność do modyfikacji samego siebie, tolerancyjność na błędy czy umiejętność analizy i eliminacji niepowodzeń. W systemach wieloagentowych można rozróżnić wiele stopni heterogenności poszczególnych agentów. Mogą być identyczne, różniąc się jedynie zasobami dostępnymi - low heterogenity. Mogą posiadać różne metody rozwiązywania problemów - medium heterogenity. A kiedy posiadają tylko wspólny język do wymiany informacji, wtedy mówi się o dużym zróżnicowaniu. Agenci różnią się również pod względem spostrzegania otoczenia, interpretacji nadchodzących danych i komunikatów, rozumowania, podejmowania decyzji, planowania i realizacji planów. W literaturze spotyka się podział na 3 klasy agentów: agenci reakcyjni (reactive agents) agenci intencjonalni (intentional agents) agenci socjalni (social agents) Agenci reakcyjni należą do grupy prostszych agentów reagujących na zmiany w środowisku otaczającym oraz na komunikaty nadsyłane przez innych agentów. Nie przewidują przyszłości, stosują się do swoich reguł, i na ich podstawie generują swoją wiedzę i komunikaty dla innych agentów. Przykładem tej grupy są proste filtry antyspamowe i programy sprawdzające pisownię. 3
Agenci intencjonalni są zdolni do wytwarzania nowych planów i ich wykonywania. Dostrzegają konflikty pomiędzy nimi, potrafią wstrzymać je w razie potrzeby. Agenci socjalni posiadają oprócz zdolności tworzenia nowych planów także umiejętność brania pod uwagę zachowań innych agentów. Mają zdolność do otrzymywania danych od sąsiednich agentów na temat ich planów, celów, intencji itd. Na tej podstawie mogą wnioskować o innych agentach, respektować otoczenie i w konsekwencji generować o wiele mniej konfliktów. Każdy agent posiada pewną strukturę wiedzy, która może być w różnym stopniu skomplikowana. Wiedza jest niezbędna do przeprowadzania różnych akcji. Jednak co istotne w MAS, poza swoimi własnymi przekonaniami agent powinien się liczyć także z innymi agentami. Znajomość wiedzy, intencji innych agentów jest potrzebna między innymi do prowadzenia negocjacji z otoczeniem. Dodatkowo każdy program agentowy powinien mieć możliwość przystosowania się do swego środowiska oraz do intencji sąsiednich agentów. Największe wymagania w MAS kierowane są więc do agenta socjalnego. Jego system analizy wiedzy jest najbardziej złożony, ze względu na zdolnośc do liczenia się z intencjami innych programów. 3. Grupy agentów w MAS Filozofia MAS opiera się o organizacje, grupy inteligentnych programów (agentów), które mają za zadanie wspólnie rozwiązywać problemy. Programy (agenci) w poszczególnych grupach powinny mieć możliwość kooperacji (współpracy), negocjacji oraz koordynacji za pomocą wymiany komunikatów pomiędzy sobą. 4
3.1. Współpraca Głównym zagadnieniem systemów MAS jest współpraca pomiędzy poszczególnymi agentami. Największe wyzwanie to podzielenie wspólnych zasobów oraz właściwe wykorzystanie protokołów komunikacyjnych. Współpraca pomiędzy grupą agentów charakteryzuje się różnymi stopniami złożoności. Agent zdolny do pełnej współpracy posiada możliwość rozwiązania niezależnych problemów i często za to płaci dużą ceną wymiany komunikatów. Z drugiej strony systemy z brakiem współpracy nie potrzebują wymiany komunikacji. Pełna współpraca polega na tym, że każdy agent jest zdolny do całkowitego rozwiązania lokalnego problemu, chociaż działa samodzielnie, jednocześnie rozwiązanie problemu globalnego odbywa się poprzez współpracę wszystkich programów. Wynika to z tego, że nie każdy agent posiada pewną specyficzną wiedzę do rozwiązania problemu z każdej dziedziny. 3.2. Negocjacja Negocjacje odgrywają fundamentalną rolę w międzyludzkich stosunkach. Możemy je określić jako proces porozumienia się, polegający na zredukowaniu wszelkich nieporozumień i niepewności. Negocjacja w systemach rozproszonej sztucznej inteligencji służy do koordynacji grup agentów. Protokoły negocjacji: protokół kontraktu (contract-net protocol) protokół centralnego zadania (task centralization) Jednym z podstawowych protokołów negocjacji jest protokół kontraktu. Agent ma za zadanie podjęcie się kontraktu, który ma wspomóc jakiś cel. Agent ma możliwość podziału kontraktu na podkontrakty i może przeznaczyć je innym potencjalnym agentom-managerom, którzy będą mieli możliwość realizacji ich. Protokół centralnego zadania, odpowiada planom lotów. Każdy samolot opracowuje swój własny plan lotów, który ma zapewnić bezpieczną odległość z innymi samolotami oraz zapewnić poszczególnym agentom (samolotom) jak najbardziej oszczędne trasy do osiągnięcia swoich celów z punktu widzenia zużycia paliwa. 5
3.3. Koordynacja i planowanie Koordynacja polega na wspólnej alokacji zasobów oraz na wymianie wspólnych wyników. Dzielimy ją na następujące procesy: wzajemne przystosowanie bezpośrednia kontrola standaryzacja Wzajemne przystosowanie występuje wtedy, gdy dwa lub więcej programy agentowe zgadzają się dzielić wspólne zasoby, ażeby osiągnąć cel. Agenci muszą wtedy wymienić wiele informacji oraz zrobić dużo poprawek we własnym zachowaniu zależnym od zachowania innych. We wzajemnym przystosowaniu żaden program agentowy nie posiada priorytetu kontroli nad innym, lecz wszelkie decyzje powstają jako wspólne decyzje. Bezpośrednia kontrola występuje wtedy, gdy dwa lub więcej programy agentowe występują w zaprzyjaźnionej grupie, przy czym jeden agent posiada kontrolę nad drugim. W tej formie koordynacji agent nadzorcy kontroluje użycie dzielonych zasobów. W niektórych przypadkach program nadzorcy wyznacza standardowe procedury koordynacji, w których wyznacza pewne dopuszczalne sytuacje. Dla przykładu, procedury rutynowe w komputerach można traktować jako koordynacje przez standaryzację. Dla większej grupy agentów nadaje się lepiej hierarchia, która wykorzystuje bezpośrednią kontrolę. W systemie tym dużą grupę dzieli się na podgrupy. Wtedy wymiana informacji przebiega pomiędzy tymi podgrupami oraz niektóre ważniejsze informacje są przechwytywane przez ich nadrzędną grupę. W sytuacji takiej pomiędzy podgrupami można wprowadzić wzajemne przystosowanie lub dalej bezpośrednią kontrolę. Jeżeli chodzi o mniejsze grupy, to wygodnym systemem staje się wzajemne przystosowanie. 6
Większą koordynację możemy osiągnąć przez narzucenie określonych rozumowań pewnej grupie programów agentowych interesujących się konkretnym celem. Nazywamy to planowaniem zadań dla poszczególnych grup czy samych agentów (planowanie wieloagentowe). Takie planowanie może odbywać się na dwa sposoby: scentralizowane planowanie wieloagentowe (centralized multiagent planning) rozproszone planowanie wieloagentowe (distributed multiagent planning) Scentralizowane planowanie wieloagentowe oznacza sytuację, w której jeden agent kreuje centralistycznie plan dla grupy innych agentów. Przykładem takiego planowania jest system kontroli lotów powietrznych. Na początku samoloty wybierają wspólnego koordynatora, który następnie generuje plan wieloagentowy dla poszczególnych samolotów. Rozproszone planowanie wieloagentowe charakteryzuje się tym, że ciężar planowania zostaje rozłożony pomiędzy poszczególne programy agentowe. Ten rodzaj planowania jest realizowany wtedy, kiedy trudno jest znaleźć stosownego agenta, który by mógł mieć globalny nadzór nad pewną grupą agentów. Wymiana informacji pomiędzy agentami może odbywać się bezpośrednio za pomocą wymiany komunikatów i planów lub też pośrednio przez modyfikację środowiska, w którym dane programy agentowe działają. W wymianie planów pierwszy agent przesyła swój cały plan do drugiego oraz drugi swój własny do pierwszego. Ta forma wymiany umożliwia miedzy innymi kooperację wśród programów agentowych, ale wywołuje także parę problemów. Plan dostarczony do innego agenta nie musi być zrozumiany przez jego bazę wiedzy. Nie ma także możliwości sukcesywnego formułowania planu, ponieważ plan zawsze dociera do odbiorcy w ostatecznej wersji. Lepszą strategią wymiany informacji jest wymiana komunikatów za pomocą tablicy. Tablica jest modelem wspólnej dzielonej pamięci, przez którą programy wymieniają informację z innymi programami. Programy mogą do niej zapisywać komunikaty i rozwiązania częściowe oraz otrzymywać informacje od innych. 7
4. Podsumowanie W pracy omówiono rolę agenta oraz ich grup w systemie MAS oraz cechy jakie powinien posiadać taki system. Mając pełen pogląd na możliwości takiego systemu zaproponowano wykorzystanie systemu MAS w następujących problemach: Problemy kombinatoryczne i optymalizacyjne wykorzystanie heurystycznego algorytmu mrówkowego, będącego w istocie systemem wieloagentowym. Mrówka jako agent, analizuje wycinek przestrzeni rozwiązań danego problemu, podejmuje decyzje o przydatności danego rozwiązania i umieszcza wyniki analizy w globalnej bazie wiedzy dostępnej dla pozostałych agentów mrówek. Problem rozwiązywany jest szybciej niż w tradycyjnym podejściu strukturalnym, dlatego że zostaje podzielony na mniejsze podproblemy i jest rozwiązywany równolegle przez agentów. Dodatkowo budowana w trakcie pracy agentów-mrówek baza wiedza zostaje wykorzystana w planowaniu przyszłych celów, co ogranicza nieefektywne decyzje. Systemy wspomagania decyzji i zarządzania Systemy wspomagające człowieka w podejmowaniu decyzji. Agenci dysponują bazą wiedzy na temat preferencji użytkownika i dokonują za niego decyzji w sprawie np. kupna artykułów, usług, organizacji dnia, filtrowania poczty przychodzącej. Agenci przeszukują przestrzeń możliwych decyzji (np. internet, kalendarze współpracowników) w poszukiwaniu informacji i wybierają najlepsze rozwiązanie dla użytkownika (np. najtańszy produkt, bezkonfilktowa pora na spotkanie biznesowe). Należy zwrócić uwagę na sprawę bezpieczeństwa. Agenci posiadają poufną wiedzę na temat preferencji użytkownika, a uruchomieni poza środowiskiem użytkownika są łatwym celem inwigilacji. Systemy wyszukiwania Szereg agentów przeszukuje zadaną przestrzeń w celu odnalezienia informacji, która może być przydatna dla użytkownika. Problemem w tego typu działaniach może być koordynacja agentów, mająca na celu zwiększenia efektywności szukania i uniknięcia niepotrzebnej (np. powtórzonej) pracy agentów. 8
Systemy aktualizacji Agenci zajmujący się pielęgnowaniem oprogramowania. Przeszukują przestrzeń programów, znajdują te, które wymagają poprawek i dokonują aktualizacji. Głównym problemem jest tutaj kwestia bezpieczeństwa. Agent może być nosicielem wirusa lub programu szpiegującego. Należy zadbać o ochronę użytkownika przed potencjalnie niebezpiecznymi agentami. Systemy monitorujące Agenci monitorują przestrzeń, w której zachodzą pewne zdarzenia i podejmują na ich podstawie określone działania. Np system kontroli lotu, systemy medyczne, systemu szeroko rozumianych czujników. Najtrudniejszym pytaniem przy tego typu zastosowaniach systemów wieloagentowych są uprawnienia jakie posiada agent. Zbyt duże uprawnienia mogą spowodować katastrofę w przypadku systemów związanych z życiem człowieka. Rozsądnym kompromisem wydaje się działanie agentów w takich środowiskach tylko do momentu zgłoszenia raportu w przypadku określonej zmiany środowiska. Wydaje się, że decyzja co zrobić dalej z takim raportem powinna być już zależna od człowieka. W pozostałych przypadkach działanie agenta jest pożądane oszczędza czas człowieka podejmując za niego decyzje powtarzalne, nie wymagające jego zaangażowania. Kwestią kluczową pozostaje nauka agentów. Agenci muszą wypracować sposób postępowania podczas wystąpienia nieznanych sytuacji. 5. Literatura [1] http://home.agh.edu.pl/~mitu/data/2004/jsi/distrib.doc 9