Technologia inteligentnych agentów
Transkrypt
Technologia inteligentnych agentów
Technologia inteligentnych agentów Autor: dr Jacek Jakieła Technologia inteligentnych agentów WYKŁAD ............................................................................................................. 3 Cel kursu ......................................................................................................... 3 Wstęp ............................................................................................................. 3 Systemy agentowe - rys historyczny .................................................................... 4 Pojęcie agenta .................................................................................................. 5 Definicja agenta ............................................................................................ 6 Cechy agentów .............................................................................................. 9 Pojęcie systemu wieloagentowego ..................................................................... 12 Architektury agentów ...................................................................................... 13 Agent-0...................................................................................................... 13 Realizacja architektury Agent-0 w środowisku AgentBuilder ............................... 15 Architektura agenta BDI ............................................................................... 18 Rozumowanie praktyczne.............................................................................. 19 Realizacja architektury BDI – AgentSpeak i Jason ............................................. 23 ĆWICZENIA ...................................................................................................... 26 Zadanie 1 ...................................................................................................... 26 Zadanie 2 ...................................................................................................... 26 Zadanie 3 ...................................................................................................... 26 Zadanie 4 ...................................................................................................... 26 Zadanie 5 ...................................................................................................... 26 Zadanie 6 ...................................................................................................... 27 Zadanie 7 ...................................................................................................... 27 Zadanie 8 ...................................................................................................... 27 Zadanie 9 ...................................................................................................... 27 Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 2 Technologia inteligentnych agentów WYKŁAD Cel kursu W ramach kursu przedstawiono tematy pozwalające lepiej zrozumieć kluczowe pojęcia związane z paradygmatem agentowym, oraz wybrane czynności realizowane podczas procesu wytwórczego systemów tej klasy. Kurs pozwala odpowiedzieć na następujące pytania: • Jakie jest znaczenie podstawowych pojęć związanych z paradygmatem agentowym? • Co to jest oprogramowanie agentowe i jakie są jego cechy?. • Jakie są korzyści wynikające z zastosowania systemów tej klasy?. • Jak wygląda struktura oraz sposób funkcjonowania najpopularniejszych architektur agentowych? • Jak przygotować reprezentację logiczną wiedzy agenta oraz skorzystać z maszyny wnioskującej języka Prolog w celu jej analizy? • Jak realizowana jest komunikacja w systemach agentowych i jak ją modelować? • Jak zaimplementować system agentowy w środowisku programowania agentowego? Wstęp Koncepcja agenta softwareowego spotyka się z coraz większym zainteresowaniem. Nie chodzi tylko o laboratoria naukowe, które od lat prowadzą szeroko zakrojone badania nad technologiami agentowymi, ale również o zwykłych użytkowników systemów informatycznych, którym bardzo spodobała się idea delegowania złożonych lub żmudnych zadań do oprogramowania. Oprogramowanie agentowe może wyręczyć użytkownika w realizacji wielu czasochłonnych czynności. Agent działając w imieniu swojego użytkownika i zgodnie z jego preferencjami może zarezerwować bilet lotniczy, zamówić pozycję książkową online, powiadomić o pojawieniu się nowego utworu ulubionego muzyka, czy monitorować zawartość portfela akcji i proponować zmiany jego zawartości prowadzące do optymalizacji wybranych przez inwestora parametrów. Bardziej zaawansowane oprogramowanie agentowe może negocjować ceny materiałów w imieniu działu zaopatrzenia z agentami kluczowych dostawców, harmonogramować produkcję, lub automatyzować procesy typu workflow. To jak istotne jest znaczenie systemów agentowych z perspektywy rozwoju nowych technologii informacyjnych pokazują prace nad siecią semantyczną (Semantic Net), w której agenci odgrywają kluczową rolę i która ma szansę stać się przełomowym etapem w rozwoju systemów bazujących na technologiach Internetu. Niestety, oprogramowanie tego typu posiada większą złożoność od klasycznych rozwiązań, a proces wytwórczy zaawansowanych systemów agentowych wymaga specjalistycznej i interdyscyplinarnej wiedzy oraz umiejętności. Wynika to z inherentnych cech systemów agentowych. Projektant musi znać kwestie związane zarówno z projektowaniem pojedynczego agenta jak również systemu, który jest realizowany w formie społeczności współpracujących agentów. I tak w przypadku procesu wytwórczego pojedynczego agenta należy podjąć szereg decyzji projektowych związanych z doborem Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 3 Technologia inteligentnych agentów metody reprezentacji wiedzy oraz algorytmów wnioskowania. W sytuacji, gdy tworzone jest bardziej zaawansowane rozwiązanie może okazać się konieczne zastosowanie algorytmów uczenia maszynowego, czy planowania. Proces wytwórczy systemu wieloagentowego wymaga od projektanta kolejnych umiejętności związanych z realizacją mechanizmów koordynacji kolektywnych działań agentów oraz komunikacji międzyagentowej. Systemy agentowe - rys historyczny W badaniach, w których rdzeniem jest pojęcie agenta można wyodrębnić dwa wątki. W pierwszym, trwającym od lat siedemdziesiątych do chwili obecnej, badania koncentrują się głównie na architekturze inteligentnego agenta, który posiada dokładną reprezentację środowiska, w którym działa w postaci modelu symbolicznego i który podejmuje decyzje poprzez wnioskowanie symboliczne [Wooldr95]. Wątek ten możemy określić, jako aspekt mikro badań nad agentami (lub badania z perspektywy jednostki). Drugi, rozpoczynający się przy końcu lat osiemdziesiątych, który również trwa do chwili obecnej związany jest z rozwojem systemów, które są fizycznie rozproszone oraz korzystają z rozproszonych zasobów. Badania w tej dziedzinie doprowadziły do wyłonienia się koncepcji agenta w kontekście systemów zdecentralizowanych. Jedna z tez sformułowanych w ramach tych badań głosi, że najlepszym sposobem realizacji systemów zdecentralizowanych jest podejście wykorzystujące agenta, jako elementarny blok składowy systemu [Cetnar99]. Przy takiej organizacji, system rozproszony przyjmuje architekturę systemu wieloagentowego. Pierwsze konferencje związane z problematyką systemów agentowych, koncentrujące się wokół tematyki rozproszonej sztucznej inteligencji (Distributed Artificial Intelligence) datowane są na drugą połowę lat osiemdziesiątych [Huhns88][Gasser89]. W tym obszarze badań, który można określić, jako aspekt makro, środek ciężkości został przesunięty z analizy architektury agenta, jako jednostki, na analizę architektury systemu zrealizowanego w formie społeczności. Do kluczowych problemów stanowiących tematykę badań w tym obszarze zaliczane są: komunikacja pomiędzy agentami, dekompozycja i alokacja zadań, koordynacja działań i współpraca oraz rozwiązywanie konfliktów poprzez negocjacje. W rezultacie powstało wiele systemów, które oferowały rozwiązania wybranych problemów m.in.: MACE [Gasser87], MICE [Durfee89], TEAMS [Decker93][Decker95], ARCHON [Wittig92] oraz VDT [Levitt94]. Powstały również architektury odniesienia, które doczekały się implementacji i komercyjnych zastosowań. Do najlepiej sprawdzonych i szeroko wykorzystywanych obecnie architektur można zaliczyć architekturę agent-0 oraz BDI. Obydwie zostały zaprezentowane w niniejszym kursie. Zadanie. Odwiedź witrynę www.agentland.com i przeprowadź rozmowę z wirtualną asystentką Cybelle. Zapisz swoje pytania i jej odpowiedzi. Zadanie. Znajdź w Internecie informacje na temat zastosowań systemów agentowych i przygotuj krótką, 20 minutową prezentację na temat wybranego systemu pokazującą istotę przedsięwzięcia oraz problemy rozwiązane przez opracowany system. Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 4 Technologia inteligentnych agentów Pojęcie agenta Pojęcie agenta ma swoje korzenie w TEORII SZTUCZNEJ INTELIGENCJI (Artificial Intelligence), gdzie w latach siedemdziesiątych zostało wprowadzone przez Hewitta, w celu opisania koncepcji „inteligentnych”, równolegle wnioskujących składników systemu informatycznego. W swoim modelu aktorów (Concurrent Actor Model), Hewitt zaproponował pojęcie niezależnego, samowystarczalnego, interaktywnego obiektu, który określił terminem aktor. Aktor posiada hermetyzowany (encapsulated internal state) stan wewnętrzny i może reagować na komunikaty od innych, podobnych do niego obiektów. Zgodnie z definicją wprowadzoną przez Hewitta, aktor jest agentem komputerowym, który posiada adres oraz określone zachowanie. Aktorzy komunikują się poprzez przesyłanie komunikatów i realizują działania w sposób równoległy [Hewitt77]. W celu lepszego zrozumienia pojęcia agenta warto zastanowić się nad relacją, jaka występuje pomiędzy oprogramowaniem agentowym oraz innymi typami oprogramowania. Prawdopodobnie najprostszym typem oprogramowania z perspektywy procesu wytwórczego jest oprogramowanie proceduralne. Program proceduralny pobiera dane ze standardowego wejścia, przetwarza je zgodnie z określoną logiką, drukuje wynik na standardowym wyjściu, po czym kończy pracę. Przykładowe zadanie realizowane podczas kursu języka proceduralnego może wyglądać następująco: napisz program, który przeczyta listę liczb, obliczy średnią wczytanych liczb a wynik wydrukuje na konsoli. Programy proceduralne często są definiowane jako funkcje f: I→O, gdzie I to zbiór dopuszczalnych wartości wejściowych a O zbiór wartości wyjściowych. Teoria inżynierii oprogramowania oferuje całą paletę wielokrotnie sprawdzonych technik i metodyk projektowania tego typu oprogramowania. Niestety, nie wszystkie programy mogą mieć taką prostą strukturę. Istnieją systemy, które działają w sposób określany terminem reaktywny, co oznacza, że muszą na bieżąco i w sposób ciągły zarządzać interakcjami ze środowiskiem, w którym są usytuowane. Tego typu systemy nie funkcjonują wg wzorca, wejście→przetwarzanie→wyjście→koniec_działania. Przykłady oprogramowania reaktywnego to systemy operacyjne, systemy kontroli procesów (które mogą mieć różną specyfikę np. procesy produkcyjne, chemiczne, wytwarzania energii etc.), systemy bankowości on-line, serwery webowe, wyszukiwarki. W przypadku systemów reaktywnych proces wytwórczy oprogramowania jest o wiele trudniejszy i bardziej złożony niż jego odpowiednik dla systemów klasycznych. Można powiedzieć, że systemy agentowe stanowią podkategorię systemów reaktywnych o jeszcze wyższym poziomie złożoności. Agent jest systemem reaktywnym, który dodatkowo wykazuje pewien stopień autonomii w tym sensie, że po delegowaniu do niego zadania agent sam określa, jaki sposób jego realizacji jest najlepszy. Rozwiązania tego typu są określane terminem agent, ponieważ myśli się o nich, jako o aktywnych i zorientowanych na cel jednostkach, które autonomicznie realizują powierzone im zadania – mogą być wysyłane do realizacji działań w określonym środowisku, aby osiągnąć cel użytkownika. Agent realizuje cel w sposób aktywny, samodzielnie określając optymalne działania, i nie czekając na szczegółowe instrukcje od użytkownika mówiące krok po kroku jak należy go zrealizować. Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 5 Technologia inteligentnych agentów Ciekawe podejście do genezy pojęcia agenta zostało zaprezentowane przez Cetnarowicza [Cetnar99]. Przedstawił on agenta, jako kolejny krok w naturalnym rozwoju pojęć związanych z konstrukcją oprogramowania. Przyjmując, że algorytm jest elementem aktywnym znajdującym się (i działającym) w określonym środowisku wyróżnione zostały następujące etapy ewolucji: • Procedura. Do kluczowych własności procedury zaliczana jest jej zależność od innych procedur w tym sensie, że procedura wywoływana korzysta ze środowiska procedury wywołującej. W związku z tym procedury wywołująca i wywoływana są ze sobą powiązane i ściśle od siebie uzależnione. • Proces softwareowy charakteryzuje się przede wszystkim tym, że istnienie jego środowiska nie zależy od środowiska innego procesu. Proces nie jest elementem autonomicznym gdyż nie posiada informacji na temat swojego stanu a system musi przechowywać informacje, które wzbogacają środowisko procesu w celu jego prawidłowego przebiegu. • W celu rozwinięcia pojęcia proces, wprowadzono pojęcie obiektu, który przechowuje całą, niezbędną do funkcjonowania informację. Jako, że obiekt może działać w różnych środowiskach posiada własność autonomii. Jako autonomiczny element jest bardzo wygodnym blokiem składowym, z którego korzystają projektanci systemów rozproszonych. • Agent stanowi kolejny etap w rozwoju obiektu, zachowując własność autonomii. Agent, podobnie jak obiekt hermetyzuje całą, niezbędną do funkcjonowania informację na temat swojego stanu. Inaczej jednak niż to ma miejsce w przypadku obiektu, decyzja podjęcia działania jest w przypadku agenta samodzielna i zależy od aktualnego stanu środowiska, w którym agent działa i którego stan w sposób ciągły monitoruje. Omówione zależności przedstawia rysunek. P1 P2 call Proces 1 create Proces 2 new Obiekt1 Obiekt2.service Obiekt2 Rysunek. Procedura, proces i obiekt w aspekcie układu „algorytm-środowisko”. Definicja agenta W latach osiemdziesiątych zaczęła się krystalizować definicja pojęcia agent oraz charakterystyka kontekstu, w którym agent może być lub powinien być stosowany. Do tej pory zaproponowano różnorodne definicje, lecz pomimo wielu lat badań, nie osiągnięto konsensusu, co do jednej, powszechnie obowiązującej definicji agenta. Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 6 Technologia inteligentnych agentów Przedstawione w dalszej części definicje pokazują różnorodność ujęć pojęcia agenta. Celem prezentacji różnych definicji nie jest rozstrzygnięcie tego, która definicja jest właściwa i powinna być obowiązująca, lecz charakterystyka najważniejszych cech agenta i ograniczenie ich do zbioru tych, które są istotne z perspektywy kursu. Jedną z pierwszych prac dotyczących pojęcia agenta jest praca Demazeau [Demazeau]. Znajduje się w niej opis, który może być przyjęty, jako jedna z pierwszych intuicyjnych definicji agenta. W pracy tej zawarto bardzo przejrzystą motywację wprowadzenia agenta do realizacji systemów zdecentralizowanych i przedstawiono następującą listę wymagań, jakie należy postawić agentowi: • Agent musi umieć wykorzystywać różnorodne, niepewne i często sprzeczne źródła informacji. • Agent powinien skutecznie działać w zmieniających się warunkach dokonując ich trafnej oceny. • Agent musi umieć przełożyć (odwzorować) swoje cele na ograniczone możliwości postrzegania i działania. Według Russella i Norviga, agentem jest każdy obiekt, który postrzega środowisko, w którym został usytuowany poprzez sensory i oddziałuje na nie z wykorzystaniem efektorów. Autorzy tej definicji są szczególnie zainteresowani inteligentnymi agentami, to znaczy takimi, którzy wykorzystują metody i techniki sztucznej inteligencji [Russel95]. Warto zauważyć, że znaczenie tej definicji bardzo mocno zależy od tego jak zdefiniujemy środowisko, oraz procesy obserwacji i oddziaływania. Pionierka badań nad agentami Pattie Maes definiuje agenta, jako system komputerowy, który „zamieszkuje” pewne złożone, dynamiczne środowisko, postrzega je i oddziałuje na to środowisko, dzięki czemu realizuje zbiór celów [Maes90]. Przedstawiona definicja ujawnia jedną z kluczowych cech agenta – autonomię. Agent musi działać autonomicznie, aby samodzielnie osiągnąć cel lub zbiór celów, do realizacji których został zaprojektowany. Również pojęcie środowiska zostało ograniczone do takich środowisk, które są złożone i dynamiczne. Definicja wprowadzona przez Hayes-Roth opisuje agenta, jako jednostkę, która w sposób ciągły realizuje trzy funkcje: postrzeganie dynamicznych warunków występujących w środowisku, działanie mające na celu zmianę tych warunków oraz wnioskowanie w celu interpretacji spostrzeżeń, rozwiązywania problemów, dochodzenia do wniosków oraz określenia działań, jakie należy podjąć [Hayes95]. Firma IBM definiuje agenta, jako program, który realizuje w sposób w pewnym stopniu autonomiczny zbiór działań w imieniu użytkownika lub innego programu komputerowego. Przy realizacji tych działań agent wykorzystuje określoną wiedzę i reprezentację celów oraz pragnień użytkownika. Brustoloni z kolei definiuje agenta, jako system, który jest zdolny do celowego, autonomicznego działania w świecie rzeczywistym [Brusto91]. W związku z tą definicją pojawiają się dwa nowe wymagania wobec agenta. Jest to zdolność do działania w świecie rzeczywistym, oraz zdolność do reagowania na zewnętrzne, asynchroniczne bodźce we właściwym czasie. Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 7 Technologia inteligentnych agentów Rysunek przedstawia podstawowe charakterystyki strukturalne agenta, które pojawiały się w przytoczonych definicjach. Rysunek 1. Ogólna struktura agenta. Specyfikacja przedstawiona na rysunku opisuje szkielet zachowania agenta. Jak wynika z algorytmu, pamięć agenta jest na bieżąco uaktualniana nowym spostrzeżeniem. Następnie, wybierana jest najlepsza z możliwych akcja. Fakt wybrania akcji również jest odnotowywany w pamięci agenta. Rysunek. Szkielet zachowania agenta. Definiując pojęcie agenta dobrze jest rozróżnić pomiędzy architekturą oraz programem agenta. Program agenta może być zdefiniowany, jako funkcja, która jest odpowiedzialna za odwzorowywanie spostrzeżeń agenta na akcje, które agent realizuje. Dziedzina sztucznej inteligencji od kilkudziesięciu lat rozwija techniki, metody i narzędzia pozwalające tworzyć programy tego typu. Program jest zwykle wykonywany z wykorzystaniem określonej architektury. Architektura może być architekturą fizyczną, która składa się z elementów pozwalających wykonywać agentowi określone czynności w świecie rzeczywistym. W takiej sytuacji sensory agenta mogą być zrealizowane w formie kamer cyfrowych, dzięki którym agent „widzi” środowisko, a efektory w formie ramion pozwalających chwytać i przenosić różne obiekty oraz kończyn dolnych, dzięki którym agent będzie się przemieszczał. Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 8 Technologia inteligentnych agentów Rysunek. Architektura sprzętowa C-3PO z filmu „Gwiezdne wojny”. Architektura może również przyjąć formę oprogramowania i wówczas występuje w postaci szkieletu programowego (Software Framework), w ramach którego wykonywany jest program agenta. Przykładem takiej architektury jest System Praktycznego Rozumowania (Practical Reasoning System) omówiony w dalszej części kursu. Może się również zdarzyć sytuacja, w której agent składa się z dwóch architektur sprzętowej i połączonej z nią za pomocą odpowiednich interfejsów architektury softwareowej. Podsumowując, relacja pomiędzy takimi pojęciami jak agent, architektura i program może być zapisana w następującej postaci: agent = architektura + program Realizacja procesu wytwórczego oprogramowania agentowego wymaga od projektanta bardzo dobrego zrozumienia kluczowych cech agenta, które zostały omówione w kolejnej sekcji. Zadanie. Zbierz w Internecie 4 definicje agenta i zinterpretuj każdą z nich na swój sposób. Zapisz swoją interpretację. Która z definicji jest dla Ciebie najbardziej zrozumiała? Jakie są kluczowe różnice pomiędzy modelem pojęciowym agenta opisanym w definicjach a modelem pojęciowym klasycznych programów stworzonych w oparciu np. o paradygmat proceduralny? Cechy agentów Najlepszym rozwiązaniem problemu braku powszechnie obowiązującej definicji agenta jest przyjęcie zbioru cech, które zakłada się, że agent powinien posiadać. Poniżej przedstawiono zbiór cech, które najczęściej pojawiają się w literaturze przedmiotu przy okazji definicji pojęcia agent. Należy jednak zaznaczyć, że nie są to własności normatywne, ustalające bezwzględnie to, jak pojęcie agenta powinno być zdefiniowana i używane. Russel i Norvig ujmują to następująco „…wprowadzone pojęcie agenta i jego określonych cech ma być pomocne w procesach analizy i projektowania systemów a nie traktowane, jako prawda absolutna, pozwalająca podzielić świat na agentów i nie-agentów…” [Russel95]. Na potrzeby niniejszego kursu, następujące charakterystyki zostają uznane za podstawowe bloki składowe definicji AGENTA: • Środowisko jest kluczowym elementem charakterystyki agenta, gdyż jest tym, w czym agent jest usytuowany, czego jest częścią, co obserwuje i na co oddziałuje w celu wprowadzenia zmian. Środowisko jest w pewnych sytuacjach warunkiem istnienia agenta, gdyż po wniesieniu zmian w środowisku, może się okazać, że agent przestał być agentem. Franklin podaje bardzo obrazowy przykład. Załóżmy, że mamy robota, który dysponuje tylko sensorami wizyjnymi, zlokalizowanego w oświetlonym Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 9 Technologia inteligentnych agentów • • pomieszczeniu. Zmiana stanu środowiska poprzez zgaszenie światła spowoduje, że agent przestaje być agentem, gdyż nie jest w stanie obserwować swojego środowiska i w związku z tym oddziaływać na nie [Frankl97]. Russell i Norvig definiują następujące typy środowisk: Dostępne vs. niedostępne. Jeżeli sensory agenta dają mu dostęp do ścisłej, pełnej i aktualnej informacji na temat stanu środowiska, wówczas środowisko jest dostępne dla agenta, w przeciwnym razie jest niedostępne. Środowisko jest efektywnie dostępne, gdy sensory agenta są w stanie określić wszystkie kwestie niezbędne do wybrania akcji. Deterministyczne vs. niedeterministyczne. Jeżeli następny stan środowiska jest całkowicie zdeterminowany przez jego obecny stan oraz akcje wybrane przez agenta, wówczas środowisko jest deterministyczne. Jeżeli środowisko jest niedostępne wówczas może okazać się niedeterministyczne. Jest to szczególnie prawdopodobne w sytuacji, gdy środowisko jest złożone i agentowi trudno jest brać pod uwagę wszystkie niedostępne kwestie. Epizodyczne vs. nieepizodyczne. W środowisku epizodycznym doświadczenie agenta jest dzielone na epizody. W każdym epizodzie agent postrzega środowisko i wykonuje akcję. Jakość działań agenta zależy jedynie od danego epizodu, ponieważ kolejne epizody nie zależą od akcji wykonanych w poprzednich. Projektowanie agentów dla środowiska epizodycznego jest prostsze ponieważ agent nie musi myśleć „do przodu”. Statyczne vs. dynamiczne. Jeśli środowisko może ulec zmianie podczas procesu wyboru przez agenta optymalnej akcji wówczas środowisko jest dynamiczne, w przeciwnym razie jest statyczne. Zmiany występujące w środowisku dynamicznym są poza kontrolą agenta. Środowiska statyczne są prostsze w interakcji, ponieważ agent nie musi ich obserwować w trakcie podejmowania decyzji dotyczącej wyboru akcji. Dyskretne vs. ciągłe. Jeżeli istnieje ograniczona liczba wyraźnych, dobrze zdefiniowanych spostrzeżeń i akcji wówczas środowisko jest dyskretne. Przykładowo agent, który gra w szachy ma do czynienia z dyskretnym środowiskiem, ponieważ istnieje wyraźnie określona, stała liczba możliwości w każdym ruchu. Agent prowadzący samochód ma do czynienia z ciągłym środowiskiem, ponieważ prędkość i położenie samochodu oraz innych pojazdów zmienia się w określonym zakresie wartości w sposób ciągły. Procesy obserwacji i oddziaływania. Działanie agenta jest uzależnione od umiejętności obserwacji zmian środowiska, w którym agent funkcjonuje oraz oddziaływania na to środowisko. Obserwacja wymaga odpowiednio zdefiniowanych mechanizmów monitorowania i interpretowania stanu środowiska, natomiast oddziaływanie wymaga, aby agent posiadał umiejętności pozwalające na zmianę stanu środowiska oraz przekazywanie wyników swoich działań do społeczności. Celowość działań biorących pod uwagę ograniczenia. Agent korzystając ze swoich umiejętności i wykonując działania stara się osiągnąć cel (lub cele), do realizacji których został zaprojektowany. Zachowanie zorientowane na cel (Goal oriented behavior) jest kluczową cechą, która wyróżnia oprogramowanie agentowe. Z realizacją celu może być związana tak zwana miara wykonania (Preformance Measure). Mówi ona o tym jak skuteczny jest agent w osiąganiu określonego celu. Oczywiście nie istnieje jedna, wspólna miara, która może być zastosowana do oceny wszystkich agentów. Zwykle to projektant definiuje pewien standard precyzujący dokładnie, co oznacza, że agent jest skuteczny w określonym środowisku. Standard ten jest następnie wykorzystywany do pomiaru skuteczności działań agenta. Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 10 Technologia inteligentnych agentów Jako przykład rozważmy agenta, który jest odpowiedzialny za odkurzanie brudnej podłogi. Miarą wykonania, która przychodzi na myśl jako pierwsza jest ilość zebranego kurzu w ciągu pojedynczej ośmiogodzinnej zmiany. Bardziej wyrafinowana miara wykonania mogłaby brać pod uwagę, oprócz ilości zebranego kurzu, również poziom zużycia energii oraz poziom generowanego hałasu. Najbardziej zaawansowana miara wykonania może przydzielać punkty nie tylko za ilość kurzu, cichą pracę i zużycie energii, ale dodatkowo uwzględniać umiejętność organizacji w sposób pozwalający na wypoczynek nad wodą w trakcie weekendu ;-). • Cecha autonomii oznacza, że od momentu uruchomienia agent realizując zgodnie z regułami działania i z wykorzystaniem swoich umiejętności zadania, posiada pewnego rodzaju kontrolę nad swoim stanem i zachowaniem. Ważne jest, aby mieć świadomość tego, że własność autonomii ma szerokie spektrum. Na jednym końcu mamy programy komputerowe takie jak edytory tekstu, czy arkusze kalkulacyjne, które wykazują bardzo niewielką (jeśli w ogóle) autonomię. Wszystko, co dzieje się w ramach takiej aplikacji zostało zainicjowane przez użytkownika, który wybrał określoną pozycję w menu lub kliknął w ikonę na pasku narzędziowym. Oprogramowanie tego typu w żaden sposób nie przejawia „własnej inicjatywy”. Na drugim końcu spektrum jest człowiek. Istota ludzka jest całkowicie autonomiczna. Każdy z nas może wierzyć w to, co chce i robić to, co chce, chociaż niejednokrotnie pod różnymi względami społeczność, w której żyjemy ogranicza dopuszczalne działania dla dobra ogółu. Każdy z nas ma swoje cele, swój porządek działań, a autonomia oznacza, że nikt ani nic tego odgórnie nie narzuca (oczywiście ktoś może argumentować, że społeczność w pewien sposób kształtuje nasze przekonania i cele, ale to jest już odrębna kwestia). Autonomia agentów znajduje się gdzieś po środku, co oznacza, że można delegować cele do agenta, który sam określa jak działać, aby jak najlepiej je zrealizować. W najprostszym wariancie autonomia oznacza, że agent potrafi działać niezależnie przy realizacji delegowanych do niego celów. Mówiąc inaczej autonomiczny agent podczas realizacji celów podejmuje decyzje niezależnie – jego decyzje i działania, które realizuje są pod jego wyłączną kontrolą. • Działanie w czyimś imieniu. Agent działa zwykle w imieniu użytkownika lub innego agenta zgodnie z filozofią delegacji zadań (Don’t navigate – delegate!). • Ciągłość działania oznacza, że agent raz uruchomiony działa nieprzerwanie, aż do momentu, kiedy on lub jego użytkownik zadecyduje o zaprzestaniu działania. Agent działa w cyklu na który składa się monitorowanie środowiska, aktualizacja bazy przekonań oraz proces podejmowania decyzji jaką akcję wybrać. • Proaktywność. Cecha proaktywności oznacza zdolność do wykazywania zachowania zorientowanego na cel. Jeżeli do agenta delegowano określony cel wówczas możemy spodziewać się tego, że agent rozpocznie działanie, aby go osiągnąć. Proaktywność odbiera prawo bycia agentem pasywnym jednostkom, które nie próbują czegoś dokonać. W związku z tym zwykle nie myślimy o Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 11 Technologia inteligentnych agentów klasycznych obiektach, jako o agentach. Obiekty są zawsze pasywne dopóki coś nie wywoła ich określonego zachowania (nie uruchomi metody). • Reaktywność. Bycie reaktywnym oznacza umiejętność szybkiego reagowania na zmiany pojawiające się w środowisku. Jak wiadomo, w rzeczywistości plany rzadko są realizowane bez problemów. Po ustaleniu, że plan idzie niezgodnie założeniami powinno zostać wybrane alternatywne działanie. Niektóre z tych reakcji są odruchowe, ale niektóre wymagają zastanowienia. Projektowanie systemu, który odruchowo reaguje na zmiany w środowisku jest stosunkowo proste i sprowadza się do przeszukiwania listy stan-reakcja, która odwzorowuje stany środowiska na konkretne działania. Projektowanie systemów tylko zorientowanych na określony cel również nie jest zadaniem bardzo trudnym. Prawdziwym wyzwaniem jest zaprojektowanie systemu, który potrafi zrównoważyć zachowania czysto reaktywne z tymi zorientowanymi na cel. • Umiejętności społeczne. Posiadanie umiejętności społecznych oznacza, że agent musi być zdolny do interpretacji komunikatów pochodzących ze środowiska oraz do formułowania i przesyłania komunikatów, poprzez które agent oddziałuje na środowisko. Przy komunikacji z użytkownikiem, agent może wykorzystywać np. graficzny interfejs użytkownika, natomiast w przypadku komunikacji z innymi agentami (Agent precyzyjnie Communication zdefiniowany Language). język komunikacji międzyagentowej Najczęściej wykorzystywanym językiem komunikacji międzyagentowej jest KQML (Knowledge Query and Manipulatioan Language). Pojęcie systemu wieloagentowego W praktyce systemy agentowe składające się z jednego agenta są projektowane bardzo rzadko. Wartość dodana pojawia się wówczas, gdy agent jest usytuowany w środowisku, w którym funkcjonują również inne systemy agentowe (agenci). W takim przypadku mamy do czynienia z systemem wieloagentowym (Multiagent System). Postać kanoniczną systemu wieloagentowego przedstawia rysunek. W dolnej części widać współdzielone środowisko. Każdy z agentów ma określony „obszar wpływu” tzn. część środowiska, którą może kontrolować całkowicie lub częściowo. Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 12 Technologia inteligentnych agentów Rysunek. Postać kanoniczna systemu wieloagentowego. Może się zdarzyć, że każdy agent ma unikatową część środowiska (gdzie tylko on ma wyłączność na kontrolę), ale może również wystąpić bardziej problematyczna sytuacja, w której obszary wpływu zachodzą na siebie i wówczas środowisko jest kontrolowane wspólnie. Taka sytuacja czyni „życie” agentów bardziej skomplikowanym, ponieważ aby osiągnąć określony cel we współdzielonym środowisku należy wziąć pod uwagę to jak inni agenci prawdopodobnie zadziałają. W górnej części schematu widać, że agenci mogą być między sobą w różnych relacjach organizacyjnych jak np. zwierzchnik – podwładny. W końcu agenci posiadają wiedzę na temat innych agentów, chociaż może się zdarzyć, że ta wiedza nie jest kompletna. Architektury agentów Agent-0 Architektura Agent-0 jest jedną z pierwszych stosunkowo kompletnych architektur agentowych, która została opracowana przez Shohama [Shoham91][Shoham93][Shoham95]. Podstawowe założenia tej architektury są następujące: • Każdy agent posiada stan mentalny (Mental state). • Ze stanem mentalnym są związane dwie podstawowe modalności: przekonanie i zobowiązanie. • Są dwa podstawowe typy działań: działania prywatne (Private Actions) i działania komunikatywne (Communicative Actions). Działanie prywatne są podstawową metodą realizacji zadań, natomiast działania komunikatywne są mechanizmem wymiany komunikatów z innymi agentami. • Działanie agenta składa się z prostych operacji, takich jak wysyłanie komunikatów, odbieranie komunikatów, wykonywanie działań prywatnych oraz aktualizacja modelu mentalnego. Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 13 Technologia inteligentnych agentów • Zachowanie agenta jest zarządzane przez jego program. • Program agenta składa się z wstępnych przekonań, wstępnych zobowiązań, zdolności agenta oraz reguł zobowiązań. W działającym programie agentowym podejmowanie przez agenta decyzji sprowadza się do analizy przychodzących wiadomości i reakcji w formie odpowiedzi na te wiadomości. Agent w sposób cykliczny i w regularnych odstępach czasu powtarza następujące operacje: • Odczytaj bieżące wiadomości, zinterpretuj je i zaktualizuj swój stan mentalny, biorąc pod uwagę swoją wiedzę i zobowiązania. • Wykonaj działania przewidziane na bieżącą chwilę (mogą one wpłynąć na stan mentalny). Rysunek przedstawia ogólny schemat architektury agent-0. Krytycy tej architektury wskazują na następujące niedoskonałości: 1. Brak realistycznej operacji obserwacji środowiska i wynikającej z tego definicji sprawczych możliwości agenta. 2. Pozyskiwanie informacji na temat środowiska sprowadzone jest do odbierania przysyłanych komunikatów. 3. Uproszczony sposób podejmowania decyzji powoduje, że agent reaguje w pewien sposób odruchowo i automatycznie na bodźce będące rezultatem zdarzeń a zachowanie agenta jest zbliżone systemów reaktywnych i automatu skończonego. Głosy krytyczne nie zmieniają jednak faktu, że jest to jedna z pierwszych kompletnych architektur, która może być, bez zbędnego teoretyzowania, wykorzystana w procesie implementacji systemu wieloagentowego. Istotne jest również to, że architektura Agent0 została wykorzystana, jako model odniesienia przy implementacji wielu zintegrowanych środowisk rozwoju systemów wieloagentowych jak np. Agent Builder. Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 14 Technologia inteligentnych agentów Rysunek. Ogólna struktura architektury Agent-0. Realizacja architektury Agent-0 w środowisku AgentBuilder AgentBuilder jest zintegrowanym środowiskiem rozwoju systemów wieloagentowych. Przy opracowywaniu architektury środowiska, skorzystano z podstawowych założeń zdefiniowanych dla architektury agent-0, oraz prac Thomasa, który rozszerzył koncepcje Shohama opracowując język PLACA (ang. PLAnning Communicating Agents) [Thomas93][Thomas94]. Architektura agenta zawarta w środowisku AgentBuilder bierze pod uwagę następujące, podstawowe bloki składowe: przekonania, zdolności, zobowiązania oraz reguły behawioralne. Przekonania reprezentują obecny „stan świata”, odwzorowany w modelu mentalnym agenta. Przekonania mogą być modyfikowane w sytuacji, gdy agent odbierze nowy komunikat. Agent jest wyposażony w odpowiednie mechanizmy modyfikacji swojego modelu mentalnego. Zdolność jest strukturą, która została wykorzystana w celu połączenia działań z niezbędnymi warunkami wstępnymi (Preconditions). Aby określone działanie zostało wykonane muszą być spełnione wszystkie warunki wstępne. Lista zdolności agenta definiuje działania, które agent może zrealizować, pod warunkiem, że wszystkie warunki wstępne są spełnione. W architekturze środowiska AgentBuilder, działania, jakie może podjąć agent zostały sklasyfikowane na dwie kluczowe kategorie: działania prywatne i działania komunikatywne. Działania prywatne wpływają na środowisko agenta i nie zależą od interakcji z innymi agentami. Działania komunikatywne związane są z wysyłaniem komunikatów do innych agentów. Środowisko AgentBuilder implementuje standard KQML (zobacz sekcja Komunikacja w systemach agentowych). Każdy z agentów ma w związku z tym predefiniowane umiejętności wysyłania i przyjmowania oraz interpretacji komunikatów zapisanych w języku KQML. Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 15 Technologia inteligentnych agentów Rysunek. Architektura agenta w środowisku AgentBuilder. Zobowiązanie jest obietnicą wykonania określonego działania w określonym czasie. W sytuacji, gdy aktualny czas jest czasem, którego dotyczy obietnica, i spełnione są wszystkie warunki wstępne, wówczas agent wykonuje działanie. Aby wykonać działanie, do którego się zobowiązał, agent musi dysponować odpowiednimi zdolnościami. Reguła behawioralna jest rozszerzeniem reguły zobowiązania wprowadzonej w oryginalnym modelu Shohama. Reguła behawioralna określa sposób działania agenta w każdym momencie czasu, w ciągu okresu jego działania. Reguły behawioralne łączą zbiór możliwych reakcji agenta na aktualny stan środowiska opisany przez jego przekonania. Reguła behawioralna może być zapisana w postaci wzorca when-if-then. Część when bierze pod uwagę nowe zdarzenia występujące w środowisku agenta, włączając wyzwalacze komunikacyjne w postaci pojawiających się komunikatów KQML. Część if reguły porównuje aktualny model mentalny agenta ze zdefiniowanymi warunkami. Część then definiuje działania, jakie agent powinien podjąć. Zgodnie z podziałem mogą to być działania prywatne, komunikatywne oraz modyfikacji modelu mentalnego. Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 16 Technologia inteligentnych agentów Rysunek. Wzorzec reguły behawioralnej. Rysunek przedstawia ogólny schemat reguły, natomiast rysunek konkretny przykład reguły behawioralnej. Działania agenta są sterowane przez interpreter, którego schemat został przedstawiony na rysunku. Interpreter cały czas monitoruje nadchodzące komunikaty, uaktualnia model mentalny agenta i podejmuje odpowiednie działania. W czasie uruchamiania, agent jest „powoływany do życia” z początkowymi przekonaniami, zobowiązaniami, zdolnościami oraz regułami behawioralnymi. W najprostszym przypadku agent musi posiadać jedną regułę behawioralną. Pozostałe elementy są opcjonalne [Acrony04a]. Cykl działania agenta, który jest kontrolowany z następujących kroków: • Przetwarzanie nowych komunikatów przez interpreter składa • Ustalanie, które reguły behawioralne mogą być odpalone do obecnej sytuacji. • Wykonanie działań zawartych w tych regułach. • Uaktualnienie modelu mentalnego w odniesieniu do „odpalonych” reguł. • Planowanie. się Po odebraniu nowego komunikatu identyfikowany i weryfikowany jest nadawca, po czym odbywa się parsing komunikatu a następnie staje się on częścią modelu mentalnego agenta. W kolejnym kroku poszukiwane są reguły behawioralne, które „pasują” do obecnej sytuacji. Mechanizm dopasowania wzorców (Pattern Matching Mechanism) Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 17 Technologia inteligentnych agentów porównuje elementy modelu mentalnego, z wzorcami części warunkowej reguł behawioralnych w celu określenia, które reguły są spełnione. Jeżeli wszystkie warunki są spełnione reguła jest naznaczana do wykonania i umieszczana w agendzie do wykonania. Wykonanie reguły związane jest z sekwencyjną realizacją działań prywatnych i komunikatywnych oraz wprowadzeniem zmian do modelu mentalnego agenta. Ostatni krok polega na utworzeniu planu dla agenta. Planowanie jest realizowane przez moduł planowania dołączony do agenta. Architektura agenta BDI Architektura BDI powstała na podstawie prac z dziedziny filozofii. Bazą teoretyczną tej architektury są wyniki badań nad racjonalnym zachowaniem społeczności prowadzonych na uniwersytecie Stanford. Podstawy modelu są związane z teorią rozumowania opracowaną przez filozofa Michaela Bratmana, który badał rolę zamiarów (intencji) w procesie rozumowania. Podobnie jak w przypadku architektury Agent-0, architektura BDI zakłada istnienie „stanów mentalnych”. System utworzony w oparciu o architekturę BDI posiada komputerowe odpowiedniki przekonań, pragnień i zamiarów. Konstrukcja architektury BDI została oparta na następujących założeniach: • Środowisko działania systemu może się zmieniać (ewoluować) na wiele różnych sposobów. • W każdym momencie czasu podczas działania systemu istnieje wiele różnych działań, które agent może zrealizować. • Istnieje potencjalnie wiele różnych celów, w każdym momencie działania systemu, które agent ma do zrealizowania. • Optymalne działania prowadzące do realizacji celów zależą od stanu środowiska, ale nie zależą od stanu systemu. Pod pojęciem środowiska autorzy modelu BDI rozumieją rzeczywisty obiekt sterowany przez system informatyczny (w tym przypadku zrealizowany, jako system wieloagentowy). • • Środowisko może być obserwowane jedynie lokalnie. Szybkość zmian stanu środowiska (jego ewolucja) oraz szybkość działania systemu muszą być porównywalne. Architektura BDI bazuje na następujących pojęciach: • Przekonanie (Belief) – jest to informacja jaką agent posiada na temat świata. Oczywiście ta informacja może być nieaktualna lub niedokładna. • Pragnienie (Desire) – jest to możliwy „stan rzeczy”, który agent chce uzyskać. Posiadanie pragnienia nie oznacza, że agent je zrealizuje. Pragnienie jest jedynie czynnikiem wpływającym na działania agenta. • Zamiar (Intension) – jest „stanem rzeczy”, do którego zmierza agent. Zamiar może być celem delegowanym do agenta lub też może wynikać z analizy różnych opcji. Można myśleć o działaniu agenta, jako o wyborze spośród różnych opcji, gdzie wybrana opcja staje się zamiarem. Agent może rozpocząć działanie w związku z delegowanym celem, a następnie rozważyć możliwe warianty, które są zgodne z delegowanym celem; warianty, które zostały wybrane stają się zamiarami, do których agent się zobowiązuje. Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 18 Technologia inteligentnych agentów Rozumowanie praktyczne Przy założeniu, że agent posiada stan mentalny a podstawowe struktury, które zinternalizował to przekonanie, pragnienie i zamiar, kolejną kwestią, którą musi rozważyć projektant, jest to, jak agent przechodzi od tych struktur do konkretnych działań. Model podejmowania decyzji związany z architekturą BDI to tak zwane rozumowanie praktyczne (Practical reasoning). Rozumowanie praktyczne jest rozumowaniem ukierunkowanym na działania – to proces określania tego, co robić w danej sytuacji. Rozumowanie praktyczne to analiza (rozważanie) sprzecznych ze sobą argumentów za i przeciw konkurującym ze sobą opcjom działania, gdzie dane argumenty są określane przez to, co agent pragnie, ceni, o co dba i jakie ma przekonania. Rozumowanie praktyczne składa się z dwóch kluczowych czynności: rozważania (analizy) tego, jaki stan chcemy osiągnąć (co prowadzi do intencji) oraz analizy środków (sposobów) i celów (to znaczy w jaki sposób działać aby zrealizować zamiary). Proces rozważania (analizy) Rozważanie powinno prowadzić agenta do przyjęcia określonych zamiarów. Zamiary posiadają zbiór własności zdefiniowanych w kontekście architektury BDI . Najbardziej oczywistą własnością jest to, że zamiar powinien prowadzić do działania. Przykładowo, jeżeli ktoś chce napisać książkę, to można podejrzewać, że podejmie próbę zrealizowania tego zamierzenia. Zamiary są silniejsze niż inne pragnienia. Bratman podaje następujący przykład: “Moje pragnienie grania dziś popołudniu w koszykówkę jest jedynie potencjalnym czynnikiem wpływającym na moje zachowanie dzisiejszego popołudnia. Musi ono rywalizować z innymi pragnieniami [. . . ] zanim zostanie rozstrzygnięte, co będę robić. Natomiast, kiedy zamierzam zagrać w koszykówkę dziś popołudniu, sprawa jest rozstrzygnięta: zwykle nie muszę dalej rozważać za i przeciw. Kiedy popołudnie nadejdzie, po prostu zrealizuję swoje zamiary.” [Bratma90]. Kolejną cechą zamiarów jest to, że są trwałe w tym sensie, że jeżeli ktoś podejmie jakiś zamiar wówczas powinien próbować go zrealizować. Jeżeli ktoś porzuca od razu określony zamiar, nie poświęcając żadnych zasobów w próbach jego realizacji, wówczas można powiedzieć, że nie był to rzeczywisty zamiar. Oczywiście zamiar nie powinien być trwały w sytuacji, gdy nie ma szansy na jego realizację oraz gdy powody jego powstania nie są już aktualne. Jeżeli okazuje się, że nie ma szans na zrealizowanie zamiaru wówczas powinien on zostać porzucony. Porzucanie zamiaru nie oznacza, że ktoś go realizujący powinien się poddać po pierwszych niepowodzeniach. Jeżeli są racjonalne przesłanki do tego, że zamiar ma sens i może być zrealizowany, to początkowe problemy z jego realizacją nie powinny prowadzić do jego porzucenia. Oczekuje się, że osoba realizująca zamiar, napotykając na wstępne problemy będzie nadal próbować i w końcu odniesie sukces. Trzecią cechą zamiarów jest to, że jeżeli określony zamiar zostanie przyjęty, fakt posiadania określonego zamiaru będzie ograniczał wybory podejmowane (rozumowanie praktyczne) w przyszłości. Zamiar stanowi pewnego rodzaju „filtr dopuszczalnych wyborów” w tym sensie, że przyjęty zamiar ogranicza (filtruje) przestrzeń dopuszczalnych zamiarów możliwych do przyjęcia w przyszłości. W końcu zamiary są ściśle związane z przekonaniami dotyczącymi przyszłości. Posiadanie zamiaru przez określoną osobę oznacza, że ma ona przekonanie co do tego, że realizacja zamiaru jest możliwa i w normalnych warunkach dany zamiar może być zrealizowany. Nie oznacza to jednak, że dana osoba nie bierze pod uwagę możliwości porażki, która w pewnych okolicznościach może mieć miejsce. Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 19 Technologia inteligentnych agentów Analiza środków i celów Analiza środków i celów (Means-end analysis) jest procesem prowadzącym do ustalenia jak osiągnąć określony cel (zamiar, który został wybrany), pamiętając o dostępnych środkach (akcjach, które mogą być wykonane w określonym środowisku). Analiza środków i celów jest w dziedzinie sztucznej inteligencji określana terminem planowanie. Moduł planujący (Planner) pobiera na wejściu reprezentację celów lub zamiarów (tego, co agent chce osiągnąć), przekonań agenta na temat aktualnego stanu środowiska oraz działań, które agent może podjąć. Na wyjściu moduł planujący generuje plan. Plan jest sposobem postępowania – „przepisem” na działanie. Jeżeli algorytm planowania wykonał swoją pracę poprawnie, to jeśli agent wykona plan (zadziała zgodnie z przepisem) biorąc pod uwagę stan środowiska wówczas jego zamiary (cele) zostaną zrealizowane. W praktyce algorytmy planowania tworzące kompletne plany na podstawie zbioru działań w czasie wykonania okazały się zbyt złożone obliczeniowo (używając terminologii teorii złożoności obliczeniowej ich złożoność jest NP-zupełna) i w związku z tym opracowano szereg założeń upraszczających. Jednym z dobrze sprawdzających się pomysłów jest utworzenie na etapie projektowania zbioru planów częściowych a zadaniem agenta jest połączenie tych planów w trakcie działania, w zależności od celu, który agent chce zrealizować. Chociaż wydaje się, że takie uproszczenie jest dużo mniej elastyczne to jak pokazuje praktyka w większości sytuacji się sprawdza i zostało zaadoptowane w wielu implementacjach architektury BDI. Implementacja rozumowania praktycznego Pierwsza próba algorytmizacji procesu rozumowania praktycznego może prowadzić do pętli kontrolnej, w ramach której realizowane są następujące działania: 1. Monitorowanie środowiska i uaktualnienie bazy przekonań, które je opisują. 2. Ustalenie tego, które zamierzenie będzie realizowane. 3. Wybranie planu, który pozwoli zrealizować zamierzenie. 4. Wykonie planu. Jednym z podstawowych problemów związanych z tym wariantem algorytmu jest to, że agent jest zbyt mocno zobowiązany do realizacji wybranego zamiaru w tym sensie, że przy raz wybranym zamiarze agent pozostaje aż do końca wykonania planu, który pozwala osiągnąć upragniony stan, nawet w sytuacji, gdy w między czasie zamiar staje się nieosiągalny. Kolejnym problemem jest zbyt mocne zobowiązanie do wykonania planu. Agent pozostaje przy wykonywaniu planu nawet w sytuacji, gdy zmiany w środowisku spowodują, że plan staje się bezużyteczny. Biorąc pod uwagę te ograniczenia, algorytm powinien być realizowany w pętli, w której agent pozostaje zobowiązany do realizacji określonego planu dopóki nie zostanie on całkowicie wykonany, zamiar, dla którego plan był przygotowany nie zostanie osiągnięty, lub nie pojawi się przekonanie, że zamiar jest nieosiągalny lub stał się bezużyteczny. Agent pozostaje przy zamiarze dopóki nie zostanie on osiągnięty, okazało się, że jest nieosiągalny lub jest inny, bardziej korzystny, którego realizacją agent powinien się zająć. Poniżej przedstawiono pseudokod dla zweryfikowanego wariantu algorytmu. Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 20 Technologia inteligentnych agentów 1. B ← B0; /* B0 to zbiór wstępnych przekonań */ 2. I ← I0; /* I0 to zbiór wstępnych zamiarów */ 3. while true do 4. get next percept ρ via sensors; 5. B ← brf (B, ρ); 6. D ← options(B, I); 7. I ← filter(B,D, I); 8. π ← plan(B, I, Ac); /* Ac jest zbiorem działań */ 9. while not (empty(π) or succeeded(I, B) or impossible(I, B)) do 10. α ← first element of π; 11. execute(α); 12. π ← tail of π; 13. observe environment to get next percept ρ; 14. B ←brf (B, ρ); 15. if reconsider(I, B) then 16. D ← options(B, I); 17. I ← filter(B,D, I); 18. end-if 19. if not sound(π, I, B) then 20. π ← plan(B, I, Ac) 21. end-if 22. end-while 23. end-while Zmienne B, D i I przechowują aktualne przekonania, pragnienia i zamiary. Przekonania opisują obecny stan środowiska, natomiast zamiary przechowują informacje na temat pożądanego przez agenta stanu rzeczy, który agent chce uzyskać i do którego się zobowiązał. Zmienna D zawiera pragnienia agenta, które stanowią opcje rozważane przez agenta, i które mogą stać się jego zamiarami. Podstawowa pętla jest realizowana od kroku (3) do (23). W ramach podstawowej pętli agent obserwuje środowisko i dokonuje kolejnych spostrzeżeń. W kroku (5) uaktualnia swoją bazę przekonań (informacje na temat aktualnego stanu środowiska) za pomocą funkcji brf. Funkcja pobiera na wejściu obecną bazę przekonań oraz nowe spostrzeżenie (ρ) i zwraca nową, uaktualnioną bazę przekonań B. W kroku (6) agent z wykorzystaniem funkcji options(…) określa swoje pragnienia, lub opcje, na podstawie obecnych przekonań i zamiarów. W kroku (7) agent wybiera z opcji te, które stają się zamiarami, a następnie generuje plan za pomocą funkcji plan(…), który pozwoli je osiągnąć. Pętla wewnętrzna od kroków (9)-(22) jest odpowiedzialna za wykonanie planu w celu osiągnięcia zamiarów agenta. Jeżeli wszystko idzie dobrze wówczas agent realizuje kolejne działania z planu aż do momentu, gdy plan π nie zawiera żadnych działań (informuje o tym funkcja empty(…)). Agent po wykonaniu działania z planu (krok (11)) chwilę zatrzymuje się i obserwuje środowisko, aby uaktualnić swoją bazę przekonań. Następnie zadaje sobie pytanie, czy należy ponownie rozważyć zamiary i podejmuje decyzję w krokach (15)-(18) z wykorzystaniem funkcji reconsider(…). Niezależnie od tego czy zdecydował się na ponowną analizę zamiarów, agent zadaje sobie pytanie o to, czy aktualny plan ma sens biorąc pod uwagę zamiary i przekonania – krok (19). Jeżeli dochodzi do wniosku, że plan nie ma sensu wówczas zmienia go na inny – krok (20). Jedną z pierwszych architektur, która w pełni implementowała założenia modelu BDI był proceduralny system rozumowania (Procedural Reasoning System) opracowany na uniwersytecie Stanford przez Michaela Georgeffa i Amy Lansky (Rysunek). Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 21 Technologia inteligentnych agentów Dane sensoryczne Środowisko Przekonania Pragnienia Interpreter Zamiary Plany Działania Działania Rysunek. Ogólny schemat architektury BDI Zgodnie z architekturą proceduralnego systemu rozumowania agent korzysta z wstępnie skompilowanych planów, które są wcześniej przygotowane przez projektanta. Każdy plan zawiera następujące elementy: • Cel – warunek końcowy planu (post-condition) • Kontekst – warunek wstępny planu (pre-condition), • Ciało planu – „przepis” na działanie. Cel opisuje stan rzeczy, który można uzyskać z wykorzystaniem planu. Można myśleć o planie, jako o warunku końcowym. Kontekst definiuje warunek wstępny – to jak powinno wyglądać środowisko, aby można było rozpocząć realizację planu. Trochę bardziej złożoną strukturę ma ciało planu. Ciało planu może zawierać prostą listę działań do wykonania, ale może zawierać również cele. Oznacza to, że jeżeli plan zawiera w pewnym miejscu cel wówczas cel ten musi zostać osiągnięty zanim zostanie zrealizowana reszta planu. Istnieje również możliwość łączenia celów z wykorzystaniem operatorów logicznych (‘osiągnij φ OR osiągnij ψ’) oraz zapisywania planu w pętli (‘wykonuj φ dopóki ψ’). Zaraz po uruchomieniu, agent posiada zbiór planów oraz wstępne przekonania, które są reprezentowane w formie faktów, zapisanych jako formuły atomowe logiki pierwszego rzędu. Dodatkowo od samego początku agent posiada cel najwyższego poziomu. Cel ten działa w sposób podobny do funkcji main w języku Java lub C++. Po uruchomieniu, cel jest odkładany na stos tzw. stos zamiarów. Stos ten zawiera wszystkie cele, które oczekują na realizację. Następnie agent przeszukuje bibliotekę planów, w poszukiwaniu tych, które mają warunek końcowy taki jak cel na stosie. Po wyszukaniu takich planów sprawdzane są ich warunki wstępne w kontekście aktualnych przekonań agenta. Plany, Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 22 Technologia inteligentnych agentów które pozwolą osiągnąć cel ze stosu oraz mają spełnione warunku wstępne stają się opcjami agenta. Proces wyboru pomiędzy różnymi planami jest procesem rozważania (analizy) omówionym wcześniej. Istnieje kilka sposobów wyboru planu w systemach zbudowanych w oparciu o architekturę proceduralnego systemu rozumowania. Może to być realizowane z wykorzystaniem tak zwanych meta planów, które są planami planów, dzięki którym możliwa jest modyfikacja zamiarów agenta w czasie wykonania. Prostszym sposobem jest wykorzystanie użyteczności dla planów. W tym przypadku agent wybiera plan z najwyższą wartością użyteczności. Wybrany plan jest następnie wykonywany. Wykonanie planu może spowodować odłożenie kolejnych celów na stos zamiarów, co spowoduje konieczność wyszukania kolejnych planów realizacji celów. Proces jest realizowany aż osiągnięty jest poziom, na którym są wykonywane pojedyncze działania. Jeżeli określony plan zawiedzie wówczas agent może wybrać kolejny plan ze zbioru dopuszczalnych planów. Realizacja architektury BDI – AgentSpeak i Jason Jedną z bardziej kompletnych realizacji architektury BDI jest system AgentSpeak oraz jego rozszerzenie o nazwie Jason. Jason wnosi szereg istotnych ulepszeń i zupełnie nowych funkcji do języka AgentSpeak. Do najistotniejszych można zaliczyć: • Implementację silnej negacji (Strong Negation). • Obsługę niepowodzeń realizacji planów. • Komunikację międzyagentową bazująca na teorii aktów mowy. • Adnotacje na etykietach planów. • Możliwość definiowania środowisk agenta w języku Java. • Możliwość uruchamiania systemu wieloagentowego w sieci. • Bibliotekę podstawowych akcji wewnętrznych. • Możliwość rozszerzania akcji wewnętrznych z wykorzystaniem języka Java. Program agentowy działa z wykorzystaniem architektury przedstawionej na rysunku. W tym miejscu zostanie przedstawiony jedynie zarys funkcjonowania architektury. Szczegółowe omówienie pojęć związanych z systemem Jason znajduje się w sekcji wprowadzenie do systemu Jason. Na schemacie zbiory przekonań, zdarzeń, planów i zamiarów są reprezentowane przez prostokąty z odpowiednimi nazwami. Romby przedstawiają wybór jednego elementu ze zbioru. Przetwarzanie związane z interpretacją programu zapisanego w języku AgentSpeak jest symbolizowane z wykorzystaniem okręgów. Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 23 Technologia inteligentnych agentów Rysunek. Struktura architektury systemu Jason. W każdym cyklu interpretacji programu agenta, architektura uaktualnia zbiór zdarzeń. Zdarzenia mogą być generowane na podstawie obserwacji środowiska lub być wynikiem realizacji zamiarów agenta. Zbiór przekonań jest uaktualniany tylko na podstawie obserwacji środowiska. Za każdym razem, gdy baza przekonań zostaje zmieniona dodawane jest zdarzenie. Taka automatyczna zmiana przekonań jest niezbędnym elementem architektury agenta. Po tym jak SE wybierze zdarzenie jest ono unifikowane ze zdarzeniem wywołującym zdefiniowanym w głowach planów. Proces unifikacji generuje zbiór istotnych planów. Następnie konteksty planów są porównywane z przekonaniami agenta i w ten sposób określane są plany stosowalne. Są to takie plany, które mogą być wybrane do obsługi wybranego zdarzenia. SO wybiera jeden stosowalny plan ze zbioru, który staje się zamierzonym sposobem (Intended Mean) obsługi zdarzenia. Jest on umieszczany na szczycie stosu zamiarów (jeżeli zdarzenie było zdarzeniem wewnętrznym). W sytuacji, gdy zdarzenie pochodziło z obserwacji środowiska w zbiorze zamiarów tworzony jest nowy zamiar. Wszystko, co pozostało do zrobienia na tym etapie to wybranie pojedynczego zamiaru do realizacji. Funkcja SI wybiera jeden z zamiarów. Na szczycie zamiaru znajduje się plan, z którego ciała pobierana jest formuła do wykonania. Oznacza to, że albo zostanie wykonana przez agenta podstawowa akcja i wygenerowane będzie zdarzenie wewnętrzne (gdy wybrana formuła jest tak zwanym celem do osiągnięcia) lub wykonywany jest cel testowy, który sprawdza bazę przekonań. Jeżeli z zamiarem jest związane wykonanie podstawowej akcji lub celu testowego wówczas uaktualniany jest zbiór zamiarów. W przypadku celu testowego przeszukiwana jest baza przekonań w celu odszukania formuły atomowej, która jest unifikowalna z predykatem celu testowego. W przypadku, gdy została wybrana podstawowa akcja, wówczas aktualizacja zbioru zamiarów polega na usunięciu tej akcji z zamiaru (element architektury odpowiedzialny za efektory agenta Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 24 Technologia inteligentnych agentów jest informowany o tym, jaka akcja jest potrzebna). Cały plan jest usuwany z zamiaru po tym jak zostają usunięte wszystkie formuły z ciała planu (co oznacza, że zostały wykonane). Po usunięciu planu usuwany jest również cel, który uruchomił plan. W następnym kroku uruchamiany jest kolejny cykl. Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 25 Technologia inteligentnych agentów ĆWICZENIA Zadanie 1 Podaj po dwa przykłady (z dowolnej dziedziny) systemów charakteryzujących się wysokim i niskim poziomem autonomii. Odpowiedź uzasadnij. Zadanie 2 Podaj dwa przykłady systemów, dla których cecha pro-aktywności ma kluczowe znaczenie. Odpowiedź uzasadnij. Zadanie 3 Podaj dwa przykład systemów, dla których cecha reaktywności ma kluczowe znaczenie. Odpowiedź uzasadnij. Zadanie 4 Zaproponuj miarę skuteczności dla następujących agentów: 1. Agent odpowiedzialny za indeksowanie stron internetowych. 2. Agent dostarczający na pulpit informacje na temat nowych pozycji książkowych. 3. Agent licytujący produkt w imieniu kupującego. 4. Agent wybierający najlepszych dostawców materiałów dla firmy produkcyjnej. 5. Agent odpowiedzialny za obsługę magazynu wysokiego składowania. Zadanie 5 Dla każdego z agentów przedstawionych w tabeli przypisz odpowiednie spostrzeżenia, akcje, cele i środowisko. Typ agenta Spostrzeżenia Akcje Cele Środowisko System medyczny diagnozujący choroby System analizy zdjęć satelitarnych Robot sortujący części Symptomy, wyniki badań, odpowiedzi pacjenta, Drukowanie kategoryzacji obrazu, Podnoszenie części i sortowanie do pojemników, Obrazy z satelity, Piksele o różnej intensywności, Umieszczenie intensywności, kolor, Wywiad części we lekarski, właściwym testy, pojemniku, leczenie, Piksele Poprawna o różnej kategoryzacja, Taśmociąg z częściami, Pacjent, szpital, Zdrowy pacjent, minimalizacja kosztów Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 26 Technologia inteligentnych agentów Zadanie 6 Przygotuj specyfikację zawierającą charakterystykę spostrzeżeń, akcji, celów i środowiska dla agentów odgrywających role przedstawione w tabeli. Typ agenta Spostrzeżenia Akcje Cele Środowisko Kontrolera rafinerii Interaktywnego tutora języka angielskiego Taksówkarza Zadanie 7 Przygotuj charakterystykę przykładowych wymagań systemowych, w formie system powinien…, w kontekście których określona cecha agenta jest szczególnie istotna, dzięki czemu zastosowanie technologii agentowej daj wymierne korzyści. Zadanie 8 Zastanów się nad bardzo ogólną specyfikacją systemu obsługującego księgarnię internetową, który byłby zrealizowany z wykorzystaniem technologii agentowych. Zdefiniuj role dla agentów określając ich odpowiedzialności (akcje, które będą realizować) oraz cele. W czym taki system mógłby być lepszy od klasycznego systemu biorąc pod uwagę kluczowe charakterystyki systemów agentowych. Którzy agenci będą się między sobą komunikować? Zadanie 9 Sklasyfikuj przedstawione środowiska biorąc po uwagę taksonomię Russella i Norviga (Tak/Nie/Częściowo). Środowisko Dostępne Deterministyczne Statyczne Dyskretne Gra w szachy Gra w pokera Prowadzenie taxi System diagnozujący choroby System przetwarzający obrazy Robot sortujący części Kontroler rafinerii Interaktywny nauczyciel języka angielskiego Materiały Distance Learning © Wyższa Szkoła Informatyki i Zarządzania z siedzibą w Rzeszowie 27