《农业信息学》实验报告.docx
《《农业信息学》实验报告.docx》由会员分享,可在线阅读,更多相关《《农业信息学》实验报告.docx(13页珍藏版)》请在冰点文库上搜索。
![《农业信息学》实验报告.docx](https://file1.bingdoc.com/fileroot1/2023-5/4/eb6d1908-9716-4cba-bab7-776fddc09e27/eb6d1908-9716-4cba-bab7-776fddc09e271.gif)
《农业信息学》实验报告
农业信息技术
实验报告
实验一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程序代码和运行结果截图
代码:
#defineSTEPS4
Lsystem:
1
derivationlength:
STEPS
Axiom:
A
A-->B[+B][-B]A
homomorphism
A-->,F;
B-->,F;
Endlsystem
运行结果:
图1
(2)例2程序代码和运行结果截图
代码:
#defineSTEPS4
Lsystem:
1
derivationlength:
STEPS
Axiom:
A
A-->B[+A][-A]BA
B-->BB
homomorphism
A-->,(127)F
(1),(64)@O(0.8)
B-->,(127)F
(1)
Endlsystem
运行结果:
图2
(3)例3程序代码和运行结果截图
代码:
#defineSTEPS4
Lsystem:
1
derivationlength:
STEPS
Axiom:
A
A-->A[+A]A[-A]A
homomorphism
A-->,F;
Endlsystem
运行结果:
图3
2、自行编写的程序代码和运行结果截图
代码如下:
#defineSTEPS4
Lsystem:
1
derivationlength:
STEPS
Axiom:
A
A-->[+B][+A]A[-A][+B]A[-B]A
B-->[+B]B[-B]
homomorphism
A-->,(127)F
(1),(64)@O(0.8);
B-->,(127)F
(1)
Endlsystem
运行结果:
图4
六、总结
使用L-studio软件去虚拟植物,是农业技术的体现,能够虚拟现实,能够去掌握虚拟植物的拓扑结构。
L-studio软件的运行很简便,运行速率高,使用便捷,通过这次了解该软件的运行环境,并掌握使用方法。
对L-studio的迭代规则和语法规则也有更深的认知,学会了L-studio中对分支结构的描述。
实验二农业专家系统知识库构建
一、实验目的及要求
掌握知识表达方法,掌握利用关系型数据库MicrosoftSQLServer2008构建知识库的方法。
二、实验环境
CPU为酷睿2.4G、内存1G、硬盘为320G的高档微机,MicrosoftSQLServer2008
三、实验内容
提前收集、整理有关农业知识,并用产生式规则表示知识;熟悉关系型数据库特别是MicrosoftSQLServer2008有关内容及操作,掌握利用关系型数据库MicrosoftSQLServer2008构建知识库的方法,课上完成知识库的设计与调试,课后提交实验报告。
四、实验步骤
(1)打开MicrosoftSQLServer2008;构农业专家系统;
(2)利用关系型数据库MicrosoftSQLServer2008建立农业专家系统事实库、规则库。
五、操作过程及实验结果
(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)事实库与规则库的构建
打开MicrosoftSQLServer2008软件,创建了拟盘多毛孢叶斑病数据库,包含三个表,即病害表现、病害综合、病害诊断(见图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=斑面有小黑点
编写代码如下:
PRINTspace(15)+'拟盘多毛孢叶斑病的诊断'
printREPLICATE('*',55)
printspace(8)+'第一步:
根据您输入的拟盘多毛孢叶斑病情况如下'
DECLARE
@KCM1nchar(40),@KCM2nchar(40),@KCM3nchar(40),@KCM4nchar(40),@KCM5nchar(40),@KCM6nchar(40),@KCM7nchar(40),
@valueint,@id1int=0,@id2int=0,@id3int=0,@id4int=0,@id5int=0,@id6int=0,
@id7int=0,@id8int=0,@id9int=0
/*--第一步输入了解的事实,即前件---*/
PRINTspace(15)+@KCM1
PRINTspace(15)+@KCM2
PRINTspace(15)+@KCM3
PRINTspace(15)+@KCM4
PRINTspace(15)+@KCM5
PRINTspace(15)+@KCM6
PRINTspace(15)+@KCM7
PRINTspace(15)+@KCM8
PRINTspace(15)+@KCM9
printspace(8)+'第二步:
根据您输入的情况初步判断'
select@id1=病害表现.disease_id
from病害表现where病害表现.disease_feature=@KCM1
select@id2=病害表现.disease_id
from病害表现where病害表现.disease_feature=@KCM2
select@id3=病害表现.disease_id
from病害表现where病害表现.disease_feature=@KCM3
select@id4=病害表现.disease_id
from病害表现where病害表现.disease_feature=@KCM4
select@id5=病害表现.disease_id
from病害表现where病害表现.disease_feature=@KCM5
select@id6=病害表现.disease_id
from病害表现where病害表现.disease_feature=@KCM6
select@id7=病害表现.disease_id
from病害表现where病害表现.disease_feature=@KCM7
select@id8=病害表现.disease_id
from病害表现where病害表现.disease_feature=@KCM8
select@id9=病害表现.disease_id
from病害表现where病害表现.disease_feature=@KCM9
set@value=@id1+@id2+@id3+@id4+@id5+@id6+@id7+@id8+@id9
printspace(15)+'病害综合'+space(5)+ltrim(str(@value))
/*--y用变量记录前件的身份--*/
ifnotexists(select病害诊断.disease_namefrom病害诊断where病害诊断.disease_value=@value)
printspace(15)+'没有患拟盘多毛孢叶斑病'
else
printspace(15)+'疑似患有拟盘多毛孢叶斑病'
printspace(8)+'第三步:
最后诊断结果为'
if(@value=47)
ifnotexists(select病害诊断.disease_namefrom病害诊断,病害综合
where病害综合.disease_value=@valueand病害综合.disease_1=@id1
and病害综合.disease_3=@id2and病害综合.disease_5=@id3
and病害综合.disease_7=@id4and病害综合.disease_9=@id5
and病害综合.disease_10=@id6and病害综合.disease_12=@id7)
printspace(15)+'没有患拟盘多毛孢叶斑病,可能患其他的病害'
else
printspace(15)+'患拟盘多毛孢叶斑病,请及时治疗'
elseprintspace(15)+'没有患拟盘多毛孢叶斑病'
go
(5)进行病虫诊断
为了检测该系统无纰漏,无歧义,考虑所有情况:
1输入的病害表现产生不了任何一个病害
2苹果轮纹病
代码:
根据上面的代码,只有变量变了,其余都持不变
变化代码:
@KCM1nchar(40)='病斑为半圆形',
@KCM2nchar(40)='病斑为褐色',
@KCM3nchar(40)='病斑边缘为深褐色',
@KCM4nchar(40)='病斑逐渐扩大',
@KCM5nchar(40)='病斑逐渐连合成斑块',
@KCM6nchar(40)='病斑慢慢变为褐色或灰白色',
@KCM7nchar(40)='斑面有小黑点',结果,见图5:
图5情况
六、总结
本次试验我有很大收获。
身为计算系的学生,但是之前一直没有接触过将计算机技术和农业知识相联系,无法站在亲身经历的感觉去发现在农业学计算机带来的发展。
这次我用大二所学的数据库知识,利用MicrosoftSQLServer2008软件去构建知识库,虽然水平不高,但是通过自己所学的知识成功利用软件和产生式规则表示知识设计知识库,并且调试成功。
感觉计算机技术对农业发展很有作用,节省人力、金钱等资源,实现智能化、科学化、方便化。
与此同时,通过本次实验掌握些拟盘多毛孢叶斑病的知识和产生式规则表示知识,丰富了知识面。
提高了SQL语言的运用能力。