□ 徐 峰
番茄是我國廣泛種植的經濟作物,在其生長階段會遇到較多蟲害、病害等方面的影響。而對于種植者,要想及時獲得番茄信息并獲得相關農業專家的指導是比較困難的,因此開發一套具有信息查詢、營養診斷等功能的專家系統很有必要。在國外,用于大豆病害診斷咨詢的PLANT/ds專家系統在美國的伊利諾斯大學最早被研發出來。2009年,西班牙的相關研究機構研發出來的“橄欖樹病蟲草害識別專家系統”闡述了對病蟲害和草害有效識別的方法,也結合了病蟲害和草害的圖片,為病蟲草害的診斷和防治提供了良好的基礎。在國內,歐陽建權等人設計和實現了基于PDA的農業專家系統,但是沒有完成具體植物的專家系統。王安煒等人提出利用開放的Android系統構建“水稻病蟲害專家系統平臺”,但是該平臺的解釋系統還不夠完善。
隨著移動通信技術的發展,以Android系統為代表的智能移動終端迅速發展,目前國內也出現了基于安卓系統的智能診斷系統。比如,楊林楠等人搭建了甜玉米病蟲害智能診斷系統。但此類系統功能相對簡單并且基于Android平臺的作物生產管理系統比較少。因此本文基于Android應用平臺設計與開發了番茄栽培管理移動終端系統,為番茄種植者提供專家層次上的指導。
本系統是基于Android系統中的Activity開發的。Activity是提供一個用戶進行交互的屏幕。在Activity中,不僅能夠將界面布局展示出來,而且能夠將從服務器端獲得的數據解析,顯示在移動終端屏幕上。在服務器與客戶端之間主要使用輕量級的數據交換格式——JSON(JavaScript Object Notation)數據格式進行數據傳輸。在傳輸中使用一種支持當前最新的網絡訪問協議客戶端編程工具包——HttpClient協議。
知識庫和推理機是本系統中營養診斷等模塊使用的主要技術。知識庫是根據某種規則組織的知識的幾何,也是專家系統的主要來源。在知識庫和推理機中所使用的規則的基本形式是P->Q。這種規則形式的含義是指,如果(if)前提P滿足,那么(then)就可在推理機上推出結論Q或者執行Q中寫入的操作內容。這種規則形式的知識,能夠使推理的過程更加準確。因為只有滿足了前提之后,才能執行下一步的操作,而不會有其他的步驟產生。本文知識庫是由番茄營養缺乏與過剩診斷、防治領域的理論知識、事實數據、植物圖片等信息組成。并采用產生式規則表示法進行營養診斷從而達到通過邏輯表示知識庫內容的物理組織。而推理機是基于知識進行推理。本系統采用正向推理方式,從用戶在終端軟件通過界面選擇病害發生時期、病害發生部位、病害癥狀等事實出發,通過一系列策略方法從知識集中挑選出合理的知識進行推理,并將已推出的知識作為下一步推理的已知事實在知識庫中找出適用的知識進行推理,反復進行,直到得出解或知識集被取完。
(一)系統功能結構。系統的功能結構框架如圖1。在客戶端用戶可以選擇信息查詢、病蟲害診斷、營養診斷、病害寶典、模糊查詢和專家答疑等功能模塊,進入相應的模塊后輸入信息和問題,傳入服務器,服務器端將得到的數據通過“if-then”模式的規則進行推理,并將最終推理結果返回客戶端。

圖1 系統功能框架圖
(二)系統主要模塊。
1.番茄的信息查詢模塊。
(1)番茄的基本信息查詢。番茄的基本信息查詢,主要包括番茄的簡介、番茄的歷史、番茄的形態特征、番茄的生長環境以及多個變種番茄的詳細介紹。
(2)番茄的病害寶典信息查詢。番茄的病害寶典信息查詢主要介紹番茄的各種病害的名稱、圖片和詳細介紹。用戶可以更直觀地了解病癥,以及通過系統建議選擇合理的防治方法。
2.番茄的診斷模塊。番茄的診斷模塊主要根據用戶輸入的信息,系統自動診斷出番茄狀況,并將解決建議等信息告知用戶。番茄診斷的流程圖如圖2所示。

圖2 番茄診斷流程圖
番茄的診斷模塊主要分為病蟲害診斷、營養診斷和病害的模糊查詢三個模塊。
(1)番茄的病蟲害診斷。用戶首先選擇病蟲害所發生的生長時期,例如葉期。接著,用戶選擇病蟲害發生的部位,例如番茄的葉部。最后再選擇番茄的病癥,如在葉子的邊緣出現褐色斑塊,那么通過推理機得到病蟲害的名稱為晚疫病。這些病害的信息主要包括病蟲害的名稱、病蟲害發生的原因、病蟲害的特征圖片,并向客戶提供防治方法中效果最佳方案,最低殘留方案和最快解決方案。
(2)番茄的營養診斷。番茄的營養診斷與番茄的病蟲害診斷方法類似,但服務器端返回的數據不同。返回數據主要為疾病的名稱、疾病發生的原因以及其特征圖片。
(3)番茄病害的模糊查詢。當用戶無法準確判斷番茄病害的發生時期或病害產生部位時,用戶可以輸入想要查詢的信息的關鍵字,例如,葉部、黃色等。通過與數據庫中的數據進行匹配,得到與用戶輸入內容相關的信息。
3.專家答疑模塊。專家答疑模塊主要提供幾種常見病蟲害的診斷以及專家的建議。若用戶的問題與常見幾種不同,則可以在登陸系統后,進行提問,等待相關專家的回答。
4.病害寶典模塊。用戶可通過此功能看到所有的病害名稱以及病害特征圖片的列表。主要包括病害發生的生長周期時間、發生的部位、主要特征及其防治方法。
(三)系統實現。本系統采用B/S模式,所使用的開發語言為Java語言,在Eclipse、Android SDK以及ADT這三種工具上開發。
客戶端端的首頁如圖3(a)所示。在首頁中,本系統設計了信息查詢、病蟲害診斷、營養診斷等功能按鈕。用戶可以根據需求任意點擊其中的某個按鈕。若點擊首頁的信息查詢,則顯示普通番茄、櫻桃番茄等標題,點擊櫻桃番茄標題,則會顯示櫻桃番茄的詳細信息比如種類描述、分布地區(如圖3(b)(c))。若點擊首頁的病蟲害查詢,則顯示生長周期的單選按鈕。選擇好時期后,單擊下一步,則顯示病蟲害可能出現在番茄植株的具體部位。選擇好后,再次單擊下一步,則顯示病蟲害在滿足以上兩個條件的情況下可能出現的病癥。選擇后,數據將從服務器端返回客戶端,顯示診斷結果等信息(如圖3(d~h))。若點擊首頁的病害寶典,則顯示各種病害的標題、內容簡介以及圖片。點擊具體病害如灰霉病后,即可看到該病害的詳細內容(如圖3(i)(j)所示)。若點擊首頁的模糊查詢,用戶可在輸入框中輸入想要查詢的關鍵字,服務器端將關鍵字與數據庫中的數據進行匹配,若匹配成功,則將相應數據返回到客戶端。若點擊首頁的專家答疑,用戶可以查看常見的關于番茄的提問以及來自專家的解答。用戶還可以在登錄后提交自己的問題。也可以通過點擊“我的提問”來查看自己提出的所有問題,同時也可以查看是否有來自專家的解答。
本文設計和開發了基于Android的番茄栽培管理移動終端系統。該系統通過使用專家系統知識對番茄營養和病蟲害進行診斷,實現了番茄信息查詢、營養診斷功能、病害診斷、模糊查詢和專家答疑等功能,實驗結果較理想。未來需要考慮模糊推理方法,從而更進一步完善系統。
[1]Uhrik C T.PLANT/ds Revisited:Non-Homogeneous Evaluation Schema in Expert Systems[C]AAAI,1982:217 ~ 220
[2]歐陽建權,錢躍良,褚誠緣,李錦濤.基于PDA的農業專家系統的設計和實現[J].計算機工程與應用,2002
[3]王安煒.基于Android的手機農業專家系統的設計與實現[D].山東大學,2011