2APL
2APL (A Practical Agent Programming Language) är ett modulärt BDI-baserat programmeringsspråk som stödjer utvecklingen av multiagentsystem . 2APL tillhandahåller en rik uppsättning programmeringskonstruktioner som tillåter direkt implementering av begrepp som övertygelser, deklarativa mål, åtgärder, planer, händelser och resonemangsregler. Resonemangsreglerna tillåter körtidsval och generering av planer baserat på deklarativa mål, mottagna händelser och meddelanden och misslyckade planer. 2APL kan användas för att implementera muti-agent-system som består av mjukvaruagenter med reaktiva såväl som proaktiva beteenden.
Översikt
2APL tillhandahåller programmeringskonstruktioner för att specificera både multiagentsystem och individuella agenter. Multi-agent system specificeras i termer av individuella agenter och de miljöer som de interagerar med. Individuella medel specificeras i termer av följande ingredienser.
- Beliefs : Den implementerar en agents initiala information om dess miljöer och andra agenter som den interagerar med. En agents övertygelse kan förändras under dess utförande.
- Mål : Den implementerar en agents initiala mål. Varje mål anger ett tillstånd som agenten önskar uppnå. Ett mål kommer att tas bort så snart det är uppnått. Olika mål är kanske inte uppnåbara samtidigt som de kan beteckna motstridiga stater.
-
Grundläggande åtgärder : 2APL tillhandahåller olika typer av åtgärder, bland annat
- Belief Update Action är att uppdatera en agents övertygelser.
- Kommunikationsåtgärd är att skicka ett meddelande till en annan agent.
- Extern handling är att interagera med en miljö.
- Abstrakt åtgärd är att kapsla in en plan med en enda åtgärd.
- Belief Test Action är att fråga en agents övertygelser.
- Målteståtgärd är att fråga en agents mål.
- Adopt Goal Action är att lägga till ett mål till en agents mål.
- Drop Goal Action är att ta bort ett mål från en agents mål.
- Planer : En plan består av grundläggande åtgärder sammansatta av operatorer såsom sekvens, villkorligt val, villkorad iteration och en unär operator för att identifiera (region av) planer som bör utföras atomärt, dvs. åtgärderna ska inte interfolieras med åtgärderna i agentens andra planer.
-
Resonemangsregler : Tre typer av (praktiska) resonemangsregler tillhandahålls för att implementera genereringen av planer. Reglerna har ett trosvillkor som anger när regeln kan tillämpas.
- Planeringsmål Regel är att skapa en plan för att uppnå ett mål.
- Procedurregel är att skapa en plan för att reagera på antingen en händelse (mottagen från miljön) eller ett meddelande (mottagen från en agent). Denna regel kan också användas för att relatera en abstrakt handling till planen den kapslar in.
- Planreparationsregeln är att skapa en plan för att ersätta en misslyckad plan.
- Moduler : Ett 2APL-agentprogram kan utvecklas i separata moduler. Varje modul kapslar in kognitiva komponenter som övertygelser, mål, planer och resonemangsregler. I praktiken kan en 2APL-modul användas för att programmera en specifik funktionalitet, såsom en roll eller en agentprofil . En programmerare kan utföra ett brett utbud av operationer på moduler, t.ex. skapa en modulinstans, uppdatera den, exekvera den och testa dess tillstånd.
- Miljöer : En 2APL-miljö kan implementeras som ett Java-objekt. Metoderna för ett sådant objekt motsvarar agenternas yttre handlingar. En metods kropp implementerar effekten av motsvarande åtgärd.
2APL-plattform
2APL-plattformen och dess motsvarande plugin-redigerare Eclipse är utvecklade för att underlätta utvecklingen och exekveringen av program med flera agenter. Exekveringen av ett individuellt 2APL-agentprogram realiseras genom en cyklisk avkänning-reason-act-process, kallad överläggningsprocessen . Exekveringen av ett 2APL-multiagentprogram är parallella exekveringar av de inblandade individuella agentprogrammen.
- Mehdi Dastani, 2APL: ett programmeringsspråk för praktisk agent, International Journal of Autonomous Agents and Multi-Agent Systems (JAAMAS), 16(3):214-248, Special Issue on Computational Logic-based Agents, (red.) Francesca Toni och Jamal Bentahar, 2008.
- Mehdi Dastani och Bas Steunebrink. Operationell semantik för BDI-moduler i multiagentprogrammering. Proceedings of the tionth International Workshop on Computational Logic in Multi-Agent Systems (CLIMA-X), 2009.
- Mehdi Dastani. Modulär regelbaserad programmering i 2APL, In A. Giurca, D. Gasevic och K.Taveter (red.), Handbook of Research on Emerging Rule-Based Languages and Technologies: Open Solutions and Approaches (2 volymer), ISBN 978- 1-60566-402-6 , 2009.
- Mehdi Dastani, Jaap Brandsema, Amco Dubel och John-Jules Meyer. Felsökning av BDI-baserade multiagentprogram. I förfarandet för den 7:e internationella workshopen om programmering av multiagentsystem (ProMAS 2009), 2009.
externa länkar
- 2APL på SourceForge