Přístup založený na agentech

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 31. října 2018; kontroly vyžadují 7 úprav .

Agentově orientovaný přístup (dále AOP) k programování je druh programové reprezentace nebo programovacího paradigmatu, ve kterém jsou základními koncepty koncepty agenta a jeho mentálního chování v závislosti na prostředí , ve kterém se nachází. Koncept navrhl Shochem ( Eng.  Yoav Shoham ) v roce 1990 [ 1] . Definice paradigmatu uvedená autorem: [2]

Toto nové programovací paradigma se celkem rozumně nazývá racionální programování. Stejně jako objektově orientované programování posunulo paradigma od psaní procedur k vytváření objektů, racionální programování posunulo paradigma od vytváření informačních objektů k vytváření motivovaných agentů.

Agent je vše, co lze považovat za vnímání svého okolí pomocí senzorů a působení na toto prostředí pomocí aktuátorů . [3]

Význam pojmu "agent"

Shochem, prezentující přístup orientovaný na agenty jako nové paradigma, dostatečně podrobně rozebírá, v jakém smyslu se v něm slovo agent používá . Faktem je, že toto slovo lze použít v různých příbuzných významech. A přestože Shochem chápe softwarového agenta jako agenta , vychází z teorie umělé inteligence a vychází z konceptu inteligentního agenta , který existoval již dříve. Ale když si všiml, že tento koncept je poněkud vágní, klade si za cíl jej transformovat pro formálnější použití v programování a navrhnout speciální rámec AOP . V důsledku toho je koncept agenta, na rozdíl od jednoduchého objektu , vybaven řadou mentálních konstruktů, jako je víra, povinnosti a schopnosti. V programovacím jazyce se proto objeví různé mentální kategorie a sémantika programování se propojí se sémantikou mentálních konstrukcí. [jeden]

Související pojmy

Objekt  Programová podstata dané struktury a specifické mechanismy pro interakci s jinými objekty prostřednictvím předávání zpráv. Zprávy jsou vytvářeny a odesílány jako odpověď na příchozí zprávy. Zprávy jsou tvořeny procedurami založenými na datech. Herec Softwarová podstata dané struktury a mechanismů interakce. Činidlo Softwarová entita pro provádění zadaných úkolů. Má chování , konkrétně: interaguje s vnějším komplexním a dynamicky se rozvíjejícím prostředím , které může být modifikováno nebo modifikováno jinými agenty v závislosti na konkrétních podmínkách. Interakce znamená [4] :

V závislosti na stupni volnosti prostředí, který implikuje přítomnost vhodného typu agenta v něm, se prostředí dělí na [5] :

ZAVŘENO Konečný deterministický nebo pravděpodobnostní popis celého prostředí, který je agentovi znám a priori nebo prostřednictvím průzkumu . OTEVŘENO Konečný deterministický nebo pravděpodobnostní popis místní oblasti prostředí, ve kterém se agent nachází a který je mu znám a priori nebo prostřednictvím výzkumu. Transformovatelné Dynamicky se rozvíjející prostředí, jehož vývojovou strukturou je agent.

Vztah mezi AOP a OOP

Agentově orientovaný přístup je speciálním případem (specializací) objektově orientovaného programování (OOP). V OOP je výpočetní proces chápán poměrně široce jako systém sestavený z objektů , které na sebe vzájemně působí prostřednictvím zpráv . AOP specializuje tyto koncepty nastolením stavu (nazývaného mentální stav) objektů (tzv. agentů) složených ze složek, jako jsou přesvědčení (včetně přesvědčení o světě, o sobě a o sobě navzájem), schopnosti a rozhodnutí. , z nichž každý má specifickou syntaxi. Na psychický stav agenta jsou navíc kladena různá omezení. Výpočet spočívá v informování agentů, plnění jejich požadavků, plnění jejich návrhů, přijímání, odmítání, soutěžení a vzájemné pomoci. [jeden]

OOP AOP
Základní jednotka objekt činidlo
Parametry, které určují stav hlavní jednotky neomezený přesvědčení, závazky, schopnosti, volby....
Proces výpočtu metody přijímání zpráv a odpovědí metody přijímání zpráv a odpovědí
Typy zpráv neomezený informace, žádost, nabídka, slib, odmítnutí ....
Omezení metody Ne poctivost, důslednost....

Přítomnost mechanismu stanovování cílů v agentovi poskytuje zásadně novou úroveň autonomie. Agent se nemusí nutně řídit příkazy jakéhokoli jiného agenta nebo uživatele, prostě závisí na podmínkách prostředí, včetně cílů a záměrů jiných agentů. Na rozdíl od objektu může agent převzít určité závazky nebo naopak odmítnout vykonávat nějakou práci, motivovat k tomu nedostatek kompetence, zaneprázdněnost jiným úkolem atd. Zároveň může agent provádět takové akce, jako je generování, potlačení a nahrazení jiných agentů, aktivace funkcí (vlastních i jiných agentů), aktivace scénáře aktivity, zapamatování aktuálního stavu jiných agentů atd. [6] .

Od úkolu k realizaci

Příčiny

Důvody pro vznik přístupu založeného na agentech:

  1. potřeba překonat hranice provozních prostředí;
  2. odstranění heterogenity objektových modelů způsobené tím, že třídy a objekty postavené v různých prostředích nástrojů mají určité rozdíly.

Prohlášení o problému

Obecně by systém AOP měl obsahovat tyto základní komponenty: [7] [8]

Jsou považovány za hlavní vlastnosti, které by agenti měli mít :

  1. Aktivní chování, neustálá výměna informací „uvnitř“ agenta a mezi agentem a okolím;
  2. Komunikace - výměna dat s vnějším prostředím;
  3. Vnímání prostředí – přítomnost speciálních „prostředků“ vnímání prostředí fungování agenta;
  4. Mobilita je pohyb agenta v rámci jiného softwaru a fyzických prostředí a/nebo komponent.

Implementace

Distribuované objektové architektury ( CORBA , DCOM , Java RMI , WEB-services ), které mají mnoho z uvedených vlastností, mají následující nevýhody:

  1. nutnost překompilovat programové kódy při provádění změn objektů a rozhraní ;
  2. nemožnost dynamického přizpůsobování chování programových objektů v závislosti na stavech a chování prostředí;
  3. nemožnost explicitně pracovat se znalostními modely ;

Prostředí JADE Distributed Object Environment (založené na Java RMI, Java CORBA IDL, Java Serialization a Java Reflection API) poskytuje agentům Java následující vlastnosti:

  1. Autonomie, schopnost samostatně provádět akce: agent se řídí seznamem chování, které lze asynchronně doplňovat, tedy jak v pohotovostním režimu, tak v režimu „zaneprázdněný-pracovní“.
  2. Udržitelnost: Nemá žádné vedlejší účinky po každém chování, má schopnost vrátit se zpět.
  3. Aktivní chování: je to, že v případě selhání jsou prováděny cyklické pokusy o provedení aktuálního chování a poté přechod k další akci chování. Během provádění chování je agent zaneprázdněn - neinteraguje s prostředím. Po dokončení aktuálního chování se agent přesune na další v seznamu, a pokud žádný seznam neexistuje, čeká, až se nějaký objeví. Objekt naproti tomu v případě úspěchu nemá sestup a v případě neúspěchu zahodí úkol.
  4. Mobilita: schopnost přenést agenta do jiného kontejneru . Tato vlastnost vzniká nepřítomností vedlejšího účinku po provedení každého chování .

Struktura agenta

Strukturálně může být agent reprezentován následovně :

Činidlo | |->Zdroje | |->Objekty | |->funkce | |->data

Struktura chování

Příklady

Typickým příkladem přístupu orientovaného na agenty jsou speciální programy, které napodobují jednání hráčů v počítačových hrách. Běžný název pro takové programy je boti . Použití robotů se však neomezuje pouze na počítačové hry . Lze je nalézt jako prvek programu v chatech a na fórech, které hrají roli „partnera“ a podporují „diskuze“. Někteří roboti však neplní pouze roli imitátorů v procesu komunikace nebo her, používají se k úpravě textových informací (včetně Wikipedie), k navazování síťových připojení, moderování zdrojů atd.

Podívejme se na oblast Booksellers, která bude ilustrovat kroky potřebné k vytváření aplikací založených na agentech.

Každý nákupní agent obdrží název knihy, kterou má koupit, jako argument příkazového řádku a pravidelně se dotazuje všech známých prodejců, aby požádali o nákup. Jakmile je nabídka přijata, agent kupujícího ji potvrdí a odešle objednávku. Pokud knihu poskytuje více než jeden prodejce, kupující vybere nejlepší nabídku (nejlepší cenu). Po zakoupení požadované knihy nákupní agent ukončí práci. Každý prodejce má minimální rozhraní, jehož prostřednictvím může uživatel přidávat nové tituly (a jejich ceny) do místního katalogu knih na prodej. Prodejci čekají na požadavky kupujících. Když dostanou žádost o knihu, zkontrolují, zda je kniha v jejich katalogu. Pokud ano, reagují nabídkou s cenou. Jinak odmítají. Když obdrží objednávku, zpracují ji a odstraní požadovanou knihu ze svého katalogu.

Jade

Pro vytvoření agenta v JADE stačí definovat jeho inicializační metodu:

import jade.core.Agent ; public class BookBuyerAgent extends Agent { protected void setup () { // Vytiskněte uvítací zprávu System . ven . println ( " Dobrý den ! Kupující - agent " + getAID (). getName () + " je připraveno . " ); } }

Skutečná práce, kterou musí agent udělat, je obvykle vykonávána v rámci „chování agenta“. Chování je úkol, který může agent provádět.

Agent může provádět více chování současně. Je však důležité poznamenat, že plánování několika chování v agentovi není proaktivní, ale kooperativní. To znamená, že když je naplánováno spuštění chování, action()je volána jeho metoda a běží, dokud není dokončeno. Je to tedy programátor, kdo určuje, kdy agent přejde z provedení daného chování na provedení dalšího.

Vzhledem k popsanému mechanismu plánování je důležité zdůraznit, že chování, jako je to níže, brání provedení jakéhokoli jiného chování, protože jeho action()metoda se nikdy nedokončí.

public class OverbearingBehavior extends Behavior { public void action () { while ( true ) { // něco udělat } } public boolean done () { return true ; } }

Poznámky

  1. 1 2 3 Shoham Yoav. Programování orientované na agenty  :  Technická zpráva STAN-CS-90-1335. - Katedra informatiky, Stanford University , 1990.
  2. Shoham Yoav. Multiagentní systémy: Algoritmické, herně teoretické a logické základy = Umělá inteligence: Moderní  přístup . - Cambridge University Press, 2009. - 504 s. — ISBN 9780521899437 .  (Přístup: 1. června 2010)
  3. Stuart Russell, Peter Norvig. Umělá inteligence: Moderní přístup = Artificial Intelligence: A Modern Approach . - druhý. — M .: Williams . — 1407 s. — ISBN 5-8459-0887-6 .
  4. B. Hayes-Roth
  5. citováno D.A. Pospelovem Archivováno 14. ledna 2012.
  6. Tarasov V.B. Agenti, multiagentní systémy, virtuální komunity: strategický směr v informatice a umělé inteligenci  // Novinky z umělé inteligence: sobota - 1998. - č. 2 . - S. 5-63 . Archivováno z originálu 14. ledna 2012. (Přístup: 25. května 2010)  
  7. Shoham Yoav. Programování orientované na agenty  (anglicky)  // Umělá inteligence. - 1993. - Ne. 60(1) . - str. 51-92 . Archivováno z originálu 13. ledna 2012.  (Přístup: 25. května 2010)
  8. Tarasov V.B. Od multiagentních systémů po inteligentní organizace: filozofie, psychologie, informatika . - M . : Editorial URSS, 2002. - S. 352 . — ISBN 5-8360-0330-0 .

Viz také

Literatura