摘要:針對遠(yuǎn)程教育中學(xué)習(xí)者尋找?guī)椭哌^程中存在的問題,該文通過引入Agent技術(shù),提出了一套基于Multi-agent的互助學(xué)習(xí)系統(tǒng)模型,并設(shè)計(jì)和實(shí)現(xiàn)了該互助學(xué)習(xí)系統(tǒng)。
關(guān)鍵詞:多Agent;互助學(xué)習(xí)系統(tǒng);黑板機(jī)制;遠(yuǎn)程教育
中圖分類號:TP391文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2008)25-1441-02
An Implementation of Mutually-helping System Based on Multi-agent
LI Fa1, WU Fei2, XU Lin-jun1
(1.Department of Computer Science and Technology, Tongji University, Shanghai 201804, China; 2.Shanghai Distance Education Group, Shanghai 200433, China)
Abstract: In order to solve the problem in course of seeking for helpers on a distance education platform, the paper puts forward a model of mutually-helping system based on Multi-agent by introducing the agent technology. At last, we design and implement the mutually-helping system.
Key words: Multi-agent; mutually-helping systems; blackboard mechanism; distance education
在遠(yuǎn)程教育平臺中,學(xué)習(xí)者學(xué)習(xí)中遇到問題時,傳統(tǒng)的方法是通過設(shè)定幫助者的條件,通過手工搜索來尋找?guī)椭撸@種方法不僅效率低,同時也缺乏智能性。本文借助Agent技術(shù),提出了一套基于Multi-agent(多Agent)的互助學(xué)習(xí)系統(tǒng)模型。該系統(tǒng)通過利用Agent具有自治性、主動性和智能性的特點(diǎn),增強(qiáng)了遠(yuǎn)程教育平臺的智能性,提高了學(xué)習(xí)者的學(xué)習(xí)效率,為學(xué)習(xí)者的學(xué)習(xí)帶來了極大的方便。
1 多Agent技術(shù)和Jadex平臺簡介
Agent(主體)是指駐留在某一環(huán)境下能夠自主(autonomous)、靈活(flexible)地執(zhí)行動作以滿足設(shè)計(jì)目標(biāo)的行為實(shí)體[1]。多Agent系統(tǒng)(MAS)是由多個Agent個體構(gòu)成的系統(tǒng),一般這些系統(tǒng)通過網(wǎng)絡(luò)基礎(chǔ)設(shè)施交換信息實(shí)現(xiàn)交互和協(xié)調(diào),形成一定的社會群體和組織機(jī)構(gòu),并表現(xiàn)出個體Agent不具有的社會性。由于Agent個體的相對獨(dú)立性,MAS是一個松散耦合的Agent群體。通過Agent交互協(xié)調(diào)形成的MAS整體,其總體的問題求解能力大于各個Agent個體所具有的問題求解能力的簡單相加[2]。
Jadex[3,4] 系統(tǒng)是一個多Agent應(yīng)用程序的集成開發(fā)平臺, 建立在Jade平臺的基礎(chǔ)上,它將BDI(Belief,Desire, Intention)模型的概念引入到Jade系統(tǒng)的Agent中,為Agent賦予信念、愿望和意圖。在Jadex系統(tǒng)的Agent中,Agent包含一組信念(Beliefs),信念存儲于信念庫中,它是Agent所擁有的當(dāng)前環(huán)境狀態(tài)的信息;一個目標(biāo)集(Goals)表示想要實(shí)現(xiàn)的目標(biāo)(例如要達(dá)到的狀態(tài)),目標(biāo)能影響Agent的行為;一個規(guī)劃庫(Plans)用來實(shí)現(xiàn)Agent的目標(biāo)。
2 互助學(xué)習(xí)系統(tǒng)模型體系結(jié)構(gòu)
互助學(xué)習(xí)系統(tǒng)模型的體系結(jié)構(gòu)如圖1所示。
系統(tǒng)模型共分為三層:用戶界面層,服務(wù)器層和數(shù)據(jù)資源層。
1)用戶界面層。主要給用戶提供一個使用互助學(xué)習(xí)系統(tǒng)的界面,用戶通過用戶訪問界面來訪問系統(tǒng)提供的服務(wù)。
2)服務(wù)器層。這一層中主要包括三個模塊:Web服務(wù)器、Agent協(xié)作管理區(qū)和Jadex Web接口。Web服務(wù)器負(fù)責(zé)與客戶端界面的通信,并把客戶端請求轉(zhuǎn)發(fā)給Jadex Web接口,Jadex Web接口再把請求轉(zhuǎn)發(fā)給多Agent平臺(這里為Jadex系統(tǒng)),由多Agent平臺來完成相應(yīng)功能。Agent協(xié)作管理區(qū)負(fù)責(zé)管理Jadex平臺上多個Agent之間的協(xié)作。
3)數(shù)據(jù)資源層。該層主要用來存儲數(shù)據(jù)資源,包括學(xué)習(xí)者庫、學(xué)習(xí)資源庫、協(xié)作知識庫和留待擴(kuò)展的其它一些庫。其中協(xié)作知識庫是用來指導(dǎo)Agent間的協(xié)作的。
3 互助學(xué)習(xí)系統(tǒng)模型設(shè)計(jì)和實(shí)現(xiàn)
3.1 Agent模型定義
互助學(xué)習(xí)系統(tǒng)模型中包含了三種智能Agent :
1)學(xué)習(xí)者Agent。每個學(xué)習(xí)者對應(yīng)一個學(xué)習(xí)者Agent,用來記錄學(xué)習(xí)者的基本信息、學(xué)習(xí)狀態(tài)和興趣愛好。學(xué)生通過與學(xué)習(xí)者Agent交互,完成在線智能學(xué)習(xí)、問題答疑、在線討論以及在線合作等學(xué)習(xí)活動。當(dāng)學(xué)生要進(jìn)行某種學(xué)習(xí)活動就觸發(fā)學(xué)習(xí)者Agent中相應(yīng)的規(guī)劃執(zhí)行。
2)管理Agent。用來指導(dǎo)和管理學(xué)習(xí)者的學(xué)習(xí)活動,如學(xué)習(xí)者的提問和其他學(xué)習(xí)者對問題的解答等。
3)資源Agent。負(fù)責(zé)在學(xué)習(xí)者學(xué)習(xí)或教師輔導(dǎo)過程中,智能地為學(xué)習(xí)者和教師搜索并推薦合適的學(xué)習(xí)材料、參考資料等。
在三種類型Agent中,管理Agent是整個系統(tǒng)的核心,負(fù)責(zé)其它各個Agent之間的組織和協(xié)調(diào)。因此,本文將對管理Agent的設(shè)計(jì)和實(shí)現(xiàn)進(jìn)行重點(diǎn)介紹。考慮到系統(tǒng)今后的可擴(kuò)展性,我們采用黑板機(jī)制來對管理Agent進(jìn)行實(shí)現(xiàn)。
3.2 黑板的設(shè)計(jì)
在黑板通信方式中,參與通信的一組主體共享一個公共的區(qū)域(如一個共享存儲區(qū))。這些主體都可以對該區(qū)域進(jìn)行訪問,包括向該區(qū)域?qū)懭胄畔⒒蛘邚脑搮^(qū)域讀取信息[1]。例如,在分布式系統(tǒng)中,系統(tǒng)開辟了一個公共的存儲區(qū)域供多個主體訪問,這些主體可以通過向該區(qū)域?qū)懭牒妥x取信息,從而實(shí)現(xiàn)信息的交流。
在本系統(tǒng)中,黑板分成了兩個區(qū)域:問題區(qū)和匹配區(qū)。問題區(qū)用來接收學(xué)習(xí)者提出的問題,匹配區(qū)用于實(shí)現(xiàn)問題與幫助者的匹配,并把匹配結(jié)果按匹配度的大小從大到小排序后,返回給提問者。其中,問題區(qū)的實(shí)現(xiàn)較為簡單,下面將詳細(xì)介紹匹配區(qū)的實(shí)現(xiàn)。
3.3 匹配區(qū)的實(shí)現(xiàn)
匹配區(qū)在問題有效期內(nèi)接收有能力幫助的學(xué)習(xí)者Agent返回的信息,并把這些幫助者信息添加到相應(yīng)問題的幫助者列表中。當(dāng)?shù)竭_(dá)問題有效期時,匹配區(qū)按匹配度的大小對幫助者按從大到小進(jìn)行排序,最后推薦給提問者。
匹配區(qū)實(shí)現(xiàn)為匹配項(xiàng)(MatchAreaItem)的集合,其結(jié)構(gòu)描述如下:
MatchArea = Set of MatchAreaItem
MatchAreaItem = (Question, HelperInfoBeanList)
HelperInfoBeanList = List of HelperInfoBean
HelperInfoBean = (StuId, StuName, Rank, OnlineState, MatchDegree)
其中StuId, StuName, Rank, OnlineState, MatchDegree分別為學(xué)習(xí)者的學(xué)號、姓名、等級、在線狀態(tài)和匹配度。
匹配區(qū)的實(shí)現(xiàn)算法可描述如下:
public class BlackboardAgent extends Agent{
//問題區(qū)
……
//匹配區(qū)
BlackboardAgent循環(huán)接收消息msg;
if ( msg!=1 msg.getPerformative( )= = ACLMessage.CONFIRM)
{//消息不為空并且為確認(rèn)消息
取出msg中的問題Question和幫助者信息;
if(該問題在回答有效期內(nèi) 執(zhí)行狀態(tài)為OPEN)
{if(匹配區(qū)中存在問題Question){把幫助者信息添加到問題Question的幫助者信息列表HelperInfoBeanList中;}else{新建一個幫助者信息列表HelperInfoBeanList,把幫助者信息添加到幫助者列表中;把該問題和幫助者信息列表添加到匹配區(qū)中;}}else if(問題已過期 問題的幫助者信息列表大小不為0){對該問題的幫助者列表按匹配度從大到小進(jìn)行排序后,返回該幫助者列表給提問者;該問題的執(zhí)行狀態(tài)置為DONE,并從問題區(qū)中移除;}
else if(問題已過期 問題的幫助者信息列表大小為0)
{將該問題的執(zhí)行狀態(tài)置為FAILED,返回未找到合適幫助者信息;}}
else
{block( );//阻塞}
4 總結(jié)和展望
本文針對遠(yuǎn)程教育中學(xué)習(xí)者尋找?guī)椭哌^程中存在的問題,提出了一套基于Multi-agent的互助學(xué)習(xí)系統(tǒng)模型,并對其中黑板機(jī)制的設(shè)計(jì)和實(shí)現(xiàn)進(jìn)行了詳細(xì)介紹。該系統(tǒng)增強(qiáng)了遠(yuǎn)程教育平臺的智能性,提高了學(xué)習(xí)者的學(xué)習(xí)效率,在遠(yuǎn)程教育平臺中有很大的應(yīng)用價值。進(jìn)一步的工作將集中在對黑板模型的完善和相關(guān)參數(shù)如問題有效期等的調(diào)整上。
參考文獻(xiàn):
[1] 毛新軍.面向主體的軟件開發(fā)[M].北京:清華大學(xué)出版社,2005.
[2] 徐穎麗,劉志.基于Jadex的虛擬課堂實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2006,3:67.
[3] Jadex-The BDI extension for JADE[R/OL]. [2008-04-10].Http://sourceforge.net/prjects/jadex.
[4] Alexander Pokahr, Lars Braubac. The Jadex user guide, Release 0.96[CP/OL]. http://vsis-www.informatik.uni-hamburg.de/projects/jadex,15.June 2007.