基于多Agent機(jī)器人系統(tǒng)的圖書歸類解決方案
四個(gè)字符規(guī)則庫(kù):
r41: IF 第一個(gè)字符是某個(gè)字母 THEN 該本書是某種一級(jí)類;
r42: IF 第二個(gè)字符是某個(gè)字母或數(shù)字 THEN該本書是某二級(jí)類;
r43: IF 第三個(gè)字符是某個(gè)字母或數(shù)字 THEN該本書是某三級(jí)類;
r44: IF 第四個(gè)字符是某個(gè)字母或數(shù)字 THEN該本書是某四級(jí)類;
r45: IF 第五字符是點(diǎn) THEN 根據(jù)前四位已判斷類別和后8 位字符的范圍找到該書相應(yīng)的柜子的編碼 AND 跳出規(guī)則庫(kù);
ELSE 第五個(gè)字符是某個(gè)字母或數(shù)字 THEN該S 本書是某五級(jí)類;
r46: IF 第6 個(gè)字符是點(diǎn) THEN 根據(jù)前五位已判斷類別和后7 字符的范圍找到該書相應(yīng)的柜子的編碼 AND 跳出規(guī)則庫(kù);
根據(jù)上述規(guī)則庫(kù)我們給出編碼和對(duì)應(yīng)書柜編號(hào)的識(shí)別通用算法如下:
If(第二個(gè)字符=*)
{ 轉(zhuǎn)入唯一字符規(guī)則庫(kù);
根據(jù)該類別和后8 位字符的范圍找到該書相應(yīng)書柜的編碼;}
Else if(第三個(gè)字符=*)
{ 轉(zhuǎn)入兩個(gè)字符規(guī)則庫(kù);
根據(jù)該類別和后8 位字符的范圍找到該書相應(yīng)書柜的編碼 ;}
Else if(第四個(gè)字符=*)
{ 轉(zhuǎn)入三個(gè)字符規(guī)則庫(kù)
根據(jù)該類別和后8 位字符的范圍找到該書相應(yīng)書柜的編碼 ;}
Else 轉(zhuǎn)入四個(gè)字符規(guī)則庫(kù);
我們以一個(gè)例子具體說(shuō)明編碼規(guī)則:
假設(shè)某一高校圖書館給出非審計(jì)類8 位的編碼規(guī)則是,對(duì)于U 類書籍,編碼范圍U***00000000-U***00000200 內(nèi)的書籍放在1 號(hào)柜。我們對(duì)一本編碼為U***00000023 使用本文所述的分類算法進(jìn)行分類。首先,判斷第二位字符,根據(jù)算法第二位是*,轉(zhuǎn)入唯一字符規(guī)則庫(kù),首先根據(jù)規(guī)則r11,判斷出該本書是交通運(yùn)輸類,結(jié)合后八位0000023,該編碼在U***0000000-U***0000200 范圍內(nèi),判斷出該書所在的位置為1 號(hào)柜。
3.2 智能尋線導(dǎo)航
所謂路徑規(guī)劃是指移動(dòng)機(jī)器人按照某一性能指標(biāo)(如距離、時(shí)間、能量等)搜索一條從起始狀態(tài)到目標(biāo)狀態(tài)的最優(yōu)或次優(yōu)路徑。路徑規(guī)劃主要涉及的問(wèn)題包括:
利用獲得的移動(dòng)機(jī)器人環(huán)境信息建立較為合理的模型,再用某種算法尋找一條從起始狀態(tài)到目標(biāo)狀態(tài)的最優(yōu)或近似最優(yōu)的無(wú)碰撞路徑;能夠處理環(huán)境模型中的不確定因素和路徑跟蹤中出現(xiàn)的誤差,使外界物體對(duì)機(jī)器人的影響降到最?。蝗绾卫靡阎乃行畔?lái)引導(dǎo)機(jī)器人的動(dòng)作,從而得到相對(duì)更優(yōu)的行為決策。
路徑規(guī)劃是移動(dòng)機(jī)器人研究中的一個(gè)基本且重要的問(wèn)題。路徑規(guī)劃的第一步是確定地圖的表示方法,其目的是將機(jī)器人和障礙物所在的物理空間的顯著特征描述出來(lái),使之更適合于規(guī)劃。本文中將地圖置于信息庫(kù)中,智能決策Agent 根據(jù)臨時(shí)庫(kù)中的各個(gè)目的地在電子地圖中的位置,確定物體或自身的位姿(位置和姿態(tài)),制訂出他們的優(yōu)先次序。
由于機(jī)器人工作的環(huán)境是動(dòng)態(tài)變化的,環(huán)境中的障礙物不全是已知的、靜止的。這就要求機(jī)器人要不斷地對(duì)周圍環(huán)境進(jìn)行探測(cè),并對(duì)探測(cè)到的障礙物進(jìn)行實(shí)時(shí)處理,即要求機(jī)器人具備局部規(guī)劃的能力。機(jī)器人在運(yùn)行過(guò)程中,通常會(huì)發(fā)生如下幾種類型的沖突:
碰撞、擁塞以及死鎖。
碰撞:一個(gè)運(yùn)動(dòng)物體在另一個(gè)運(yùn)動(dòng)物體運(yùn)行路線上的相同位置同時(shí)出現(xiàn)。擁塞:其它運(yùn)動(dòng)物體妨礙當(dāng)前運(yùn)動(dòng)物體按要求到達(dá)目標(biāo)。死鎖:運(yùn)動(dòng)物體無(wú)法進(jìn)行各自的下一步動(dòng)作。這些沖突的產(chǎn)生主要是由于機(jī)器人對(duì)環(huán)境信息缺乏詳細(xì)了解造成的。因此,當(dāng)環(huán)境動(dòng)態(tài)變化時(shí),往往采用依賴傳感器的局部路徑規(guī)劃方法進(jìn)行沖突消解。
由于本文中設(shè)計(jì)的機(jī)器人個(gè)數(shù)比較少,就將環(huán)境中其他機(jī)器人視為環(huán)境中的障礙物,而且環(huán)境比較簡(jiǎn)單,因而采用無(wú)通訊的避碰力一法的機(jī)器人,不需要與其他機(jī)器人的通訊,完全依靠機(jī)器人的傳感器獲取其他機(jī)器人的運(yùn)動(dòng)信息。
本文采用改進(jìn)BUG 算法計(jì)算兩點(diǎn)間的最短路徑,即計(jì)算出離當(dāng)前點(diǎn)路徑最短的目標(biāo)點(diǎn),具體算法如下:
根據(jù)電子地圖,智能策略Agent 初步給出各個(gè)目的點(diǎn)的優(yōu)先次序及其行走路線,但是實(shí)際行走中還可以會(huì)遇到其他不可預(yù)知的障礙,這里改進(jìn)BUG 算法考慮到了這些因素,具體算法如下:
S=起始點(diǎn),T=終點(diǎn)
設(shè)M 為空矩陣,i=1; V(1)為空集
MAP_R 為與矩陣M 對(duì)應(yīng)的二維位圖,Pi 為機(jī)器人在地圖中的即時(shí)位置
While(T>Pi) //當(dāng)T==Pi 表示機(jī)器人到達(dá)終點(diǎn)
{ V(i--由EPC 方式采集的數(shù)據(jù)) // EPC 為端點(diǎn)采集法
M--M∪V(i)
位圖MAP_R 隨之不斷更新
IF(線段Pi T 和障礙物邊界相交) THEN
由COD 計(jì)算出方向 // COD 為最近方向判決
ELSE
機(jī)器人沿方向移動(dòng)到點(diǎn)Pi+1
i++;}
3.3 動(dòng)作選擇
根據(jù)內(nèi)部狀態(tài)的變化,動(dòng)作Agent 指導(dǎo)機(jī)器人該采取什么樣的動(dòng)作,具體流程如下:
IF(傳感器感知到有書到來(lái))THEN 觸發(fā)機(jī)械手拿書
ELSE
IF(圖書歸類完成) THEN
{ 觸發(fā)機(jī)器手將書放置在推車格子中,并將臨時(shí)庫(kù)中的已滿格子數(shù)加1;
IF(已滿格子數(shù)==總格子數(shù)) THEN 機(jī)器人不再接收其他圖書,觸發(fā)機(jī)器人根據(jù)智能策略Agent
提供的路線推動(dòng)推車向各個(gè)目的地前進(jìn)。}
FOR(i=1;i=臨時(shí)庫(kù)中的總目的地?cái)?shù);i++)
{ IF(到達(dá)臨時(shí)庫(kù)中記錄的第i 個(gè)目的地)THEN
{ 機(jī)器人停止行走,觸發(fā)機(jī)械手將對(duì)應(yīng)圖書擺在相關(guān)的柜子上
擺書動(dòng)作完成,停止機(jī)械手動(dòng)作,觸發(fā)機(jī)器人推車向著新目的地前行 }
ELSE 繼續(xù)根據(jù)路徑前行 }
3.4 多Agent 之間的通信
當(dāng)環(huán)境變化的時(shí)候,環(huán)境感知Agent 會(huì)自動(dòng)檢測(cè)到環(huán)境狀態(tài),比如有新書到時(shí),環(huán)境感知Agent 獲取圖書信息,并向圖書識(shí)別Agent 提出合作請(qǐng)求,且將圖書信息傳遞給它,環(huán)境感知Agent 繼續(xù)檢測(cè)環(huán)境變化。Agent 之間的合作提高了工作效率和準(zhǔn)確度,且保證了庫(kù)中信息的有效共享,避免資源浪費(fèi)。
Agent 之間的交互與合作是多Agent 系統(tǒng)中核心問(wèn)題之一,而Agent 通信語(yǔ)言是實(shí)現(xiàn)交互與合作的基礎(chǔ)。根據(jù)目前Agent 的應(yīng)用環(huán)境, KQML 是主流的通信語(yǔ)言之一。因KQML 既是一種通信語(yǔ)言,又是一種通信協(xié)議和標(biāo)準(zhǔn),故每個(gè)Agent 只要遵守該協(xié)議,即可受到它所提供的通信支持,若要遵守協(xié)議,每個(gè)Agent 必須添加一個(gè)KQML 語(yǔ)言解釋器。
概念上,可以把一條KQML 消息分為三層:內(nèi)容層、通信層和消息層。內(nèi)容層由關(guān)鍵詞:content 標(biāo)志;:reply-with, : sender, and : receiver 關(guān)鍵詞標(biāo)志了通信層; :performative 與:language, : ontology 形成消息層。全部技術(shù)通信參數(shù)都在通信層規(guī)定,消息層規(guī)定與消息有關(guān)的言語(yǔ)行為的類型,內(nèi)容層規(guī)定消息內(nèi)容。以環(huán)境感知Agent 與圖書識(shí)別Agent 之間的溝通為例說(shuō)明KQML通信語(yǔ)言的方法。
?。╰ell
: sender 環(huán)境感知Agent
: receiver 圖書識(shí)別Agent
: reply-with information storehouse
: content (new book's information)
: language java
: ontology bar code of book)
4 結(jié)語(yǔ)
本文中我們?cè)趫D書館管理系統(tǒng)中引入人工智能的概念,并給出了基于多Agent 的機(jī)器人系統(tǒng)在圖書歸類中的模型。智能機(jī)器人能自動(dòng)識(shí)別圖書條形碼,且結(jié)合中國(guó)圖書館圖書分類法給出歸類算法。根據(jù)此算法可計(jì)算出圖書的具體位置,將所有推車中同類書籍進(jìn)行關(guān)聯(lián),機(jī)器人就可以一次性擺放所有同類書籍,而不需要多次折回,實(shí)現(xiàn)對(duì)圖書的歸類。改進(jìn)BUG 算法給出了路徑規(guī)劃方案,指導(dǎo)機(jī)器人沿著路徑正確、快捷地找到各個(gè)目的地。通過(guò)機(jī)器人和多Agent 技術(shù)的結(jié)合,極大地提高了圖書管理的效率,減輕了工作人員繁重的整理工作,對(duì)將人工智能技術(shù)引入日常生活中產(chǎn)生深遠(yuǎn)的現(xiàn)實(shí)意義。
評(píng)論