Multiagentní systém

Multiagentní systém (Multi-agent system, zkráceně MAS) je simulované prostředí se síťovým charakterem, v němž dochází k interakci určitých typů aktérů (agentů) mezi sebou a / nebo s prostředím, ve kterém se nacházejí. Tito agenti řeší společně problémy, které přesahuji možnosti a znalosti každého z nich.

Multiagentní systémy jsou tvořeny prostředím a populací s více agenty

Základní charakteristické rysy MAS

editovat

Multiagentní systém lze rozlišit podle následujících rysů:[1]

  • každý agent má nekompletní informaci nebo schopnosti pro řešení problému a disponuje jen limitovaným úhlem pohledu,
  • neexistuje globální řízení systému,
  • data jsou decentralizovaná,
  • výpočty jsou prováděny asynchronně.

Někdy jsou multiagentní systémy chápány díky svému charakteru jako nové paradigma pro konceptualizaci, návrh a implementaci softwarových systémů, zvláště těch, které se využívají v prostředí, jež je distribuované a otevřené jako např. internet.

Na rozdíl od klasických výpočetních algoritmů, které vedou k predikovatelným výsledkům, vznikají v multiagentních systémech díky interakci agentů emergentní jevy připomínající živé ekosystémy a projevující určitou inteligenci. V tom je hlavní rozdíl oproti agentním systémům, kde se pracuje jen s jedním agentem, neboť mnohost agentů je základním rysem MAS.[2]

V některých případech se také o těchto systémech z hlediska jejich projevů hovoří jako o nejslabší formě tzv. umělého života či nové umělé inteligenci, případně distribuované umělé inteligenci. Oproti modelům klasické umělé inteligence s centralizovanou jednotkou pracující s reprezentací prostředí, poznatků a rozhodovacím mechanismem tato nová umělá inteligence využitá v multiagentních systémech vychází z následujících principů:[3]

  • emergentní funkcionalita, tedy přesvědčení, že „racionální“ (na cíl zaměřené a autonomní) fungování agenta může povstat „samovolně“ v rámci intenzivních interakcí jeho komponent navzájem a s okolním prostředím,
  • dekompozice na úrovni úloh, neboli návrhářský princip, podle kterého se komplexnější systém dekomponuje na komponenty v souladu s cíli, kterých má dosahovat a to tak, že za plnění elementárnějších úloh odpovídají elementárnější komponenty,
  • reaktivita, což je zásada, že akt, který systém vykoná je bezprostřední reakcí na aktuální stavy prostředí, v němž se nachází.

Historie, současnost a budoucnost

editovat

Vývoj MAS kopíruje historii computingu a otázky po využití agentů se objevily souběžně s rozvojem distribuovaného výpočetního prostředí. Prvotní zájem lze vysledovat do přelomu 70. a 80. let 20. století, kdy došlo k pokrokům v expertních systémech a začal se využívat distribuovaný computing přes sítě typu LAN. V té době se také začíná hovořit právě o zmíněné distribuované umělé inteligenci. Princip autonomního agenta (tzv. reaktivního agenta) popsal Rodney Brooks, pracovník laboratoří umělé inteligence Massachusettského technologického institutu. Princip inteligentních agentů pak popsal M. J. Wooldridge.[4] Zájem byl v této fázi zaměřen na problém kooperace v rámci jedné konkrétní organizace, v níž byl systém vyvíjen. Jedna z prvních laboratoří orientovaná na multiagentní systémy [1] vznikla v roce 1977 v rámci ústavu informatiky [2] na Massachusettské univerzitě v Amherstu. [3]

V 90. letech pak zvýšilo atraktivitu tohoto přístupu propojení lokálních počítačových sítí s internetem, v němž mohou být agenti implementováni a udržováni více než jednou organizací. Výzkum v této sféře se posunul směrem k možnostem interakcí obecně s důrazem na možnosti emergentního chování. V roce 1996 vzniká nezisková asociace s názvem FIPA (Foundation for Intelligent Physical Agents) [4], která byla založena jako organizace s cílem produkovat softwarové standardy pro heterogenní a agentní systémy a jejím hlavním cílem je propagovat technologii založenou na agentech a interoperabilitu mezi jinými technologiemi. Zaměřuje se hlavně na oblasti modelování, metodologií, bezpečnosti a komunikace v MAS. Od roku 1997 je na její půdě rozvíjen jazyk ACL (Agent Communication Language), určený pro vzájemnou komunikaci agentů, který vychází z jazyka KQML (Knowledge Query Manipulation Language). V roce 2005 se FIPA stala součástí organizace IEEE (Institute of Electrical and Electronics Engineers) [5].[5]

Aktuálními otázkami pro dnešní dobu je v oblasti MAS hlubší rozpracovávání otázek autonomie, kooperace, vazeb a společných akcí. V současnosti lze již tvrdit, že multiagentní systémy dosáhly stupně dospělosti, který je spojený s jejich nasazením v řadě oborů a kromě původní oblasti výzkumu a pronikají do prostředí, která fungují jako rozhraní mezi člověkem a počítačem. Lze se s nimi setkat např. v astronautice při ovládání vesmírných lodí, zpracování zdravotních záznamů, plánování vojenských misí, správě síťových zdrojů, plánování řešení katastrof nebo třeba v aukcích. MAS již ovlivnily takové oblasti, jako je vzdělávání, zábava, simulace, designování mechanismů, uživatelská rozhraní a modely založené na agentech se používají pro simulaci nejrůznějších typů societálních sítí a lidských organizací. Příliš ovšem tento přístup zatím ještě nepronikl např. do oblasti návrhů architektury informačních systémů.[5]

Budoucí výzkumy by pak mohly rozšířit měřítko využitelnosti MAS, jejich heterogenitu a přímé nasazení v reálném světě pro zkoumání, porozumění a ovládání komplexních a propletených vztahů ve fyzickém světě a to způsoby, které byly s dosavadními metodami prakticky nepředstavitelné. Jako budoucí aplikace v horizontu zhruba 10 let si lze představit např. tzv. chytré domy, inteligentní dálniční systémy a podobně. Za 15 let by pak mohly být multiagentní systémy kompletně integrovány do systémů, které podporují a sloužit pro sledování a opravu jakéhokoliv nesprávného chování těchto systémů.[5]

Možnosti a způsoby využití MAS

editovat

Motivace pro zvyšující se zájem o multiagentní systémy vychází z možnosti jejich využití v následujících oblastech:[1]

  1. Pro řešení problémů, které je obtížné či nemožné zpracovat konvenčními způsoby či pomocí jednoho centralizovaného agenta z důvodu omezenosti zdrojů nebo závislosti na výpočtu jediného systému.
  2. Multiagentní přístup lze využít tam, kde je důležité propojení a interoperabilita více existujících konvenčních systémů. Při častých požadavcích na změny (třeba v oblasti byznysu) je jedním ze způsobů, jak zařídit aktuálnost těchto systémů, jejich zařazení do komunity kooperujících agentů, kdy mohou být exploitovány pomocí jiných typů softwaru. Začlenění tradičních systémů do společenství agentů může být uskutečněno např. vybudováním obalu z agentů okolo původního softwaru, což mu umožní interoperovat s dalšími systémy.
  3. MAS také přinášejí řešení problémů, které je možné přirozeně považovat za množinu autonomních interagujících komponent. Příkladem může být agent spravující kalendář svého uživatele, jenž pracuje autonomně a interaguje s dalšími agenty, které se starají o kalendáře jiných uživatelů. Takoví agenti pak mohou být customizováni, aby reflektovali preference a omezení svých uživatelů. Dalším z příkladů může být řízení letového provozu či multiagentní vyjednávání pro nákup a prodej zboží na internetu.
  4. Multiagentní přístup je možné využít jako řešení pro efektivní využití informačních zdrojů, které jsou prostorově distribuované. Příkladem mohou být senzorové sítě, monitorování seismické činnosti či získávání informací z prostředí internetu.
  5. S tím souvisí i možnost nabídnout řešení v situacích, kde se pracuje s distribuovanou znalostí. Toho lze využít např. ve výrobě, zdravotnictví či různých souběžných činnostech.
  6. Poslední velkou oblastí je zlepšení výkonu napříč různými dimenzemi, zahrnující výpočetní efektivitu, spolehlivost, rozšiřitelnost, robustnost, udržovatelnost, schopnost reagovat na podněty, flexibilitu a možnost opětovného použití.

Při konkrétních aplikacích multiagentních systémů se pak hovoří o multiagentních modelech či o multiagentním modelování. Jedná se o základní přístup pro analýzu multiagentních systémů a o způsob jejich uvádění do praxe.

I když MAS přinášejí řadu potenciálních výhod, je tento přístup spojen i s určitými specifickými nároky, které se u tradičních výpočetních systémů nevyskytovaly a vytvořit kvalitní multiagentní systém může být proto obtížné. Jedná se hlavně o návrh a implementaci MAS, neboť není vždy snadné popsat, zformulovat, dekomponovat a alokovat problémy a syntetizovat výsledky mezi skupinou inteligentních agentů. Je také potřeba vyhnout se nepředvídatelnému a chaotickému chování multiagentních systémů, které může plynout z chybějícího globálního pohledu, který v MAS z principu není obsažen. Problémem může být použití optimálních komunikačních protokolů mezi agenty a spolupráce mezi heterogenními entitami, zajištění koherentního jednání agentů a zprostředkování individuálním agentům informace o akcích, plánech a znalostech dalších agentů. Nedostatečné jsou také systematické metodologie, které by návrhářům přinesly jasné specifikace a strukturu pro jejich aplikace a nástrojové balíčky a jazyky pro tvorbu MAS, kterých existuje jen omezený počet.[1]

Moderní platformy pro multiagentní simulace podporují využití statisíců až milionů souběžně aktivních agentů, přičemž toto množství umožňuje porozumět na systémové úrovni chování i v relativně složitých a komplexních situacích.[5]

Vzhledem k možnosti paralelního postupu agentů při výpočtech dochází také ke zkrácení doby řešení úkolu, nicméně s rostoucím počtem agentů se výrazně zvyšují i nároky na hardware počítače, provádějícího výpočty. Jednou z možných cest by mohlo být např. využití jader grafických čipů od společnosti nVidia s podporou architektury CUDA či od AMD s technologií ATI Stream, vhodných pro zpracování masivně paralelizovaných úloh, jakými modely s velkým množstvím agentů jsou.[6]

Praktické aplikace

editovat

Pilotní aplikace pro multiagentní systémy se objevily v první polovině 80. let a zahrnovaly řešení problémů z řady oblastí, počínaje řízením výrobního procesu přes letovou kontrolu až po informační management.

Jedna z prvních MAS aplikací od Victora R. Lessera a Daniela D. Corkilla byla zaměřena na distribuovaný monitoring vozidel, v níž se vyskytovaly geograficky rozmístění agenti, kteří monitorovali vozidla, projíždějící jimi sledovanými lokalitami a výsledkem byl pokus o interpretaci toho, jak tato vozidla projíždějí celým prostorem a snaha analyzovat jejich pohyby. Výsledky byly publikovány v roce 1983 pod názvem The Distributed Vehicle Monitoring Testbed: A Tool for Investigating Distributed Problem Solving Networks v časopise AI Magazine.[7]

Van Dyke Parunak v roce 1987 popsal výrobní systém (YAMS), ve kterém se využívá pro výrobu protokol CNP (Contract Net Protocol), který je určen pro spolupráci mezi agenty. Továrny v simulaci se skládají z jednotlivých buněk, tvořících funkční celky, které jsou zastoupeny agenty. Úkolem je docílit co nejefektivnější produkce, čehož je dosaženo vyjednáváním mezi zainteresovanými agenty.[1]

Velmi známá je softwarová platforma pro procesní řízení s názvem Archon, spojená s metodologií pro budování aplikací na této platformě. Jednalo se o jednu z prvních platforem využívající MAS, která se dočkala použití v reálné praxi. Archon byl totiž využit v několika aplikacích řízení procesů, např. při správě transportu elektřiny v severním Španělsku či při řízení urychlovače částic. Další systémy procesního řízení využívající agenty byly vytvořeny pro monitoring a diagnostiku selhání v atomových elektrárnách, řízení raket či pro dohled nad klimatem.[1]

V roce 1992 popsali autoři Magnus Ljungberg a Andrew Lucas sofistikovaný systém řízení letového provozu využívající agenty, který nesl název Oasis. Agenti v něm reprezentují jednotlivé stroje, které mají různé cíle (např. přistát v konkrétní dobu na určité ranveji) a další agenti, kteří jsou zodpovědní za letový provoz, mají na starost, aby byly tyto cíle splněny. Další známou aplikací, jež vznikla v 90. letech, je systém pro správu finančního portfolia s názvem Warren, který integruje informace, které získává a filtruje z internetu tak, aby podpořil uživatele ve správě jeho portfolia. Řada multiagentních systémů našla uplatnění v oblasti telekomunikací a např. autoři Robert Weihmayer a Hugo Velthuijsen v roce 1994 použili agenty pro vyjednávání o podmínkách uskutečnění telefonních hovorů v případě, že došlo ke konfliktu. Existují i obdobné multiagentní systémy pro řízení počítačových sítí, pro směrování a přepínání, pro správu služeb a podobně, přičemž stupeň jejich využití v posledních letech narůstá.[1]

Prvky multiagentních systémů

editovat

Mezi základní prvky každého multiagentního systému patří zmínění agenti a prostředí, v němž se vyskytují.

Agenti fungují jako autonomní systémy a vazby mezi nimi jsou většinou volné, mohou se měnit dle aktuální situace či zanikat. V multiagentních systémech je lze chápat jako aktivní prvky, které jsou vytvořeny za určitým účelem. Agenty lze rozlišit např. dle typu na umělé (fyzické a softwarové) a na přirozené, dle komplexnosti na jednoduché či složité nebo podle chování např. na reaktivní, deliberativní (též označovaní jako inteligentní či intencionální), hybridní a sociální.[4]

Agenti jakožto hlavní aktéři v multiagentních systémech se v každém okamžiku nalézají v určitém stavu, označovaném jako lokální stav, jenž obsahuje veškerou jim dostupnou informaci, kterou je možné označit jako znalost. Prostředí, v němž je agent zasazen, lze pak chápat jako vše ostatní, co je relevantní pro řešenou úlohu. Vývoj systému v diskrétním čase pak popisuje globální stav.[8]

Prostředí

editovat

V multiagentních systémech lze chápat prostředí nebo také okolí jako vše, s čím agent přichází do styku. Je možné odlišit prostředí agentů (přímo v rámci konkrétního modelu) a prostředí pro celou simulaci. To je z programátorského hlediska možné brát jakožto vrstvu mezi systémem a aplikací, která zprostředkovává agentům jejich interakce a přístup ke zdrojům a přirovnat jej k middlewaru v konvenčních aplikacích. Toto prostředí je možné tedy obecně považovat za sadu specifických komponent a služeb pro konkrétní aplikaci.[9]

Agentní prostředí může být: plně pozorovatelné / částečně pozorovatelné, statické / dynamické, deterministické / nedeterministické či diskrétní / spojité.[4]

Reference

editovat
  1. a b c d e f SYCARA, Katia P. Multiagent Systems [online]. [Cit. 2010-01-16]. Dostupné online
  2. ZBOŘIL, František. Podklady k přednáškám kurzu AGS [online]. [Cit. 2010-01-16]. Dostupné online[nedostupný zdroj]
  3. KELEMEN, Jozef. Strojovia a agenty. Bratislava : Archa, 1994. [Cit. 2010-01-16]. ISBN 80-7115-089-4.
  4. a b c NETRVALOVÁ, Arnoštka. Úvod do problematiky multiagentních systémů [online]. [Cit. 2010-01-16]. Dostupné online
  5. a b c d HUHNS, Michael. MUNINDAR Singh P. (ed.) Research directions for service-oriented multiagent systems [online]. [Cit. 2010-01-16]. Dostupné online Archivováno 19. 4. 2008 na Wayback Machine.
  6. NOSKA, Martin. Grafická akcelerace nové generace Computerworld, 2009. roč. 20, č. 19. [Cit. 2010-01-16]. ISSN 1210-9924.
  7. LESSER, Victor R. CORKILL, Daniel D. The Distributed Vehicle Monitoring Testbed: A Tool for Investigating Distributed Problem Solving Networks [online]. [Cit. 2010-01-16]. Dostupné online[nedostupný zdroj]
  8. MALENKO, Jaromír. Multiagentní systémy: prostředí a vševědoucnost (diplomová práce) [online]. [Cit. 2010-01-16]. Dostupné online
  9. WEYNS, Danny aj. The agent environment in multi-agent systems: A middleware perspective [online]. [Cit. 2010-01-16]. Dostupné online[nedostupný zdroj]

Související články

editovat

Externí odkazy

editovat