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

Podobne dokumenty