• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Drools的路面智能養(yǎng)護(hù)系統(tǒng)的研究與實(shí)現(xiàn)

      2013-08-29 10:41:28朱會(huì)兵
      交通科技 2013年4期
      關(guān)鍵詞:路況引擎沖突

      楊 飛 朱會(huì)兵 馬 和

      (1.湖北省交通運(yùn)輸廳漢十高速公路管理處 武漢 430051;2.武漢理工大學(xué)信息工程學(xué)院 武漢 430070)

      隨著交通量的增長(zhǎng),通車(chē)時(shí)間越久,高速公路的破損情況就會(huì)越嚴(yán)重。早期修建的高速公路大多已接近使用年限,需要大修和改建;近年修建的高速公路也出現(xiàn)了不同程度的損壞。因此,及時(shí)準(zhǔn)確地掌握高速公路的狀態(tài)信息并采取相應(yīng)的養(yǎng)護(hù)措施,對(duì)于維持高速公路良好的使用狀態(tài)和保護(hù)人民群眾生命財(cái)產(chǎn)安全都具有重大意義。對(duì)于業(yè)務(wù)邏輯的實(shí)現(xiàn),多數(shù)路面管理系統(tǒng)采取固化在程序代碼中的方式來(lái)實(shí)現(xiàn),當(dāng)業(yè)務(wù)邏輯很復(fù)雜并且發(fā)生變化時(shí),系統(tǒng)的修改和擴(kuò)展需要花費(fèi)很大的代價(jià)。顯然,這種高度耦合的方式給系統(tǒng)帶來(lái)了很大風(fēng)險(xiǎn)。規(guī)則引擎可以很好地解決以上問(wèn)題。本系統(tǒng)是以交通運(yùn)輸部2012年度推廣應(yīng)用項(xiàng)目——“瀝青路面智能化養(yǎng)護(hù)關(guān)鍵技術(shù)”成果為基礎(chǔ),在構(gòu)建了瀝青路面養(yǎng)護(hù)對(duì)策庫(kù)的基礎(chǔ)上,研發(fā)了一種采用基于規(guī)則引擎的路面智能養(yǎng)護(hù)系統(tǒng)。該系統(tǒng)采用Drools作為系統(tǒng)的規(guī)則引擎,主要解決了以下問(wèn)題:公路養(yǎng)護(hù)規(guī)則引擎的設(shè)計(jì)和規(guī)則的實(shí)現(xiàn);規(guī)則的維護(hù)和管理;規(guī)則沖突的解決;系統(tǒng)的兼容性;整合前臺(tái)顯示規(guī)則與后臺(tái)規(guī)則文件。

      1 系統(tǒng)總體設(shè)計(jì)

      1.1 規(guī)則引擎技術(shù)

      規(guī)則引擎是一種嵌入在應(yīng)用程序中的組件,實(shí)現(xiàn)了將業(yè)務(wù)邏輯從應(yīng)用程序中分離出來(lái),并使用預(yù)定義的語(yǔ)義模塊編寫(xiě)業(yè)務(wù)邏輯。規(guī)則引擎的主要工作是將輸入的數(shù)據(jù)對(duì)象與加載的規(guī)則進(jìn)行匹配,并由符合條件的規(guī)則生成規(guī)則執(zhí)行實(shí)例。目前主流的規(guī)則引擎包括Ilog JRules,Drools,Jess,等等[1]。其中Ilog JRules和Jess都是相當(dāng)成熟的商業(yè)BRMS,提供了一套完整的規(guī)則建模、規(guī)則編寫(xiě)、規(guī)則測(cè)試、規(guī)則部署和維護(hù)的工具,但是價(jià)格非常昂貴。Drools規(guī)則引擎是由JBoss開(kāi)發(fā)的優(yōu)秀的開(kāi)源規(guī)則引擎[2],是開(kāi)源規(guī)則引擎中使用最廣的產(chǎn)品之一。除具有一般規(guī)則引擎的優(yōu)點(diǎn)外,還具有高效的算法、豐富的規(guī)則語(yǔ)言、強(qiáng)大的API和工具集成等特點(diǎn)[3]。故選擇Drools作為系統(tǒng)的規(guī)則引擎。

      1.2 系統(tǒng)功能模塊

      (1)基本信息模塊。主要包括路線編碼、區(qū)間編碼、路段編碼、公路等級(jí)、路面類(lèi)型、車(chē)道類(lèi)型、面層類(lèi)型和基層類(lèi)型等基本信息的管理。

      (2)養(yǎng)護(hù)評(píng)價(jià)模塊。主要功能是對(duì)路面使用性能 (PQI)、路 面 破 損 (PCI)、路 面 平 整 度(RQI)、路面車(chē)轍(RDI)、路面抗滑性能(SRI)和路面結(jié)構(gòu)強(qiáng)度(PSSI)6個(gè)路況參數(shù)做出評(píng)價(jià)。

      (3)養(yǎng)護(hù)決策模塊。主要功能是根據(jù)路況數(shù)據(jù)得出養(yǎng)護(hù)方案和養(yǎng)護(hù)造價(jià)。

      (4)規(guī)則管理模塊。主要包括規(guī)則文件的編輯、沖突解決策略。

      (5)系統(tǒng)管理模塊。主要包括用戶管理、權(quán)限管理和系統(tǒng)日志。

      2 系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

      2.1 系統(tǒng)邏輯結(jié)構(gòu)

      系統(tǒng)邏輯結(jié)構(gòu)分為表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)持久層3個(gè)層次,見(jiàn)圖1。

      圖1 系統(tǒng)邏輯架構(gòu)圖

      在表示層中,從JSP頁(yè)面發(fā)送來(lái)的請(qǐng)求被轉(zhuǎn)發(fā)到相應(yīng)的Action控制器。Action控制器首先獲取用戶請(qǐng)求參數(shù),然后調(diào)用業(yè)務(wù)邏輯層中相應(yīng)的Service組件,Service組件再調(diào)用數(shù)據(jù)持久層中相應(yīng)的Dao組件,執(zhí)行相應(yīng)的數(shù)據(jù)庫(kù)操作,返回的處理結(jié)果將通過(guò)Action輸出到JSP頁(yè)面。當(dāng)用戶進(jìn)行養(yǎng)護(hù)決策時(shí),養(yǎng)護(hù)決策Action控制器調(diào)用業(yè)務(wù)邏輯層中的養(yǎng)護(hù)決策Service組件取得相應(yīng)路況信息,調(diào)用規(guī)則管理Service組件從規(guī)則庫(kù)中取得規(guī)則文件。使用規(guī)則引擎進(jìn)行模式匹配,匹配成功的規(guī)則被送入議程等待執(zhí)行,執(zhí)行完畢后,輸出養(yǎng)護(hù)方案。

      2.2 養(yǎng)護(hù)決策規(guī)則的生成

      依據(jù)“瀝青路面智能化養(yǎng)護(hù)關(guān)鍵技術(shù)”的研究成果,本系統(tǒng)根據(jù)養(yǎng)護(hù)對(duì)策生成各項(xiàng)的判別規(guī)則并存儲(chǔ)到數(shù)據(jù)庫(kù)中。例如:當(dāng)PCI>70,RQI>43.8,RDI>70,SRI>80.5,PSSI>80.2,并且病害類(lèi)型為裂縫、局部坑槽、擁包、沉陷、松散和翻漿其中之一時(shí),養(yǎng)護(hù)方案為F11。

      (1)如果用戶輸入的路況數(shù)據(jù)只包含PCI,RQI等5個(gè)參數(shù),不含病害數(shù)據(jù)和輔助參數(shù),則要先按使用相同判別參數(shù)的規(guī)則進(jìn)行規(guī)則的合并,生成FILE類(lèi)型的規(guī)則文件。

      (2)如果用戶輸入的路況數(shù)據(jù)包含PCI,RQI等5個(gè)參數(shù)且包含病害數(shù)據(jù),但不包含輔助參數(shù),則合并后生成對(duì)應(yīng)于FILEX類(lèi)型的規(guī)則文件。

      (3)如果用戶輸入的路況數(shù)據(jù)包含PCI,RQI等5個(gè)參數(shù)且包含輔助參數(shù),但不包含病害數(shù)據(jù),則合并后生成對(duì)應(yīng)于FILEY類(lèi)型的規(guī)則文件。

      (4)如果用戶輸入的路況數(shù)據(jù)包含PCI,RQI等5個(gè)參數(shù)且包含病害數(shù)據(jù),也包含輔助參數(shù),則上述規(guī)則對(duì)應(yīng)于FILEZ類(lèi)型的規(guī)則文件。

      一個(gè)標(biāo)準(zhǔn)的規(guī)則文件就是一個(gè)擴(kuò)展名為.drl的文本文件。根據(jù)規(guī)則文件的結(jié)構(gòu),可以將規(guī)則分為3部分:屬性聲明部分(attribute)、條件部分(LHS)和結(jié)果部分(RHS)。規(guī)則格式如下:

      為了方便用戶輸入,這里采用可視化界面進(jìn)行規(guī)則的生成和管理;并且設(shè)計(jì)了一個(gè)專(zhuān)門(mén)用于“翻譯”的JavaBean,實(shí)現(xiàn)前臺(tái)顯示與后臺(tái)規(guī)則文件的統(tǒng)一,見(jiàn)圖2。

      圖2 規(guī)則文件添加界面

      2.3 養(yǎng)護(hù)決策的處理流程

      養(yǎng)護(hù)決策模塊的處理流程包括數(shù)據(jù)準(zhǔn)備、規(guī)則編譯、規(guī)則執(zhí)行和養(yǎng)護(hù)方案生成4部分。啟動(dòng)養(yǎng)護(hù)決策之后,首先判斷數(shù)據(jù)庫(kù)中是否存在指定的路況數(shù)據(jù),如果存在,則讀取路況數(shù)據(jù)和規(guī)則文件。然后編譯規(guī)則文件,編譯通過(guò)之后設(shè)置全局變量,并插入路況數(shù)據(jù),執(zhí)行規(guī)則文件,如果已經(jīng)生成養(yǎng)護(hù)方案,則計(jì)算造價(jià)并存入數(shù)據(jù)庫(kù),見(jiàn)圖3。

      圖3 養(yǎng)護(hù)決策流程圖

      2.4 沖突的解決策略

      一個(gè)事實(shí)對(duì)象在模式匹配的過(guò)程中,規(guī)則庫(kù)中有多條規(guī)則與之匹配,從而可能產(chǎn)生多種結(jié)果,但不能確定具體得到哪個(gè)結(jié)果,即稱(chēng)產(chǎn)生了規(guī)則沖突[4]。規(guī)則沖突的根源來(lái)自于規(guī)則庫(kù)的邏輯不完備或者不一致。因?yàn)橐?guī)則庫(kù)本身是一個(gè)邏輯系統(tǒng),當(dāng)規(guī)則庫(kù)的添加或者修改導(dǎo)致規(guī)則庫(kù)的邏輯不一致或者不完備時(shí),就會(huì)發(fā)生規(guī)則沖突。Drools提供的沖突解決策略包括設(shè)置優(yōu)先級(jí)和LIFO(后進(jìn)先出)[5]。通過(guò)給規(guī)則設(shè)置優(yōu)先級(jí),可以確保不同優(yōu)先級(jí)的規(guī)則不發(fā)生沖突,但是相同優(yōu)先級(jí)的規(guī)則仍然可能沖突。后進(jìn)先出策略只是簡(jiǎn)單地讓后進(jìn)入議程(Agenda)的規(guī)則先被激活,但是對(duì)可能存在的沖突沒(méi)有做任何處理。

      如何發(fā)現(xiàn)這種邏輯上的包含關(guān)系是問(wèn)題的關(guān)鍵。一種方法是直接寫(xiě)if判斷語(yǔ)句,如果用戶輸入的規(guī)則條件里有“不要求”語(yǔ)句,并且條件的其他部分與規(guī)則庫(kù)里的某一條規(guī)則相同,那么就判定用戶輸入的規(guī)則不合法。如此需要考慮的情況將非常復(fù)雜,因?yàn)橛脩糨斎氲囊?guī)則里可能只有一個(gè)“不要求”語(yǔ)句,也可能有多個(gè),而且具體是哪一個(gè)參數(shù)“不要求”也是不確定的,還有可能用戶輸入的規(guī)則里沒(méi)有“不要求”語(yǔ)句,而規(guī)則庫(kù)里的規(guī)則有“不要求”語(yǔ)句,這樣也會(huì)形成邏輯沖突。

      受集合論的啟發(fā),再考慮到Java優(yōu)秀的字符串處理能力,筆者采用如下方法來(lái)檢測(cè)邏輯沖突:為規(guī)則條件的每個(gè)部分加一個(gè)標(biāo)記值,用于表示該項(xiàng)條件所代表的集合,約定“大于”記A,“小于”記B,則“不要求”記AB。例如,用戶輸入2條規(guī)則,記為 Rule A 和 Rule B,Rule A 的內(nèi)容為:當(dāng)PCI>70,RQI>43.8,RDI>70,SRI>80.5,PSSI>80.2時(shí),養(yǎng)護(hù)方案為F11;Rule B的內(nèi)容為:當(dāng)PCI>70,RQI>43.8,RDI不要求,SRI>80.5,PSSI>80.2時(shí),養(yǎng)護(hù)方案為F12。則Rule A的標(biāo)記值表示為(A,A,A,A,A),Rule B的標(biāo)記值可以表示為(A,A,AB,A,A)。這樣要檢測(cè)這種邏輯上的包含關(guān)系,只需用java.lang.String的contains()方法就可以實(shí)現(xiàn)。首先對(duì)用戶輸入規(guī)則文件的條件部分所對(duì)應(yīng)的標(biāo)記值進(jìn)行賦值,然后將其與規(guī)則庫(kù)里的規(guī)則文件逐個(gè)進(jìn)行比較,這里又分2種情況,一種是用戶輸入規(guī)則在邏輯上被包含,另一種是用戶輸入規(guī)則在邏輯上包含規(guī)則庫(kù)里的規(guī)則,這兩種情況都屬于邏輯沖突,記錄下沖突規(guī)則的ID后,就可以設(shè)置警告信息。

      3 結(jié)語(yǔ)

      針對(duì)現(xiàn)代路面信息管理系統(tǒng)面臨的問(wèn)題,本文介紹了基于Drools規(guī)則引擎的路面信息管理和決策系統(tǒng)的解決方案,討論了系統(tǒng)的總體架構(gòu)、業(yè)務(wù)規(guī)則的生成和管理、養(yǎng)護(hù)決策的處理流程和沖突的解決策略。文中利用Java語(yǔ)言的字符串處理能力,通過(guò)比較用戶輸入的規(guī)則與規(guī)則庫(kù)原有規(guī)則,實(shí)現(xiàn)規(guī)則的沖突檢測(cè)功能,防止規(guī)則的重復(fù)與沖突,保證了系統(tǒng)的穩(wěn)定性。針對(duì)用戶輸入的路況數(shù)據(jù)可能不全面,存在參數(shù)缺失的情況,合理設(shè)計(jì)規(guī)則結(jié)構(gòu),使規(guī)則庫(kù)可以處理多種類(lèi)型數(shù)據(jù),提高了系統(tǒng)的兼容性。設(shè)計(jì)了一個(gè)專(zhuān)門(mén)用于“翻譯”的JavaBean,實(shí)現(xiàn)前臺(tái)顯示規(guī)則與后臺(tái)規(guī)則文件的統(tǒng)一。

      [1]張 淵,夏清國(guó).基于Rete算法的Java規(guī)則引擎[J].科學(xué)技術(shù)與工程,2006,6(11):1548-1550.

      [2]王重英.基于規(guī)則引擎的工作流系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2009(12):42-44.

      [3]馬秀麗,王紅霞,張凌云.Drools在網(wǎng)絡(luò)故障管理系統(tǒng)中的應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(8):1859-1862.

      [4]ROSENBERG F,DUSTDAR S.Business rules integration in BPEL-a service-oriented approach[C]//7th International IEEE Conference on E-Commerce Technology(CEC’2005).Washington DC:IEEE Computer Society Press,2005:476-479.

      [5]GRAHAM I.Business rules management and service oriented architecture[M].[S.l.]:Wiley,2007.

      猜你喜歡
      路況引擎沖突
      高速公路路況信息系統(tǒng)
      耶路撒冷爆發(fā)大規(guī)模沖突
      “三宜”“三不宜”化解師生沖突
      井岡教育(2020年6期)2020-12-14 03:04:32
      從路況報(bào)道看廣播“類(lèi)型化”新聞的要素構(gòu)成
      藍(lán)谷: “涉藍(lán)”新引擎
      商周刊(2017年22期)2017-11-09 05:08:31
      無(wú)形的引擎
      河南電力(2015年5期)2015-06-08 06:01:46
      高速公路實(shí)時(shí)路況分析系統(tǒng)方案
      基于Cocos2d引擎的PuzzleGame開(kāi)發(fā)
      淺談微信在路況信息發(fā)布中的應(yīng)用
      “鄰避沖突”的破解路徑
      浙江人大(2014年6期)2014-03-20 16:20:40
      开平市| 大港区| 大庆市| 韶山市| 自贡市| 沂水县| 扎兰屯市| 响水县| 峨山| 遂川县| 镶黄旗| 吴忠市| 涪陵区| 罗山县| 游戏| 金寨县| 札达县| 平舆县| 永平县| 姜堰市| 东兰县| 石泉县| 昌图县| 宁波市| 彝良县| 杂多县| 晋中市| 松溪县| 旅游| 曲周县| 延津县| 家居| 土默特右旗| 益阳市| 南开区| 高安市| 巴青县| 日土县| 施秉县| 弥渡县| 水富县|