JADE -- Java Agent Development Framework
文章推薦指數: 80 %
JADE 是一個FIPA(Foundation for Intelligent Physical Agents) 規格相容的多代理人(multi-agent)開發系統。
容器與平台. 每一個在運轉中的JADE環境稱為容器(container), ...
Introduction
JADE是一個FIPA(FoundationforIntelligentPhysicalAgents)規格相容的多代理人(multi-agent)開發系統。
容器與平台
每一個在運轉中的JADE環境稱為容器(container),可容納數個代理人。
一組活動的容器稱為平台(platform)。
平台必須先有一個主容器,其他容器一經啟動就要向其登記。
例如,
Reference:
JADEProgrammingtutorialforbeginners.pdf
RunningJADE
從JADEHome下載
解壓縮
假設安裝在目錄c:\jade,則將
runjade.bat拷到c:\jade。
啟動jade用
runjade-gui
GettingStartedwithJADE
(local)
JADEManagement
TheAgentManagementServices(AMS)(specificationXC00023)
當使用javajade.Boot-gui啟動JADE的主container時,顯示RMA(RemoteMonitoringAgent)視窗。
RMA是管理JADE的主要工具。
平台中有host機器3406-1:1099/JADE,3406-1是PC的id,1099是port,JADE是平台名稱。
此host含有一預設的Main-container,其中有df,ams,RMA三個預設的代理人。
RMA包括DirectoryFacilitator(DF)和AgentManagementSystem(AMS)兩個代理人:
DF提供代理人的目錄服務。
AMS負責管理AP的運作,如創造/刪除代理人,決定代理人是否可以隨時向AP登記,以及代理人的遷移。
jade提供一簡單的代理人DummyAgent,可用以查看在代理人間交談的信文。
從在地端跑遠端RMA和DummyAgent這兩個代理人時,需限要使用全名
java.tools.DummyAgent.DummyAgent
java.tools.rma.rma
因此啟動遠端機器(210.70.83.101)的JADEcontainer時,用
runjade-host210.70.83.101-containerdummy0:jade.tools.DummyAgent.DummyAgentRMA1:jade.tools.rma.rma
命令列中的選項(option)意義如下:
-container:表示container是'secondary',應使用Main-Container的服務.
-host:表示Main-Container所在的機器
Reference:
GettingStartedwithJADE
(local)
通信行為
兩個代理人通信時,使用信文(message),每一信文封裝在一jade.lang.acl.ACLMessage物件中。
JADE的信文結構
JADE的ACL信文所有屬性如下,常用的用粗体字:
Performative-FIPA的信文類型(INFORM,QUERY,PROPOSE,...)
Addressing
Receiver
Sender(initializedautomatically)
Content-Thisisthemaincontentofthemessage
ConversationID-Usedtolinkmessagesinsameconversation
Language-Specifieswhichlanguageisusedinthecontent
Ontology-Specifieswhichontologyisusedinthecontent
Protocol-Specifiestheprotocol
ReplyWith-Anotherfieldtohelpdistinguishanswers
InReplyTo-Senderusestohelpdistinguishanswers
ReplyBy-Usedtosetatimelimitonananswer
撰寫信文時,必須先用ACL標示其performative類型,再設定內容,如:
ACLMessagemsg=newACLMessage(ACLMessage.INFORM);
msg.setContent("Isellseashellsat$10/kg");
此信文使用最常用的performativeINFORM,提供資訊.其他如:QUERY用以提問題,REQUEST用以要求做工作,而PROPOSE用以啟動磋商.
答覆的performative用AGREE或REFUSE.
Reference:
AgentCommuncation
FIPA的信文類型
JADE在jade.lang.acl.ACLMessage類別中,為每一個ACL信文通信行為,界定
一個靜態int常數,如
ACLMessage.INFORM
ACLMessage.REQUEST
ACLMessage.QUERY_REF
ACLMessage.CFP
Reference:
Communcative
Acts(local)
交談通信協定
交談過程涉及兩種角色:Initiator和Responder。
就大多數的FIPA交談通信協定(IP),JADE的jade.proto套件中為這兩種角色提供了一些行為類別:
AchieveREInitiator/Responder適用於FIPA-Request,FIPA-query,FIPA-propose,IPA-Request-When,FIPA-recruiting,FIPA-brokering,...等等協定。
SimpleAchieveREInitiator/Responder
ContractNetInitiator/Responder
結構
FIPA-Contract-Net
這個協定使Initiator可以送「徵求草案」(CallforProposal)給一組Responder,
接到這些草案後,加以評量,決定選取那一個(甚至全部都不要)
Reference:
Interaction
Protocols(local)
contentlanguage
ontology
代理人行為
Agent必須就不同的外界事件,實行concurrent工作。
這些工作可以用Behaviour物件實作。
使用類別Agent的addBehaviour()方法,即可在代理人加入這適當的行為。
每一延伸Behaviour
的類別必須實作action()方法,以界定實際要實行的工作,而用done()方法規定某一行為是否己經完成。
Jade提供多種Behaviour的抽象類別:
SimpleBehaviour:單一而不可中斷的行為
OneShotBehaviour
CyclicBehaviour
CompositeBehaviour:由許多分項工作組成
FSMBehaviour
SequentialBehaviour
ParallelBehaviour
這些行為類別的繼承關係階層如下圖:
範例:
Makingyouragentdostuff:AgentBehaviors
智慧型代理人:
採用BasicJessBehaviour行為(繼承CyclicBehaviour行為)的代理人,
BasicJessBehaviour內有一推理引擎,其行為由引擎中的規則庫規範
References
JADE--JavaAgentDEvelopmentFramework
JADEdocumentation
JADEPrimer
JADEtutorial
FIPA--FoundationforIntelligentPhysicalAgents
ArtificialAgents
UpTOC
延伸文章資訊
- 1Java Agent DEvelopment Framework: Jade Site
JADE (Java Agent DEvelopment Framework) is a software Framework fully implemented in the Java lan...
- 2jade[Java Agent 開發框架] - 中文百科知識
JADE(Java Agent Development Framework)是基於Java 語言的Agent開發框架, 是由TILAB 開發的開放原始碼的自由軟體。簡介JADE(Java Age...
- 3Jade — A Java Agent Development Framework | SpringerLink
JADE (Java Agent Development Framework) is a software environment to build agent systems for the ...
- 4JADE学习笔记1:JADE简介与配置 - 知乎专栏
JADE是基于Java 语言的Agent开发框架,是由TILAB 开发的开放源代码的自由软件。JADE是多Agent开发框架,遵循FIPA规范,它提供了基本的命名服务,黄业服务 ...
- 5jade(Java Agent 開發框架):簡介,功能 - 中文百科全書
JADE(Java Agent Development Framework)是基於Java 語言的Agent開發框架, 是由TILAB 開發的開放原始碼的自由軟體。 它包括一個Agent 賴以生...