顧明
(阜新高等專科學(xué)校,遼寧阜新,123000)
隨著分布式人工智能(DAI)技術(shù)研究的深入,多Agent(Multi-agentSystem,MAS)技術(shù)得以快速發(fā)展完善,該技術(shù)主要針對分布式開放動態(tài)的環(huán)境,對一組自治的Agent 在完成復(fù)雜的控制或分解任務(wù)時所采取的行為,包括交互、合作、競爭、協(xié)商等行為。但在多Agent 系統(tǒng)中的交互、計算與合作過程中,極易改變Agent 的角色及相對重要性,并且在不同階段,應(yīng)用系統(tǒng)中Agent 的離開和加入基本不受限制,使系統(tǒng)的穩(wěn)定性會隨著系統(tǒng)規(guī)模的增大而減小,因此開發(fā)相應(yīng)多Agent 應(yīng)用系統(tǒng)時需重點(diǎn)確保其穩(wěn)定性。
在分布式人工智能中,可通過運(yùn)用具有層次性、內(nèi)在并行性等優(yōu)勢的黑板模型結(jié)構(gòu)(BBA)使多個計算實(shí)體的協(xié)作問題得以有效解決,作為平行信息共享數(shù)據(jù)結(jié)構(gòu)的一種,黑板模型實(shí)現(xiàn)了多信息源間的共享和交互。由于在控制器的作用下需串行執(zhí)行知識源,因此需彌補(bǔ)傳統(tǒng)的黑板模型在實(shí)現(xiàn)環(huán)境(以串行硬件環(huán)境為主)方面存在的不足,主要由“黑板”、知識源(含有領(lǐng)域知識且自驅(qū)動)和控制機(jī)構(gòu)組成,黑板上的狀態(tài)信息由各知識源監(jiān)視,并適時地決定對黑板的操作行為。在設(shè)計與實(shí)現(xiàn)網(wǎng)絡(luò)學(xué)習(xí)系統(tǒng)時,針對分布式開放動態(tài)的網(wǎng)絡(luò)環(huán)境,可通過應(yīng)用多Agent(MAS)系統(tǒng)使學(xué)習(xí)系統(tǒng)整體的協(xié)作化和智能化水平得到顯著提高,在MAS 中具有一定社會性的各個Agent 之間能夠相互通信,由于在多Agent 系統(tǒng)中實(shí)施這些行為時,Agent 會不斷加入加入或離開,可能使Agent 的角色和重要程度發(fā)生較大的變化。因此在應(yīng)用多Agent 構(gòu)建學(xué)習(xí)系統(tǒng)時,為確保系統(tǒng)高效穩(wěn)定的運(yùn)行,文中結(jié)合運(yùn)用了黑板模型,在模型中集成了異構(gòu)知識源,借助模型中的協(xié)作機(jī)制,從而使系統(tǒng)的協(xié)作服務(wù)質(zhì)量及智能化水平得到顯著提高。多個實(shí)體在不同物理環(huán)境下分布時,可通過黑板模型協(xié)作完成具體任務(wù),形成一個專家系統(tǒng)結(jié)構(gòu)模式,進(jìn)一步提高多Agent 學(xué)習(xí)系統(tǒng)的智能化水平[1]。
該學(xué)習(xí)系統(tǒng)模型可劃分為3 層:(1)界面層,主要負(fù)責(zé)為用戶提供一個簡潔美觀的系統(tǒng)訪問和操作界面。(2)服務(wù)管理層,該層主要由Jadex 接口、負(fù)責(zé)與客戶端界面通信的Web服務(wù)器、負(fù)責(zé)管理多個Agent 間的協(xié)作的Agent 協(xié)作管理區(qū)構(gòu)成,web 服務(wù)器主要,并且把客戶端請求轉(zhuǎn)發(fā)給JadexWeb接口,多Agent 平臺即Jadex 系統(tǒng)根據(jù)接收到JadexWeb 轉(zhuǎn)發(fā)的用戶請求執(zhí)行相應(yīng)功能。(3)資源層,主要負(fù)責(zé)對學(xué)生庫、資源庫等資源進(jìn)行存儲[2]。系統(tǒng)模型如圖1 所示。
圖1 學(xué)習(xí)系統(tǒng)模型
本文系統(tǒng)中的普通任務(wù)節(jié)點(diǎn)間的通信采用黑板方式完成,無需Agent 間有較深的了解,由控制節(jié)點(diǎn)負(fù)責(zé)對黑板中的信息頻繁的進(jìn)行收集,并據(jù)此完成相應(yīng)任務(wù)Agent 的調(diào)度與執(zhí)行。信息在控制節(jié)點(diǎn)間的交互是系統(tǒng)實(shí)現(xiàn)有效通信過程的基礎(chǔ)和關(guān)鍵,直接采用消息進(jìn)行通信,可在使系統(tǒng)的實(shí)時性需求得到有效滿足的同時,提升應(yīng)對緊急情況的能力。采用統(tǒng)一的信息交互格式,以確保多Agent 間信息交互的實(shí)現(xiàn),本文采用的黑板的消息格式由報文標(biāo)識(代表討論區(qū)中消息的序列號)、源agent 標(biāo)識、目的agent 標(biāo)識、許可權(quán)、生命周期、報文或消息、消息優(yōu)先級(確定控制器收集消息的順序)、消息是否已讀構(gòu)成,許可權(quán)包括只讀權(quán)限和刪除權(quán)限。
黑板協(xié)調(diào)Agent 的作用機(jī)理如圖2 所示,通過黑板模型對Agent 進(jìn)行控制時,能以用戶需求為依據(jù)完成問題類型的確定,再對問題采用知識庫和模型庫進(jìn)行分解,據(jù)此將相應(yīng)的決策Agent 分配給子問題,發(fā)送數(shù)據(jù)和控制信息,當(dāng)黑板中寫入來自決策Agent 的信息與結(jié)果時,即改變黑板上的各數(shù)據(jù)內(nèi)容,對各決策Agent 進(jìn)行協(xié)調(diào),包括消除不同Agent 間的沖突,向用戶反饋?zhàn)罱K的合成結(jié)果。
圖2 黑板協(xié)調(diào)Agent 的作用機(jī)理
JADE 軟件開發(fā)框架基于Java 語言編程實(shí)現(xiàn),采用JADE對多Agent 學(xué)習(xí)系統(tǒng)及應(yīng)用程序進(jìn)行開發(fā),并符合FlPA 規(guī)范,JADE 包含較多的Java 包,提供多種現(xiàn)成功能及抽象界面,可供應(yīng)用系統(tǒng)程序員使用。學(xué)習(xí)系統(tǒng)中的多Agent 間相互協(xié)作,針對同一課題的內(nèi)容,由系統(tǒng)中具有相近的學(xué)習(xí)目標(biāo)的Agent 對其進(jìn)行學(xué)習(xí),對于在學(xué)習(xí)過程中學(xué)生遇到的問題,通過教師Agent 答疑、交流、討論等方式解決[3]。
考慮到存在較多的多Agent 并發(fā)執(zhí)行時,可能出現(xiàn)不可預(yù)測的引用同一黑板數(shù)據(jù)的情況,本文系統(tǒng)采用鎖機(jī)制實(shí)現(xiàn)并發(fā)控制過程,包括讀鎖和寫鎖,在某一知識源將寫鎖加入到黑板的某數(shù)據(jù)項(xiàng)的情況下,只有該加鎖的Agent 可操作該數(shù)據(jù)項(xiàng),其它Agent 則不具有讀寫該數(shù)據(jù)項(xiàng)的操作權(quán)限。若某一Agent 在某數(shù)據(jù)項(xiàng)上加了讀鎖,此時其它Agent 只能讀取該數(shù)據(jù)項(xiàng),但不具備寫操作的權(quán)限。Agent 需先獲得一個適當(dāng)?shù)逆i,才能對一個數(shù)據(jù)項(xiàng)時進(jìn)行操作;某個鎖被其它Agent占有時,某一Agent 試圖獲得鎖的執(zhí)行將會被掛起,直至這個鎖被釋放,而某Agent 的鎖直到執(zhí)行結(jié)束后才會被釋放[4]。本文采用了一種死鎖預(yù)防法,具體通過利用Agent 的優(yōu)先權(quán)實(shí)現(xiàn),一個Agent 比另一個Agent 優(yōu)先權(quán)高時才能等待另一個Agent 釋放鎖。為解決低優(yōu)先權(quán)的Agent 存在的不停被啟動或終止的問題,針對Agent 開始執(zhí)行的時間,采用了時間郵戳的改進(jìn)方法,一個Agent 比另一個Agent 時間郵戳小時允許等待另一個Agent 釋放鎖,越往后執(zhí)行的Agent 的時間郵戳越小,重新啟動某一被終止執(zhí)行的Agent 時仍保持原來的時間郵戳,從而確保每個Agent 均能夠得到鎖,進(jìn)而使學(xué)生的協(xié)作學(xué)習(xí)質(zhì)量和效率得到有效提升。
本文主要完成了一種學(xué)習(xí)系統(tǒng)的設(shè)計,具體通過結(jié)合運(yùn)用黑板模型和多Agent 技術(shù)實(shí)現(xiàn)了一種智能協(xié)作學(xué)習(xí)系統(tǒng)設(shè)計方案的構(gòu)建,有效提高了學(xué)習(xí)系統(tǒng)的服務(wù)質(zhì)量以及學(xué)生在協(xié)作學(xué)習(xí)過程中的學(xué)習(xí)效率和積極性,實(shí)現(xiàn)智能協(xié)作學(xué)習(xí)功能。