资源描述:
《农业专家系统开发-实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、农业专家系统开发实验报告课程:农业专家系统行政班级:11软件2班姓名:程茗学号:1108054208一、实验目的加深对知识表示方法的理解与认识,掌握知识特别是产生式知识在计算机内的存储方式;掌握知识库构建方法,利用关系型数据库建立知识库;选用适当的程序设计语言练习专家系统推理机的设计,编写推理程序;在上述基础上,根据农业专家系统的组成构建一个简单的农业专家系统。二、实验方法1.设计一个简单的医疗诊断专家系统。2.使用Prolog语言编程实现该系统。3.给出模拟运行结果。三、实验环境及开发工具实验环境:(1)硬件环境:网络环境中的微型计算机。(2
2、)软件环境:Windows操作系统,任选一种网络编程语言和数据库管理系统开发工具:基于VisualProlog的鸡疾病诊断专家系统四、实验内容首先对一些常见动物的属性进行归纳,提出有用的信息再对这种动物进行描述,通过这一过程,得出大部分动物的特点,这样再通过智能语言对它进行编写。理解并掌握基于规则系统的表示与推理学会编写小型的生产式系统,理解正向推理和反向推理的过程以及两者的区别1.该系统可以识别孔雀、北极熊、狮子、长颈鹿、斑马、天鹅、鹦鹉在本系统中,知识库中的知识用产生式规则表示R1IF该动物有毛发THEN该动物是哺乳动物R2IF该动物有奶T
3、HEN该动物是哺乳动物7农业专家系统开发R3IF该动物有羽毛THEN该动物是鸟R4IF该动物会飞AND会下蛋THEN该动物是鸟R5IF该动物吃肉THEN该动物是肉食动物R6IF该动物有犬齿AND有爪AND眼盯前方THEN该动物是肉食动物R7IF该动物是哺乳动物AND有蹄THEN该动物是有蹄类动物R8IF该动物是哺乳动物AND是嚼反刍动物THEN该动物是有蹄类动物R9IF该动物是哺乳动物AND是肉食动物AND是黄褐色们AND头大鼻骨长THEN该动物是狮子R10IF该动物是哺乳动物AND是肉食动物AND是白而淡黄AND皮肤是黑色的THEN该动物是北
4、极熊R11IF该动物是有蹄类动物AND有长脖子AND有长腿AND身上有暗斑点THEN该动物是长颈鹿R12IF该动物是有蹄类动物AND身上有黑色条纹THEN该动物是斑马R13IF该动物是鸟AND有彩色羽毛AND头小有竖立羽毛AND会飞THEN该动物是孔雀R14IF该动物是鸟AND会游泳AND会飞AND有黑褐色THEN该动物是天鹅R15IF该动物是鸟AND会说话THEN该动物是鹦鹉2.实验原理一个基于规则专家系统的完整结构示于图1。其中,知识库、推理机和工作存储器是构成专家系统的核心。系统的主要部分是知识库和推理引擎。知识库由谓词演算事实和有关讨论
5、主题的规则构成。推理引擎由所有操纵知识库来演绎用户要求的信息的过程构成-如消解、前向链或反向链。用户接口可能包括某种自然语言处理系统,它允许用户用一个有限的自然语言形式与系统交互;也可能用带有菜单的图形接口界面。解释子系统分析被系统执行的推理结构,并把它解释给用户。7农业专家系统开发图1一个基于规则专家系统的完整结构3. PROLOG源程序database xpositive(symbol,symbol). xnegative(symbol,symbol).predicates run. animal-is(symbol). it-is(sym
6、bol). positive(symbol,symbol). negative(symbol,symbol). clear-facts. remember(symbol,symbol). ask(symbol,symbol).clauses run:-animal-is(X),!,(Youranimalmaybea(n)” write“,X), nl,nl,clear-facts.(Unabletodeterminewhat”), run:-write“(youranimalis”),clear-facts. write“7农业
7、专家系统开发 positive(X,Y):-xpositive(X,Y),!. positive(X,Y):-not(xnegative(X,Y))and negative(X,Y):-xnegative(X!. negative(X,Y):-,Y).), ask(X,Y):(X,“,” readln(, remember(X,Y,Reply). remember(X,Y,yes):-assertz(xpositive(X,Y)). remember(X,Y,no):-assertz(xnegative(X,Y)),fail. clea
8、r-facts:-retract(xpositive(-,-)),fail. clear-facts:-retract(xnegative(-,-))