• Nie Znaleziono Wyników

5.2.1. Podstawowe własno´sci

System wieloagentowy jest zbiorem powi ˛azanych ze sob ˛a – w pewnym, abs-trakcyjnym sensie – wielu agentów. Trywialnym przypadkiem jest system

zło-5.2. Systemy wieloagentowe ˙zony z jednego agenta. Systemy agentowe okazuj ˛a si˛e doskonałym modelem do reprezentowania problemów daj ˛acych si˛e rozwi ˛aza´c ró˙znymi sposobami. Zalet ˛a ich stosowania jest mo˙zliwo´s´c działania rozproszonego, współbie˙znego i asyn-chronicznego. Pozwala to na rozwi ˛azywanie problemów, w których dane s ˛a roz-proszone, z mo˙zliwo´sci ˛a korzystania z ju˙z działaj ˛acych rozwi ˛aza ´n, niekoniecznie w duchu wieloagentowo´sci, we współpracy z innymi systemami. System wie-loagentowy jest lokalnie odporny na bł˛edy w funkcjonowaniu w tym sensie, ˙ze wykluczenie jednego z szeregowych agentów nie powoduje zaniku funkcjonal-no´sci cało´sci. Wad ˛a systemów wieloagentowych jest konieczno´s´c specyfikacji wielu wzorców interakcji, sposobów przydzielania zada ´n, sposobów rozwi ˛ azywa-nia konfliktów, reguł wnioskowaazywa-nia o innych agentach i u˙zytkownikach systemu. Zasadniczym problemem jest takie zaprojektowanie systemu, aby wykazywał on spójno´s´c w działaniu.

5.2.2. Opis komunikacji w systemie wieloagentowym

Komunikacja w systemie wieloagentowym jest synchroniczn ˛a lub asynchroni-czn ˛a wymian ˛a danych pomi˛edzy agentami. Ponadto współdzielenie wiedzy wy-maga komunikacji, która z kolei potrzebuje wspólnego dla niej j˛ezyka. W ramach j˛ezyka mo˙zna wyró˙zni´c takie składowe jak:

• syntaktyka – opisuje relacje, które zachodz ˛a mi˛edzy wyra˙zeniami (znakami j˛ezykowymi) wewn ˛atrz j˛ezyka i które maj ˛a charakter formalny,

• semantyka – opisuje relacje mi˛edzy znakami (w tym wyra˙zeniami) a rzeczywi-sto´sci ˛a, do której znaki te si˛e odnosz ˛a,

• pragmatyka – opisuje relacje mi˛edzy znakiem a odbiorc ˛a (interpretatorem). Badania nad problemem wspólnego j˛ezyka, słu˙z ˛acego do opisu zawarto´sci bazy wiedzy, doprowadziły do powstania j˛ezyka KIF (ang. Knowledge Interchange For-mat). Mo˙ze on by´c u˙zywany jako po´sredni (podczas tłumaczenia jednego j˛ezyka reprezentacji wiedzy na inny) lub jako wspólny j˛ezyk opisu zawarto´sci bazy wie-dzy kilku agentów, u˙zywaj ˛acych ró˙znych wewn˛etrzych j˛ezyków reprezentacji. Po-nadto j˛ezyk KIF posiada reprezentacj˛e czyteln ˛a dla ludzi. Przykładem wyra˙zenia zapisanego za pomoc ˛a formatu KIF mo˙ze by´c:

( > (cena przejazd1)(cena przejazd2)) ,

informuje ono, ˙ze cena za przejazdprzejazd1jest wi˛esza odprzejazd2.

Najpopularniejszym j˛ezykiem komunikacji mi˛edzyagentowej jest KQML (ang. Knowledge Query Manipulation Language). Zapytania i polecenia zada-wane w tym j˛ezyku operuj ˛a na bazie wiedzy zwi ˛azanej z danym agentem. J˛ezyk KQML dostarcza zestawu performatyw czyli wiadomo´sci (jednostek wymiany in-formacji), które mog ˛a zosta´c u˙zyte do komunikacji mi˛edzy agentami. Działanie ka˙zdej performatywy jest okre´slone i nie mo˙ze by´c zmieniane. Cały zbiór jest jednak rozszerzalny czyli w ramach potrzeb mo˙zna definiowa´c własne performa-tywy o okre´slonym działaniu.

Performatyw w j˛ezyku KQML jest ci ˛agiem znaków ASCII. Ka˙zda wiadomo´s´c, oprócz swej nazwy identyfikuj ˛acej rodzaj performatywu, posiada zbiór

parame-trów w postaci:nazwa warto´s´c. Do podstawowych parametrów performaty-wów w j˛ezyku KQML nale˙z ˛a:

• :sender– nadawca wiadomo´sci, • :receiver– odbiorca wiadomo´sci,

• :reply-with– zawiera identyfikator, na który powoła si˛e odbiorca odpowia-daj ˛ac na t˛e wiadomo´s´c,

• :in-reply-to – identyfikator okre´slaj ˛acy, na jak ˛a wiadomo´s´c odpowiada agent,

• :content– zawarto´s´c wiadomo´sci,

• :language– j˛ezyk, w którym reprezentowana jest zawarto´s´c wiadomo´sci (:con-tent),

• :ontology– nazwa ontologii, do której odnosi si˛e zawarto´s´c wiadomo´sci (:con-tent),

• :force– okre´sla czy nadawca w przyszło´sci mo˙ze zmieni´c znaczenie tego per-formatywu.

Przykłady komunikatów:

• achieve– nadawca chce, aby odbiorca co´s spowodował, • advertise– nadawca ogłasza, ˙ze mo˙ze realizowa´c usług˛e, • ask-one– nadawca prosi odbiorc˛e o odpowied´z na pytanie, • ask-all– nadawca pyta wszystkich,

• evaluate– nadawca prosi odbiorc˛e o przeliczenie wyra˙zenia. Oto prosty przykład komunikatu w KQML:

(ask-one :sender A :receiver B :language KIF :content (jedzie DWR2043 ?x)).

Performatywem w tym przykładzie jestask-one, tzn. nadawca prosi odbiorc˛e o odpowiedz na pytanie opisane w:content. Nadawc ˛a jest agentA, natomiast od-biorc ˛a – agentB. Dodatkowo została okre´slona nazwa j˛ezyka (KIF). Pole:content

zawiera zapytanie dotycz ˛ace miejscowo´sci, do której b˛edzie jecha´c osoba o poda-nym numerze rejestracyjpoda-nym samochodu.

5.2.3. Koordynacja współpracy, rozwi ˛azywanie konfliktów i planowanie

W przypadku systemów wieloagentowych, zachodzi zazwyczaj potrzeba koor-dynacji działa ´n poszczególnych agentów. Zabiegi te nie słu˙z ˛a do osi ˛agni˛ecia celu, jednak znacznie usprawniaj ˛a jego osi ˛agni˛ecie.

Jednym ze sposobów koordynowania działa ´n s ˛a sieci kontraktowe. Działaj ˛a one w oparciu o zasady reguluj ˛ace rzeczywisty rynek przetargów i ofert współ-pracy. Komunikacja pomi˛edzy klientem (menad˙zerem) a dostawc ˛a (kontrahen-tem) jest realizowana poprzez wymian˛e komunikatów ˙z ˛adaj ˛acych oraz dostar-czaj ˛acych konkretne oferty i ich ewolucj˛e. Podczas ˙z ˛adania wyró˙zniane s ˛a cztery fazy:

5.2. Systemy wieloagentowe • rozgłaszanie przez menad˙zera tre´sci zadania do tych kontrahentów, którzy jego

zdaniem s ˛a zdolni wykona´c dane zadanie,

• przesyłanie do menad˙zera ofert kontrahentów, którzy maj ˛a mo˙zliwo´s´c wyko-nania zadania,

• analiza przez menad˙zera otrzymanych ofert i wybór jednego kontrahenta do współpracy,

• wysłanie potwierdzenia przez kontrahenta do gotowo´sci wykonania zada ´n lub w przeciwnym wypadku powrót do którego´s z wcze´sniejszych punktów. Agenci mog ˛a uczestniczy´c w wielu, równolegle odbywaj ˛acych si˛e przetargach. W jednym czasie dany agent mo˙ze by´c zatem zarówno kontrahentem jednego przetargu jak i menad˙zerem innego. Przedstawione podej´scie ma zarówno dobre jak i złe strony. Do zalet sieci kontraktowych nale˙z ˛a:

• łatwo´s´c modelowania i projektowania w systemach wieloagentowych, • brak konieczno´s´c tworzenia dodatkowych mechanizmów steruj ˛acych,

• mo˙zliwo´s´c wyboru kontrahenta po uwzgl˛ednieniu wielu ró˙znych czynników, np. czas, koszt realizacji.

Do wad tego podej´scia nale˙z ˛a:

• du˙za liczba przesyłanych komunikatów,

• potrzebna struktura obsługuj ˛aca równolegle realizowane procesy w przypadku du˙zej ilo´sci jednocze´snie ogłaszanych ofert,

• konieczno´s´c precyzyjnego podziału zadania na oferty.

Innym sposobem koordynowania działa ´n s ˛a systemy tablicowe. Składaj ˛a si˛e one z niezale˙znych, nie komunikuj ˛acych si˛e bezpo´srednio ze sob ˛a modułów, które dziel ˛a dane potrzebne do rozwi ˛azania konkretnego problemu przy pomocy struktury zwanej tablic ˛a. Na ogólny model systemu tablicowego składaj ˛a si˛e trzy podsystemy:

• ´zródeł wiedzy – tworzonych przez niezale˙znych ekspertów,

• tablicy – struktury przechowuj ˛acej tymczasowe dane i fazy rozwi ˛azania pro-blemu,

• sterowania – modułu zarz ˛adzaj ˛acego dost˛epem do tablicy i jej zawarto´sci ˛a. Do zalet systemu tablicowego nale˙z ˛a:

• elastyczno´s´c definiowania poszczególnych modułów,

• eksperci mog ˛a reprezentowa´c ró˙zne dziedziny wiedzy i posługiwa´c ró˙znymi poj˛eciami opisuj ˛acymi t˛e wiedz˛e,

• centralizacja sterowania pozwala na efektywne podej´scie do dynamicznie po-jawiaj ˛acych si˛e rozwi ˛aza ´n,

• system ten mo˙ze by´c traktowany jako bazowy i pozwala´c projektowa´c i mode-lowa´c ró˙zne architektury agentowe.

Główn ˛a wad ˛a systemów tablicowych jest ich du˙zy koszt realizacji i do´s´c niska (w porównaniu do nakładów tworzenia) efektywno´s´c tych systemów.

Jak ju˙z wcze´sniej wspomniano, współprac˛e agentów dzieli si˛e na dwa podsta-wowe typy: kooperacj˛e i współzawodnictwo. W skład systemu prezentowanego w pracy wchodz ˛a agenci kooperuj ˛acy. W zwi ˛azku z tym dziel ˛a mi˛edzy sob ˛a zada-nia i wykonuj ˛a je równolegle i rozproszenie tak, aby razem otrzyma´c ˙z ˛adane wy-niki. Nadrz˛ednym zagadnieniem jest tutaj planowanie działania, którego etapy przedstawiaj ˛a si˛e nast˛epuj ˛aco:

• dekompozycja zada ´n na podproblemy,

• przydział podproblemów poszczególnym agentom i grupom agentów, • tworzenie rozwi ˛aza ´n podproblemów,

• ł ˛aczenie rozwi ˛aza ´n.

Planowanie w ogólno´sci tworz ˛a dwa etapy: planowanie działania oraz przede wszystkim ustalenie celów bez których działanie jest bezpodstawne. Mo˙zna wy-ró˙zni´c cele nadrz˛edne, zazwyczaj definiowane przez u˙zytkownika systemu oraz cele podrz˛edne, które wynikaj ˛a z dekompozycji zada ´n na podproblemy. Sys-tem wieloagentowy powinien posiada´c zdolno´s´c definiowania przynajmniej ce-lów podrz˛ednych.