楊永健
摘要:隨著信息技術(shù)的飛速發(fā)展,應(yīng)用軟件變得越來(lái)越復(fù)雜,其智能化程度也越來(lái)越高。多Agent技術(shù)就是在此背景下應(yīng)運(yùn)而生的,并迅速成為軟件工程領(lǐng)域的一個(gè)研究熱點(diǎn)。在介紹Agent定義和特點(diǎn)的基礎(chǔ)上,全面闡述了多Agent系統(tǒng)的體系結(jié)構(gòu)和兩種主要的Agent通信語(yǔ)言(KQML, FIPA-ACL),最后對(duì)多Agent系統(tǒng)的主要應(yīng)用做了詳細(xì)論述。
關(guān)鍵詞: Multi-Agent;KQML;FIPA-ACL
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)22-5293-04
多Agent技術(shù)是近年來(lái)軟件工程領(lǐng)域里的一個(gè)研究重點(diǎn)。多Agent系統(tǒng)(Multi-Agent System)是由分布式計(jì)算環(huán)境中的多個(gè)可交互的智能Agent組成的。其中,每個(gè)Agent被認(rèn)為是一個(gè)獨(dú)立的計(jì)算實(shí)體。在分布式環(huán)境下,它們有能力控制自身的行為和狀態(tài),并且能對(duì)環(huán)境的變化做出應(yīng)激反應(yīng)。更為重要的是,其能與環(huán)境中的其他Agent進(jìn)行交互并協(xié)同工作,完成一個(gè)大規(guī)模、復(fù)雜的計(jì)算任務(wù)。這也正是多Agent系統(tǒng)較之單Agent智能系統(tǒng)的優(yōu)勢(shì)所在。
1 Agent定義及其特點(diǎn)
1.1 Agent定義
Agent技術(shù)是人工智能、分布式計(jì)算、現(xiàn)代軟件工程等技術(shù)融合的產(chǎn)物。那么,agent的具體含義是什么呢?這里我們?cè)齏ooldridge和Jennings為Agent下的定義[1]:Agent是處在復(fù)雜計(jì)算環(huán)境中的計(jì)算機(jī)軟件或硬件系統(tǒng),該系統(tǒng)有能力在此環(huán)境中自主行動(dòng)以實(shí)現(xiàn)其設(shè)計(jì)目標(biāo)。
1.2 Agent的基本特性
通常認(rèn)為,Agent具有自治性、反應(yīng)性、社會(huì)性和能動(dòng)性四個(gè)主要特點(diǎn)。
1) 自治性:Agent具有高度的智能性,它可以依據(jù)內(nèi)部設(shè)定的規(guī)則在沒(méi)有其他對(duì)象干預(yù)的情況下完成既定的功能目標(biāo),并且有能力控制自己的行為和內(nèi)部狀態(tài)。
2) 反應(yīng)性:每個(gè)Agent可以通過(guò)特定的感受器(如傳感器等硬件設(shè)備)感知周圍環(huán)境的各類信息,在環(huán)境參數(shù)發(fā)生改變時(shí),能夠根據(jù)其所掌握的知識(shí)規(guī)則進(jìn)行自主學(xué)習(xí)和狀態(tài)調(diào)整以適應(yīng)環(huán)境的改變。
3) 社會(huì)性:在分布式計(jì)算環(huán)境中,存在著功能各異的眾多Agent實(shí)體。當(dāng)處理一些復(fù)雜問(wèn)題時(shí),通常需要許多Agent相互協(xié)作,共同完成任務(wù)。
4) 能動(dòng)性:Agent應(yīng)該主動(dòng)的采取某些動(dòng)作來(lái)完成特定的任務(wù)。
2 多Agent系統(tǒng)的體系結(jié)構(gòu)
隨著信息技術(shù)的飛速發(fā)展,人們已經(jīng)進(jìn)入了一個(gè)“數(shù)據(jù)大爆炸”時(shí)代,云計(jì)算、大數(shù)據(jù)處理等新技術(shù)不斷涌現(xiàn)并應(yīng)用到人們的日常生活中。由于人們所要解決的應(yīng)用問(wèn)題變得越來(lái)越復(fù)雜,而單Agent系統(tǒng)在自主學(xué)習(xí)、知識(shí)挖掘以及數(shù)據(jù)分析處理等方面存在諸多限制,無(wú)法滿足人們的需求。因此,多Agent系統(tǒng)的研究逐漸成為分布式人工智能領(lǐng)域的熱點(diǎn)。
2.1 多Agent系統(tǒng)的定義
多Agent系統(tǒng)包含多個(gè)互相通信的Agent,不同的Agent 有不同的作用范圍。某些情況下,作用范圍可能會(huì)重疊,而同時(shí)Agent之間還存在著依賴關(guān)系,它們之間既有競(jìng)爭(zhēng)關(guān)系也有協(xié)作關(guān)系,如圖1所示。
從體系結(jié)構(gòu)圖中可以看出,多Agent系統(tǒng)是一種“自組織”系統(tǒng),可以以一種幾乎透明的方式添加或移除Agent。此外,該系統(tǒng)非常適合于計(jì)算資源分散的分布式計(jì)算環(huán)境,通過(guò)Agent之間的協(xié)作和互操作,不僅可以極大擴(kuò)展系統(tǒng)的計(jì)算能力用以解決復(fù)雜的實(shí)際問(wèn)題,也可以很好地提高系統(tǒng)的易維護(hù)性和功能擴(kuò)展性。
2.2 基于FIPA規(guī)范的MAS框架結(jié)構(gòu)
圖2展示了基于FIPA(Foundation for Intelligent Physical Agents 智能物理Agent基金會(huì))規(guī)范的MAS結(jié)構(gòu)[2]。可以看出這是一個(gè)三層的框架。首先,非Agent技術(shù)開發(fā)的應(yīng)用程序與Agent提供的用戶接口進(jìn)行交互,利用Agent的計(jì)算功能來(lái)實(shí)現(xiàn)自己的目標(biāo)。每個(gè)Agent都設(shè)計(jì)了與用戶程序交互的API接口,用戶程序可以以一種完全透明的方式使用Agent系統(tǒng)所提供的功能。第二,多個(gè)Agent之間的管理和通信是由AMS(Agent管理系統(tǒng))和DF(目錄管理器)實(shí)現(xiàn)的。AMS提供了命名服務(wù)功能(在同一個(gè)平臺(tái)下的每個(gè)Agent都擁有唯一的一個(gè)名字),具有在某個(gè)容器(環(huán)境)內(nèi)創(chuàng)建和撤銷Agent的功能。DF則提供了黃頁(yè)功能和白頁(yè)功能,Agent可以查詢環(huán)境中具有某種特定功能的Agent。ACL(Agent通信語(yǔ)言)是整個(gè)系統(tǒng)的核心,它規(guī)定了Agent的通信方式以及消息格式。位于整個(gè)系統(tǒng)最底層的是通信協(xié)議,包括HTTP,IIOP,SMTP等常見的協(xié)議均可以作為Agent的通信協(xié)議。
2.3 Agent之間的通信機(jī)制
通信一直都是計(jì)算機(jī)科學(xué)的核心問(wèn)題之一。多Agent系統(tǒng)的一個(gè)重要特性就是社會(huì)性,Agent并不是孤立存在的,他們共處在一個(gè)環(huán)境之中,彼此之間存在著合作,競(jìng)爭(zhēng)等機(jī)制,而Agent之間的通信是實(shí)現(xiàn)合作和競(jìng)爭(zhēng)等機(jī)制的基礎(chǔ)。表1給出了Agent通信的協(xié)議棧結(jié)構(gòu)。從中可以看出,Agent通信語(yǔ)言提供的是一種高層的通信機(jī)制。下面重點(diǎn)介紹最為重要的兩種Agent通信語(yǔ)言:KQML(Knowledge Query and Manipulation Language)和FIPA-ACL(Agent Communication Language)。
1) KQML通信語(yǔ)言
KQML(Knowledge Query and Manipulation Language)是一種基于言語(yǔ)行為(Speech Act)理論的知識(shí)和信息交換協(xié)議和語(yǔ)言,是KSE(Knowledge-Sharing Effort)項(xiàng)目的一部分,該項(xiàng)目旨在構(gòu)建可共享的大規(guī)模知識(shí)庫(kù)。KQML[3,4]是一種基于消息的通信語(yǔ)言,消息具有固定的格式:每條消息有一個(gè)語(yǔ)義詞,可將其看作消息的標(biāo)志,此外KQML消息中含有多個(gè)具有特定語(yǔ)義的參數(shù),如表2所示。
這條消息的含義是:發(fā)送者想查詢圖書《C++ Programming》的價(jià)格。在這條消息中,ask-all是動(dòng)作原語(yǔ)詞,它的含義是一個(gè)Agent向其他所有Agent征詢,并且需要得到應(yīng)答。消息的內(nèi)容是查詢圖書的價(jià)格。:receiver即消息的接收者,為存儲(chǔ)著圖書信息的服務(wù)器。:language規(guī)定了內(nèi)容的表達(dá)語(yǔ)言,本例中使用的是標(biāo)準(zhǔn)LISP語(yǔ)言。:ontology規(guī)定了消息所用的術(shù)語(yǔ)集,本例中的術(shù)語(yǔ)集為所有圖書的價(jià)格信息。
盡管KQML為多Agent間的通信提供了一種較好的機(jī)制,并且取得了成功,但是其自身仍存在某些缺陷:
· KQML的基本語(yǔ)義詞集合缺乏嚴(yán)格的約束,這就造成不同的KQML系統(tǒng)間的不可互操作性。
· KQML的語(yǔ)義沒(méi)有嚴(yán)格的定義,這就造成在使用KQML時(shí)的隨意性很大,這也是導(dǎo)致互操作性差的一個(gè)重要原因。
· KQML的消息傳送機(jī)制缺乏嚴(yán)格定義。
KQML存在的這些缺陷使人們開始研究新的Agent通信語(yǔ)言,F(xiàn)IPA隨后開發(fā)出一種新型的Agent通信語(yǔ)言,它彌補(bǔ)了KQML的眾多缺陷,與此同時(shí)也保留了KQML的優(yōu)點(diǎn)。
2) FIPA-ACL通信語(yǔ)言
ACL表面上與KQML很相似,其消息的語(yǔ)法也與KQML非常類似。表3給出了ACL的參數(shù)說(shuō)明。
3 多Agent技術(shù)的應(yīng)用
近年來(lái),多Agent技術(shù)受到了學(xué)術(shù)界和產(chǎn)業(yè)界的廣泛關(guān)注,具有廣闊的應(yīng)用前景。目前,多Agent技術(shù)在工業(yè)、商業(yè)、教育等領(lǐng)域已經(jīng)得到應(yīng)用。下面重點(diǎn)介紹一下該技術(shù)的一些典型應(yīng)用領(lǐng)域。
1) 在智能信息檢索中的應(yīng)用
傳統(tǒng)的信息檢索方式需要建立在穩(wěn)定的數(shù)據(jù)傳輸基礎(chǔ)上,并且客戶端每次檢索除了從服務(wù)端獲取到有用的數(shù)據(jù)外,還會(huì)下載很多無(wú)用信息,不僅浪費(fèi)了寶貴的網(wǎng)絡(luò)通信資源而且智能化程度很差。多Agent系統(tǒng)可以提供動(dòng)態(tài)執(zhí)行檢索和異步計(jì)算功能,Agent根據(jù)用戶請(qǐng)求,在服務(wù)端動(dòng)態(tài)執(zhí)行搜索并返回用戶感興趣的內(nèi)容,既降低了網(wǎng)絡(luò)帶寬消耗又提高了檢索效率。
2) 在工作流中的應(yīng)用
傳統(tǒng)的工作流系統(tǒng)只是按照預(yù)先定義好的流程執(zhí)行相應(yīng)的工作處理流程,無(wú)法對(duì)外界的新情況及時(shí)做出反應(yīng),系統(tǒng)各模塊之間也缺乏協(xié)同機(jī)制,致使系統(tǒng)靈活性較差,而這些方面恰恰是多Agent系統(tǒng)的優(yōu)勢(shì)所在。因此,將Agent技術(shù)引入工作流系統(tǒng)中,可以有效提高系統(tǒng)的適應(yīng)性和靈活性。
3) 在電子商務(wù)中的應(yīng)用
Agent技術(shù)應(yīng)用于電子商務(wù)可以為用戶和商家提供資源智能發(fā)現(xiàn)、網(wǎng)上虛擬市場(chǎng)交易等一系列個(gè)性化服務(wù)?;贏gent技術(shù)的電子商務(wù)平臺(tái)不但可以為商業(yè)主體提供在Internet上搜索所需商品的智能技術(shù),并且可以創(chuàng)造出獨(dú)立于交易雙方的調(diào)控方來(lái)全面管理線上交易,從而有效降低了交易消耗的時(shí)間和精力,同時(shí)也提供了很好的安全性保障機(jī)制。
4 結(jié)束語(yǔ)
本文首先從Agent的定義和特性分析入手,詳細(xì)闡述了多Agent系統(tǒng)的定義、特點(diǎn)和體系結(jié)構(gòu)。在此基礎(chǔ)上,重點(diǎn)介紹了KQML和FIPA-ACL兩種Agent通信語(yǔ)言。最后,就多Agent技術(shù)目前的主要應(yīng)用領(lǐng)域進(jìn)行了分析和闡述。隨著技術(shù)標(biāo)準(zhǔn)的不斷完善以及高效便捷的系統(tǒng)開發(fā)平臺(tái)的出現(xiàn),多Agent技術(shù)一定會(huì)得到越來(lái)越廣泛的應(yīng)用。
參考文獻(xiàn):
[1] M.Wooldridge and N.R.Jennings. Intelligent agents: theory and practice[J]. The Knowledge Engineering Review,1995,10(2): 115-152.
[2] FIPA Specifications. http://www.fipa.org.
[3] Tim Finin, Don McKay, Rich Fritzson, and Robin McEntire. KQML: an information and knowledge exchange protocol. In Kazuhiro Fuchi and Toshio Yokoi, editors, Knowledge Building and Knowledge Sharing. Ohmsha and IOS Press, 2010.
[4] Yannis Labrou and Tim Finin. A semantics approach for KQML-a general purpose communication language for software agents. In Third International Conference on Information and Knowledge Management,2000.