《人工智能实验报告(8页).doc》由会员分享,可在线阅读,更多相关《人工智能实验报告(8页).doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-人工智能实验报告-第 6 页暨南大学人工智能实验报告题 目: 动物识别系统 院 系: 信科院计算机系 专 业: 计算机软件与理论 学 号: 0934061004 学生姓名: 张韶远 成 绩: 日期: 2009年11月10日一、 目的与要求1 掌握人工智能的知识表示技术,能用产生式表示法表示知识,并实现一个用于识别的专家系统。2 推理策略采用正向推理和反向推理两种。二、 主要内容1 学习人工智能的知识表示技术,关键掌握产生式知识表示的具体应用方法。 2 实现的动物识别系统的主要功能如下:21系统能通过正向、反向推理得到正确的动物识别结果。22系统能动态地添加规则、能显示推理过程。三实验原理 产
2、生式表示:产生式表示是知识表示的一种。这种方法是建立在因果关系的基础上的,可很容易的描述事实、规则及其不确定性度量。1事实的表示:事实可看成是断言一个语言变量的值或是多个语言变量间的关系的陈述句,语言变量的值或语言变量间的关系可以是一个词。不一定是数字。一般使用三元组(对象,属性,值)或(关系,对象1,对象2)来表示事实,其中对象就是语言变量,若考虑不确定性就成了四元组表示(增加可信度)。这种表示的机器内部实现就是一个表。 如事实“老李年龄是35岁”,便写成(Lee,age,35) 事实“老李、老张是朋友”,可写成(friend,Lee,Zhang) 2规则的表示:规则用于表示事物间的因果关系
3、,以if condition then action 的单一形式来描述,将规则作为知识的单位。其中的condition 部分称为条件式前件或模式,而action部分称作动作、后件或结论。产生式一般形式为:前件后件。前件和后件也可以是有“与”、“或”、“非”等逻辑运算符的组合的表达式。条件部分常是一些事实的合取或析取,而结论常是某一事实B。如果不考虑不确定性,需另附可信度度量值。产生式过则的含义是:如果前件满足,则可得到后件的结论或者执行后件的相应动作,即后件由前件来触发。一个产生式生成的结论可以作为另一个产生式的前提或语言变量使用,进一步可构成产生式系统。蕴涵式表示的知识只能是精确的,产生式表
4、示的知识可以是不确定的,原因是蕴涵式是一个逻辑表达式,其逻辑值只有真和假。蕴含式的匹配一定要求是精确的,而产生式的匹配可以是不确定的,原因是产生式的前提条件和结论都可以是不确定的,因此其匹配也可以是不确定的。.产生式系统的结构:推理机规则集数据库数据库中存放构成产生式系统的基本元素,又是产生式的作用对象。包括系统设计时输入的事实、外部数据库输入的事实以及中间结果和最后结果。数据的格式是多种多样的,可以是常量、变量、多元组、谓词等。在推理过程中,当规则库中某条规则的前提可以和数据库中的已知事实相匹配时,该规则被激活,由它推出的结论将被作为新的事实放入数据库,成为后面推理的已知事实。规则库中存放的
5、是与求解有关的所有产生式规则的集合,每个规则由前件和后件组成。其中包含了将问题从初始化状态转换成目标状态所需的所有变换规则。这些规则描述了问题领域中的一般性知识。规则库是产生式系统进行问题求解的基础,其知识的完整性、一致性、准确性、灵活性,以及知识组成的合理性等性质,对产生式系统的运行效率都有重要的影响。推理机是一个解释程序,控制协同规则库与数据库,负责整个产生式系统的运行,决定问题求解过程的推理路线,实现对问题的求解。推理机主要包括下面一些工作内容:(1)按一定策略从规则库中选择规则与数据库的已知事实进行匹配。匹配的过程中会产生三种情况。第一种匹配成功,则此条规则将被列入被激活候选集;第二种
6、匹配失败,即输入条件与已知条件矛盾;第三种匹配无结果,即该条规则前件的已知条件中完全与输入事实无关,则将规则列入待测试规则集,将在下一轮匹配中再次使用。因为有可能推理中间结果符合其前件的已知条件。(2)当匹配成功的规则多于一条时,需要从匹配成功的规则中选出一个加以执行,即根据一定的策略解消冲突。(3)解释执行规则后件的动作。如果该规则的后件不是问题的目标,即如果这些后件为一个或多个结论时,将其加入到数据库中。对要执行的规则,如果该规则的后件满足问题的结束条件,则停止推理。四、实验正文1需求分析111动物识别正向推理正向推理是从已知事实出发,通过规则库求的结论,也称为自底向上,或称为数据驱动方式
7、。正向推理过程的具体步骤是:(1)读入事实集到工作存储器。(2)取出某条规则,将规则的全部前件与工作存储器中的所有事实进行比较。如果匹配成功,则所得结果显示到屏幕上,转向(3);否则,直接转向(3)。(3)结束。112删除规则可以添加新的事实和规则。 软件环境操作系统:Windows Server 2003; Windows Vista; Windows XP 开发工具:数据库:SQL Server 2005.人工智能技术的应用动物识别系统的设计与实现 动物识别系统设计的基本思路 动物识别系统的实质是将人的思维过程转化为计算机语言的逻辑过程,其关键在于知识和信息的表示,智能推理或求解的基础知识
8、库的创建和管理,以及基于某种知识和信息表示的智能推理或求解过程。该系统的知识表示采用产生式表示法。产生式系统由条件和规则数据库、控制系统、界面三个部分构成。数据库中规则表、条件表分别对应数据库系统中的动物库表,动物特征询问序列表。动物库表放入推理规则,包括动物的各种属性和所应推出的动物名称。动物特征询问序列表放入要选择的各种动物的属性。动物识别系统设计主体框架:本系统只用了一个页面实现,界面使用上下结构的框架设计,当用户进入系统的时候,打开,该页面分为上下两个部分,上面的部分是用于根据问题输入动物特征,下面的部分是新规则的加入功能部分,也是用户进行添加新规则的页面,这好似一个导航页面,用户可以
9、更具自己的选择进行的操作,由上至下进入不同的功能部分。各个功能模块的设计:(1)正向推理鉴别动物:Default.aspx这个页面中的控件有:一个FormView,其作用是显示系统向用户获得动物特征的询问问题。一个DropDownlist,用于显示与切换第五特征询问的问题。一个Label,用于显示查询结果。一个按钮,用于用户传入查询命令。用户点击查询按钮,button的click事件,在这个事件中,首先定义一个string:result,用来存储最后的输出结果的初始字符串“查询结果是:”然后在后面的查询过程中,如果查询到有新的规则符合要求,就将该规则加到这个string中,当查询结束后,这个字
10、符串中就存放了所有符合用户所选条件的规则,再将这个字符串显示在页面中的textbox中。(2)添加规则添加规则页面中的控件有一个Textbox,用于在查找不到规则的时候,用于添加规则的。 动物识别系统的实现 1.开发工具: SQLserver2005,Visual Studio 2008 设计语言:ASP.NET2.0 , C# 2. 数据库设计思想: 将所有的条件存放在动物特征查询表中,所有的规则存放在动物库表中,在规则表中所有的条件和结论均以编号的形式存放,当要进行查询的时候,从条件表中查到对应标号的条件或者结论,将原来查到的编号替换为文字的条件或者编号。 3测试及验收 通过测试,用正向推
11、理和反向推理实现动物识别的功能基本实现,效果不错。界面设计的也比较简洁。在调试的时候发现添加规则时候有一些问题,就是用户在选择条件的时候如果已经存在这个基本事实的话,则不应该再添加相同的记录。通过和老师探讨与研究,最终解决了这个问题,即在添加规则前,检查数据库中是否有该规则存在,如没有,再进行规则的添加操作。五、综合实验总结和结论1.对人工智能的产生式系统有了进一步的认识,特别是对正向推理和反向推理有更深的了解。2.本次实验是单独完成的,通过查找资料,最终圆满的完成了实验。这次实验充分培养了我们的独立解决问题的能力。3.实验的关键是对正向推理算法的掌握和对数据库的设计,由于前期我们花了比较多的
12、时间进行算法的理解和数据库的设计,大量查找资料,因此最终我们能更快更好的完成了实验。4.通过这次实验,使我们熟悉了软件的开发全程,也更加熟悉了编程工具和编程语言。5.通过两周的设计与开发,动物识别系统基本开发完毕,但是由于时间较短,所以该系统还有许多不尽如人意的地方,比如没有文档,反向推理出现一些缺陷等问题。因此有待进一步改进。总的来说,这次实验我们收益颇多,通过这个独立完成的小型项目,培养了我软件开发设计的能力,熟悉了软件开发的过程步骤,加强了团队协作的能力,进一步掌握了运用ASP.NET2.0进行软件开发,熟悉了C#语言。为以后我们进行软件开发奠定了基础。六、参考文献1 佘玉梅, 段鹏.
13、人工智能及其应用. 上海交通大学出版社, 2007年4月第一版。2 马少平,朱晓燕。人工智能。清华大学出版社,2004年8月第一版。3李勇平 ASP.NET 2.0(C#)基础教程 清华大学出版社 2008年4月第一版4陆永祯,段慧坤,周芸 SQL Server 2000数据库管理和程序开发一周通 中国铁道出版社 2005年4月第一版5龙马工作室 ASP.NET 2.0+SQL Server 2005从入门到精通通 人民邮电出版社 2008年4月第一版附录(程序流程图、程序、界面、数据等)1. 程序流程图2.部分程序代码: public partial class _Default : Sys
14、tem.Web.UI.Page int j = 0, Num, Number2; static int a = new int7; SqlConnection con = new SqlConnection(Server = PC-11; user id = sa;password = 123456;Database = animal;); protected void Page_Load(object sender, EventArgs e) protected void YesOption_CheckedChanged(object sender, EventArgs e) aConver
15、t.ToInt32(Questionselected.SelectedValue) = 1; Questionselected.SelectedIndex+; YesOption.Checked = false; protected void NoOption_CheckedChanged(object sender, EventArgs e) aConvert.ToInt32(Questionselected.SelectedValue) = 0; Questionselected.SelectedIndex+; NoOption.Checked = false; protected voi
16、d HandIn_Click(object sender, EventArgs e) string SeleceString = select 动物名称 from 动物库 where 会游泳= + a0 + and 会飞翔= + a1 + and 吃肉= + a2 + and 有爪子= + a3 + and 眼盯前方= + a4 + and 会下蛋= + a5 + and 有腿= + a6 + ; SqlCommand cmd = new SqlCommand ( SeleceString ,con); con.Open(); SqlDataReader sdr = cmd.ExecuteRe
17、ader(); if (sdr.Read() Result.Text = 查找成功,该动物为 + sdr.GetString(0); else Result.Text = 查找失败,若要添加该动物请在下面输入动物名称。 ; con.Close(); protected void AddAnimal_Click(object sender, EventArgs e) if (Result.Text = 查找失败,若要添加该动物请在下面输入动物名称。 ) string FindMaxNumber = select max(动物序号) from 动物库; SqlCommand cmd2 = new
18、SqlCommand ( FindMaxNumber ,con); con.Open(); SqlDataReader sdr2 = cmd2.ExecuteReader(); if (sdr2.Read() InsertNumber.Text = + (sdr2.GetInt32(0)+1); Number2 = Convert.ToInt32(InsertNumber.Text.Trim(); con.Close(); string AddString = insert into 动物库(动物序号,动物名称,会游泳,会飞翔,吃肉,有爪子,眼盯前方,会下蛋,有腿)values( + Number2 +, + (GivenName.Text) + , + a0 + , + a1 + , + a2 + , + a3 + , + a4 + , + a5 + , + a6 + ); SqlCommand cmd3 = new SqlCommand(AddString, con); con.Open(); cmd3.ExecuteNonQuery(); con.Close();3.1动物识别界面:3.2添加规则界面: