摘要:根據案例推理(CBR)的方法對油菜病例進行二值化, 建構油菜病害推理系統;用面向對象的思想, 以VC++為開發平臺, SQL Server 2000為服務平臺, 開發了油菜病害診斷系統。系統可很好地應用于油菜病害的診斷和推理。
關鍵詞:案例推理(CBR);油菜病害;診斷系統
中圖分類號:TP182;S435.654 文獻標識碼:A 文章編號:0439-8114(2013)03-0699-03
案例推理(Case-Based Reasoning,簡稱為CBR)是人工智能領域中的一個重要范疇,與基于規則推理模式不同,它是指借用已有的相似案例來解決問題[1]。目前CBR已成為人工智能與專家系統的一種非常具有生命力的推理技術,廣泛應用于諸多領域, 并受到越來越多的重視。
國內外許多專家學者對病蟲害的診斷與防治進行了研究,但對病蟲害診斷的準確率不高。該設計采用案例推理(CBR)方法對油菜的病例進行二值化后, 根據設計的推理機進行判斷分析,并做出相應的決策,其診斷的效果良好。
1 油菜病害的知識表示
知識表示是專家系統中十分重要的研究領域,與知識獲取、推理、搜索、解釋等有直接關系,知識表示水平的高低決定了農業病蟲害診斷系統性能的優劣[2]。如何研制開發出一個準確、細膩、真實的模擬農業病蟲害專家診斷系統,首先要考慮的是選用合適的知識表示策略。
1.1 病例的知識表示
病例是對事件或問題的描述和表示,其內容包括問題描述、問題求解和病例結果三部分。以油菜病害案例為例,對其進行病例知識的建模。
1)問題的描述。描述油菜病害案例發生時的背景和狀態, 包括發病時間和癥狀表現等。
2)問題求解。對問題描述選擇處理方法和解決策略,得到相關結構、解釋或建議,即根據癥狀描述推理得出確診的疾病、病因和防治措施。
3)診斷結果。此案例是成功案例還是失敗案例等,是診斷的效果反饋。
1.2 油菜病害系統基礎數據
病例主要針對油菜病害中6種常見病構造的。病例庫數據經預處理,其結構以及對應屬性取值見表1。對表1中的數據,根據專家經驗形成含106個癥狀條件屬性,分別對應6種常見疾病。根據張信等[3]列出的癥狀信息經預處理后作為案例數據(表2)。
對病例的描述進行二值化處理,例如,對于“為害”屬性有6個可取值,則設置6個不同的屬性H1,H2,H3,H4,H5,H6來代替“為害”屬性,當H1的取值為“1”時,表示為害的部分為葉。
病例1: 莖部受害,淡褐色水漬狀斑點,老葉出現輪紋,內外長出白色絮狀菌絲,花瓣黃褐色,易脫落。根據表1對病例1進行預處理,得到表2。
1.3 典型的CBR模型
從目前的研究來看,普遍被接受的、典型的CBR模型是建立在Aamodt等[4]提出的“4R”循環基礎之上的,即將CBR過程劃分為4個主要階段:①實例檢索(Retrieve),根據問題的描述找到最相似的實例;②實例復用(Reuse),重用相似實例的建議解;③實例修正(Revise),如有必要,修正建議以更好地適應新問題;④實例保存(Retain),將驗證后的新解與問題存儲到實例庫中。
2 系統工作流程設計
系統工作流程如圖1,用戶首先進入用戶登錄界面,輸入登錄信息后系統根據不同用戶的身份賦予不同的權限。普通用戶登錄后使用診斷系統進行油菜病害診斷或進行病害知識瀏覽。
2.1 系統知識庫設計
由于在這個系統中所涉及到的表有診斷表、案例表、農藥知識、防治信息、疾病信息、專家信息、農戶信息。產生的知識庫見圖2。
2.2 規則庫
對常見的油菜病害進行二值化,產生下面的處理邏輯規則庫:
IF H1(葉為害) H5(果為害)(枝為害)(葉斑近褐)
(葉同心輪紋)(絮狀菌絲菌核)(莖枝枯死)(莖斑形梭)(莖斑邊褐色)||SX
Then D01(菌核病)
IF H1(葉為害) H5(果為害) (葉斑近黃)
(葉大V合并)(葉枯)(莖枝斑形同心輪紋)(莖稈縱裂)(莖稈生白色分泌物)||SY
Then D02(病毒病)
….
其中SX,SY為病害案例。(SX,SY?哿S),S?哿M。
2.3 推理機設計
推理機設計主要是指診斷推理流程的設計,推理機的診斷算法如下。
步驟1:用戶根據自己的需求登入系統;
步驟2:用戶若選擇病害診斷的操作,由用戶對現在的癥狀進行描述,通過勾選的方式進行。系統對用戶所做的勾選到規則庫里進行匹配查找。若查找成功,輸出診斷結論,并給予相應的建議;若未找到相應的結論,則由用戶重新勾選,同時保存該病案,用于以后的規則判斷中。
步驟3:用戶若進行油菜病害知識瀏覽,則可根據需要選擇“油菜病害理論知識”、“典型案例知識”、“農藥知識”、“油菜種植指南”。
步驟4:用戶若是對油菜病害案例知識查詢,可根據需要選擇“癥狀查找”、“農戶查找”、“常見病害類型查找”。對用戶每次輸入的病癥進行保存,為實例庫。當遇到問題時,通過對實例庫的相似度匹配進行查找(這是CBR檢索算法),若新問題與實例庫中的問題非常接近,則將實例庫中的解答直接作為新問題的解。否則,在實例庫中增加一個問題。
步驟5:用戶登入的賬號為系統維護員,可進行“規則知識維護”、“農藥信息庫維護”、“診斷記錄維護”、“農戶信息維護”。
3 系統實現
系統采用VC++6.0+SQL Server 2000的開發環境,以下是系統實現的主要界面(圖3、圖4)。
4 小結
對油菜病害及病例進行了二值化知識表征, 設計并實現了以病例知識為基礎的油菜病害推理系統。從需求出發,完成了系統的工作流程、數據庫的設計,配置了系統的軟件平臺,并用面向對象的思想,以VC++為開發平臺,SQL Server 2000為服務平臺,開發了油菜病害診斷系統,實現了診斷功能。
參考文獻:
[1] WATSON I. Case-based reasoning is a methodology not a technology[J]. Knowledge-Based Systems,1999,12(5-6):303-308.
[2] 楊叔子,丁 洪,史鐵林,等.基于知識的診斷推理[M].北京:清華大學出版社,1993.
[3] 張 信,趙國防,王 琦,等.植物病害數學診斷與防治[M]. 北京:中國農業出版社,2007.
[4] AAMODT A, PLAZA E. Case-based reasoning: foundational issues, methodological variations, and system approaches[J]. AI Communications,1994,7(1):39-59.