3 系統(tǒng)模型設(shè)計
考慮到塔機安全評判的專家系統(tǒng)是一個基于規(guī)則的評判類專家系統(tǒng)。因此,在建立系統(tǒng)之初,就考慮了系統(tǒng)的擴充性,即:建立的專家系統(tǒng)應(yīng)該適用于塔機的安全評判,同時也可作為一個一般的專家系統(tǒng)工具來使用,在系統(tǒng)啟動使用后,能夠通過簡單的重新構(gòu)造系統(tǒng)的知識庫再構(gòu)造為其他的專家系統(tǒng)。根據(jù)這樣的設(shè)計考慮,塔機安全評判的專家系統(tǒng)的知識庫、知識庫的建立、知識的獲取應(yīng)該是重要的,而且是用戶可重新定義使用的部分。因此,該系統(tǒng)是一個基于規(guī)則的評判類專家系統(tǒng)和工具,為了方便和說明系統(tǒng)的功能,以后都把該系統(tǒng)簡稱為TQES系統(tǒng)。
根據(jù)前面對專家系統(tǒng)結(jié)構(gòu)的理論介紹和要求,TQES系統(tǒng)總體上的結(jié)構(gòu)采用基于規(guī)則的一般結(jié)構(gòu),包括以下幾部分:基本數(shù)據(jù)庫,初始證據(jù)庫,規(guī)則庫,知識獲取,推理機,解釋機制,人機接口,綜合數(shù)據(jù)庫,最終數(shù)據(jù)庫。其相互關(guān)系如圖3所示。下面介紹其組成部分和功能。
?
圖3 TQES專家系統(tǒng)總體結(jié)構(gòu)圖
?。?)庫文件
TQES系統(tǒng)包括5個庫文件,其實就是通常的知識庫和綜合數(shù)據(jù)庫的具體形式體現(xiàn)。
規(guī)則庫,即知識庫,在基于規(guī)則的專家系統(tǒng)中,知識的表示是一組按照一定順序排列的規(guī)則,這些規(guī)則一起組成規(guī)則庫,規(guī)則庫是知識的存放處。TQES的規(guī)則庫包括了TQES專家系統(tǒng)用的所有知識。
基本數(shù)據(jù)庫為系統(tǒng)的初始化數(shù)據(jù)文件,它為規(guī)則庫的建立提供統(tǒng)一格式的數(shù)據(jù)。在TQES中,使用的最基本的推理單位為節(jié)點,節(jié)點包含有某種數(shù)據(jù)值、值的可靠度、數(shù)據(jù)的標(biāo)識符等參數(shù)?;緮?shù)據(jù)庫由節(jié)點構(gòu)成。
中間數(shù)據(jù)庫也叫綜合數(shù)據(jù)庫,該庫是在推理中用的臨時數(shù)據(jù)庫,它也由節(jié)點組成。該庫只有在TQES推理時存在,為動態(tài)庫文件。
最終數(shù)據(jù)庫是TQES推理結(jié)束并且成功后的數(shù)據(jù)庫,該庫存放推理的成功數(shù)據(jù),它也由節(jié)點組成。該庫只有在TQES推理成功后才產(chǎn)生,為動態(tài)庫,但是可以進行存儲和多種方式的輸出。
推理機是TQES的主要的進行推理工作的模塊,它根據(jù)用戶的環(huán)境設(shè)定而進行推理。其主要功能實現(xiàn)如圖4所示。
圖4 TQES專家系統(tǒng)總體流程圖
(2)推理機
?。?)解釋機制
對推理的結(jié)論和推理的過程進行解釋,增加推理的透明性。
?。?)人機接口
人機接口模塊是TQES的特色部分,它負(fù)責(zé)處理操作人員和系統(tǒng)的信息交換。包括對用戶的輸入信息轉(zhuǎn)化為系統(tǒng)的形式,把系統(tǒng)的輸出信息轉(zhuǎn)化為自然化語言,動態(tài)顯示推理進程、閱覽檢查、打印各個庫文件和數(shù)據(jù)的模糊化處理等。
?。?)知識獲取
負(fù)責(zé)獲取知識,具體來講就是構(gòu)造基本數(shù)據(jù)庫文件和知識庫文件。TQES通過可視化環(huán)境獲取數(shù)據(jù),動態(tài)編輯、顯示,自動格式化存儲,并具有安全、不失真特性。
4 程序?qū)崿F(xiàn)
按照TQES結(jié)構(gòu)模型,利用基于現(xiàn)代設(shè)計方法學(xué)專家系統(tǒng)構(gòu)造技術(shù)進行了程序設(shè)計。所有的程序都在VISUAL C++環(huán)境下設(shè)計并調(diào)試通過,符合C++規(guī)范。由于源程序較多(500多頁,近20000行代碼、40萬字符),在此就不列出源代碼。同時,由于TQES是一個真正Windows下的面向?qū)ο蟮某绦颍虼似涔δ懿糠趾徒缑娌糠质蔷C合的。下面列出主要源程序的作用。
?
Item.cpp 節(jié)點定義功能實現(xiàn)
ItemBase.cpp 節(jié)點庫實現(xiàn)文件
ItemNameManager.cpp 建立基本節(jié)點庫
ItemInit.cpp 初始化基本節(jié)點庫
ItemBasePrint.cpp 打印節(jié)點庫
ItemInitDate 獲取初始化數(shù)據(jù)
MyTree.cpp 以樹形顯示節(jié)點庫
MyList.cpp 以列表形式顯示節(jié)點庫
Rule.cpp 規(guī)則定義功能實現(xiàn)
RuleBase.cpp 規(guī)則庫實現(xiàn)
RuleManager.cpp 建立和管理規(guī)則
RuleBasemanger.cpp 建立和管理規(guī)則庫
RuleAddItem.cpp 為規(guī)則增加前提或結(jié)論
RuleDisplay.cpp 規(guī)則以自然語言顯示在屏幕上
RuleEqualEdit.cpp 規(guī)則的前提和結(jié)論之間計算關(guān)系的公式編輯器
RuleList.cpp 規(guī)則庫以列表顯示
RulePreHeight.cpp 規(guī)則前提權(quán)重分配
Value.cpp 節(jié)點的值實現(xiàn)
Do.cpp 推理驅(qū)動
Doing.cpp 推理進行
DoSutuo.cpp 推理設(shè)置
ConclusionOut.cpp 顯示推理結(jié)論
MainFrm.cpp 主窗口管理
Tqes.cpp 程序進程總啟動
TqesView.cpp 程序視圖管理
TqesDoc.cpp 程序文檔管理
Tqes.cnt 程序幫助的索引
Tqes.rtf 程序幫助的源文件內(nèi)容
5 結(jié) 論
TQES系統(tǒng)經(jīng)過調(diào)試后全部達到功能指標(biāo),并對一些已經(jīng)存在的塔機安全事故進行分析,結(jié)果正確、可靠,是一個值得信賴的塔機安全評判軟件,可以對塔機的安全管理起到一定的協(xié)助作用。同時,考慮到軟件開發(fā)的難度和塔機專業(yè)的局限性,在TQES開發(fā)之初就考慮到其功能和應(yīng)用領(lǐng)域的不協(xié)調(diào)性。因此TQES在主文件不加修改的前提下,通過相應(yīng)的庫文件的重新構(gòu)造或修改,就可應(yīng)用到其他類似的評判類、推理類、故障診斷類專家系統(tǒng)中,TQES又是一個廣義上的專家系統(tǒng)開發(fā)工具,它具有廣闊的應(yīng)用領(lǐng)域和光輝前景。