邱占芝,巨貝貝
(大連交通大學(xué) 軟件學(xué)院,遼寧 大連 116028)
隨著企業(yè)信息化建設(shè)的快速發(fā)展,煤炭企業(yè)生產(chǎn)與經(jīng)營信息呈現(xiàn)出非線性遞增趨勢.然而信息量的海量增長并不能直接簡化企業(yè)決策本身,煤炭企業(yè)的銷售決策仍然是以決策者的經(jīng)驗(yàn)和直覺為基礎(chǔ).如何將市場信息、客戶信息、企業(yè)生產(chǎn)信息、鐵路運(yùn)力等諸多數(shù)據(jù)[1]和決策經(jīng)驗(yàn)有機(jī)結(jié)合,通過既定邏輯推理做出科學(xué)的分析,從而制訂最佳的決策,成為企業(yè)的迫切需求和信息化建設(shè)的熱點(diǎn).
網(wǎng)絡(luò)化煤炭銷售決策專家系統(tǒng)(CDES,Coal sales Decision making Expert System)利用專家系統(tǒng)的基本理念,綜合集成了智能化綜合銷售數(shù)據(jù)庫和專家知識庫,通過模擬專家的推理邏輯得出更接近求解環(huán)境的決策結(jié)論,為決策者提供具有專家水準(zhǔn)的咨詢幫助,提高決策的科學(xué)性和有效性.CDES可根據(jù)市場供求動態(tài)數(shù)據(jù),生成自適應(yīng)的煤炭價格,并根據(jù)客戶的相應(yīng)歷史記錄,有浮動的調(diào)整銷售價格;根據(jù)已簽訂合同和礦區(qū)生產(chǎn)情況預(yù)測未來銷售情況,有效把握市場動態(tài)、客戶需求和生產(chǎn)情況.專家系統(tǒng)的自學(xué)習(xí)能力,一方面通過決策者參與系統(tǒng)的決策過程提高了系統(tǒng)的決策技能,另一方面大量的數(shù)據(jù)流入為決策者制定相應(yīng)決策提供了更為寬泛的選擇空間.
網(wǎng)絡(luò)化煤炭銷售決策專家系統(tǒng)架構(gòu)于煤炭企業(yè)現(xiàn)有的信息管理系統(tǒng)基礎(chǔ)之上,一方面通過構(gòu)建煤炭銷售決策知識庫提供既有專家經(jīng)驗(yàn)的決策支持,另一方面通過集成的智能化綜合銷售數(shù)據(jù)庫,利用商業(yè)智能(Business Intelligence,BI)技術(shù),對企業(yè)數(shù)據(jù)進(jìn)行有效挖掘并形成初級潛在規(guī)則,這些初級規(guī)則進(jìn)過煤炭銷售專家的驗(yàn)證與抽象,成為具有真正決策價值的銷售經(jīng)驗(yàn).系統(tǒng)通過兩方面的集成實(shí)現(xiàn)信息技術(shù)和專家經(jīng)驗(yàn)的融合,具有高效的決策科學(xué)性及智能性.
系統(tǒng)具體功能包括對已簽訂合同的單個客戶進(jìn)行月、季度以及年銷售計劃的決策及預(yù)測,主要模塊包括:單價決策,銷售量預(yù)測,知識庫管理,系統(tǒng)管理等,系統(tǒng)管理主要包括用戶登錄管理、權(quán)限管理、對過往決策內(nèi)容提供查詢及對各類數(shù)據(jù)庫的維護(hù).
(1)單價決策
單價決策功能完成對合同客戶銷售計劃中煤炭單價的決策,其決策結(jié)論主要從客戶信息、煤質(zhì)信息、市場供需、以及國家政策這幾個方面綜合分析得出.客戶信息分析:從合同信息區(qū)分客戶類型、運(yùn)費(fèi)計算情況;通過查詢客戶有無商業(yè)糾紛或者不良購煤行為等信息,自動確定信用等級,通過查詢客戶回款情況進(jìn)行價格適當(dāng)調(diào)整;煤質(zhì)信息分析:根據(jù)各煤種有效定價參數(shù),通過轉(zhuǎn)換公式計算各煤種單價區(qū)間;市場供需分析:有無自然災(zāi)害、人為事故和季節(jié)因素影響市場總體價格;國家政策分析:國家近期有無對整體煤價進(jìn)行價格調(diào)控.
(2)銷售量預(yù)測
銷售量預(yù)測功能可根據(jù)合同客戶簽訂的合同信息、礦區(qū)生產(chǎn)情況以及庫存量,對簽訂合同客戶進(jìn)行銷售量的預(yù)測,影響因素包括客戶合同情況以及庫存量,其預(yù)測區(qū)間可選擇按月、季度或者年.
(3)知識庫管理
知識庫管理功能面向?qū)<医涌?,管理對象為對本系統(tǒng)所使用的知識模型.專家系統(tǒng)在使用之后,為了保證其結(jié)論的有效性,需要對知識庫進(jìn)行維護(hù),維護(hù)內(nèi)容包括:結(jié)合市場情況增加新的決策知識,刪除、修改不合理的知識以及對更新后的知識進(jìn)行正確性、一致性、完整性檢查,提高知識的質(zhì)量.
系統(tǒng)主要包括知識庫、綜合信息數(shù)據(jù)庫、知識庫管理器、推理機(jī)、事實(shí)庫、解釋器、數(shù)據(jù)庫維護(hù)以及人機(jī)交互界面幾個部分,如圖1所示:
圖1 系統(tǒng)結(jié)構(gòu)圖
知識庫是專家系統(tǒng)重要組成部分,是專家經(jīng)驗(yàn)和知識的存儲體;推理機(jī)實(shí)質(zhì)上是知識庫的一個解釋器[2],其根據(jù)一定的推理邏輯應(yīng)用知識來求解用戶輸入的實(shí)際問題;解釋器幫助用戶理解整個問題求解的推理過程;事實(shí)庫中存放用戶輸入的待解決問題信息、推理過程中產(chǎn)生的過程數(shù)據(jù)以及供解釋器調(diào)用的事實(shí)數(shù)據(jù).
綜合信息數(shù)據(jù)庫是整個系統(tǒng)的數(shù)據(jù)基礎(chǔ),其一方面為邏輯推理過程提供可靠數(shù)據(jù),例如運(yùn)銷管理系統(tǒng)數(shù)據(jù)庫的各種報表,客戶信息、礦區(qū)生產(chǎn)信息、合同信息等;另一方面通過DW、OLAP工具和DM等商業(yè)智能技術(shù),從數(shù)據(jù)中挖掘出隱含的、先前未知的、對決策有潛在價值的關(guān)系和趨勢,專家通過分析、抽象和優(yōu)化,從而得出深層次上的決策信息.
系統(tǒng)采用三層瀏覽器/服務(wù)器(簡稱B/S)結(jié)構(gòu),其分離的業(yè)務(wù)邏輯層、表示層和數(shù)據(jù)處理層大大提升了系統(tǒng)的數(shù)據(jù)處理能力、穩(wěn)定性和安全性.數(shù)據(jù)庫管理系統(tǒng)采用微軟公司的SQL Server2005,其不但完成對數(shù)據(jù)準(zhǔn)確且高效的處理,又能保障數(shù)據(jù)的安全性、系統(tǒng)維護(hù)與升級的便捷性.
設(shè)計知識庫的首要問題就是根據(jù)煤炭銷售決策要求確定適當(dāng)?shù)闹R表示方法,從而保證其知識的可擴(kuò)充性、簡潔性和清晰性[3].本系統(tǒng)知識庫分為常識性知識和專業(yè)知識兩大部分,包括煤炭行業(yè)各類相關(guān)標(biāo)準(zhǔn)、法律法規(guī)、書籍知識以及專家長期總結(jié)的經(jīng)驗(yàn)知識等,因此知識表示采用較為成熟的產(chǎn)生式規(guī)則表示方法[4],即IF P THEN Q的形式.知識獲取方式主要由人工挖掘、搜集、分析、綜合、整理、歸納將知識結(jié)構(gòu)化,最終以sql語句的形式存入關(guān)系數(shù)據(jù)庫.系統(tǒng)知識庫包括rule表、fact表和formula表,表結(jié)構(gòu)如表1~表3.
表1 rule表結(jié)構(gòu)
表3 fact表結(jié)構(gòu)
Rule表中存放規(guī)則信息,其中:①id:規(guī)則編號,作為主鍵;②premier:規(guī)則前件;(3)conclu-sion:規(guī)則后件;Formula表中存放公式以及其條件的對應(yīng)關(guān)系:①id:公式編號;②formula:公式;③condition:計算公式所需的條件;Fact表中存放事實(shí)信息及相對應(yīng)的sql語句,其中:①id:事實(shí)信息編號;②description:事實(shí)信息;③sql:事實(shí)信息對應(yīng)的sql語句.
rule表中premier和conclusion字段以及formula表中formula和condition字段存入的內(nèi)容均來自fact表中的id號.Rule表中的一條記錄代表一條規(guī)則,formula表中的一條記錄代表一個公式所需的一個條件.
例如煤炭銷售決策中決定單價部分,如果客戶今年合同表中的合同單價<1這代表此合同單價計算方式為以卡計價,則實(shí)際單價=合同單價*熱值/0.238 89;如果合同單價≥1,則實(shí)際單價等于合同單價.規(guī)則如下:
(1)規(guī)則1:如果當(dāng)年合同表中有此客戶,則查詢當(dāng)年合同單價;
(2)規(guī)則2:如果合同單價<1,則實(shí)際單價=合同單價*熱值/0.238 89值;
(3)規(guī)則3:如果合同單價>1,則實(shí)際單價=合同單價.
rule表和fact表內(nèi)容如表4~表6:
表4 實(shí)例fact表(X年份,Y表示客戶編號)
表5 實(shí)例rule表
表6 實(shí)例formula表
為了保證煤炭銷售專家系統(tǒng)推理機(jī)的效率,系統(tǒng)采用判定樹推理方法,以正向推理為其控制策略.判定樹的樹形結(jié)構(gòu)的合理性決定推理過程的高效性,所以構(gòu)造一顆高效的推理樹是設(shè)計的目標(biāo).
經(jīng)過分析,可將各個節(jié)點(diǎn)分為4類:①葉子節(jié)點(diǎn):含有結(jié)論數(shù)據(jù)的查詢;②非根子節(jié)點(diǎn):含有推理過程的查詢;③第一個非0的父親節(jié)點(diǎn):僅表示推理最初條件;④公式樹節(jié)點(diǎn):表示一個公式,其子節(jié)點(diǎn)代表公式所需要的條件.節(jié)點(diǎn)間的關(guān)系可以表示整個推理的過程:①任意一個非葉子節(jié)點(diǎn)可以表示為條件P;②任意非公式樹間的連線表示一條規(guī)則;③公式樹不表示推理規(guī)則.
推理機(jī)根節(jié)點(diǎn)0為用戶輸入,輸入成功則開始構(gòu)造判定樹,整個推理過程需要分析整個事件,最終將整棵樹節(jié)點(diǎn)中相應(yīng)的sql語句組合,進(jìn)入綜合數(shù)據(jù)庫查詢.以上例煤炭銷售決策中決定單價部分具體來說明,其判定樹結(jié)構(gòu)圖2:
圖2 判定樹結(jié)構(gòu)
圖2中節(jié)點(diǎn)0:輸入數(shù)據(jù)成功.節(jié)點(diǎn)1:當(dāng)年合同表有此客戶節(jié)點(diǎn)2:查詢當(dāng)年合同單價.節(jié)點(diǎn)3:合同單價 >=1.節(jié)點(diǎn)4:合同單價 <1.節(jié)點(diǎn)5:合同單價.節(jié)點(diǎn)6:實(shí)際單價=合同單價*熱值/0.238 89.節(jié)點(diǎn) 7:熱值.節(jié)點(diǎn) 8:0.238 89.
組合sql語句的過程是從根節(jié)點(diǎn)開始的:
(1)遍歷樹將第一個非0的父親節(jié)點(diǎn)編號入編號隊列,將其sql語句入數(shù)據(jù)隊列,轉(zhuǎn)到(2);
(2)若該節(jié)點(diǎn)與其孩子節(jié)點(diǎn)組成規(guī)則,則轉(zhuǎn)到(3);若與其孩子表示公式,則轉(zhuǎn)到(5);
(3)將第1條數(shù)據(jù)出隊,用此數(shù)據(jù)代替孩子節(jié)點(diǎn)中的Rule字段,將新生產(chǎn)的數(shù)據(jù)入數(shù)據(jù)隊,將此孩子節(jié)點(diǎn)編號入編號隊,當(dāng)孩子節(jié)點(diǎn)有k個時將分別有k條數(shù)據(jù)入數(shù)據(jù)隊和編號隊.當(dāng)孩子節(jié)點(diǎn)編號全部入編號隊時,該節(jié)點(diǎn)編號出隊,轉(zhuǎn)到(4);
(4)遍歷編號隊列,若隊頭編號對應(yīng)節(jié)點(diǎn)不是葉子節(jié)點(diǎn)則轉(zhuǎn)到轉(zhuǎn)到(2),否則將數(shù)據(jù)隊列隊頭做標(biāo)記,再將編號隊列以及數(shù)據(jù)隊列隊頭都出隊.指針指向新隊頭編號節(jié)點(diǎn),轉(zhuǎn)到(2).若隊列空則算法結(jié)束;
(5)將第1條數(shù)據(jù)對應(yīng)的Formula字段用對應(yīng)孩子節(jié)點(diǎn)的SQL字段替換,依次將孩子節(jié)點(diǎn)編號入隊,該節(jié)點(diǎn)編號出隊,轉(zhuǎn)到(4).
結(jié)合上例組合sql語句過程如下:
(1)將節(jié)點(diǎn)1編號入編號隊列,其sql語句入數(shù)據(jù)隊列;
(2)節(jié)點(diǎn)1其與孩子節(jié)點(diǎn)2組成規(guī)則,則將第1條數(shù)據(jù)出隊即select htid from htb where khid=(X)and year=(Y),將它代替節(jié)點(diǎn)2sql語句的Rule字段,產(chǎn)生的新數(shù)據(jù) select price from htb where htid=(select htid from htb where khid=(X)and year=(Y))入數(shù)據(jù)隊列,將節(jié)點(diǎn)2編號入編號隊列,節(jié)點(diǎn)1編號出隊;
(3)遍歷編號隊列,隊頭編號對應(yīng)節(jié)點(diǎn)2不是葉子節(jié)點(diǎn),其與孩子節(jié)點(diǎn)3和節(jié)點(diǎn)4組成規(guī)則,則將數(shù)據(jù)隊列中第一條數(shù)據(jù)出隊,填入兩孩子節(jié)點(diǎn)Rule字段,將這兩條新數(shù)據(jù)入數(shù)據(jù)隊列,兩節(jié)點(diǎn)編號依次入編號隊,節(jié)點(diǎn)2編號出隊;
(4)遍歷編號隊列,隊頭編號對應(yīng)節(jié)點(diǎn)3不是葉子節(jié)點(diǎn),同(3)處理方法,新數(shù)據(jù)入數(shù)據(jù)隊列,節(jié)點(diǎn)5編號入編號隊,節(jié)點(diǎn)3編號出隊.同理遍歷編號隊列,處理節(jié)點(diǎn)4;
(5)直至遍歷到節(jié)點(diǎn)5,其為葉子節(jié)點(diǎn),將數(shù)據(jù)隊頭做標(biāo)記,再將編號隊列以及數(shù)據(jù)隊列隊頭都出隊.指針指向新隊頭編號節(jié)點(diǎn)6,其與孩子組成公式,則將數(shù)據(jù)隊列第1條數(shù)據(jù)對應(yīng)的Formula字段用對應(yīng)孩子節(jié)點(diǎn)的SQL字段替換,依次將孩子節(jié)點(diǎn)7和節(jié)點(diǎn)8編號入隊,節(jié)點(diǎn)6編號出隊;
(6)繼續(xù)遍歷編號隊列,由于節(jié)點(diǎn)7和節(jié)點(diǎn)8都是葉子節(jié)點(diǎn)則依次將數(shù)據(jù)隊頭做標(biāo)記,再將編號隊列以及數(shù)據(jù)隊列隊頭都出隊.此時編號隊列為空,結(jié)束.
整個推理過程中作標(biāo)記的數(shù)據(jù)隊列中的數(shù)據(jù)即為進(jìn)入綜合銷售數(shù)據(jù)庫中進(jìn)行查詢的語句.
事實(shí)庫相當(dāng)于數(shù)學(xué)中"黑板"的功能,用于暫時存放煤炭銷售決策推理過程中產(chǎn)生的中間結(jié)果或事實(shí)等[5].本系統(tǒng)事實(shí)庫采用數(shù)據(jù)庫表存貯,其中存放:用戶輸入的數(shù)據(jù)、推理機(jī)推理過程中從知識庫事實(shí)表取出的description字段和sql字段內(nèi)容、編號隊列內(nèi)容、數(shù)據(jù)隊列內(nèi)容、sql執(zhí)行結(jié)果以及程序保存斷點(diǎn)信息,因此其相當(dāng)于一個大容量“黑板”,用戶可根據(jù)關(guān)鍵字進(jìn)行查詢.
解釋器負(fù)責(zé)提供對整個煤炭銷售決策推理過程的解釋.系統(tǒng)采用“路徑跟蹤法”記錄問題求解的推理過程,推理機(jī)從事實(shí)庫中將已作標(biāo)記的數(shù)據(jù)取出進(jìn)入綜合數(shù)據(jù)庫中查詢,將查詢成功的那條sql語句的對應(yīng)樹查出,從根節(jié)點(diǎn)依次遍歷,將節(jié)點(diǎn)的事實(shí)信息從知識庫事實(shí)表description字段取出,存入事實(shí)表,解釋器從事實(shí)表中取出按行顯示即是推理的整個過程.
網(wǎng)絡(luò)化煤炭銷售決策專家系統(tǒng)通過將專家知識經(jīng)驗(yàn)最終結(jié)構(gòu)化為數(shù)據(jù)庫運(yùn)算,運(yùn)用數(shù)據(jù)庫強(qiáng)大的查詢計算功能,實(shí)現(xiàn)知識推理和數(shù)值運(yùn)算結(jié)合,從而提供比初級的決策支持系統(tǒng)更有力的決策支持能力,使決策者從“報表轟炸”型決策向商業(yè)智能決策轉(zhuǎn)型.系統(tǒng)將企業(yè)現(xiàn)有的人力、物力、財力、技術(shù)、資金和信息等要素進(jìn)行最佳組合[6],通過動態(tài)調(diào)整量和價的比例以達(dá)到利潤的最大化,從而加快資金的周轉(zhuǎn),促成企業(yè)的良性循環(huán)和可持續(xù)發(fā)展.
[1]楊毅,孫超.基于數(shù)據(jù)倉庫的煤炭運(yùn)銷決策支持系統(tǒng)研究[J].中國煤炭,2009(2):16-38.
[2]GEORGE F LUGER.Artificial Intelligence:Structures and Strategies for Complex Problem Solving Six Edition[M].Addison Wesley,2009.
[3]JOSEPH C GIARRATANO,GARY D RILEY.Expert Systems Principles and Programming[M].4th ed,Thomson,2005:18-21.
[4]印鑒,陳憶群,劉星成.專家系統(tǒng)原理與編程[M].4版,北京:機(jī)械工業(yè)出版社,2006.
[5]王阿川,繆天宇,曹軍.基于Web森林病蟲害防治決策專家系統(tǒng)研究[J].計算機(jī)技術(shù)與發(fā)展,2008,18(4):228-235.
[6]朱海濤.煤炭企業(yè)建設(shè)商業(yè)智能系統(tǒng)的思考[J].煤炭經(jīng)濟(jì)研究,2010,30(9):74-76.
[7]黃務(wù)蘭.一種新的基于產(chǎn)生式規(guī)則的推理樹結(jié)構(gòu)[J].微電子學(xué)與計算機(jī),2008,24(4):78-81.
[8]曹林,王阿川.基于WEBGIS林火決策專家系統(tǒng)的構(gòu)建[J].林業(yè)機(jī)械與木工設(shè)備,2010,38(3):44-46.
[9]孫莉莉,李軍,李懷佳.基于產(chǎn)生式探井決策專家系統(tǒng)的研究與應(yīng)用[J].計算機(jī)系統(tǒng)應(yīng)用,2010,19(7):115-118.