焦蕾
(陜西工業(yè)職業(yè)技術(shù)學(xué)院 陜西 咸陽 712000)
軟件Agent技術(shù)的誕生和發(fā)展是人工智能和網(wǎng)絡(luò)技術(shù)相結(jié)合的產(chǎn)物。從20世紀(jì)60年代起,傳統(tǒng)的人工智能技術(shù)開始致力于對知識表達(dá)、智能推理、機(jī)器學(xué)習(xí)等領(lǐng)域的研究,這些研究成果在計(jì)算機(jī)軟件中的應(yīng)用使得軟件有了一定程度上的主動性,并在自主判斷和行為選擇上有了一定的智能性。
在Internet這一目前最龐大的互聯(lián)網(wǎng)絡(luò)環(huán)境中,計(jì)算機(jī)軟件體系結(jié)構(gòu)和組織結(jié)構(gòu)的復(fù)雜性不斷增加,傳統(tǒng)的軟件設(shè)計(jì)方法己經(jīng)無法滿足實(shí)際需要,分布式、智能化才是今后軟件發(fā)展的基本方向。軟件分布式的目標(biāo)是要將問題進(jìn)行分解[1],由多個實(shí)現(xiàn)了知識共享的軟件模塊或網(wǎng)絡(luò)節(jié)點(diǎn)來共同完成問題求解,而智能化的目標(biāo)是要在智能主機(jī)之間實(shí)現(xiàn)智能行為的協(xié)調(diào),兩者的結(jié)合就產(chǎn)生了軟件Agent的概念
到目前為止,許多研究者提出了各自對Agent的定義,但至今沒有一個被大多數(shù)人認(rèn)可的統(tǒng)一的定義。但人們大致認(rèn)為:軟件Agent是運(yùn)行于動態(tài)環(huán)境的、具有高度自治能力的實(shí)體,它能夠接受其他實(shí)體的委托并為之服務(wù)。不難看出,軟件Agent首先具有智能特性,它對環(huán)境有響應(yīng)性、自主性和主動性。同時,軟件Agent還具有社會特性。它在一定程度一上模擬了人類社會的行為和關(guān)系,具有一定的智能并能夠自主運(yùn)行,向其它軟件實(shí)體提供相應(yīng)的服務(wù)。軟件Agent具有極大的靈活性和適應(yīng)性,更加適合于開放、動態(tài)的網(wǎng)絡(luò)環(huán)境,也更能體現(xiàn)人類的社會職責(zé)。
與傳統(tǒng)的對象概念比較,Agent和對象存在一定的相似性,雖然它們都使用消息傳遞的方式來進(jìn)行通信,但Agent不是簡單的對象。對象是一種靜態(tài)概念,不具備自主、推理和社會特征,而Agent是動態(tài)的,可以鑒別不同類型的消息,使用復(fù)雜協(xié)議來協(xié)商,Agent具有精神狀態(tài),同時具備上文描述的一些特征。具有更強(qiáng)的Agent問題求解和自制能力。此外,Agent之間可以相互感知與協(xié)作,從而可以協(xié)作求解一個共同的任務(wù)。Agent的概念更貼近現(xiàn)實(shí)世界,使用Agent來分析、設(shè)計(jì)、模仿和實(shí)現(xiàn)現(xiàn)實(shí)世界中的系統(tǒng),無論從概念上,還是從結(jié)構(gòu)上,都更加清晰和容易。
移動Agent[2]可以看成是軟件Agent技術(shù)與分布式計(jì)算技術(shù)相結(jié)合的產(chǎn)物。移動Agent是一個全新的概念,目前還沒有統(tǒng)一的定義。20世紀(jì)90年代初,GeneralMagic公司在推出其商業(yè)系統(tǒng)Telescript時第一次提出了移動Agent的概念,即一個能在異構(gòu)網(wǎng)絡(luò)環(huán)境中自主地從一臺主機(jī)遷移到另一臺主機(jī),并可與其他Agent或資源交互的軟件實(shí)體(4d)。移動Agent除了具有軟件Agent的基本特性外,還具有移動性、自治性、響應(yīng)性、主動性、推理性和適應(yīng)性等特性。移動Agent必須可以自主地從一個節(jié)點(diǎn)移動到另一個節(jié)點(diǎn),這是移動Agent最基本的特征,也是它區(qū)別與其他Agent的標(biāo)志。
移動Agent不同于遠(yuǎn)程過程調(diào)用(RPC),這是因?yàn)橐苿覣gent能夠不斷地從網(wǎng)絡(luò)中的一個節(jié)點(diǎn)移動到另一個節(jié)點(diǎn),而且這種移動是可以根據(jù)自身需要進(jìn)行選擇的。移動Agent也不同于一般的進(jìn)程遷移,因?yàn)橐话銇碚f進(jìn)程遷移系統(tǒng)不允許進(jìn)程自己選擇什么時候遷移以及遷移到哪里,而移動Agent卻可以在任意時刻進(jìn)行移動,并且可以移動到它想去的任何地方。移動Agent更不同于Java語言中的Applet,因?yàn)锳pples只能從服務(wù)器向客戶機(jī)做單方向的移動,而移動Agent卻可以在客戶機(jī)和服務(wù)器之間進(jìn)行雙向移動。
Bratman 的 BDI (Belief-Desire-Intention)理 論[3]是被 公 認(rèn)的Agent理論基礎(chǔ)。Bratman從哲學(xué)的角度對人們的意圖進(jìn)行了深入研究,認(rèn)為只有保持信念(Belief)、愿望(Desire)和意圖(Intention)的理性平衡才能有效地解決問題,他認(rèn)為在開放世界中,理性Agent的行為不能直接由信念與愿望以及有這兩者組成的規(guī)劃所驅(qū)動,在愿望與規(guī)劃之間應(yīng)有一個基于信念的意圖存在,一個理性Agent的行為是受制于意圖的,Agent不會毫無理由地改變自己的意圖,也不會堅(jiān)持不切實(shí)際的意圖。信念是Agent對世界的認(rèn)識,愿望是分配給Agent的任務(wù),在通常情況下,Agent不可能滿足所有的愿望,因此,Agent只能集中有限的資源用于某些愿望,這些愿望就是意圖。下面分別介紹基于BDI理論的3種主要理論模型。
Cohen和Levesque最早開始這方面的形式化概念工作,其邏輯基礎(chǔ)建立在Bratman哲學(xué)觀點(diǎn)之上。采用基于線性時序邏輯,分別引入并表示了時間、事件、行為目標(biāo)和意念等概念,給出了一個形式模型,但該模型并不能完全實(shí)現(xiàn)Bratman的哲學(xué)思想,沒有解決意圖和目標(biāo)的關(guān)系,十分抽象而且難于實(shí)現(xiàn)。Rao和George 1991年和1992年采用了非線性分支時態(tài)邏輯,分別給出了PRS結(jié)構(gòu)的形式化描述和完整的語義描述。與Cohen和Levesque的BDI模型相比,Rao和George的理性 Agent的BDI模型描述了意圖和目標(biāo)的關(guān)系,語義較為明確,仍過于抽象,難于實(shí)現(xiàn)。
Agent屬于非線性系統(tǒng),其中的變化過程屬于動力學(xué)演變過程。Kiss利用動力學(xué)系統(tǒng)范形為Agent的目標(biāo)、喜好等基本概念給出一個理論模型,為形式化描述Agent和多Agent提供了基礎(chǔ)。不過,對Agent內(nèi)部到底該如何構(gòu)造等的本質(zhì)問題,人們尚未充分認(rèn)識。 Haddadi認(rèn)為,可以將通常應(yīng)用于人類自身行為描述的一些概念如信念、意圖、承諾等賦予Agent,形成所謂的意識系統(tǒng)。另一方面,可以為機(jī)器建立比較簡單的信念、知識和愿望理論,并最終將其應(yīng)用于人。也就是說,人腦的研究和Agent的研究可以相輔相成,互相促進(jìn),而在現(xiàn)階段大都是將前者的一些研究成果應(yīng)用于后者。
雖然許多研究者從不同角度研究了Agent的理論模型,為形式化描述Agent提供了基本的方法,因而是十分重要的,但這些理論模型仍存在以下問題[4]:
1)各模型并不能完全實(shí)現(xiàn)Bratman的哲學(xué)思想,模型描述不夠完整,不能反應(yīng)Agent的社會特性,沒有解決意圖和目標(biāo)的關(guān)系,十分抽象而且難于實(shí)現(xiàn)。
2)Agent模型和具體Agent結(jié)構(gòu)沒有明確的映射關(guān)系。各模型中沒有細(xì)化Agent的內(nèi)部結(jié)構(gòu),所以并不能很好地把Agent行為與其內(nèi)部狀態(tài)的變化過程聯(lián)系起來,無法體現(xiàn)Agent的外部交互行為應(yīng)與其內(nèi)在意識、精神狀態(tài)密切相關(guān)這一基本思想。在實(shí)際的構(gòu)造Agent過程中,很難用現(xiàn)有的程序語言進(jìn)行編程實(shí)現(xiàn)。
3)Agent模型中普遍存在“邏輯上無所不知”的問題,使得Agent系統(tǒng)過于復(fù)雜,在實(shí)際的構(gòu)造Agent系統(tǒng)過程中,缺乏實(shí)用性。
4)Agent的求解過程和Agent狀態(tài)變化的關(guān)系還沒能充分地進(jìn)行動態(tài)描述,尤其存在Agent狀態(tài)變化控制關(guān)系的不確定性。
上述研究一般建立在Agent是一個意識系統(tǒng)的基礎(chǔ)之上,這種不依賴于具體的物理實(shí)現(xiàn)就可以得到Agent行為的規(guī)則和模式,對Agent行為研究有很大的好處。從結(jié)構(gòu)上看,Agent屬于非線性系統(tǒng),其中的變化過程屬于動力學(xué)演變過程。從動力學(xué)角度來看,行為是可以按時間展開的具有一定完整意義的狀態(tài)變化過程。
Kiss利用動力學(xué)系統(tǒng)范形為Agent的目標(biāo)、喜好等基本概念給出一個理論模型,為形式化描述Agent和Multi-agent提供了基礎(chǔ)。不過,對Agent內(nèi)部到底該如何構(gòu)造等的本質(zhì)問題,人們尚未充分認(rèn)識。在Bratman,Wooldrige和Kiss的研究基礎(chǔ)上,具體化Agent的內(nèi)部結(jié)構(gòu),文中將給出一個具有人類社會行為特征的Agent模型,即HSA (Human-Society-Actions)模型。模型定義[5]如下:
定義 Agent可描述為一個3元組的智體,
其中,H代表Agent的機(jī)體,它是Agent的物質(zhì)和精神載體;S代表Agent在社會中的角色、職能、任務(wù)和目標(biāo)等;A是Agent對自我行為與活動的表述,它是按時間展開的序列,該序列中既有有意識的行為與活動表述,又有一些自我的無意識狀態(tài)與意識的轉(zhuǎn)換過程,反應(yīng)了Agent的自治、主動及相互間的聯(lián)系。
人們通常從3個方面看待Agent:1)物理立場,基于系統(tǒng)的物理特性和規(guī)律;2)設(shè)計(jì)立場,基于系統(tǒng)的設(shè)計(jì)目標(biāo);3)意識立場,把系統(tǒng)看作理性主體,通過信念、愿望和其他意屬性來預(yù)測其行為。BDI研究建立在Agent是一個意識系統(tǒng)的基礎(chǔ)之上,模型描述不夠完整、抽象且沒有反應(yīng)Agent的社會特性。Agent是一個智能實(shí)體,HSA模型模擬人類意識及行為設(shè)計(jì)的,擁有完整的內(nèi)部結(jié)構(gòu)屬性,反應(yīng)了Agent的社會特性;Agent模型和具體Agent結(jié)構(gòu)、行為和目標(biāo)有明確的映射關(guān)系;動態(tài)描述了Agent的任務(wù)求解過程和Agent的狀態(tài)變化的關(guān)系。HSA模型的正確性和有效性在電子談判模型中加以驗(yàn)證。HSA對于進(jìn)一步研究基于Multi-Agent的電子商務(wù)系統(tǒng)打下了一定的理論基礎(chǔ)。
研究者提出了不同的Agent結(jié)構(gòu)模型,試圖從不同的角度對Agent進(jìn)行實(shí)現(xiàn)。主要的Agent結(jié)構(gòu)模型有慎思Agent、反應(yīng)Agent和混合Agent等。給出了一個Agent的結(jié)構(gòu)模型,該模型包含兩個部分:Agent內(nèi)部結(jié)構(gòu)和外部環(huán)境,該模型沒有反應(yīng)Agent社會特性,未能定義Agent的角色、職能和目標(biāo)等社會屬性。在此模型的基礎(chǔ)上,HSA結(jié)構(gòu)模型增加了Agent的社會屬性,把Agent看作一個黑箱,通過感知外部環(huán)境,經(jīng)過意識系統(tǒng)的推理,對外部環(huán)境的事件輸入產(chǎn)生相應(yīng)的輸出活動。Agent社會是聯(lián)系其內(nèi)部結(jié)構(gòu)和外部環(huán)境的紐帶。一個反應(yīng)Agent的工作過程[6]如圖1所示。
圖1 Agent的工作過程Fig.1 Process of Agent
Agent通過外部接口感知外部環(huán)境,與外部環(huán)境進(jìn)行交互,通過感知模塊接受外部信息,并對輸入信息進(jìn)行過濾和分類,把信息傳遞給意識模塊,社會賦予Agent角色和任務(wù),意識模塊根據(jù)知識庫模塊的歷史經(jīng)驗(yàn)和知識進(jìn)行推理,最后決策模塊根據(jù)推理和規(guī)則做出決策,把動作指令交給執(zhí)行模塊,通過外部接口對外部環(huán)境產(chǎn)生動作。
除了接口Agent它由Agent機(jī)體H表示。具有用戶圖形接口以外,執(zhí)行Agent的結(jié)構(gòu)是相同的社會S、和執(zhí)行模塊A和通信設(shè)施4部分組成。如圖2所示。
1)Agent機(jī)體
Agent機(jī)體相對于HSA模型中的H元組,由Agent屬性、意識系統(tǒng)和知識庫組成。系統(tǒng)Agent管理Agent的基本屬性,如標(biāo)識ID、名字、位置和狀態(tài)等,安全代理負(fù)責(zé)執(zhí)行Agent的注冊、身份認(rèn)證;意識模塊具有感知、學(xué)習(xí)、推理和決策功能,控制執(zhí)行模塊完成社會賦予的任務(wù)目標(biāo);知識庫存儲推理規(guī)則、約束條件和學(xué)習(xí)的知識。
2)社會
社會是執(zhí)行Agent與用戶的接口,它相對于HSA模型中的S元組。用戶通過系統(tǒng)Agent定義它的角色、分配任務(wù)和提取相關(guān)策略。這里策略與結(jié)構(gòu)分開,使它更具靈活性;角色決定Agent的類型及移動與否。
3)執(zhí)行模塊
執(zhí)行模塊相對于HSA模型中的A元組。存儲Agent的代碼,它由一系列相對獨(dú)立的子模塊構(gòu)成。代碼可以動態(tài)裝載,使之具有動態(tài)結(jié)構(gòu)特征。動態(tài)Agent把數(shù)據(jù)、知識和程序作為對象,新創(chuàng)建的Agent都是一樣的,它們的具體行為來自對動態(tài)裝載的數(shù)據(jù)、知識和程序類修改而得。
4)通信設(shè)施
通信設(shè)施是Agent之間進(jìn)行信息交換的機(jī)制。Agent之間采用的通信語言是KQML(Knowledge Query Manipulation Language)a KQML規(guī)范定義了可擴(kuò)充的行為原語,行為原語是根據(jù)“言談行為理論”獲得的能夠?qū)χR和目標(biāo)進(jìn)行各種操作,并以此為基礎(chǔ)開發(fā)代理間更高級的通信模型,例如合同網(wǎng)、談判機(jī)制等。
圖2 執(zhí)行Agent結(jié)構(gòu)Fig.2 Implementation of Agent structure
KQML語言分為3層:內(nèi)容層、通信層和消息層。內(nèi)容層是消息所包含的真正內(nèi)容,用XML語言表示。XML是基于Web文檔數(shù)據(jù)結(jié)構(gòu)交換的規(guī)范,為開發(fā)人員提供了標(biāo)識數(shù)據(jù)結(jié)構(gòu)的框架,其中的DTD(Document Type Definition)規(guī)定了XML文件的文檔格式,定義了XML文件的元素、元素的屬性以及元素和元素屬性之間的關(guān)系,它可以幫助XML文件的分析程序校驗(yàn)XML文件標(biāo)記的合法性。通信設(shè)施包含KQML和XML解釋器,XML解釋器對需要傳送給另一個Agent的KQML消息進(jìn)行分析,然后生成新的含有XML內(nèi)容的KQML消息,以便進(jìn)行Agent之間的通信。
由于移動Agent具有動態(tài)適應(yīng)環(huán)境、自然的異構(gòu)性、異步自主執(zhí)行功能、降低網(wǎng)絡(luò)負(fù)載、包裝不同的協(xié)議和很強(qiáng)的健壯性及容錯性等優(yōu)越性,使它在諸多領(lǐng)域得以應(yīng)用。
商務(wù)活動一直由人與人之間的交往來實(shí)現(xiàn),由人來決定買什么東西、什么時候買以及花多少錢等。但隨著網(wǎng)上信息的豐富化和多樣化,由人來負(fù)責(zé)信息搜索并完成交易將越來越困難,信息篩選和信息搜集是解決信息過載問題的有效方式,人工是很難完成的。客戶與商家都要尋找最為合適的合作伙伴,并迅速與其信息系統(tǒng)集成以實(shí)現(xiàn)在線交易。目前可以通過UDDI或ebXML實(shí)現(xiàn)。然而,但由于這兩種方法均是基于第三方的注冊機(jī)制實(shí)現(xiàn)的,需要有相當(dāng)?shù)淖砸?guī)模和共同遵守的標(biāo)準(zhǔn)。同時UDDI或ebXML站點(diǎn)是一個高度集權(quán)的中樞節(jié)點(diǎn),站點(diǎn)管理隨著注冊規(guī)模的增大和鏡像站點(diǎn)的增多而變得越來越復(fù)雜,維護(hù)費(fèi)用也迅速增加,其頻繁的交互還將會造成很大的系統(tǒng)開銷??梢?,UDDI或ebXML能否領(lǐng)導(dǎo)電子商務(wù)時代,還有待于實(shí)踐檢驗(yàn)。因此,如果能有一種不借助第三方的具有自組織特性的機(jī)制來描述、發(fā)現(xiàn)和集成企業(yè)的應(yīng)用系統(tǒng),實(shí)現(xiàn)全球范圍內(nèi)的企業(yè)動態(tài)聯(lián)盟,必將給電子商務(wù)增添新的活力。移動Agent可在一定程度上勝任上述要求,建立企業(yè)敏捷的電子商務(wù)系統(tǒng)。
電子商務(wù)常常要求實(shí)時訪問遠(yuǎn)程信息,如股票報價,甚至是進(jìn)行實(shí)時談判。不同的Agent擁有不同的目標(biāo),采取不同的策略,實(shí)現(xiàn)各自的目標(biāo)。
在己有的Agent形式化描述基礎(chǔ)上,具體化Agent的內(nèi)部結(jié)構(gòu),設(shè)計(jì)了一個具有人類社會行為特征的完整的Agent模型,即HSA模型。HSA模型是模擬人類意識及行為設(shè)計(jì)的,擁有完整的內(nèi)部結(jié)構(gòu)屬性,反應(yīng)了Agent的社會特性;Agent模型和具體Agent結(jié)構(gòu)、行為和目標(biāo)有明確的映射關(guān)系;動態(tài)描述了Agent的任務(wù)求解過程和Agent的狀態(tài)變化的關(guān)系。
[1]鞏志國,周龍驤.多媒體對象的Agent展示集成模型[J].軟件學(xué)報,1999(1):35-42.
GONG Zhi-guo,ZHOU Long-xiang.Multimedia objects in the Agent display integrated model[J].Journal of Software,1999(1):35-42.
[2]項(xiàng)君,周立,吳泉源,等.CORBA分布計(jì)算平臺基于反應(yīng)式Agent模型的流控機(jī)制研究 [J].計(jì)算機(jī)研究與發(fā)展,2001(7):826-832.
XIANG Jun,ZHOU Li,WU Quan-yuan,et al.Research on stream control in CORBA platforms based on reactive agent model[J].Journal of Compter Research&Development,2001(7):826-832.
[3]張軍,張榮濤,孫宇.分布式檢測監(jiān)控系統(tǒng)中Agent模型及實(shí)現(xiàn)研究[J].計(jì)算機(jī)工程,2001(2):93-95.
ZHANG Jun,ZHANG Rong-tao,SUN Yu.Research on an Agent model and its realization in a distributea inspection and monitoring system[J].Computer Engineering,2001(2):93-95.
[4]何國田,覃朝蓮,譚興文.基于Agent的網(wǎng)上CAI系統(tǒng)設(shè)計(jì)研究[J].微型電腦應(yīng)用,2001(6):13-14.
HE Guo-tian,TAN Zhao-lian,TAN Xing-wen.The Internet based on Agent CAI system design[J].Computer Applications,2001(6):13-14.
[5]劉洪,梁棟,何輔云.基于態(tài)勢理論的Agent模型及受損圖像的恢復(fù)[J].計(jì)算機(jī)工程與應(yīng)用,2002(8):82-84.
LIU Hong,LIANG Dong,HE Fu-yun.The Agent model based on the ecostate-ecorole theory and restoring the damaged picture[J].Computer Engineering and Applications,2002(8):82-84.
[6]萬華,陸廷金,張玉柱,等.基于Petri網(wǎng)的Agent建模及其用于C4ISR的時間分析 [J].情報指揮控制系統(tǒng)與仿真技術(shù),2002(2):56-58.
WAN Hua,LU Ting-jin,ZHANG Yu-zhu,et al.Petri net based modeling and its application in Agent C4ISR time analysis[J].information command control system and simulation technology,2002(2):56-58.