JADE -- Java Agent Development Framework

文章推薦指數: 80 %
投票人數:10人

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



請為這篇文章評分?