Ügynök alapú megközelítés

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2018. október 31-én felülvizsgált verziótól ; az ellenőrzések 7 szerkesztést igényelnek .

A programozás ágens-orientált megközelítése (a továbbiakban: AOP) egyfajta programreprezentáció vagy programozási paradigma , amelyben az alapfogalmak az ágens fogalmai és mentális viselkedése , attól függően, hogy milyen környezetben helyezkedik el. A koncepciót Shochem ( Eng.  Yoav Shoham ) javasolta 1990 -ben [ 1] . A szerző által megadott paradigma definíció: [2]

Ezt az új programozási paradigmát ésszerűen nevezik racionális programozásnak. Ahogy az objektum-orientált programozás a paradigmát az eljárások írásáról az objektumok létrehozására helyezte át, a racionális programozás az információs objektumok létrehozásáról a motivált ágensek létrehozására helyezte át a paradigmát.

Az ágens minden olyan dolog, ami a környezetét szenzorok segítségével érzékeli , és e környezetre aktuátorok segítségével hat . [3]

Az "ügynök" kifejezés jelentése

Az ágens-orientált megközelítést új paradigmaként bemutató Shochem kellően részletesen taglalja, hogy milyen értelemben használják benne az ágens szót . Az a tény, hogy ez a szó különféle kapcsolódó értelemben használható. És bár Shochem a szoftverügynökön ügynököt ért , a mesterséges intelligencia elméletén alapul, és az intelligens ügynök fogalmából indul ki , amely már korábban is létezett. De észrevette, hogy ez a koncepció meglehetősen homályos, célul tűzte ki, hogy átalakítsa a programozásban való formálisabb alkalmazásra, és egy speciális AOP keretrendszert javasol . Ennek eredményeként az ágens fogalma, ellentétben egy egyszerű tárggyal , számos mentális konstrukcióval van felruházva, például hittel, kötelességekkel és képességekkel. Ezért a programozási nyelvben különféle mentális kategóriák jelennek meg, és a programozás szemantikája összekapcsolódik a mentális konstrukciók szemantikájával. [egy]

Kapcsolódó fogalmak

Egy tárgy  Egy adott struktúra programlényege és konkrét mechanizmusai más objektumokkal üzenettovábbításon keresztül történő interakcióhoz. Az üzenetek kialakítása és elküldése a bejövő üzenetekre válaszul történik. Az üzeneteket adatokon alapuló eljárások képezik. Színész Az adott struktúra és interakciós mechanizmusok szoftveres lényege. Ügynök A hozzárendelt feladatok végrehajtására szolgáló szoftverentitás. Viselkedése van , nevezetesen: kölcsönhatásba lép egy külső komplex és dinamikusan fejlődő környezettel , amely bizonyos feltételektől függően módosítható vagy más ágensek által módosítható. Az interakció magában foglalja [4] :

A környezet szabadsági fokától függően, amely megfelelő típusú ágens jelenlétét jelenti benne, a környezeteket a következőkre osztják: [5] :

Zárva A teljes környezet végső determinisztikus vagy valószínűségi leírása, amelyet az ágens eleve vagy feltárás útján ismer . nyisd ki A környezet azon helyi területének végső determinisztikus vagy valószínűségi leírása, amelyben az ágens található, és amelyet előzetesen vagy kutatás útján ismer. Átalakítható Dinamikusan fejlődő környezetek, amelyek fejlődő szerkezete egy ágens.

Az AOP és az OOP kapcsolata

Az ügynök-orientált megközelítés az objektum-orientált programozás (OOP) speciális esete (specializációja ). Az OOP-ban a számítási folyamatot meglehetősen tágan értjük, mint olyan objektumokból összeállított rendszert, amelyek üzeneteken keresztül kölcsönhatásba lépnek egymással . Az AOP úgy specializálja ezeket a fogalmakat, hogy létrehozza az objektumok (úgynevezett ágensek) állapotát (úgynevezett mentális állapot), amelyek olyan összetevőkből állnak, mint a hit(ek) (beleértve a világról, önmagáról és egymásról alkotott hiedelmeket), képességek és döntések. , amelyek mindegyikének saját szintaxisa van. Ezen túlmenően az ügynök mentális állapotára különféle korlátozások vonatkoznak. A számítás az ügynökök tájékoztatásából, követelményeik teljesítéséből, javaslataik teljesítéséből, egymás elfogadásából, elutasításából, versengéséből és egymás segítéséből áll. [egy]

OOP AOP
Alap egység egy tárgy ügynök
A fő egység állapotát meghatározó paraméterek korlátlan hiedelmek, elkötelezettségek, képességek, választások...
Számítási folyamat üzenet érkezési és válaszadási módszerek üzenet érkezési és válaszadási módszerek
Az üzenetek típusai korlátlan információ, kérés, ajánlat, ígéret, visszautasítás ....
Módszer korlátozások Nem őszinteség, következetesség....

A célmeghatározó mechanizmus jelenléte az ágensben az autonómia alapvetően új szintjét biztosítja. Egy ügynök nem feltétlenül követi más ügynök vagy felhasználó parancsait, egyszerűen a környezet feltételeitől függ, beleértve a többi ágens céljait és szándékait. Ellentétben egy tárggyal, az ágens bizonyos kötelezettségeket vállalhat, vagy éppen ellenkezőleg, megtagadhat bizonyos munkavégzést, motiválva ezt a kompetencia hiányával, más feladattal stb. más ágensek elnyomása, helyettesítése, funkciók aktiválása (mind a saját, mind a többi ágensé), egy tevékenységi forgatókönyv aktiválása, más ágensek aktuális állapotának memorizálása stb. [6] .

A feladattól a megvalósításig

Okok

Az ügynök alapú megközelítés megjelenésének okai:

  1. a működési környezetek határainak leküzdésének szükségessége;
  2. Az objektummodellek heterogenitásának kiküszöbölése, amelyet az a tény okoz, hogy a különböző eszközkörnyezetekben épített osztályok és objektumok bizonyos különbségeket mutatnak.

A probléma leírása

Általában egy AOP rendszernek a következő alapvető összetevőket kell tartalmaznia: [7] [8]

A fő tulajdonságokat, amelyekkel az ágenseknek rendelkezniük kell, tekintjük :

  1. Aktív magatartás, folyamatos információcsere az ágensen belül, illetve az ágens és a környezet között;
  2. Kommunikáció - adatcsere a külső környezettel;
  3. A környezet érzékelése - az ágens működésének környezetének érzékelésére szolgáló speciális "eszközök" jelenléte;
  4. A mobilitás egy ügynök mozgása más szoftvereken és fizikai környezeteken és/vagy komponenseken belül.

Megvalósítások

Az elosztott objektum architektúrák ( CORBA , DCOM , Java RMI , WEB-szolgáltatások ), amelyek számos felsorolt ​​tulajdonsággal rendelkeznek, a következő hátrányokkal rendelkeznek:

  1. a programkódok újrafordításának szükségessége az objektumok és interfészek módosítása során ;
  2. a programobjektumok viselkedésének dinamikus alkalmazkodásának lehetetlensége a környezet állapotaitól és viselkedésétől függően;
  3. a tudásmodellekkel való explicit munka lehetetlensége ;

A JADE Distributed Object Environment (Java RMI-n, Java CORBA IDL-n, Java Serialization-on és Java Reflection API-n alapuló) a következő tulajdonságokkal rendelkezik a Java ügynökök számára:

  1. Autonómia, önálló műveletek végrehajtásának lehetősége: az ügynök követi az aszinkron módon pótolható viselkedések listáját, azaz készenléti és „foglalt-munka” módban is.
  2. Fenntarthatóság: nincs mellékhatása minden egyes viselkedés után, képes a visszaállításra.
  3. Aktív viselkedés: hiba esetén ciklikus kísérletek történnek az aktuális végrehajtására, majd továbblépésre a viselkedés következő műveletére. A viselkedés végrehajtása során az ügynök elfoglalt – nem lép interakcióba a környezettel. Az aktuális viselkedés befejezése után az ügynök a következőre lép a listában, és ha nincs lista, akkor megvárja, amíg megjelenik. Az objektumnak viszont siker esetén nincs ereszkedése, kudarc esetén pedig elejti a feladatot.
  4. Mobilitás: az ügynök áthelyezésének lehetősége egy másik tárolóba . Ez a tulajdonság abból adódik, hogy az egyes viselkedések végrehajtása után nincs mellékhatás .

Ügynökstruktúra

Szerkezetileg az ágens a következőképpen ábrázolható :

Ügynök | |->Források | |->Objektumok | |->függvények | |->adatok

Viselkedés szerkezete

Példák

Az ügynök-orientált megközelítés tipikus példája a speciális programok, amelyek a játékosok tevékenységét imitálják a számítógépes játékokban. Az ilyen programok általános elnevezése a bot . A robotok használata azonban nem korlátozódik a számítógépes játékokra . A program elemeként megtalálhatók a "beszélgető" szerepét betöltő és a "megbeszéléseket" támogató chatekben és fórumokon. Egyes botok azonban nem csak utánzó szerepet töltenek be a kommunikáció vagy a játékok folyamatában, hanem szöveges információk szerkesztésére (beleértve a Wikipédiát is), hálózati kapcsolatok létrehozására, erőforrások moderálására stb.

Vessünk egy pillantást a Könyvkereskedők témakörre, amely bemutatja az ügynök alapú alkalmazások létrehozásához szükséges lépéseket.

Minden vásárlóügynök megkapja a megvásárolni kívánt könyv címét parancssori argumentumként, és rendszeresen lekérdezi az összes ismert eladói ügynököt, hogy vásárlási kérelmet tegyen. Az ajánlat beérkezését követően a vevő ügynöke visszaigazolja azt, és elküldi a megrendelést. Ha egynél több értékesítő biztosítja a könyvet, a vevő a legjobb ajánlatot (legjobb árat) választja. A szükséges könyv megvásárlása után a beszerzési ügynök befejezi a munkát. Minden eladói ügynök rendelkezik egy minimális felülettel, amelyen keresztül a felhasználó új címeket (és azok árait) adhatja hozzá az eladó könyvek helyi katalógusához. Az értékesítési ügynökök várják a vevő ügynökök kérését. Amikor könyvkérést kapnak, ellenőrzik, hogy a könyv szerepel-e a katalógusukban. Ha igen, akkor árajánlattal válaszolnak. Ellenkező esetben elutasítják. Amikor megkapják a vásárlási rendelést, feldolgozzák azt, és eltávolítják a kért könyvet a katalógusukból.

Jade

Ügynök létrehozásához a JADE-ben elegendő az inicializálási metódus meghatározása:

import jade.core.Agent ; public class BookBuyerAgent expands Agent { protected void setup ( ) { // Üdvözlő üzenet nyomtatása System . ki . println ( " Hello ! Vevő - ügynök " + getAID ( ). getName ( ) + " készen áll . " ) ; } }

A tényleges munkát, amit egy ügynöknek el kell végeznie, általában az „ügynök viselkedésén” belül végzik. A viselkedés olyan feladat, amelyet az ügynök elvégezhet.

Egy ügynök egyszerre több viselkedést is végrehajthat. Fontos azonban megjegyezni, hogy egy ügynök több viselkedésének ütemezése nem proaktív, hanem együttműködő. Ez azt jelenti, hogy amikor egy viselkedés futásra van ütemezve, a metódus action()meghívásra kerül, és addig fut, amíg be nem fejeződik. Ezért a programozó határozza meg, hogy az ügynök mikor vált át egy adott viselkedés végrehajtásáról a következő végrehajtására.

Tekintettel a leírt ütemezési mechanizmusra, fontos hangsúlyozni, hogy az alábbihoz hasonló viselkedés megakadályozza bármely más viselkedés végrehajtását, mivel a action()módszer soha nem fejeződik be.

public class OverbearingBehavior expands Behavior { public void action ( ) { while ( igaz ) { // csinálj valamit } } public logikai érték kész () { return true ; } }

Jegyzetek

  1. 1 2 3 Shoham Yoav. Ügynök-orientált programozás  :  műszaki jelentés STAN-CS-90-1335. - A Stanford Egyetem Számítástechnikai Tanszéke , 1990.
  2. Shoham Yoav. Többágens rendszerek: Algoritmikus, játékelméleti és logikai alapok = Artificial Intelligence: A Modern  Approach . - Cambridge University Press, 2009. - 504 p. — ISBN 9780521899437 .  (Hozzáférés: 2010. június 1.)
  3. Stuart Russell, Peter Norvig. Mesterséges intelligencia: Modern megközelítés = Artificial Intelligence: A Modern Approach . - a második. — M .: Williams . — 1407 p. — ISBN 5-8459-0887-6 .
  4. B. Hayes-Roth
  5. idézte: D.A. Pospelov Archiválva : 2012. január 14.
  6. Tarasov V.B. Ügynökök, többügynök-rendszerek, virtuális közösségek: stratégiai irány a számítástechnikában és a mesterséges intelligenciában  // A mesterséges intelligencia hírei: Szo. - 1998. - 2. sz . - S. 5-63 . Az eredetiből archiválva : 2012. január 14. (Hozzáférés: 2010. május 25.)  
  7. Shoham Yoav. Ügynök-orientált programozás  (angol)  // Mesterséges intelligencia. - 1993. - Nem. 60. (1) bekezdése alapján . - 51-92 . o . Az eredetiből archiválva : 2012. január 13.  (Hozzáférés: 2010. május 25.)
  8. Tarasov V.B. A többágens rendszerektől az intelligens szervezetekig: filozófia, pszichológia, számítástechnika . - M . : Szerkesztői URSS, 2002. - S. 352 . — ISBN 5-8360-0330-0 .

Lásd még

Irodalom