劉陽(yáng) 張?zhí)焓?李世超 佟星 曾鵬 于海斌
新一代信息技術(shù)的發(fā)展推動(dòng)了物聯(lián)網(wǎng)技術(shù)的產(chǎn)業(yè)推進(jìn).在工業(yè)領(lǐng)域,工業(yè)物聯(lián)網(wǎng)已經(jīng)成為工業(yè)泛在信息獲取的重要依托手段,改變了過(guò)去流程工業(yè)內(nèi)部生產(chǎn)信息以及環(huán)境信息難以實(shí)時(shí)獲取的問(wèn)題,成為工業(yè)領(lǐng)域全流程優(yōu)化的重要使能手段.
近年來(lái),隨著工業(yè)物聯(lián)網(wǎng)體系在油田領(lǐng)域的部署與推廣,已經(jīng)初步實(shí)現(xiàn)了數(shù)字油田的建設(shè)目標(biāo),未來(lái)智慧油田將成為提升油田開(kāi)發(fā)效率、降低成本、提升競(jìng)爭(zhēng)力的重要發(fā)展方向.對(duì)比數(shù)字油田側(cè)重于基于泛在感知技術(shù)對(duì)油田各種生產(chǎn)和管理數(shù)據(jù)的采集、上傳與存儲(chǔ),智慧油田更加傾向于融入人類的經(jīng)驗(yàn)與智慧,通過(guò)對(duì)采集到的各種勘探、開(kāi)發(fā)、生產(chǎn)、運(yùn)營(yíng)及外部環(huán)境等數(shù)據(jù)進(jìn)行全面整理和全局分析,為指導(dǎo)高效、低成本、實(shí)時(shí)的開(kāi)采措施制定與運(yùn)營(yíng)決策提供輔助支持.在我國(guó),很大一部分油田開(kāi)發(fā)進(jìn)入中后期階段,面臨含水率不斷升高、能效比逐漸降低的問(wèn)題.對(duì)于油田油井、水井管網(wǎng)進(jìn)行采注協(xié)同優(yōu)化,是提升油田作業(yè)效率的重要舉措之一,將是未來(lái)智慧油田的重要組成部分.傳統(tǒng)油田油水井采注調(diào)整通常采用“以采定注”的方式來(lái)進(jìn)行,缺乏充分利用油水井地層結(jié)構(gòu)、數(shù)值模擬分析結(jié)果以及生產(chǎn)動(dòng)態(tài)數(shù)據(jù)綜合分析的工具手段,在企業(yè)負(fù)責(zé)處理分析的不同業(yè)務(wù)部門在不同時(shí)間尺度分別進(jìn)行優(yōu)化策略制定的情況下,綜合采注優(yōu)化周期較長(zhǎng).隨著工業(yè)物聯(lián)網(wǎng)終端以及大數(shù)據(jù)平臺(tái)的部署,大量實(shí)時(shí)動(dòng)態(tài)數(shù)據(jù)的產(chǎn)生,這種由各部門在不同時(shí)間尺度上來(lái)聯(lián)合驅(qū)動(dòng)優(yōu)化的模式將難以滿足油田提升采注效率的需求,融合油田工程師分析經(jīng)驗(yàn)并基于油水井動(dòng)態(tài)生產(chǎn)作業(yè)數(shù)據(jù)、油藏地質(zhì)信息以及數(shù)值模擬信息的綜合推理系統(tǒng)將有效改變油田企業(yè)多部門人員聯(lián)合驅(qū)動(dòng)優(yōu)化的局面.
油田油水井?dāng)?shù)量龐大,會(huì)產(chǎn)生大量實(shí)時(shí)數(shù)據(jù)以及待處理分析事件,為適應(yīng)對(duì)大量實(shí)時(shí)事件的快速處理,油水井采注協(xié)同優(yōu)化推理引擎需要具有對(duì)大量同時(shí)到達(dá)的實(shí)時(shí)事件的實(shí)時(shí)處理能力,并能適應(yīng)專業(yè)人員對(duì)推理引擎中的規(guī)則及參數(shù)進(jìn)行修改.在融合人類經(jīng)驗(yàn)方面,產(chǎn)生式推理引擎具有較好的用戶適應(yīng)性.產(chǎn)生式推理引擎可以根據(jù)用戶定義的規(guī)則和當(dāng)前產(chǎn)生的事件進(jìn)行規(guī)則匹配并進(jìn)行沖突消解,將產(chǎn)生的推理結(jié)果反饋給用戶或者運(yùn)行系統(tǒng)進(jìn)一步操作使用的一種推理機(jī)制.如圖1所示,一個(gè)產(chǎn)生式系統(tǒng)通常包括一組規(guī)則集,其中的每個(gè)規(guī)則都包括一組條件和執(zhí)行動(dòng)作,當(dāng)當(dāng)前外部事件與規(guī)則集中的規(guī)則條件在經(jīng)過(guò)模式匹配后都得以滿足時(shí),該規(guī)則的執(zhí)行動(dòng)作將被加入到議程中,如果該動(dòng)作是最終執(zhí)行動(dòng)作,那么該動(dòng)作將被推送入執(zhí)行推理結(jié)果引擎,如果該動(dòng)作為推理中間結(jié)果,那么將被放入工作內(nèi)存中等待后續(xù)事件到達(dá)繼續(xù)執(zhí)行.
圖1 產(chǎn)生式推理引擎示意圖Fig.1 The sketch map of production rule reasoning
可以看到,產(chǎn)生式推理引擎對(duì)人類經(jīng)驗(yàn)融入的接口比較友好,但是其最大缺點(diǎn)是在大量規(guī)則集的情況下同時(shí)到達(dá)大量外部事件時(shí),其匹配效率將十分低下,因?yàn)榘凑彰總€(gè)事件條件和規(guī)則逐一匹配,匹配的事件復(fù)雜度將與規(guī)則數(shù)量和事件數(shù)量的增長(zhǎng)呈指數(shù)相關(guān)特點(diǎn).
因此,本文以提升事件與規(guī)則的匹配效率為出發(fā)點(diǎn),通過(guò)對(duì)事件和規(guī)則進(jìn)行基于Bitmap的編碼,提升了大數(shù)據(jù)事件與規(guī)則的匹配效率,并針對(duì)規(guī)則匹配過(guò)程中無(wú)效數(shù)據(jù)事件對(duì)推理引擎資源的占用問(wèn)題,提出了對(duì)無(wú)效事件的分組與處理機(jī)制,實(shí)驗(yàn)結(jié)果表明了基于Bitmap編碼的推理引擎的有效性.
油田開(kāi)發(fā)生產(chǎn)的優(yōu)化過(guò)程控制中,會(huì)產(chǎn)生實(shí)時(shí)處理大量事件及規(guī)則的需求,為應(yīng)對(duì)大數(shù)據(jù)量事件帶來(lái)的處理問(wèn)題,采用對(duì)事件的編碼壓縮與索引的方法可以有效提升對(duì)事件處理的效率,其中Bitmap是應(yīng)用比較廣泛的一種處理機(jī)制.針對(duì)大數(shù)據(jù)壓縮以及索引問(wèn)題,O′Neil[1?2]最先提出Bitmap索引技術(shù),Bitmap就是用一個(gè)bit位來(lái)標(biāo)記某個(gè)元素對(duì)應(yīng)的數(shù)據(jù),由于采用了bit為單位來(lái)存儲(chǔ)數(shù)據(jù),因此可以大大節(jié)省存儲(chǔ)空間;Bitmap技術(shù)中主要包括了數(shù)據(jù)的壓縮、分類以及檢索[3].許多學(xué)者提出了不同的Bitmap壓縮以及檢索算法.Antoshenkov[4]提出了BBC(Byte-aligned bitmap compression)算法用于支持快速的數(shù)據(jù)壓縮,同時(shí)保持了競(jìng)爭(zhēng)壓縮率(Competitive compression rate);Wu等[5]提出的WAH(World-aligned-hybrid)檢索算法用于索引和搜索像科學(xué)模擬結(jié)果以及網(wǎng)絡(luò)流量這樣數(shù)據(jù)量較大的數(shù)據(jù)集;Delige等提出的PLWAH(Position list word aligned hybrid)基于WAH算法更好地利用壓縮空間以及CPU,在同一個(gè)條件下能夠減少一半的存儲(chǔ)空間[6];Fusco等[7]提出了一種利用單詞碼本來(lái)大量減少Bitmap索引尺寸的算法COMPAX(Compressed adaptive index);Kim等[8]提出了一種新的bitmap壓縮算法SBH(Superbyte-aligned hybrid),該算法不僅是當(dāng)前最先進(jìn)的Bitmap壓縮方案,而且其處理速度是WAH的5倍.清華大學(xué)文羽豪等提出了Bitmap索引壓縮算法[9]、SECOMPAX(Compressed adaptive index)以及Bitmap索引編碼算法MASC[10].
產(chǎn)生式推理是一類基于知識(shí)的模式匹配方法,是實(shí)現(xiàn)知識(shí)自動(dòng)化的重要手段,王飛躍[11]提出知識(shí)自動(dòng)化可以理解成為基于知識(shí)的服務(wù)、基于決策的服務(wù),關(guān)鍵是把數(shù)據(jù)信息與任務(wù)無(wú)縫、準(zhǔn)確、即時(shí)的匹配與結(jié)合起來(lái);RETE算法是規(guī)則匹配中的一類經(jīng)典方法[12];RETE算法是由Forgy[13]在1979年首先提出并進(jìn)行了論述,根據(jù)規(guī)則生成一個(gè)RETE規(guī)則網(wǎng)絡(luò)[14],事件流不斷通過(guò)RETE規(guī)則網(wǎng)絡(luò)進(jìn)行匹配,一直持續(xù)到網(wǎng)絡(luò)的終端節(jié)點(diǎn)才結(jié)束,同時(shí)產(chǎn)生復(fù)合事件[15].RETE適用場(chǎng)景十分廣泛;其中Kawakami等提出了一種基于RETE算法分別用于網(wǎng)絡(luò)拓?fù)涔?jié)點(diǎn)管理[16?17]以及樓宇節(jié)能管理[18?19].Pallavi等[20]應(yīng)用RETE算法提高專家系統(tǒng)的應(yīng)用效率,使得系統(tǒng)返回的信息更令人滿意.Wu提出了線性正向推理算法LFA(Linear forward-chaining)[21],通過(guò)拆分規(guī)則因子和規(guī)則執(zhí)行體來(lái)減少模式匹配的比對(duì)次數(shù),進(jìn)而提升產(chǎn)生式推理系統(tǒng)的性能.燕山大學(xué)馮建周等[22]提出了利用語(yǔ)義本體技術(shù)建立關(guān)聯(lián)數(shù)據(jù)的物聯(lián)網(wǎng)語(yǔ)義關(guān)聯(lián)網(wǎng)絡(luò),通過(guò)Jena事件推理實(shí)現(xiàn)語(yǔ)義推理從而實(shí)現(xiàn)物聯(lián)網(wǎng)系統(tǒng)的智能決策.在現(xiàn)有油田開(kāi)采過(guò)程中應(yīng)用模式匹配用于生產(chǎn)還處于起步階段,朱秀莉等[23]提出基于T-S推理網(wǎng)絡(luò)預(yù)測(cè)油田開(kāi)發(fā)指標(biāo),對(duì)于預(yù)測(cè)問(wèn)題具有一定潛力.
在上述研究中,雖然研究人員針對(duì)RETE算法的性能做了諸多改進(jìn),但是針對(duì)油田推理引擎這種具有到達(dá)事件量大、規(guī)則數(shù)量大且隨時(shí)有修改需求的推理場(chǎng)景涉及較少,因此,本文針對(duì)油田油水井采注聯(lián)合優(yōu)化需求,本文提出了一種基于Bitmap的實(shí)時(shí)推理引擎,通過(guò)引入Bitmap的處理特點(diǎn)來(lái)提升事件與規(guī)則的匹配效率并過(guò)濾無(wú)效事件.
在圖2中,油田專業(yè)用戶可以通過(guò)規(guī)則集可視化接口對(duì)推理系統(tǒng)中的規(guī)則進(jìn)行增加、修改和刪除等操作,實(shí)時(shí)推理引擎可對(duì)當(dāng)前所有規(guī)則集進(jìn)行規(guī)則沖突檢測(cè),當(dāng)新規(guī)則與規(guī)則集中其他規(guī)則有沖突時(shí),推理引擎需要提醒用戶該沖突以及沖突產(chǎn)生原因,該功能可有效避免由于不同用戶在經(jīng)驗(yàn)上的不一致,導(dǎo)致的推理結(jié)果不準(zhǔn)確問(wèn)題;當(dāng)用戶錄入的新規(guī)則不存在沖突時(shí),該規(guī)則可被直接存儲(chǔ)到規(guī)則庫(kù)中.當(dāng)外部事件到達(dá)時(shí),該規(guī)則可以立即成為推理引擎的一部分并被執(zhí)行.此外,在油田實(shí)時(shí)推理引擎中,數(shù)以萬(wàn)計(jì)的油水井將實(shí)時(shí)產(chǎn)生大量與采注作業(yè)相關(guān)的生產(chǎn)事件到達(dá)推理引擎,對(duì)于這些到達(dá)事件的處理需要更多的計(jì)算資源,而且具有緊急響應(yīng)需求的事件(例如油水井工況異常)需要實(shí)時(shí)處理,本文中將通過(guò)到達(dá)事件處理模塊,實(shí)現(xiàn)對(duì)油田場(chǎng)景的處理.
Bitmap就是采用比特位來(lái)標(biāo)記某個(gè)元素在指定前提下對(duì)應(yīng)的值或者存在情況的方法,是一種常用的數(shù)據(jù)庫(kù)索引,由于采用比特位為單位對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ),因此可以節(jié)省存儲(chǔ)空間,并可通過(guò)對(duì)比特位的布爾運(yùn)算提升檢索效率.
假設(shè)規(guī)則R的條件部分(Left hand side,LHS)為
其中(keyi,operationi,valuei)表示中第i個(gè)條件,keyi表示第i個(gè)條件的關(guān)鍵字,operationi表示第i個(gè)條件的操作符,valuei表示第i個(gè)條件的閾值.在Bitmap映射中,將全部規(guī)則集中的條件無(wú)重復(fù)列出,并按照關(guān)鍵字key的升序進(jìn)行排列,形成基于規(guī)則集條件的升序列表.假設(shè)一個(gè)基于規(guī)則集條件的升序列表為
圖2 油田實(shí)時(shí)推理系統(tǒng)Fig.2Real-time reasoning system in oil field
L(Rconditionall)中共包含4個(gè)元素,那么對(duì)于事件“單層含水值=80%”來(lái)說(shuō),其對(duì)應(yīng)升序列表的Bitmap形式為B(E單層含水值)=(0110),其中若第i位為“1”則表示事件與中的第i個(gè)元素的關(guān)鍵字相關(guān),若為“0”則表示不相關(guān)(注:本文中對(duì)于事件的Bitmap形式僅針對(duì)事件中的key部分來(lái)進(jìn)行,而不考慮事件中對(duì)事件取值的判斷).在事件“單層含水值=80%”中,按照每個(gè)中文字符型占用2字節(jié)存儲(chǔ)空間計(jì)算,該事件的關(guān)鍵字“單層含水值”需要10字節(jié)存儲(chǔ),而對(duì)應(yīng)的Bitmap只需要4比特,大大減少了事件的占用空間,也提升了事件對(duì)于相關(guān)規(guī)則的定位效率.
可以看出,事件關(guān)鍵字的表達(dá)與規(guī)則條件的升序列表中的元素個(gè)數(shù)相同,當(dāng)規(guī)則條件升序列表中元素個(gè)數(shù)較多,例如為10000時(shí),對(duì)應(yīng)的事件關(guān)鍵字Bitmap長(zhǎng)度也將達(dá)到10000比特,這將遠(yuǎn)遠(yuǎn)大于原始10字節(jié)的存儲(chǔ)空間.但是在采用規(guī)則條件升序列表前提下,事件的Bitmap中為“1”的比特位會(huì)集中出現(xiàn),其余位均為0,針對(duì)這種情況的Bitmap,其壓縮方法已有很多,COMPAX編碼[7]可以較好地解決該問(wèn)題.
圖3所示為實(shí)時(shí)推理引擎架構(gòu),主要包含到達(dá)事件處理和推理?xiàng)l件過(guò)濾兩部分.到達(dá)事件處理模塊完成對(duì)達(dá)到數(shù)據(jù)的事件處理以及編碼功能,推理?xiàng)l件過(guò)濾模塊完成對(duì)編碼后事件的篩選與原子條件觸發(fā)與推理執(zhí)行功能.
在油田實(shí)時(shí)推理引擎中,將主要接收兩類報(bào)文,一是由工業(yè)物聯(lián)網(wǎng)傳感器獲取的實(shí)時(shí)生產(chǎn)及工況數(shù)據(jù),另一類是由油田用戶選定的需要分析的靜態(tài)勘探開(kāi)發(fā)數(shù)據(jù).由于這兩類報(bào)文來(lái)源不同,導(dǎo)致其表現(xiàn)形式各異,需要對(duì)這些數(shù)據(jù)進(jìn)行預(yù)處理.本文將這些具有復(fù)雜結(jié)構(gòu)的周期作業(yè)報(bào)文以及油田勘探開(kāi)發(fā)數(shù)據(jù)庫(kù)中的各類數(shù)據(jù)采用事件封裝的形式來(lái)統(tǒng)一處理,對(duì)于實(shí)時(shí)推理引擎來(lái)說(shuō),統(tǒng)稱為到達(dá)事件.需要注意的是,這兩類數(shù)據(jù)的位置標(biāo)定方式略有不同,其中傳感器獲取的數(shù)據(jù)通常以“井號(hào),時(shí)間”為中心進(jìn)行描述存放在油田開(kāi)發(fā)動(dòng)態(tài)庫(kù)中,而油田靜態(tài)勘探開(kāi)發(fā)數(shù)據(jù)主要為油田工程師使用,使用方式著眼于油水井與地層之間的關(guān)系,通常以“井號(hào)+區(qū)塊+層號(hào)”來(lái)使用相應(yīng)地層地質(zhì)信息,因此需要對(duì)這兩類數(shù)據(jù)報(bào)文進(jìn)行基于井號(hào)的事件位置對(duì)齊.為簡(jiǎn)化對(duì)異構(gòu)數(shù)據(jù)源的處理,本文給出如下定義:
圖3 實(shí)時(shí)推理引擎架構(gòu)Fig.3 The architecture of real-time reasoning engine
定義1.原子事件:指僅包含一種數(shù)據(jù)類型的事件.
定義 2.原子規(guī)則:指規(guī)則中的RHS(Right hand side)部分僅能通過(guò)同時(shí)滿足全部LHS條件才能觸發(fā)的規(guī)則,即原子規(guī)則中的LHS只能為單條件規(guī)則或者只包“∧”運(yùn)算符的條件組合.
定義3.原子條件:原子規(guī)則中具有不可再分特征的條件.
例如,對(duì)于具有單井溫度、油壓、套壓、電參信息的復(fù)雜工業(yè)物聯(lián)網(wǎng)傳感器報(bào)文,可以通過(guò)原子事件提取拆分成4個(gè)原子事件,其中溫度、油壓、套壓等信息稱為原子事件的關(guān)鍵字,原子事件表達(dá)形式為其中分別代表事件ei的關(guān)鍵字、值、地理位置和時(shí)間窗口.在形成原子事件后,要完成對(duì)事件中關(guān)鍵字和地理位置的編碼.
的編碼采用基于Bitmap的編碼方式,首先對(duì)規(guī)則集中的所有原子條件進(jìn)行基于條件關(guān)鍵字的升序排列,形成原子條件升序列表L(AtomicCondition),然后對(duì)L(AtomicCondition)中的不同關(guān)鍵字起止位置構(gòu)建B+樹(shù)Tree(AtomicCondition).對(duì)于到達(dá)事件中的關(guān)鍵字,通過(guò)對(duì)Tree(AtomicCondition)的檢索,將對(duì)應(yīng)起止位的比特值置為“1”,其他位置為“0”,然后采用COMPAX編碼進(jìn)行壓縮.
油水井是人類與油藏地質(zhì)發(fā)生作用的連接點(diǎn),因此在油田分析處理業(yè)務(wù)中,數(shù)據(jù)的觀測(cè)位置是以井號(hào)為中心的.但是由于地質(zhì)位置具有三維特征,油藏的形成具有一定的區(qū)域性特征,因此在保存油井靜態(tài)位置信息時(shí)不僅會(huì)保留井號(hào)視角,還會(huì)存儲(chǔ)油井在不同地質(zhì)層的巖層、物性等信息.這樣,為了實(shí)現(xiàn)對(duì)油田事件的多視角分析,要對(duì)只具有井號(hào)信息的傳感器事件進(jìn)行地理位置補(bǔ)齊.當(dāng)前,對(duì)于我國(guó)開(kāi)發(fā)成熟的油田公司,單個(gè)油田的區(qū)塊劃分不會(huì)多于100個(gè),了解全面的地質(zhì)層劃分也不會(huì)多于1000個(gè),因此可分別構(gòu)建區(qū)塊關(guān)鍵字升序列表和地質(zhì)層關(guān)鍵字升序列表,通過(guò)與井號(hào)的關(guān)聯(lián)來(lái)實(shí)現(xiàn)對(duì)地理位置的補(bǔ)充,為規(guī)則中基于位置劃分推理范圍的條件提供支持.
在到達(dá)事件處理模塊對(duì)原子事件進(jìn)行關(guān)鍵字和地理位置編碼后,將形成原子事件列表.
為了提高規(guī)則匹配的執(zhí)行效率,需對(duì)規(guī)則進(jìn)行預(yù)處理,將原始規(guī)則集轉(zhuǎn)換成高效的β網(wǎng)絡(luò).油田規(guī)則集的制定由油田用戶來(lái)制定,規(guī)則的條件既有合取操作,也有析取操作,按照對(duì)油田油藏及生產(chǎn)分析的經(jīng)驗(yàn)來(lái)制定.可形成形如x1∧x2∧(y1∨(z1∧z2))→A1的規(guī)則表達(dá)式,其中xi,yi,zi代表原子條件,Ai代表執(zhí)行的動(dòng)作.邏輯運(yùn)算在經(jīng)過(guò)轉(zhuǎn)換后可形成析取范式,上述規(guī)則的轉(zhuǎn)換過(guò)程如下:
這樣,規(guī)則在經(jīng)過(guò)標(biāo)準(zhǔn)化轉(zhuǎn)化后都可形成析取范式,得到的析取范式可分別形成具有原子規(guī)則特征的規(guī)則來(lái)執(zhí)行,具有較高的獨(dú)立性,可以用樹(shù)形結(jié)構(gòu)來(lái)表達(dá)析取范式得到的兩個(gè)原子規(guī)則,如圖4.
圖4 原子規(guī)則樹(shù)Fig.4 Atomic rule trees
圖5 β網(wǎng)絡(luò)Fig.5 β network
從上圖中的原子規(guī)則樹(shù)可以看出,如果將規(guī)則樹(shù)中的原子條件按照關(guān)鍵字升序排列,那么原子條件x1和x2將重復(fù)出現(xiàn)兩次,也意味著事件與條件的匹配將重復(fù)進(jìn)行兩次,降低了匹配效率并占用了更多的規(guī)則存儲(chǔ)空間.因此,對(duì)具有重復(fù)原子條件的規(guī)則進(jìn)行原子條件合并,構(gòu)建β網(wǎng)絡(luò),如圖5所示.
在β網(wǎng)絡(luò)中,作為輸入的原子條件只出現(xiàn)一次,對(duì)于多條規(guī)則中出現(xiàn)的相同原子條件通過(guò)復(fù)合條件x1∧x2、x1∧x2∧y1、x1∧x2∧z1∧z2的形式來(lái)實(shí)現(xiàn).
原子條件篩選流程圖如圖6所示.
圖6 原子條件篩選流程圖Fig.6 The flow chart for atomic condition filtering
在油田業(yè)務(wù)推理過(guò)程中,數(shù)據(jù)視角以井號(hào)為中心,輔以所屬區(qū)塊、地質(zhì)分層等位置信息,所以在形成原子事件列表后,需要按照空間相關(guān)和時(shí)間相關(guān)性進(jìn)行事件分類.如上圖所示,時(shí)空事件分組指對(duì)原子事件列表中的任意事件的地理位置編碼和時(shí)間窗口按照用戶指定模式進(jìn)行邏輯與操作,當(dāng)且僅當(dāng)兩個(gè)事件的地理位置編碼和時(shí)間窗口編碼與用戶指定時(shí)空條件的邏輯與操作均不為0時(shí),該兩個(gè)事件可以形成一個(gè)分組;否則將形成新的時(shí)空事件分組.算法說(shuō)明如下:
算法1.時(shí)空事件分組
然后對(duì)同一分組中事件的關(guān)鍵字編碼進(jìn)行邏輯或操作并得到結(jié)果KG,將KG與所有規(guī)則逐條進(jìn)行匹配,只有當(dāng)匹配結(jié)果表明該規(guī)則的所有條件關(guān)鍵字均在事件分組中出現(xiàn),將事件分組傳遞到原子條件觸發(fā)模塊,進(jìn)行規(guī)則執(zhí)行,算法說(shuō)明如下.
算法2.分組事件與規(guī)則匹配
算法2可以用來(lái)判斷當(dāng)前分組事件是否覆蓋原子規(guī)則中所有條件的關(guān)鍵字,只有當(dāng)原子規(guī)則條件中各關(guān)鍵字相關(guān)事件全部到達(dá),該規(guī)則方可執(zhí)行.通過(guò)該判斷,可以有效過(guò)濾掉不相關(guān)事件,即不相關(guān)事件不會(huì)進(jìn)行原子條件觸發(fā).
其中,kij,oij,vij分別代表第j個(gè)規(guī)則條件中的第i個(gè)關(guān)鍵字、操作符和閾值,且kim=kin(m/=n),這樣,可形成規(guī)則集R的基于原子條件關(guān)鍵字的升序列表.
假設(shè)對(duì)于到達(dá)原子事件時(shí)空分組形成的一組事件中包括兩個(gè)事件e1和e2,其中事件e1的Bitmap編碼為B(e1)=(1110000),e2的Bitmap編碼為B(e2)=(0001110),計(jì)算KG=B(e1)∨B(e2)=(1111110),然后分別計(jì)算KG各規(guī)則條件編碼的邏輯與值,有
油田業(yè)務(wù)分析過(guò)程中,有些推理執(zhí)行結(jié)果是進(jìn)行進(jìn)一步模型計(jì)算,并將結(jié)果反饋到推理系統(tǒng)繼續(xù)使用,這時(shí),需要將具有計(jì)算特性的推理執(zhí)行動(dòng)作結(jié)果反饋到到達(dá)事件處理模塊,重新進(jìn)行編碼計(jì)算,以觸發(fā)相應(yīng)規(guī)則的執(zhí)行.
為對(duì)實(shí)時(shí)推理引擎在油田業(yè)務(wù)中的執(zhí)行性能進(jìn)行分析,本文推理引擎對(duì)實(shí)際油田業(yè)務(wù)進(jìn)行了部署測(cè)試.
本文構(gòu)建數(shù)據(jù)集主要包括規(guī)則集合和事件集合.
規(guī)則集包括對(duì)單采油井生產(chǎn)優(yōu)化推理規(guī)則子集、單注水井注水優(yōu)化推理規(guī)則子集、采注聯(lián)通關(guān)系分析規(guī)則子集以及在約束條件下采注聯(lián)合優(yōu)化措施選取規(guī)則子集等.圖7所示為油水井聯(lián)合優(yōu)化措施流程圖.
其中采油單井生產(chǎn)優(yōu)化推理規(guī)則子集中包括PVT(Pressure-volume-temperature)模型計(jì)算分析規(guī)則、多相管流模型計(jì)算分析規(guī)則、采油井流入動(dòng)態(tài)模型計(jì)算分析規(guī)則、單采油井最大產(chǎn)量?jī)?yōu)化設(shè)計(jì)規(guī)則與定產(chǎn)量?jī)?yōu)化設(shè)計(jì)規(guī)則等;單注水井優(yōu)化規(guī)則子集中包括吸水能力分析規(guī)則、水驅(qū)特征分析規(guī)則、注水井生產(chǎn)優(yōu)化設(shè)計(jì)規(guī)則等;油水井協(xié)同優(yōu)化規(guī)則子集包括開(kāi)發(fā)生產(chǎn)系統(tǒng)現(xiàn)狀分析規(guī)則、遞減分析規(guī)則、采油井與注水井單井優(yōu)化備選方案管理規(guī)則、物質(zhì)平衡分析規(guī)則、采注井動(dòng)態(tài)連通關(guān)系計(jì)算分析規(guī)則、油水井協(xié)同生產(chǎn)組合優(yōu)化方案選取規(guī)則等.各規(guī)則集執(zhí)行側(cè)將進(jìn)行模型計(jì)算與識(shí)別分析功能,并反饋到推理引擎中進(jìn)行進(jìn)一步優(yōu)化規(guī)則的觸發(fā).上述單井優(yōu)化規(guī)則集將形成多種采注優(yōu)化采注方案組合,對(duì)多組優(yōu)化采注組合方案,在系統(tǒng)整體目標(biāo)約束規(guī)則下進(jìn)行最優(yōu)組合選取,系統(tǒng)整體目標(biāo)通常包括總產(chǎn)量高、總欠注水量低、總生產(chǎn)能耗低等,閾值設(shè)定依據(jù)油田生產(chǎn)特征來(lái)人工設(shè)定.本文采用對(duì)規(guī)則集進(jìn)行了原子規(guī)則拆分,形成測(cè)試規(guī)則集合.
事件集合采用勘探開(kāi)發(fā)靜態(tài)數(shù)據(jù)、萬(wàn)口油水井規(guī)模的生產(chǎn)實(shí)時(shí)工況與動(dòng)態(tài)數(shù)據(jù)以及300口生產(chǎn)參數(shù)可調(diào)整油水井.在試驗(yàn)過(guò)程中,通過(guò)設(shè)定分析需要覆蓋的區(qū)塊,來(lái)控制到達(dá)事件數(shù)量的變化.
圖7 油水井采注協(xié)同優(yōu)化流程圖Fig.7 The co-optimizationflow chart for injection-production in oil and water wells
實(shí)時(shí)推理引擎部署在國(guó)內(nèi)某油田公司,平臺(tái)硬件配置為Interl Core i5,2GB內(nèi)存和百兆以太網(wǎng)卡.
移動(dòng)通信生產(chǎn)性實(shí)訓(xùn)基地建成后,基本具備企業(yè)真實(shí)工作環(huán)境,可以更好地進(jìn)行校企深度合作,為共同培養(yǎng)學(xué)生、承接生產(chǎn)性項(xiàng)目、更好地為通信行業(yè)提供報(bào)務(wù)打下良好的基礎(chǔ)。
本文提出的實(shí)時(shí)推理引擎通過(guò)基于Bitmap的事件處理來(lái)實(shí)現(xiàn)對(duì)到達(dá)事件的篩選,以優(yōu)化規(guī)則引擎的匹配過(guò)程,目的在于提升對(duì)更多到達(dá)事件的可處理能力.RETE作為經(jīng)典的產(chǎn)生式推理算法已經(jīng)得到了廣泛的研究,LFA算法作為經(jīng)典的規(guī)則引擎匹配算法也致力于減少模式匹配次數(shù),因此,本文選取RETE和LFA作為性能對(duì)比算法.如圖8所示為在規(guī)則數(shù)為5000時(shí),本文方法在到達(dá)事件處理能力上與RETE、LFA的對(duì)比結(jié)果,其中到達(dá)事件量為每秒鐘的事件數(shù)量.
圖8 不同到達(dá)事件情況下性能對(duì)比圖Fig.8 The performance comparison with different numbers of arrival events
從圖8試驗(yàn)對(duì)比結(jié)果可以看出,本文實(shí)時(shí)推理引擎、RETE推理引擎和LFA算法在到達(dá)事件量為4500 events/s時(shí),均可對(duì)到達(dá)事件進(jìn)行實(shí)時(shí)處理:隨著同時(shí)到達(dá)事件量增加至5000 events/s,本文方法和RETE算法仍可實(shí)時(shí)處理到達(dá)事件,但是LFA算法已經(jīng)不能實(shí)時(shí)處理更多的到達(dá)事件,其原因是LFA算法在對(duì)到達(dá)事件的對(duì)比方法開(kāi)銷要大于Bitmap方法,加之等待執(zhí)行的到達(dá)事件對(duì)資源的耗費(fèi),使得其處理能力難以處理更多的到達(dá)事件:在到達(dá)事件數(shù)在5000 events/s以上時(shí),RETE算法可實(shí)時(shí)響應(yīng)的事件數(shù)量沒(méi)有顯著增加,本文方法在到達(dá)事件數(shù)量小于40000/s的時(shí)候,均可對(duì)到達(dá)事件進(jìn)行實(shí)時(shí)處理.
圖9所示為在每秒到達(dá)事件數(shù)為20000時(shí),不同方法在不同原子條件數(shù)量下,推理引擎的可處理事件數(shù)量.可以看出RETE和LFA算法在原子條件數(shù)增加的情況下,可處理事件數(shù)量下降明顯,在原子條件數(shù)量達(dá)到20000時(shí),RETE算法的可實(shí)時(shí)處理事件數(shù)維持在2000左右,LFA算法的可實(shí)時(shí)處理事件數(shù)下降到500左右;本文方法在原子條件數(shù)達(dá)到10000時(shí),可處理事件數(shù)對(duì)比達(dá)到事件數(shù)量處理能力略有下降,其后維持在穩(wěn)定狀態(tài).
圖9 不同原子條件下性能對(duì)比圖Fig.9 The performance comparison with different numbers of atomic conditions
通過(guò)對(duì)本文實(shí)時(shí)推理引擎、傳統(tǒng)RETE算法以及LFA算法的比較可以看出,基于Bitmap的實(shí)時(shí)推理引擎在篩選無(wú)效到達(dá)事件的處理以及模式匹配方面的改進(jìn)是有效的,使得整體性能優(yōu)于傳統(tǒng)方法.
基于本文油水井采注優(yōu)化實(shí)時(shí)推理引擎,對(duì)油田300口可調(diào)整作業(yè)參數(shù)的油水井口進(jìn)行試驗(yàn),單井平均日耗電量從200kWh降低到145kWh、區(qū)塊生產(chǎn)時(shí)效提高100天,對(duì)比應(yīng)用前具有有效性.
本文針對(duì)油田采注聯(lián)合優(yōu)化的實(shí)現(xiàn)過(guò)程中,需要大量融入人類經(jīng)驗(yàn)進(jìn)行全局分析的場(chǎng)景,提出了一種基于Bitmap編碼的實(shí)時(shí)推理引擎,通過(guò)對(duì)產(chǎn)生的事件關(guān)鍵字進(jìn)行比特位級(jí)編碼及壓縮,可以有效提升事件與規(guī)則的匹配能力.并針對(duì)油田業(yè)務(wù)規(guī)則中的時(shí)空相關(guān)性,對(duì)產(chǎn)生事件進(jìn)行篩選,對(duì)當(dāng)前規(guī)則無(wú)效事件,將不會(huì)進(jìn)入規(guī)則觸發(fā)流程,有效減少了大量到達(dá)事件對(duì)規(guī)則推理引擎的壓力,提升了實(shí)時(shí)推理引擎的性能.針對(duì)某油田公司業(yè)務(wù)系統(tǒng)進(jìn)行了推理引擎實(shí)驗(yàn),結(jié)果表明本文方法在到達(dá)事件數(shù)和規(guī)則數(shù)增加時(shí),均有良好的處理性能.后續(xù)工作將對(duì)油井采注優(yōu)化過(guò)程中各參數(shù)的選擇進(jìn)行基于大數(shù)據(jù)分析的智能學(xué)習(xí),以使得推理引擎能更快的適應(yīng)于不同地質(zhì)條件的油田場(chǎng)景.
1 O0Neil P E.Model 204 architecture and performance.In:Proceedings of the 2nd International Workshop on High Performance Transaction Systems.London,UK:Springer,1987.40?59
2 O0Neil P E,Quass D.Improved query performance with variant indexes.ACM SIGMOD Record,1997,26(2):38?49
3 van Schaik S J,de Moor O.A memory efficient reachability data structure through bit vector compression.In:Proceedings of the 2011 ACM SIGMOD International Conference on Management of Data.Athens,Greece:ACM,2011.913?924
4 Antoshenkov G.Byte-aligned bitmap compression.In:Proceedings of the 5th Data Compression Conference.Snowbird,UT,USA:IEEE,1995.476
5 Wu K S,Otoo E J,Shoshani A.Optimizing bitmap indices with efficient compression.ACM Transactions on Database Systems(TODS),2006,31(1):1?38
7 Fusco F,Stoecklin M P,Vlachos M.NET-FLi:on-the- fly compression,archiving and indexing of streaming network traffic.Proceedings of the VLDB Endowment,2010,3(1?2):1382?1393
8 Kim S,Lee J,Satti S R,Moon B.SBH:super byte-aligned hybrid bitmap compression.Information Systems,2016,62:155?168
9 Wen Y H,Chen Z,Ma G,Cao J W,Zheng W X,Peng G D,Li S W,Huang W L.SECOMPAX:a bitmap index compression algorithm.In:Proceedings of the 23rd International Conference on Computer Communication and Networks(ICCCN).Shanghai,China:IEEE,2014.1?7
10 Wen Y H,Wang H,Chen Z,Cao J W,Peng G D,Huang W L,Hu Z W,Zhou J,Guo J H.MASC:a bitmap index encoding algorithm for fast data retrieval.In:Proceedings of the 2016 IEEE International Conference on Communications(ICC).Kuala Lumpur,Malaysia:IEEE,2016.1?6
11 Wang Fei-Yue.Software-de fined systems and knowledge automation:a parallel paradigm shift from Newton to Merton.Acta Automatica Sinica,2015,41(1):1?8(王飛躍.軟件定義的系統(tǒng)與知識(shí)自動(dòng)化:從牛頓到默頓的平行升華.自動(dòng)化學(xué)報(bào),2015,41(1):1?8)
12 Wu Dan-Feng,Zeng Guang-Ping,Yan Jing-Ying.Research on rete algorithm supporting evolution rules engine.Application Research of Computers,2013,30(6):1747?1750(武丹鳳,曾廣平,閆京穎.支持演化規(guī)則引擎的rete算法研究.計(jì)算機(jī)應(yīng)用研究,2013,30(6):1747?1750)
13 Forgy C L.Rete:a fast algorithm for the many pattern/many object pattern match problem.Arti ficial Intelligence,1982,19(1):17?37
14 Hong Y G,Kim H J,Park H D,Kim D H.Adaptive GTS allocation scheme to support QoS and multiple devices in 802.15.4.In:Proceedings of the 11th International Conference on Advanced Communication Technology.Phoenix Park,Ireland:IEEE,2009.1697?1702
15 Xu Jiu-Qiang,Lu Suo,Liu Da-Peng,Kong Qiu-Shi.Research on RFID composite events detection based on improved rete algorithm.Journal of Northeastern University(Natural Science),2012,33(6):806?809,814(徐久強(qiáng),盧鎖,劉大鵬,孔求實(shí).基于改進(jìn)Rete算法的RFID復(fù)合事件檢測(cè)方法.東北大學(xué)學(xué)報(bào)(自然科學(xué)版),2012,33(6):806?809,814)
16 Kawakami T,Yoshihisa T,Yanagisawa Y,Tsukamoto M.A rule processing scheme using the rete algorithm in grid topology networks.In:Proceedings of the 29th International Conference on Advanced Information Networking and Applications(AINA).Gwangju,Korea:IEEE,2015.674?679
17 Kawakami T,Yoshihisa T,Tsukamoto M.A control method of ubiquitous computers using the RETE algorithm in grid topology network.In:Proceedings of the 3rd Global Conference on Consumer Electronics(GCCE).Tokyo,Japan:IEEE,2014.551?552
18 Kawakami T,Yoshihisa T,Fujita N,Tsukamoto M.A rulebased home energy management system using the RETE algorithm.In:Proceedings of the 2nd Global Conference on Consumer Electronics(GCCE).Tokyo,Japan:IEEE,2013.162?163
19 Kawakami T,Fujita N,Yoshihisa T,Tsukamoto M.An evaluation and implementation of rule-based home energy management system using the RETE algorithm.The Scienti fic World Journal,2014,2014:Article No.591478
20 Pallavi M S,Vaisakh P,Reshna N P.Implementation of rete algorithm using course finder system.In:Proceedings of the 2016 International Conference on Data Mining and Advanced Computing(SAPIENCE).Ernakulam,India:IEEE,2016.96?100
21 Wu X D.LFA:a linear forward-chaining algorithm for AI production systems.Expert Systems,1993,10(4):237?242
22 Feng Jian-Zhou,Song Sha-Sha,Kong Ling-Fu.Research on semantic association and decision method of the internet of things.Acta Automatica Sinica,2016,42(11):1691?1701(馮建周,宋沙沙,孔令富.物聯(lián)網(wǎng)語(yǔ)義關(guān)聯(lián)和決策方法的研究.自動(dòng)化學(xué)報(bào),2016,42(11):1691?1701)
23 Zhu Xiu-Li,Li Long,Li Pan-Chi.Forecasting methods of oil field development indexes based on T-S reasoning networks.Application Research of Computers,2011,28(8):2991?2993(朱秀莉,李龍,李盼池.基于T-S推理網(wǎng)絡(luò)的油田開(kāi)發(fā)指標(biāo)預(yù)測(cè)方法.計(jì)算機(jī)應(yīng)用研究,2011,28(8):2991?2993)