亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種提高規(guī)則引擎運行效率的方法

文檔序號:9810267閱讀:502來源:國知局
一種提高規(guī)則引擎運行效率的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及人工智能領(lǐng)域中的規(guī)則引擎技術(shù),特別涉及一種提高規(guī)則引擎運行效 率的方法。
【背景技術(shù)】
[0002] 規(guī)則引擎由推理引擎發(fā)展而來,是一種嵌入在應(yīng)用程序中的組件,實現(xiàn)了將業(yè)務(wù) 決策從應(yīng)用程序代碼中分離出來,并使用預(yù)定義的語義模塊編寫業(yè)務(wù)決策。由于規(guī)則引擎 是軟件組件,所以只有開發(fā)人員才能通過程序接口的方式來使用和控制它,通常情況下,開 發(fā)人員在程序中使用規(guī)則引擎的五個步驟為:
[0003] 1)創(chuàng)建規(guī)則引擎對象;
[0004] 2)向引擎中加載規(guī)則集或更換規(guī)則集;
[0005] 3)向引擎提交需被規(guī)則集處理的事實集;
[0006] 4)命令引擎執(zhí)行;
[0007] 5)導(dǎo)出引擎執(zhí)行結(jié)果,從引擎中撤出處理過的數(shù)據(jù)。
[0008] 規(guī)則引擎常應(yīng)用于業(yè)務(wù)規(guī)則經(jīng)常發(fā)生變化的系統(tǒng)。規(guī)則引擎可以將用戶的業(yè)務(wù)規(guī) 則和應(yīng)用系統(tǒng)的開發(fā)相分離,使業(yè)務(wù)規(guī)則的變更不會影響到應(yīng)用系統(tǒng)的開發(fā),而且用戶可 以基于規(guī)則引擎靈活定制自己的業(yè)務(wù)規(guī)則。
[0009] 規(guī)則引擎的推理步驟如下:
[0010] 1)將事實集輸入至工作內(nèi)存;
[0011] 2)將規(guī)則集中的規(guī)則和事實集中的事實比較;
[0012] 3)如果執(zhí)行規(guī)則存在沖突,即同時激活了多個規(guī)則,將沖突的規(guī)則放入沖突集 合;
[0013] 4)解決沖突,將激活的規(guī)則按順序放入;
[0014] 5)執(zhí)行規(guī)則,重復(fù),直至執(zhí)行完所有的規(guī)則。
[0015] 任何一個規(guī)則引擎都需要很好地解決規(guī)則的推理機制和規(guī)則條件匹配的效率問 題,當引擎執(zhí)行時,會根據(jù)執(zhí)行隊列中的優(yōu)先順序逐條執(zhí)行規(guī)則執(zhí)行實例,由于規(guī)則的執(zhí)行 部分可能會改變工作區(qū)的數(shù)據(jù)對象,從而會使隊列中的某些規(guī)則執(zhí)行實例因為條件改變而 失效,必須從隊列中撤銷,也可能會激活原來不滿足條件的規(guī)則,生成新的規(guī)則執(zhí)行實例進 入隊列;于是就產(chǎn)生了一種"動態(tài)"的規(guī)則執(zhí)行鏈,形成規(guī)則的推理機制。
[0016] 引擎需要迅速測試工作區(qū)中的數(shù)據(jù)對象,從加載的規(guī)則集中發(fā)現(xiàn)符合條件的規(guī) 貝1J,生成規(guī)則執(zhí)行條例。規(guī)則條件匹配的效率決定了規(guī)則引擎的運行效率,決定了規(guī)則引擎 的性能。
[0017] 目前已有很多方法用于提高規(guī)則引擎的運行效率。1999年,美國范德堡大學(xué) John Heusinkveld等人提出了用html來定義規(guī)則的方法;2008年,韓國信息與通信大學(xué) Changbai Choi等人提出了在移動設(shè)備上通過限制Rete算法匹配過程中的規(guī)則集和事實 集的大小的方法來提高規(guī)則引擎的執(zhí)行效率;2009年,武漢大學(xué)Zhang Ruijun等人提出 了將用xml文件表示的規(guī)則集轉(zhuǎn)化為and/or tree,再轉(zhuǎn)換為O-lmatrix的方法,進一步提 高規(guī)則引擎的執(zhí)行效率;2010年,北京郵電大學(xué)的重點智能通信軟件實驗室Ding Xiao等 人提出了通過優(yōu)化rete算法來提高規(guī)則引擎的的執(zhí)行效率的方法;2010年,天津大學(xué)計 算機系Gang Zhang等人提出了預(yù)先編譯規(guī)則文件、詳述規(guī)則文件內(nèi)容、子功能包劃分三種 提高規(guī)則引擎執(zhí)行效率的方法;2012年,美國托雷多大學(xué)Soma Shekara Sreenadh Reddy Depuru等人提出了數(shù)據(jù)分類的思想:不同類型的用戶所進行匹配的規(guī)則不一樣,由此減少 了規(guī)則集的數(shù)量,提高運行效率。
[0018] 上述這些研究方法在不同程度上提高了規(guī)則引擎的運行效率,但是這些研究方法 大多適用于運行在PC機或服務(wù)器上的規(guī)則引擎,而對于輕量化設(shè)備上規(guī)則引擎不適用,主 要原因是輕量化設(shè)備的計算能力和存儲能力有限,直接應(yīng)用上述這些研究方法會有一定的 局限性。在這些研究方法中,Changbai Choi等人提出的限制匹配過程中規(guī)則集和事實集 大小的方法,雖然這個方法能夠在輕量化的移動設(shè)備上實現(xiàn),但是這個方法在執(zhí)行過程中 存在下述問題:每次進行規(guī)則匹配時,由于無法準確預(yù)測哪些規(guī)則能夠被觸發(fā),哪些規(guī)則不 能夠被觸發(fā),也就不能準確找出每次匹配時挑選哪些規(guī)則進行匹配。因此,如果規(guī)則挑選不 精準的話,會造成本次匹配的執(zhí)行結(jié)果不精準,從而影響規(guī)則引擎的運行效率。

【發(fā)明內(nèi)容】

[0019] 本發(fā)明的目的在于克服目前應(yīng)用在輕量化設(shè)備上的規(guī)則引擎存在的運行效率低 的缺點,在現(xiàn)有匹配算法的基礎(chǔ)上,提出了一種為每條規(guī)則添加"關(guān)聯(lián)事實"屬性的方法,此 方法可以提高規(guī)則引擎的運行效率。
[0020] 為達到上述目的,本發(fā)明提供了一種提高規(guī)則引擎運行效率的方法,所述方法包 括:
[0021] 步驟101)建立事實集;所述事實集是若干個事實的集合;
[0022] 步驟102)建立規(guī)則集;所述規(guī)則集是若干條規(guī)則的集合;每條規(guī)則包含條件部分 和動作部分;
[0023] 步驟103)對規(guī)則集中的每條規(guī)則增加其對應(yīng)的"關(guān)聯(lián)事實"屬性;
[0024] 步驟104)基于匹配算法將事實集與規(guī)則集進行匹配,建立匹配規(guī)則集;
[0025] 步驟105)將匹配規(guī)則集中的規(guī)則按照規(guī)則優(yōu)先級確定規(guī)則的執(zhí)行順序;
[0026] 步驟106)按照規(guī)則的執(zhí)行順序執(zhí)行規(guī)則的動作部分,并用執(zhí)行后的結(jié)果更新事 實集。
[0027] 上述技術(shù)方案中,步驟103)進一步包括:
[0028] 所述規(guī)則集中的每條規(guī)則的條件部分由若干個條件元素組成;所述條件元素為一 個事實變量的數(shù)量關(guān)系,由"事實變量+關(guān)系描述符+具體數(shù)值或狀態(tài)值"的形式表示;所 述條件元素的"關(guān)聯(lián)事實"為該條件元素對應(yīng)的"事實變量",對應(yīng)于規(guī)則集中的每條規(guī)則的 "關(guān)聯(lián)事實"屬性的值是若干個條件元素關(guān)聯(lián)的"事實變量"的集合。
[0029] 上述技術(shù)方案中,所述步驟104)中匹配算法為古典Leaps算法或Rete算法。
[0030] 上述技術(shù)方案中,基于古典Leaps算法建立匹配規(guī)則集的具體步驟為:
[0031] 步驟104-1)新建棧,存儲所述事實集的若干個事實;
[0032] 步驟104-2)新建隊列,存儲所述規(guī)則集的若干個規(guī)則;
[0033] 步驟104-3)彈出棧頂元素,獲取一個事實F ;
[0034] 步驟104-4)從隊列中取出一條規(guī)則R ;
[0035] 步驟104-5)判斷所述事實F與所述規(guī)則R是否關(guān)聯(lián),如果判斷結(jié)果是肯定的,轉(zhuǎn) 入步驟104-6);否則,轉(zhuǎn)入步驟104-8);
[0036] 步驟104-6)判斷所述事實F是否使所述規(guī)則R的條件部分的結(jié)果為真,如果判斷 結(jié)果是肯定的,轉(zhuǎn)入步驟104-7);否則,轉(zhuǎn)入步驟104-8);
[0037] 步驟104-7)將所述規(guī)則R放入匹配規(guī)則集;
[0038] 步驟104-8)判斷隊列是否為空,如果判斷結(jié)果是肯定的,轉(zhuǎn)入步驟104-9);否則, 轉(zhuǎn)入步驟104-4);
[0039] 步驟104-9)判斷棧是否為空,如果判斷結(jié)果是肯定的,轉(zhuǎn)入步驟105);否則,轉(zhuǎn)入 步驟 104-3)。
[0040] 上述技術(shù)方案中,在所述步驟104-5)中,判斷所述事實F與所述規(guī)則R是否關(guān)聯(lián) 進一步包括:
[0041] 所述規(guī)則的"關(guān)聯(lián)事實"屬性的值是若干個條件元素關(guān)聯(lián)的"事實變量"的集合, 將所述事實F的每個事實變量與所述規(guī)則R的"事實變量"的集合進行比較,若事實F存在 一個事實變量屬于規(guī)則R的"事實變量"的集合,則認為該事實F與該規(guī)則R關(guān)聯(lián);否則,認 為該事實F與該規(guī)則R不關(guān)聯(lián)。
[0042] 本發(fā)明的優(yōu)點在于:
[0043] 1、本發(fā)明的提高規(guī)則引擎運行效率的方法,能夠提高規(guī)則引擎推理中事實集和規(guī) 則集的匹配命中率,減小時間損耗,有效提高規(guī)則引擎的運行效率。
[0044] 2、本發(fā)明的提高規(guī)則引擎運行效率的方法適用于輕量化設(shè)備上的規(guī)則引擎,特別 適用于輕量級的物聯(lián)網(wǎng)網(wǎng)關(guān)上的規(guī)則引擎,規(guī)則引擎能夠運行于物聯(lián)網(wǎng)網(wǎng)關(guān)上,能夠方便 用戶根據(jù)自己實際場景的需求來靈活定制業(yè)務(wù)規(guī)則,解決了當前的物聯(lián)網(wǎng)網(wǎng)關(guān)只能適用于 特定應(yīng)用場景的問題。
【附圖說明】
[0045] 圖1是本發(fā)明的提高規(guī)則引擎運行效率的方法的流程圖;
[0046] 圖2是本發(fā)明的基于古典Leaps算法建立匹配規(guī)則集的流程圖;
[0047] 圖3是本發(fā)明的方法與現(xiàn)有方法的規(guī)則引擎的運行時間仿真對比圖。
【具體實施方式】
[0048] 與現(xiàn)有的規(guī)則引擎技術(shù)相比,本發(fā)明的方法為規(guī)則集中的每條規(guī)則添加了 "關(guān)聯(lián) 事實"屬性,在將事實集與規(guī)則集進行匹配的時候,首先將事實集中的每個事實與規(guī)則集中 的每條規(guī)則進行初步匹配,即將每個事實與每條規(guī)則的"關(guān)聯(lián)事實"
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1