苑津莎,張 瑾,馬 姿,楊 宏,張衛(wèi)華
(華北電力大學(xué) 電子與通信工程系,河北 保定 071003)
機(jī)器人應(yīng)用于電力系統(tǒng)巡檢具有巨大的優(yōu)勢。在滿足有環(huán)境安全限制的生產(chǎn)現(xiàn)場需要方面,電力機(jī)器人發(fā)揮了重大作用,比如高空線路作業(yè)、高壓設(shè)備檢修、線路巡檢、核電設(shè)備清潔、海纜巡檢等[1-3]。
機(jī)器人在作業(yè)時需要具有主動意識,有審時度勢、根據(jù)情況做出判斷并采取適合措施的能力。機(jī)器人應(yīng)能仿照人的思維方式,掌握一些基本的判斷方法,比如演繹推理、歸納推理、溯因推理、類比推理[4-6]等方法,依據(jù)不同環(huán)境做出不同響應(yīng)。
深度學(xué)習(xí)方法雖可以幫助機(jī)器人完成挖掘知識、建立模型、識別模式和處理分類,但在利用現(xiàn)有的如定理、規(guī)則等的知識仍存在分析問題能力較弱的問題;故機(jī)器人邏輯推理的應(yīng)用是不可替代的。
國外學(xué)者在機(jī)器人思維方面做了許多研究工作并取得一定成果,如知識存儲可采用的網(wǎng)絡(luò)本體語言(web ontology language,OWL)系統(tǒng)。
OWL作為一種本體描述語言,具有較強(qiáng)的語義表達(dá)能力,且能對描述的本體邏輯進(jìn)行可判定推理[7-9]。根據(jù)各類特征需求,OWL可以分為OWL Lite、OWL描述邏輯(description logic,DL)和OWL Full3種子語言;這3種語言表達(dá)能力依次增強(qiáng),推理能力依次減弱。
目前,常使用OWL DL建立本體。由于該語言僅局限于描述邏輯,因此使用時還需要先構(gòu)建合適的語言規(guī)則再進(jìn)行推理。
語義網(wǎng)規(guī)則語言(semantic web rule language,SWRL)由W3C提出,用于描述推理規(guī)則。SWRL由Rule ML(rule markup language)演變并與OWL本體相結(jié)合,是一種以語義的方式描述規(guī)則的語言,其目的是提高本體的推理能力。
謂詞邏輯推理是人工智能較早使用且沿用至今的知識表示方法。文獻(xiàn)[10]將中文文本中的語義信息提取并將其轉(zhuǎn)換為結(jié)構(gòu)化本體,在融合領(lǐng)域背景本體庫后,使用描述邏輯推理機(jī)判斷并檢測語義內(nèi)容的邏輯一致性。文獻(xiàn)[11]針對因語境不確定性導(dǎo)致的模糊問題,從2種不同語境邏輯角度出發(fā)的方法,分別詮釋了謂詞模糊問題與主詞或句子的語義模糊問題的回避方式。文獻(xiàn)[12]設(shè)計(jì)了含有模糊用戶定制數(shù)據(jù)類型謂詞的模糊數(shù)據(jù)類型信息的表示和符號分析流程,把具備智能體和可供性屬性的詞組成概念聲明表,使用模型構(gòu)建與功能分析法,結(jié)合謂詞邏輯生成本體關(guān)聯(lián)關(guān)系和邏輯本體,從而豐富并完善了基于符號邏輯本體建模的開發(fā)流程。文獻(xiàn)[13]利用邏輯定標(biāo)定義謂詞邏輯屬性,實(shí)現(xiàn)了多值背景轉(zhuǎn)換;結(jié)合形式化語言表達(dá)對象間關(guān)系,實(shí)現(xiàn)了氣象災(zāi)害領(lǐng)域概念內(nèi)涵和外延在本體知識庫下的邏輯表達(dá)和智能推理應(yīng)用。
邏輯推理近幾十年的研究大多是理論研究工作,面向?qū)嵱玫难芯繋缀鯖]有。分析其主要原因?yàn)椋涸谔幚砭唧w問題時,推理的規(guī)則粒度太小且數(shù)量龐大,用其組成系統(tǒng)解決問題過于困難[14]。
本文研究了機(jī)器人演繹推理的規(guī)則方法,提出了一種組合邏輯擴(kuò)展規(guī)則及構(gòu)建方法。該方法對機(jī)器人邏輯推理規(guī)則進(jìn)行擴(kuò)充,使機(jī)器人演繹推理的更容易組成較復(fù)雜的系統(tǒng),使邏輯擴(kuò)展規(guī)則可達(dá)到類似軟件工程中的面向?qū)ο蟮男Ч?/p>
謂詞邏輯是大多數(shù)推理工具(包括 SWRL)的基礎(chǔ)[15-17]。謂詞邏輯推理(以下簡稱,推理),如公式(1)所示[18]。
式(1)中各量及邏輯符號含義見表1所示。式中“→”左邊的Pi稱前提,右邊Q是邏輯的結(jié)論。例如推論x與y是兄弟,則
表1 謂詞推理中各變量含義Tab. 1 The meaning of each variable in predicate reasoning
式中:x、y、z表示某人。
由謂詞邏輯公式構(gòu)成的式(2)推理規(guī)則如圖1所示。
圖1 兄弟關(guān)系的推理規(guī)則Fig. 1 The logical reasoning rules for brotherhood
式(1)中,原子公式寫成P(x)或P(y,z)的形式,對應(yīng)OWL類(class)和屬性(property)。原子公式還可以是具有函數(shù)作用關(guān)系(built-in)的內(nèi)置函數(shù)。
圖1中的規(guī)則分為1部分,標(biāo)簽
表示輸出結(jié)果,標(biāo)簽包含各項(xiàng)前提,屬于要輸入的部分。式(2)中原子公式在圖1中用標(biāo)簽從圖1中還可以看出,由于語言習(xí)慣的差異,圖中英文所表達(dá)邏輯推理中的內(nèi)容尚不夠準(zhǔn)確。因語言風(fēng)俗習(xí)慣的原因,用外文表示中文含義總有不貼切的地方;所以,需要優(yōu)先考慮使用中文語言以便于人與機(jī)器人的交流。鑒于此,在知識圖譜、思想意識、語言表述相關(guān)的設(shè)計(jì)、存儲等方面,應(yīng)盡量使用中文表述,如知識圖譜中的元素名稱等,應(yīng)開發(fā)中文處理工具。對于涉及的機(jī)器人思維方式、語言等,更應(yīng)采用中文做機(jī)器人的母語。
為了使邏輯推理規(guī)則實(shí)用化,對圖1中推理規(guī)則進(jìn)行改進(jìn)擴(kuò)展。
討論下面問題:假設(shè)x,y均為男性,并已知他們的年齡,判斷x是y的哥哥,改用中文習(xí)慣表示。
式中:謂詞哥哥(x,y)表示x是y的哥哥,y是x的弟弟;父親(z,x)表示z是x的父親;男(x)表示x是男性,等價于x.性別=男。
性別在機(jī)器人大腦存儲的OWL文件中是人x的屬性,其屬性值是男或女。x.年齡表示x的年齡的值。同樣y.年齡表示y的年齡的值。謂詞不相同(x,y)在這里表示x和y不是同一個人。
y是x的哥哥的邏輯推理如式(4):
如圖2所示,將式(3)和式(4)推理組合一起構(gòu)成一個規(guī)則,稱為擴(kuò)展規(guī)則。圖2中,標(biāo)簽換成了中文,
換為<輸出>,替換為<輸入>等。圖2 通過父親判斷兄弟關(guān)系的擴(kuò)展規(guī)則Fig. 2 The rules for judging brotherhood through fathers
圖2的規(guī)則分為3部分,除了輸出結(jié)果(用標(biāo)簽<輸出>表示)和輸入部分(用標(biāo)簽<輸入>表示)外,增加了計(jì)算部分,用標(biāo)簽<計(jì)算方法>表示。
在輸入?yún)?shù)中,式(3)和式(4)中原子公式父親(z,x)、父親(z,y)和不相同(x,y)、男(x)和男(y)是相同的,可以保持圖1中的處理方法,放在輸入部分的<前件>元素中;不同的部分,如大于(x.年齡,y.年齡)改為輸入x.年齡和y.年齡的值,放在標(biāo)簽<計(jì)算量>中,需要由規(guī)則引擎去處理。
將計(jì)算功能用規(guī)則存儲。<計(jì)算方法>元素記錄了需計(jì)算的方法步驟,由規(guī)則引擎讀入后執(zhí)行。計(jì)算步驟和相關(guān)符號選用了C語言設(shè)計(jì)方法。計(jì)算結(jié)果返回規(guī)則引擎調(diào)用者。增加的<計(jì)算方法>元素部分,告知規(guī)則引擎如何計(jì)算,其需要的變量在輸入部分的標(biāo)簽<計(jì)算量>中。
規(guī)則依次會有2個推理結(jié)果,按排序分別為結(jié)果1至結(jié)果 2,放在<輸出>元素中。這里省略的<結(jié)果2>。
當(dāng)完成一個推理需要多個規(guī)則鏈接時,完成推理的方法有正向鏈接和反向鏈接2種,也可稱為正向推理和逆(反)向推理。
正向鏈接:從前提條件開始匹配,查找規(guī)則庫中符合前提條件的規(guī)則進(jìn)行推理;若該次推理的結(jié)果不是目標(biāo)結(jié)果,在此條件下再次查找規(guī)則進(jìn)行推理。
反向鏈接:將要求證的輸出結(jié)果與規(guī)則匹配。當(dāng)輸入條件不滿足當(dāng)前查詢的規(guī)則時,將未滿足的條件作為下一步查找規(guī)則結(jié)果的檢索值,重復(fù)該步驟直到找出與已知條件匹配的規(guī)則;否則查找失敗。
在圖2的規(guī)則中,正向鏈接沒有問題,可照常應(yīng)用;反向鏈接由于有多個結(jié)果,輸入條件中沒有區(qū)分,故在<結(jié)果>元素中設(shè)計(jì)了<因源>子元素,用于前提條件的補(bǔ)充。<因源>子元素只是用于反向鏈接時規(guī)則檢索,對其他應(yīng)用相當(dāng)于一個類似說明的元素。
上面的規(guī)則還可進(jìn)一步擴(kuò)展,通過父親判斷兄弟姐妹關(guān)系。
定義:謂詞姐姐(x,y)表示x是y的姐妹關(guān)系,x是y的姐姐,y是x的妹妹;謂詞姐弟(x,y)表示x是y的姐弟關(guān)系,x是y的姐姐,y是x的弟弟;謂詞兄妹(x,y)表示x是y的兄妹關(guān)系,x是y的哥哥,y是x的妹妹。
式(5)至式(8)給出了其他 4個謂詞邏輯推理表達(dá)式。
將式(3)至式(8)合在一起,于是可寫成一個擴(kuò)展規(guī)則。通??梢詫⑾嚓P(guān)的輸入或輸出的規(guī)則構(gòu)成一個擴(kuò)展規(guī)則。
舉例:通過母親建立家庭成員的關(guān)系。假設(shè)x是y的母親,z是x的父親,則可推理出式(9)—(11)。
建立規(guī)則如圖3所示。這里省略了擴(kuò)展規(guī)則輸出部分。
圖3 通過母親建立家庭成員關(guān)系的規(guī)則Fig. 3 The rules for establishing family relationships through mothers
圖3中,將謂詞函數(shù)名稱作為變量,代表不同的謂詞。本例中,變量C可取值為父親、母”和弟弟。
為了使設(shè)計(jì)的規(guī)則具有通用性,下面考慮在專業(yè)領(lǐng)域中對規(guī)則的要求。
為發(fā)揮機(jī)器人的更大作用,需讓機(jī)器人掌握專業(yè)知識,使其達(dá)到本科甚至研究生專業(yè)水準(zhǔn)。具有專業(yè)知識的機(jī)器人在應(yīng)用中解決問題的能力會有飛躍式的提高,甚至可以利用機(jī)器人從事科研工作。
本文以電路課程為例,在所給出的讓機(jī)器人掌握專業(yè)知識的方案中,將電路課程的基本概念、原理、定義、定理轉(zhuǎn)換成知識圖譜,存儲到機(jī)器人大腦。
本文提出將規(guī)則用于計(jì)算公式的表示方法,以便讓機(jī)器人可以根據(jù)電路知識求解電路課程中習(xí)題,從而使機(jī)器人具備解決電路專業(yè)相關(guān)問題的能力。
在直流電路中,電阻上的電流和電壓的關(guān)系由歐姆定律決定,即
當(dāng)電阻上的電壓為U1、電阻值為R1時,將式(12)寫成謂詞邏輯推理形式,為:
在電路分析計(jì)算中,令U等于U1、R等于R1,則通過電阻的電流I等于f(U1,R1)。式(14)中,等于(U,U1)和等于(R,R1)恒滿足,故只需計(jì)算f(U1,R1)賦予I即可。
圖4給出了電路歐姆定律的推理規(guī)則。
圖4 歐姆定律推理規(guī)則Fig. 4 Ohm's law reasoning rules
通過圖4,可以將歐姆定律規(guī)則與前述家庭關(guān)系規(guī)則進(jìn)行對比分析,觀察統(tǒng)一了規(guī)則的格式和形式。
歐姆定律是從實(shí)驗(yàn)數(shù)據(jù)總結(jié)出來的規(guī)律,也是從大量樣本數(shù)據(jù)學(xué)習(xí)得來的。通過深度學(xué)習(xí)方法也可以得到相應(yīng)的結(jié)果。但是當(dāng)參數(shù)變化以后,深度學(xué)習(xí)的方法需要重新學(xué)習(xí)訓(xùn)練,消耗大量收集樣本和訓(xùn)練的成本。比如,對于2個電阻并聯(lián)電路,用歐姆定律可直接得到結(jié)果,深度學(xué)習(xí)方法需要重新搜集樣本訓(xùn)練建立新模型。
在尚沒有可用的規(guī)律、定理、規(guī)則的問題處理中,深度學(xué)習(xí)方法有廣闊應(yīng)用空間。在通過學(xué)習(xí)歸納推導(dǎo)出規(guī)律后,應(yīng)盡量采用這些規(guī)律來解決問題,而不應(yīng)采用深度學(xué)習(xí)方法從頭開始通過學(xué)習(xí)訓(xùn)練解決問題。
從機(jī)器人思維來講:學(xué)習(xí)訓(xùn)練是第一步;從中得到規(guī)律、規(guī)則是進(jìn)一步升華;用這些規(guī)律、規(guī)則解決問題才能達(dá)到思維境地——讓機(jī)器人創(chuàng)新。
基于以上對邏輯推理擴(kuò)展規(guī)則的分析,本文提出了構(gòu)建邏輯推理擴(kuò)展規(guī)則的方法。具體步驟如下。
步驟1:對所要表示的問題進(jìn)行需求分析。
步驟2:分析規(guī)則的輸入和輸出值域范圍,對涉及的相關(guān)規(guī)則整理歸類,確定擴(kuò)展規(guī)則的范圍。例如,電力物資倉庫的供貨方案的訂貨時間為 0至∞;將相關(guān)規(guī)則合并擴(kuò)展等。
步驟3:檢查規(guī)則間的矛盾,并予消除。
步驟4:定義問題在不同條件下的多個輸出,表示每一個輸出的推理結(jié)果。
步驟5:將各謂詞邏輯推理式前提條件中的共同原子式,寫入<前件>元素。
步驟6:分析規(guī)則中前提條件的不同部分,提取輸入變量,寫入<輸入量>元素。查詢每一邏輯規(guī)則的輸入是否有冗余。
步驟7:采用程序設(shè)計(jì)方法,設(shè)計(jì)計(jì)算邏輯,構(gòu)建<計(jì)算方法>元素。
步驟8:填寫<因源>元素。
步驟9:檢驗(yàn)邏輯推理擴(kuò)展規(guī)則是否正確。
在某電力物資倉庫的供貨方案中,一個典型的案例經(jīng)需求分析整理后,供貨要求和邏輯推理表達(dá)式如表2所示。
表2 供發(fā)貨方案的邏輯表示Tab. 2 Logical representation of the supply and delivery plan
參考表2,在該問題中,各謂詞邏輯公式前提條件中無相同原子式部分。設(shè):用戶端x1=訂貨時間,x2=需求量,供貨端y,庫存量為y1。于是,表1中的謂詞邏輯推理公式均可用變量x1,x2和y1通過計(jì)算得到。
采用判斷樹方法設(shè)計(jì)算法流程,結(jié)果如圖5所示。
圖5 供發(fā)貨方案Fig. 5 The supply and delivery plan
圖6給出了供發(fā)貨方案邏輯規(guī)則。從圖6的規(guī)則結(jié)果中看出,方案的輸出謂詞邏輯表示出現(xiàn)困難,只是給出了類似標(biāo)識的謂詞,所以只能通過標(biāo)識再去查找操作細(xì)則。為節(jié)省篇幅,這里省略了<因源>標(biāo)簽。
圖6 供發(fā)貨方案的邏輯規(guī)則Fig. 6 The logic rules for the supply and delivery plan
圖5的供發(fā)貨問題用一個組合擴(kuò)展規(guī)則即可表示其邏輯關(guān)系,簡化了問題的處理方法,類似面向?qū)ο筌浖こ谭椒?,可以方便的?gòu)建復(fù)雜系統(tǒng)。根據(jù)供貨方案,設(shè)置了全部可能的路徑進(jìn)行測試,圖6中的共發(fā)貨規(guī)則測試結(jié)果與圖5共發(fā)貨方案相同。
雖然謂詞邏輯演算已經(jīng)過多年研究,但其主要研究方向?yàn)橥评硌菟慵翱尚行?,目前并沒有向應(yīng)用需求方向發(fā)展。所以,在機(jī)器人推理方面,仍需要進(jìn)一步研究拓展。
本文針對邏輯推理規(guī)則的實(shí)用化問題,提出了一種可應(yīng)用于較復(fù)雜情景的組合邏輯擴(kuò)展規(guī)則方法;給出了一種機(jī)器人掌握專業(yè)知識的方案,提出了將邏輯推理規(guī)則用于計(jì)算公式的表示方法。
將組合邏輯的方法用于一個實(shí)際的電力物資供發(fā)貨方案,初步驗(yàn)證了本文方法有效性。
后續(xù)研究:在此規(guī)則的表述方法上,構(gòu)建規(guī)則組件、規(guī)范組件接口,并通過不同情況測試來優(yōu)化規(guī)則組件。