当前位置:文档之家› 《农业信息学》实验报告

《农业信息学》实验报告

农业信息技术实验报告实验一 L-Studio的使用一、实验目的及要求(1)掌握植物拓扑结构的模拟方法(2)掌握虚拟植物系统Lstudio的使用。

二、实验环境CPU为酷睿2.4G、内存1G、硬盘为320G的高档微机,L-Studio系统三、实验内容(1)熟悉L-studio软件的运行环境和使用方法。

(2)根据L-studio的迭代规则和语法实现课本上的实验。

(3)熟悉L-studio中对分支结构的描述。

四、实验步骤(1)双击L-system\L-studio.bin\LStudio.exe文件,启动L-Studio系统;(2)在project菜单下,单击new菜单项,新建一个工程;(3)在L-System界面下编写程序代码;完成书上136页的例1至例3;自行编写一段程序;(4)代码书写完毕后,在cpfg菜单下,单击go菜单项,运行出程序结果,即虚拟植物的形态;(5)通过截图记录程序运行结果。

五、程序代码及实验结果(1)例1程序代码和运行结果截图代码:#define STEPS 4Lsystem: 1derivation length: STEPSAxiom: AA -->B[+B][-B]AhomomorphismA -->, F;B-->,F;Endlsystem运行结果:图1(2)例2程序代码和运行结果截图代码:#define STEPS 4Lsystem: 1derivation length: STEPSAxiom: AA -->B[+A][-A]BAB -->BBhomomorphismA -->,(127)F(1),(64)@O(0.8)B -->,(127)F(1)Endlsystem运行结果:图2(3)例3程序代码和运行结果截图代码:#define STEPS 4Lsystem: 1derivation length: STEPSAxiom: AA -->A[+A]A[-A]AhomomorphismA -->,F;Endlsystem运行结果:图32、自行编写的程序代码和运行结果截图代码如下:#define STEPS 4Lsystem: 1derivation length: STEPSAxiom: AA -->[+B][+A]A[-A][+B]A[-B]AB-->[+B]B[-B]homomorphismA -->,(127)F(1),(64)@O(0.8);B-->,(127)F(1)Endlsystem运行结果:图4六、总结使用L-studio软件去虚拟植物,是农业技术的体现,能够虚拟现实,能够去掌握虚拟植物的拓扑结构。

L-studio软件的运行很简便,运行速率高,使用便捷,通过这次了解该软件的运行环境,并掌握使用方法。

对L-studio的迭代规则和语法规则也有更深的认知,学会了L-studio中对分支结构的描述。

实验二 农业专家系统知识库构建一、实验目的及要求掌握知识表达方法,掌握利用关系型数据库Microsoft SQL Server 2008构建知识库的方法。

二、实验环境CPU为酷睿2.4G、内存1G、硬盘为320G的高档微机,Microsoft SQL Server 2008三、实验内容提前收集、整理有关农业知识,并用产生式规则表示知识;熟悉关系型数据库特别是Microsoft SQL Server 2008有关内容及操作,掌握利用关系型数据库Microsoft SQL Server 2008构建知识库的方法,课上完成知识库的设计与调试,课后提交实验报告。

四、实验步骤(1)打开Microsoft SQL Server 2008;构 农业专家系统;(2)利用关系型数据库Microsoft SQL Server 2008建立农业专家系统事实库、规则库。

五、操作过程及实验结果(1)获取农业知识对拟盘多毛孢叶斑病有如下描述:常自叶尖或叶缘先出现半圆形或不规则形病斑,呈褐色,边缘深褐色,逐渐扩大或连合成斑块,变灰褐色至灰白色,斑面有小黑点。

致使叶片早衰,干枯脱落,削弱树势(2)产生式规则表示知识前件:1 病斑为半圆形、2 病斑为圆形、3病斑为褐色、4 病斑为白色5病斑边缘为深褐色、6病斑边缘为灰色、7病斑逐渐扩大、8 病斑颜色逐渐变深、9病斑逐渐连合成斑块、10 病斑慢慢变为褐色或灰白色、11病斑慢慢变为暗褐色、12 斑面有小黑点、13斑面有轮纹备注:1-13代表病害表现的编号,即也是代表一种总值,在后期构建数据库有所用后件:拟盘多毛孢叶斑病规则:如果 :1、3、5、7、9、10、12、都发生 则:拟盘多毛孢叶斑病 总值为47说明:总值代表后件所需前件之和(3)事实库与规则库的构建打开Microsoft SQL Server 2008软件,创建了拟盘多毛孢叶斑病数据库,包含三个表,即病害表现、病害综合、病害诊断(见图1)。

图1 数据库的建立建表情况,见图2~图4.图2 病害表现表说明:字段disease_feature代表病害表现,disease_id代表病害表现的编号或总值图3 病害综合说明:字段disease_value表示总值,由某一情况所有病害表现总值之和,字段disease1~disease13代表13病害的各自总值目的:总值之和是不能说明就患什么病,因和是不能表明究竟是那些病害表现的和,所以为避免歧义性,能确定唯一性,所以采用这种存储。

图4 病害诊断说明:字段disease_name表示病害的情况,即结论。

(4)在数据库中实现产生式表达知识规则编辑完毕后,根据专家系统开发平台的要求,将知识规则形式化。

如果:部位=叶部并且:病症病状区分= 病斑并且:症状1 =病斑为半圆形并且:症状2 = 病斑为褐色并且:症状3 = 病斑边缘为深褐色并且:症状4 = 病斑逐渐扩大并且:症状5 = 病斑逐渐连合成斑块并且:症状6 = 病斑慢慢变为褐色或灰白色并且:症状7 = 斑面有小黑点编写代码如下:PRINT space(15)+'拟盘多毛孢叶斑病的诊断'print REPLICATE('*',55)print space(8)+'第一步:根据您输入的拟盘多毛孢叶斑病情况如下' DECLARE@KCM1 nchar(40),@KCM2 nchar(40),@KCM3 nchar(40) ,@KCM4 nchar(40) ,@KCM5 nchar(40),@KCM6 nchar(40),@KCM7 nchar(40), @value int,@id1 int=0, @id2 int=0,@id3 int=0,@id4 int=0,@id5 int=0,@id6 int=0,@id7 int=0,@id8 int=0,@id9 int=0/*--第一步输入了解的事实,即前件---*/PRINT space(15)+@KCM1PRINT space(15)+@KCM2PRINT space(15)+@KCM3PRINT space(15)+@KCM4PRINT space(15)+@KCM5PRINT space(15)+@KCM6PRINT space(15)+@KCM7PRINT space(15)+@KCM8PRINT space(15)+@KCM9print space(8)+'第二步:根据您输入的情况初步判断'select @id1=病害表现.disease_idfrom 病害表现 where 病害表现.disease_feature=@KCM1select @id2=病害表现.disease_idfrom 病害表现 where 病害表现.disease_feature=@KCM2select @id3=病害表现.disease_idfrom 病害表现 where 病害表现.disease_feature=@KCM3select @id4=病害表现.disease_idfrom 病害表现 where 病害表现.disease_feature=@KCM4select @id5=病害表现.disease_idfrom 病害表现 where 病害表现.disease_feature=@KCM5select @id6=病害表现.disease_idfrom 病害表现 where 病害表现.disease_feature=@KCM6select @id7=病害表现.disease_idfrom 病害表现 where 病害表现.disease_feature=@KCM7select @id8=病害表现.disease_idfrom 病害表现 where 病害表现.disease_feature=@KCM8select @id9=病害表现.disease_idfrom 病害表现 where 病害表现.disease_feature=@KCM9set @value=@id1+@id2+@id3+@id4+@id5+@id6+@id7+@id8+@id9 print space(15)+'病害综合'+space(5)+ltrim(str(@value))/*--y用变量记录前件的身份--*/if not exists(select 病害诊断.disease_name from 病害诊断 where 病害诊断.disease_value=@value)print space(15)+'没有患拟盘多毛孢叶斑病'elseprint space(15)+'疑似患有拟盘多毛孢叶斑病'print space(8)+'第三步:最后诊断结果为'if (@value=47)if not exists(select 病害诊断.disease_name from 病害诊断,病害综合where 病害综合.disease_value=@value and 病害综合.disease_1=@id1and 病害综合.disease_3=@id2 and 病害综合.disease_5=@id3 and 病害综合.disease_7=@id4 and 病害综合.disease_9=@id5 and 病害综合.disease_10=@id6 and 病害综合.disease_12=@id7 )print space(15)+'没有患拟盘多毛孢叶斑病,可能患其他的病害'elseprint space(15)+'患拟盘多毛孢叶斑病,请及时治疗'else print space(15)+'没有患拟盘多毛孢叶斑病'go(5)进行病虫诊断为了检测该系统无纰漏,无歧义,考虑所有情况:1输入的病害表现产生不了任何一个病害2苹果轮纹病代码:根据上面的代码,只有变量变了,其余都持不变变化代码:@KCM1 nchar(40)='病斑为半圆形',@KCM2 nchar(40)='病斑为褐色',@KCM3 nchar(40)='病斑边缘为深褐色' ,@KCM4 nchar(40)='病斑逐渐扩大' ,@KCM5 nchar(40)='病斑逐渐连合成斑块' ,@KCM6 nchar(40)='病斑慢慢变为褐色或灰白色',@KCM7 nchar(40)='斑面有小黑点',结果,见图5:图5 情况六、总结本次试验我有很大收获。

相关主题