劉放美 王扣金 蔡增玉 蒙應杰
摘 要: 設計和實現了基于可信度的計算機故障診斷專家系統。給出了功能需求分析和功能設計;對系統的知識表示、推理機制及可信度計算等關鍵技術進行了研究;給出了基于可信度的計算機故障診斷專家系統的測試結果。實驗結果表明,該系統界面美觀、診斷準確、功能完整,具有一定的應用前景。
關鍵詞: 可信度; 故障診斷; 知識表示; 專家系統
中圖分類號:TP389.1 文獻標志碼:A 文章編號:1006-8228(2015)11-12-04
Abstract: A credibility based computer fault diagnosis expert system is designed and implemented in this paper. The function requirement analysis and function design are presented, the key technology such as the system knowledge representation, reasoning mechanism and credibility calculation are studied, and the test results of the system are given out. The experiment results show that the system has a beautiful interface, accurate diagnosis and complete function, and has a certain application prospect.
Key words: credibility; fault diagnosis; knowledge representation; expert system
0 引言
專家系統(Expert System,ES)[1]是人工智能的一個重要分支,隨著計算機技術的不斷發展、日臻完善和成熟。專家系統的建立可以使專家豐富而寶貴的知識和經驗更好的傳承和被利用,進而產生社會效益和經濟效益。當今社會,計算機幾乎成為各個領域必不可少的工具,它在使用過程中出現故障也是在所難免的,因此對各種計算機故障進行及時地診斷與維修非常重要,建立計算機故障診斷專家系統對于提高維修人員的工作效率和降低維修成本有十分重要的意義。但關于計算機故障診斷專家系統的研究和構建較少,并且主要集中在知識表示和推理機制的研究上。文獻[2]主要研究了計算機故障診斷專家系統的基本結構;文獻[3]僅給出了數據表的設計和推理機制的選擇;文獻[4]構建了基于本體和規則的計算機故障診斷專家系統,但是其基于確定性的推理,無法給出各種故障可能性的大小。因此,本文給出一種基于可信度的計算機故障診斷專家系統的設計與實現,其目的在于使缺乏計算機專業知識的用戶通過本系統對常見的故障進行診斷,并為維修提供一定的指導。測試結果表明該系統能夠滿足上述要求。
1 需求分析和功能設計
1.1 功能需求分析
隨著計算機的應用越來越廣泛,相應的各種故障也出現了。一般都是由維修人員根據自己的經驗判斷故障類型并進行維修,而沒有維修經驗的計算機普通用戶則需要經過很長一段時間的積累才能掌握一定的維修技術。因此,設計一個計算機故障診斷系統來幫助普通用戶快速實現計算機故障診斷很有意義。本文給出了一種基本符合實際操作的基于可信度的計算機故障診斷專家系統。用戶能夠利用該系統對計算機出現的各種常見故障現象、故障點進行有效的查詢,對故障原因作出正確的診斷,對可信度進行正確的評價。其實現的主要功能有:故障原因診斷、新知識的增加、刪除和更新可信度計算,以及故障處理方法指導等。
1.2 功能設計
基于可信度的計算機故障診斷專家系統的主要任務是對計算機常見故障進行診斷,該系統的主要功能有:故障原因診斷、知識管理和故障處理方法查詢等。
⑴ 故障原因診斷:診斷出故障點和故障原因。由于引起某個故障現象的故障部位可能不止一個,本系統設計在進行故障原因診斷時,首先診斷出可能導致該故障現象的故障部位,然后根據不同的故障點信息給出可能的故障原因,并給出診斷結果的可以信任的程度。
⑵ 知識管理:本系統將知識轉化為規則存儲到數據庫中。知識管理包括規則的添加、更新和刪除。用戶在診斷過程中若某種故障現象系統中沒有存儲,那么用戶可將這些新的知識添加到數據庫中;若發現某條規則不精確,可通過規則更新將本條規則補充完善;若規則出現錯誤,可通過刪除規則刪除對應規則。
⑶ 故障處理方法查詢:主要功能是給出故障處理方法供維修參考,并給出相關維修案例。
2 關鍵技術
基于可信度的計算機故障診斷專家系統采用Visual Studio 2010開發,編程語言為C#,數據庫為SQL Server 2008。其中的關鍵技術主要有知識表示、推理機制和可信度計算。
2.1 知識表示
知識是信息經過加工處理、解釋、挑選和改造而形成的,是人們進行決策的基礎。知識是一種寶貴的資源,知識的推廣和使用可以產生巨大的經濟效益。人工智能中的知識表示形式有產生式、與或圖、語義網絡、框架等[5],專家系統中使用基于產生式的知識表示方法居多。產生式規則,以IF…THEN…的形式出現,如果前提條件得到滿足,就產生相應的動作或結論。
本系統的知識來源于算機維修人員的經驗總結。首先獲取的知識主要包括故障現象、故障診斷規則和故障產生原因等。本系統提供了知識管理模塊,對于知識庫中沒有存儲的故障現象及原因,用戶可通過插入規則來進行知識庫擴充,這樣使得知識庫更加完善。
在數據庫中共設計存儲12種計算機常見故障,將數據庫中的故障診斷數據利用故障樹的形式具體表示出來。由于數據較多,我們只給出死機、重啟、顯示器黑屏這三種故障現象的故障樹信息。故障樹如圖1所示。圖1中省略了運行速度降低、軟件運行出錯、不能啟動、網絡連接不通、網絡速度太低、光驅不能讀盤、沒有聲音、設備找不到、器件損壞等八種故障現象。
本系統將知識以規則的形式存儲到數據庫中。根據故障樹,將故障樹信息轉化為規則存儲。規則以IF...THEN...的形式表示。下面僅對故障樹中死機現象以IF...THEN...的形式表示出來,如表1所示。
2.2 推理機制與可信度計算
推理機是故障診斷專家系統的核心組成之一。故障診斷專家系統使用正向推理、反向推理和混合雙向推理實現[6]。本系統采用正向推理策略進行推理。將規則存儲在數據庫中,用戶運行程序后,先查找所有數據,然后再根據用戶的選擇進行篩選,此時,系統根據選擇的故障點信息進行正向推理,找到匹配的故障原因解釋信息并將此信息顯示到窗口中。
系統同時設計有可信度計算功能。可信度,就是某種推理判斷的可以信任的程度,一般用CF表示,CF可以是從-1到+1,正值表示可以信任的程度,負值表示反對或不相信的程度。程序運行后診斷出故障原因后并同時計算出可能出現該故障的概率即可信度。本文在進行故障原因診斷時,故障點發生故障的概率為觸發該故障點的所有規則的可信度之和。
3 系統測試
3.1 運行界面
基于可信度的計算機故障診斷專家系統主要有三個功能模塊,分別為故障原因診斷、知識管理和故障處理方法查詢模塊。本系統是基于.NET平臺進行開發的,在Windows平臺下運行。系統運行界面如圖2和圖3所示。
3.2 故障診斷結果
本文通過逐步增加故障現象,測試故障診斷結果。測試用例逐步增加“重啟”、“顯示器黑屏”、“沒有聲音”等故障現象,故障點電源的故障原因及可能性與故障現象的對應關系測試結果如表2所示。結果表明,基于可信度的計算機故障診斷專家系統對于計算機常見故障可做出初步的診斷,并給出故障原因和可信度值。
3.3 功能測試
功能測試方面,根據功能設計對基于可信度的計算機故障診斷專家系統的各種功能進行了測試,測試結果如表3所示。測試結果表明,本系統所涉及的功能都能夠實現,達到了設計要求,能夠實現對計算機故障原因診斷以及可信度的推斷。
4 總結
本文實現了基于可信度的計算機故障診斷專家系統,用戶界面簡潔大方、操作簡單,故障原因診斷準確快速,并有完善的異常處理機制和信息提示機制。實驗結果表明,該系統實現了較為完整的計算機故障診斷專家系統的功能,具有一定的應用前景,也為下一步的改進奠定了基礎。下一步的工作主要是對該系統進行改進和完善:①進一步完善知識庫,使存儲的知識更加精確,這樣也使診斷結果更加可信;②豐富系統維修建議方面的功能,以期在進行故障診斷時也能夠給出準確的維修方法;③優化可信度計算算法,提高可信度的精確值。
參考文獻(References):
[1] 蔡自興,蒙祖強.人工智能基礎[M].高等教育出版社,2010.
[2] 李英杰,趙建偉.計算機故障診斷專家系統設計研究[J].煤炭
技術,2011.30(4):195-196
[3] 陸奎,李濤.基于人工智能的計算機故障診斷系統研究[J].現
代計算機(專業版),2008.1:118-121
[4] 濮逸佳,杜宏偉.基于本體和規則的計算機故障診斷研究[J].
電子設計工程,2013.21(8):22-26
[5] 張攀,王波,卿曉霞等.專家系統中多種知識表示方法的集成
應用[J].微型電腦應用,2004.20(6):4-5,18
[6] 劉白林,范躍華.故障診斷專家系統中的推理機設計[J].西安
工業學院學報,2004.24(3):240-243