产生式系统--人工智能实验指导书

合集下载

产生式系统--人工智能实验指导书

产生式系统--人工智能实验指导书

产生式系统--人工智能实验指导书《人工智能》实验指导书(2010年版)供2011级计算机科学与技术专业使用1.实验目的培养学生利用人工智能技术解决简单实际问题的能力。

2. 实验设备或环境硬件设备:微机。

软件环境:操作系统Windows XP,开发工具Microsoft Visual C++ 6.0、Visual Prolog5.2、Matlab6.5。

3. 实验内容(1).在Visual C++环境下,利用状态空间法解决产生式系统问题。

4.实验步骤(1).编写、调试程序。

(2).运行若干个实例。

(3).编写实验报告。

5. 考核要求或实验报告要求每位学生独立完成编程与实验报告,在机房抽查同学的程序。

少量同学需要做口头报告与演示程序。

实验报告的格式见附件。

附件:《人工智能》课程实验报告模板说明:1、模板的斜体文字是编写提纲,正式报告中不用保留。

2、必须在理解教材和上课内容的基础上,自己独立完成本报告。

不要拷贝教材中的文字与流程图。

3、提交的实验报告包括本报告与程序源代码,每位同学以自己的学号名字为文件名,压缩后提交。

例如,06080700张三.zip/rar。

4、在机房抽查同学的程序。

在课堂上,要求部分同学口头讲解报告和演示程序。

以下是报告的模板正文利用正向推理方法解决产生式系统问题学号E201102053 姓名姚为民完成时间2011年10月1.产生式系统问题简介产生式系统用来描述若干个不同的以一个基本概念为基础的系统。

这个基本概念就是产生式规则或产生式条件和操作的概念。

在产生式系统中,论域的知识分为两个部分:用事实表示静态知识,用产生式规则表示推理过程和行为。

产生式系统由三部分组成,即总数据库、产生式规则和控制策略。

总数据库用于存放求解过程中各种当前信息的数据结构。

产生式规则中某条规则的前提与总数据库中的某些事实相匹配时,该规则就被激活,并把其结论作为新的事实存入总数据库。

产生式规则是一个规则库,用于存放于求解问题有关的某个领域知识的规则集合及其交换规则。

人工智能实验指导书

人工智能实验指导书

⼈⼯智能实验指导书《⼈⼯智能》实验指导书计算机科学与技术系⽬录实验⼀Turbo Prolog系统认识实验(2学时) (2)实验⼆求N!及Fibonacci序列问题实验(3学时) (5)实验三梵塔问题实验(3学时) (6)实验四装错信封问题(4学时) (9)实验五⼩型专家系统设计与实现(4学时) (12)实验⼀Turbo Prolog系统认识实验(2学时)⼀、实验⽬的1、了解PROLOG解释器;2、了解PROLOG语⾔中常量、变量的表⽰⽅法;3、了解利⽤PROLOG进⾏事实库、规则库的编写⽅法;4、了解利⽤PROLOG中的谓词asserta和retract进⾏数据管理。

⼆、实验要求1、熟悉Prolog运⾏环境,包括硬件与软件环境;2、学习⽰例程序,分析其功能;3、写出Example 1、Example 11、Example 15⽰例程序的功能;4、利⽤PROLOG进⾏事实库、规则库的编写,并在此基础上进⾏简单的询问;5、练习利⽤PROLOG中的谓词asserta和retract进⾏数据管理。

三、实验设备⽹络计算机,Turbo prolog教学软件。

四、实验内容及步骤⼀)实验内容:1、熟悉Turbo prolog的运⾏环境,包括所⽤的机器的硬件与软件环境。

2、学习使⽤Turbo prolog,包括进⼊Prolog主程序、编辑源程序、修改环境⽬录、退出等基本操作。

3、学习Turbo prolog的简单程序结构,掌握分析问题、询问解释技巧。

4、了解PROLOG语⾔中常量、变量的表⽰⽅法;5、利⽤PROLOG进⾏事实库、规则库的编写,并在此基础上进⾏简单的询问;1、启动Windows操作环境。

2、打开⽬录,执⾏prolog应⽤程序,启动Turbo prolog,并按空格键(SPACE)集成开发环境。

3、选择Setup项,打开下拉菜单,选择Directories项,将⼯作⽬录进⾏修改,按Esc键退出,选择Save Configuration项,保存修改。

实验一产生式系统

实验一产生式系统

实验一产生式系统——动物识别系统一、实习目的和意义1、掌握人工智能的知识表示技术,能用产生式表示法表示知识;2、掌握基于规则推理的基本方法;3、掌握产生式系统的运行机制。

二、实习内容参考教材规则库包含15条规则,开发一个专家系统可以识别老虎,金钱豹,斑马,长颈鹿,企鹅,鸵鸟等6种动物。

三、实习要求1、本次实验语言MATLAB;2、系统能通过正向推理得到正确的动物识别结果。

四、实习过程1.实验原理正向推理(事实驱动推理)1)从初始已知事实出发,在知识库KB中找出当前可适用的知识,构成可适用知识集KS;2)按某种冲突消解策略,从KS中选出一条知识进行推理,并将推出的新事实加入到数据库DB中,作为下一步推理的已知事实,再在KB中选取可适用知识构成KS;3)重复步骤二,直到求得问题的解,或KB中再无可适用的知识。

2.问题背景根据课本P33的15调动物识别的专家知识,建立规则库。

3.算法设计主要利用数组下标和元素的0,1值表示知识,规则,及相关标记。

4.Matlab实现a.算法函数名函数说明learn function learn(arr_category, arr_feature)主函数checkRule function[arr_category,arr_feature,arr_rule,ifMore,mark]=checkRule(arr_category,arr_feature,arr_rule,ifMore,mark )规则符合检测showCategory function showCategory( )类别选项打印函数showFeature function showFeature()特征选项打印函数showResult function showResult(mark)结果显示b.测试测试数据一1 0 0 0 1arr_category[5]arr_feature[20 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 00]测试数据二arr_category[5]0 0 0 0 0arr_feature[20]1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0五、实习总结1.实习总结本次实验主要复习了产生式规则,利用正向推理和15条规则,建立简单的动物识别专家系统,并具有一定的容错性。

人工智能实验指导书

人工智能实验指导书

贵州大学计算机科学与技术学院计算机科学与技术科系本科生《人工智能》实验指导书/实验教学大纲王以松2012年目录实验一人工智能冲浪 (3)实验二SAT求解描述性问题 (4)实验三Prolog基本编程环境 (6)实验四ASP描述性问题求解 (10)参考资料: (12)实验一人工智能冲浪1、实验目的了解人工智能的定义/讨论,研究内容,研究进展以及相关的重要人物和有影响的事件。

2、实验原理通过网络搜索引擎,例如google,baidu,yahoo等,以关键词在网络上搜索相关内容。

3、实验内容搜索如下内容:1)人工智能的定义与讨论,特别是wiki百科在这方面的讨论.2)人工智能研究方向/领域,以及本领域中有重大影响力的论文1-2篇,例如在citeseer上的被引用次数最多.3)Turing奖获得者中,人工智能领域的专家,例如McCarthy, Pearl, Newell, Simon, Feigenbaum等,他们的获奖理由/在人工智能方面的突出贡献.4)IBM Deep Blue, Watson;Checker;Big Dog(Boston Dynamics)4、实验描述及要求选择其中一个实验内容,整理形成一个AI的主题介绍。

5、实验步骤无要求.6、参考程序无.实验二SAT求解描述性问题1、实验目的通过学习并使用一个SAT求解器,例如MiniSat,了解Satisfiability描述性问题求解方法。

了解SAT求解器的研发现状。

2、实验原理把给定的问题表达成逻辑公式CNF形式,使得其模型对应问题的解。

经过翻译后,输入给SAT求解器,并将其输出结果解释后输出,从而读出问题的一个解。

3、实验内容1)选用一个SAT求解器,例如MiniSat等。

2)搜索公开的SAT的benchmark/测试用例,就图着色等问题生成CNF公式,或随机生成CNF公式。

3)调用SAT求解器,例如MiniSat,计算其模型。

4)输出对应问题的解。

人工智能实验指导书+作业展示

人工智能实验指导书+作业展示

《人工智能技术导论》实验指导书西北工业大学计算机学院目录一实验纲要 (1)二上机要求 (2)三实验内容 (3)实验一图搜索与问题求解 (3)实验1.1 启发式搜索 (3)实验1.2 A*算法搜索 (9)实验1.3 其他应用问题 (12)实验二产生式系统推理 (14)实验三TSP问题的遗传算法实现 (20)四实验报告模板 (27)人工智能实验一实验报告 (27)人工智能实验二实验报告 (28)人工智能实验三实验报告 (29)附件1 TSP问题的遗传算法程序模板 (30)附件2 学生作业作品展示 (35)一实验纲要一实验教学的目的、任务与要求将人工智能基础理论应用于实际问题的解决当中,加深学生对所学知识的理解,提高学生的实际动手能力。

二实验项目内容1图搜索策略实验用启发式搜索方法/A*算法求解重排九宫问题/八数码问题。

2产生式系统的推理以动物识别系统为例,实现基于产生式规则的推理系统。

3 TSP问题的遗传算法实现以N个结点的TSP问题为例,用遗传算法加以求解。

三参考教材人工智能技术导论-第3版,廉师友编著,西安电子科技大学出版社,2007。

四使用主要仪器设备说明在Windows2000/XP上,选用Java/C/C++/Matlab等语言进行实现。

五实验考核实验为12学时,分4次课完成。

每个实验题目在课堂上分别按百分制给出。

其中包括课堂纪律、程序运行结果、课堂回答问题及实验报告成绩等。

实验课总成绩为3个实验题目的平均成绩。

实验课要求学生提前预习,上课时需向辅导老师提交预习报告,报告格式和内容不作过多要求,只需简要说明自己本次实验的大体思想。

预习报告形式不限,电子版或手写版均可。

1 考核方法由各班辅导老师当堂检查源程序和运行结果,并提问相关问题,课堂上给出成绩并记录。

每个题目完成后把源代码和实验报告提交,由辅导老师检查实验报告并给出报告成绩。

2 评分标准每个实验题目根据以下标准进行考核:1)考勤分20分。

《人工智能》实验报告之产生式系统

《人工智能》实验报告之产生式系统

《人工智能》实验报告
实验序号:09260021-01 实验项目名称:产生式系统的设计与实现
说明:实验检查方式(7-8周)
1.系统演示
a) 界面显示要求
(1)有若干选择初始事实的选择列表;
(2)显示规则的调用次序及综合数据库的变化过程;(正向推理中显示每使用一次规则后,产生的新事实。

反向推理中显示新的目标事实有哪些需要证明及哪些已经得到证实);
(3)显示最后的推理结果。

b) 代码基本功能的实现要求
初始事实的输入;规则的存储与载入;规则匹配、冲突消解、规则执行;结果输出。

2.提交实验报告。

人工智能实验指导书

人工智能实验指导书
1.有毛的动物是哺乳动物;
2.有羽毛的动物是鸟类;
3.若动物会飞且会生蛋,则它是鸟类。
4.有奶的动物是哺乳动物;
5.吃肉的哺乳类动物是肉食动物;
6.犬牙利爪,眼睛向前的是肉食动物;
7.反刍食物的哺乳类动物是有蹄类;
8.有蹄的哺乳类是有蹄类;
9.黄褐色有暗斑点的肉食类是金钱豹;
10.黄褐色有条纹的肉食类是老虎;
asc_order(integer,integer)
clauses
insert_sort([],[]).
insert_sort([H|Tail],Sorted_list):-
insert_sort(Tail,Sorted_Tail),
insert(H,Sorted_Tail,Sorted_list).
/*sy1.pro*/
Domains
name=symbol
Predicates
likes(name,name)
friend(name,name)
Goal
friend(john,Y),write(“Y=’,Y).
Clauses
likes(bell,sports).
likes(mary,music).
likes(mary,sports).
本书是一本配合《计算机操作系统》课程的实验指导书,收集了供广大同学实践的2个实验,包括时钟中断程序设计、进程调度。除了给出实验内容外,还附带了相关的参考源代码,但这只是一种参考,读者可以不局限于这些源代码,也可以自行设计。
学会《计算机操作系统》要求理论与实践相结合,本门实验课程是对《计算机操作系统》课堂教学的一个重要补充,与理论学习起着相辅相成的作用,是实施《计算机操作系统》教导的一个重要组成部分。同时本课程还安排了操作系统综合实验,模拟操作系统的几种功能。通过本综合实验课的实践学习,可以增强本专业的学生对系统实现的认识。对加深理解和掌握操作系统相关原理有重要帮助。

人工智能实验指导书-1

人工智能实验指导书-1

人工智能导论实验指导一、实验整体要求(包括进度、实验预习和报告要求、结果形式、考核等)共分两个实验,12学时内完成,每次3学时,共4次上机。

每个实验相当于一个大作业,锻炼学生运用知识解决实际问题的能力,对所学知识有更深刻的理解。

要求提交源代码,运行结果和相关文档(包括核心算法)。

由实验老师逐一检查考核,占考试成绩的20%。

二、(有关说明:软/硬环境、实验基本方法、调试和测试工具的使用等)在Windows2000/XP环境下,语言可以采用C/C++/JAVA/Matlab等。

实验室提供相关软件可由学生根据需要安装。

三、实验内容实验_图搜索策略1.实验目的(说明本次实验应对那些知识达到何种认知程度,如了解/掌握)(1)加深对各种图搜索策略概念的理解;(2)进一步了解启发式搜索;(3)比较并分析各种图搜索策略的异同°2.实验预习内容(1)了解重排九宫问题、一字棋游戏、八皇后问题;(2)各种图搜索算法及剪枝技术等。

3.实验内容和步骤结合第二章内容,以一字棋游戏,八皇后问题,重排九宫问题等为例,分组编程演示其搜索策略.题目:b 以重排九宫问题为例演示各种搜索策略的搜索过程,要求程序具有一定的普适性,重点是要把算法描述清楚。

6学时2,对博弈感兴趣的同学可选做一字棋游戏的实现。

4.实验总结及思考总结出各种搜索策略的特点和区别。

实验二产生式系统的推理1.实验目的(说明本次实验应对那些知识达到何种认知程度,如了解、掌握等)理解并掌握基于规则系统的表示与推理。

2.实验预习内容第五章产生式系统3.实验内容和步骤1.内容:结合第五章内容,以动物识别系统(或货物袋装系统)为例,实现基于规则的系统构造实验.6学时。

2.要求:1)根据输入的规则,正确地识别所能识别的动物。

2)能完成正向和/或反向推理我们假设计算机的视觉系统可以识别毛发、羽毛、奶、犬齿、爪、蹄、颜色等等基本的事实。

一个动物识别专家系统的产生式如下:R1:若某动物有奶,则它是哺乳动物。

人工智能实验指导书

人工智能实验指导书

人工智能及应用实验指导书前言《人工智能及应用》课程实验的目的是为了配合课堂教学,进一步强化对人工制能的不同实现途径的理解。

实验的任务是要结合相关的人工智能语言平台(PROLOG语言),熟练掌握和深入理解课堂教学内容。

帮助学生更好地学习本课程,理解和掌握人工智能算法设计与实现所需的技术,为整个专业学习打好基础,要求运用所学知识,上机解决一些典型问题,通过分析、设计等各环节的训练,使学生深刻理解、牢固掌握所用到的一些原理与技术。

实验中的内容和教科书的内容是密切相关的,在反复实践的过程中才能掌握。

使学生在掌握抽象人工智能理论的基础之上学到更多可操作性很强的智能算法技术及实践经验。

目录实验一 Prolog语言及逻辑程序设计 (1)实验二搜索策略实验 (3)实验三专家系统实验 (6)实验一 Prolog语言及逻辑程序设计一、实验目的加深学生对逻辑程序运行机理的理解,使学生掌握PROLOG语言的特点、熟悉其编程环境,同时为后面的人工智能程序设计做好准备。

1、熟悉PROLOG语言编程环境的使用;2、了解PROLOG语言中常量、变量的表示方法;3、了解利用PROLOG进行事实库、规则库的编写方法。

二、实验环境计算机,Visual PROLOG教学软件。

三、预习要求实验前应阅读实验指导书,了解实验目的、预习PROLOG语言的相关知识。

四、实验内容1、学习使用Visual PROLOG,包括进入PROLOG主程序、编辑源程序、修改环境目录、退出等基本操作。

2、在Visual prolog集成环境下调试运行简单的Visual PROLOG程序。

3、编写一个描述亲属关系的PROLOG程序,然后再给出一些事实数据,建立一个小型演绎数据库。

可以以父亲和母亲为基本关系(作为基本谓词),再由此来描述祖父、祖母、兄弟、姐妹以及其他亲属关系。

4、修改教材2.2节例2.9的程序,使其能输出图中所有路径(path)。

五、实验方法和步骤1、启动Windows 操作环境。

人工智能 实验指导

人工智能  实验指导

《人工智能》课程实验指导书课程代码:H0404X课程编号:09120042适用对象:计算机科学与技术专业指导教师:肖晓明魏世勇实验内容实验一产生式系统实验实验二移动机器人的路径规划与行为决策实验实验三梵塔问题实验实验四 A*算法实验实验五化为子句集的九步法实验实验六子句消解实验实验七模糊假言推理器实验实验八 BP网络实验实验九贝叶斯网络实验实验一产生式系统实验(必修,2学时)一、实验目的:熟悉和掌握产生式系统的运行机制,掌握基于规则推理的基本方法。

二、实验原理产生式系统用来描述若干个不同的以一个基本概念为基础的系统,这个基本概念就是产生式规则或产生式条件和操作对。

在产生式系统中,论域的知识分为两部分:用事实表示静态知识;用产生式规则表示推理过程和行为。

三、实验条件:1.产生式系统实验程序。

2.IE5.0以上,可以上Internet。

四、实验内容:1.对已有的产生式系统(默认的例子)进行演示,同时可以更改其规则库或(和)事实库,进行正反向推理,了解其推理过程和机制。

2.自己建造产生式系统(包括规则库和事实库),然后进行推理,即可以自己输入任何的规则和事实,并基于这种规则和事实进行推理。

这为学生亲手建造产生式系统并进行推理提供了一种有效的实验环境。

五、实验步骤:1.定义变量,包括变量名和变量的值。

2.建立规则库,其方法是,(a) 输入规则的条件:每条规则至少有一个条件和一个结论,选择变量名,输入条件(符号);选择变量值,按确定按钮就完成了一条条件的输入。

重复操作,可输入多条条件;(b) 输入规则的结论:输入完规则的条件后,就可以输入规则的结论了,每条规则必须也只能有一个结论。

选择变量名,输入条件(符号),选择变量值,按确定按钮就完成了一个结论的输入。

重复以上两步,完成整个规则库的建立。

3.建立事实库(总数据库):建立过程同步骤2。

重复操作,可输入多条事实。

4.然后按“开始”或“单步”按钮即可。

此外,利用实例演示,可以运行系统默认的产生式系统,并且可以进行正反向推理。

实验一:产生式系统-动物识别系统

实验一:产生式系统-动物识别系统

《人工智能导论》实验报告实验一:产生式系统——动物识别系统一、实验目的1、掌握知识的产生式表示法2、掌握用程序设计语言编制智能程序的方法二、实验内容1、所选编程语言:C语言;2.拟订的规则:(1)若某动物有奶,则它是哺乳动物。

(2)若某动物有毛发,则它是哺乳动物。

(3)若某动物有羽毛,则它是鸟。

(4)若某动物会飞且生蛋,则它是鸟。

(5)若某动物是哺乳动物且有爪且有犬齿且目盯前方,则它是食肉动物。

(6)若某动物是哺乳动物且吃肉,则它是食肉动物。

(7)若某动物是哺乳动物且有蹄,则它是有蹄动物。

(8)若某动物是哺乳动物且反刍食物,则它是有蹄动物。

(9)若某动物是食肉动物且黄褐色且有黑色条纹,则它是老虎。

(10)若某动物是食肉动物且黄褐色且有黑色斑点,则它是金钱豹。

(11)若某动物是有蹄动物且长腿且长脖子且黄褐色且有暗斑点,则它是长颈鹿。

(12)若某动物是有蹄动物且白色且有黑色条纹,则它是斑马。

(13)若某动物是鸟且不会飞且长腿且长脖子且黑白色,则它是驼鸟。

(14)若某动物是鸟且不会飞且会游泳且黑白色,则它是企鹅。

(15)若某动物是鸟且善飞,则它是海燕。

2、设计思路:用户界面:采用问答形式;知识库(规则库):存放产生式规则,推理时用到的一般知识和领域知识,比如动物的特征,动物的分类标准,从哺乳动物、食肉动物来分,再具体地添加一些附加特征得到具体动物;建立知识库的同时也建立了事实库。

事实库是一个动态链表,一个事实是链表的一个结点。

知识库通过事实号与事实库发生联系。

数据库:用来存放用户回答的问题,存放初始状态,中间推理结果,最终结果;推理机:采用正向推理,推理机是动物识别的逻辑控制器,它控制、协调系统的推理,并利用知识库中的规则对综合数据库中的数据进行逻辑操作。

推理机担负两项基本任务:一是检查已有的事实和规则,并在可能的情况下增加新的事实;二是决定推理的方式和推理顺序。

将推理机制同规则对象封装在一起,事实对象记录了当前的状态,规则对象首先拿出前提条件的断言(只有这些前提都有符合时才会做这条规则的结论),询问事实对象集,如事实对象集不知道,则询问用户,如所有前提条件都被证实为真则结论为真,否则系统不知道结论真假。

人工智能实验报告-产生式系统推理-动物识别

人工智能实验报告-产生式系统推理-动物识别

人工智能第二次实验报告产生式系统推理班级:姓名:学号:一、实验目的1. 理解并掌握产生式系统的基本原理;2. 掌握产生式系统的组成部分,以及正向推理和逆向推理过程。

二、实验要求1. 结合课本内容, 以动物识别系统为例,实现小型产生式系统;2. 要求: 正向推理中能根据输入的初始事实,正确地识别所能识别的动物;逆向推理中能根据所给的动物给出动物的特征。

三、实验算法1. 如何表示事实和特征的知识;在本程序中,我将动物的特征写入data.txt,将规则记入rules.txt,将动物种类记为goal.txt。

通过函数void readFiles(){readGoal();readCod();readRule();}读入所有数据分别存放于goal[],rule[],cod[]自定义数组中。

2. 指出综合数据库和规则库分别使用哪些函数实现的?综合数据库(包括特征和目标)typedef struct{int xuh;//存放编号char valu[50];//存放具体内容}Node;Node goal[20];Node cod[50];规则库typedef struct{int rslt;int codNum;//记载前提的个数int cod[10];//记载前提的序号int used;//记载是否已匹配成功}Nrule;Nrule rule[50];void readRule(){FILE *fp;int i;int tempxuh,tempcodn;char ch;if((fp=fopen("rules.txt","r"))==NULL){printf("cannot open data\n");exit(0);}i=0;rule[i].codNum=0;while((ch=fgetc(fp))!=EOF){if(i==14)i=i;tempcodn=0;while(ch!='\n'&&ch!=EOF) //每一条规则{tempxuh=0;while(ch<='9'&&ch>='0'){tempxuh=tempxuh*10+ch-'0';ch=fgetc(fp);}rule[i].cod[tempcodn++]=tempxuh;tempxuh=0;if(ch=='-')//下一个是结论{ch=fgetc(fp);ch=fgetc(fp);while(ch<='9'&&ch>='0'){tempxuh=tempxuh*10+ch-'0';ch=fgetc(fp);}rule[i].rslt=tempxuh;}//ifelse if(ch=='*'){ch=fgetc(fp);}rule[i].codNum++;}i++;}rulenum=i;fclose(fp);}3. 规则库的匹配算法是什么?如何选用可用规则集中的规则?分别使用哪些函数实现的?程序中的正向与逆向搜索分别是在void main()中调用forwardFinger()和backFinger()来实现的。

产生式系统实验报告

产生式系统实验报告

学生实验报告实验课名称:人工智能实验项目名称:产生式系统实验专业名称:计算机科学与技术班级:2013240202学号:********************教师姓名:陈亮亮2015 年10 月25 日实验日期:2015 年10 月23 日实验室名称:明远2203一.实验名称:产生式系统实验二.实验目的与要求:1、确定推理方法(正向还是反向),并根据问题设计并实现一个简单的推理机(要求涉及:匹配、冲突消解)2、规则库要求至少包含15条规则(知识规则如何存储?)3、推理机和知识库必须分离4、初始事实可以任意给定,输入初始事实后能够得到推理结果5、设计合理的人机界面,解释模块提供查询规则的功能6、可以不考虑知识库管理模块7、提交实验报告8、报告中要有推理树三.实验内容:本实验我设计了一个动物识别的小型专家系统,主要是根据一些观察到的事实,依据系统给出的一系列规则来进行正向推理,将逐渐的推导出结果。

本次实验设计了一个简单的推理机,推理机给出的推理结果有“它是__动物”、“条件不足,不能推出它是什么动物”、“条件有冲突,没有这样的动物”或“条件不完全,但它有__的部分特征”。

部分推理树如下:四、算法描述:1.表示事实和特征的知识。

在本程序中,我将动物的特征写入data.txt,将规则记入rules.txt,将动物种类记为goal.txt。

步骤4 若冲突集为空,则运行失败,退出。

步骤5 对冲突集做处理,对选择执行的各规则,将其结论加入动态数据库,或执行其动作,转步骤2。

推理的流程图五.源程序:#include<stdio.h>#include<string.h>#include<stdlib.h>#include<iostream.h>#include<math.h>#define MAXNUM 50typedef structprintf("按任意键继续,按'n'或'N'退出:");ch=getchar();ch=getchar();}while(ch!='n'&&ch!='N');}六.运行结果与分析:。

人工智能导论课程实验指导书

人工智能导论课程实验指导书

人工智能导论课程实验指导书廉师友编1. 小型专家系统设计与实现 (2)1专家系统涉及人工智能导论课程的大部分内容,而且实践性和应用性都很强。

因此,本课程将专家系统设计与实现作为一个上机实验项目。

该实验是一个设计性实验,它对加深课程内容的理解和掌握,培养学生运用所学知识开发智能系统的能力有重要意义。

小型专家系统设计与实现1. 加深理解专家系统的结构原理与实际应用。

2. 初步掌握知识获取的基本方法。

3. 掌握产生式规则知识表示方法及其编程实现方法。

4. 初步掌握知识库的组建方法。

5. 加深理解推理机的算法原理并初步掌握其编程实现方法。

运用所学知识,设计并编程实现一个小型专家系统(如分类、诊断、预测等类型)。

1. 具体应用领域自选,具体系统名称自定;但所做系统绝对不能雷同。

2. 用产生式规则作为知识表示,用产生系统实现该专家系统。

3. 可用PROLOG语言编程并参考下面示例程序;但也可用其他语言另行编程。

4. 所实现的专家系统必须上机运行演示;程序运行时,应有人机对话过程。

5. 系统完成后,要提交实验报告。

具体工作及步骤为:1. 选题。

2. 系统分析。

3. 知识获取与知识表示选择/设计。

4. 知识库组建。

5. 推理机选择/编制。

6. 系统调试与测试:可先运行一两个简单的PROLOG程序,以熟悉语言环境;接着运行示例程序;然后编辑、调试、测试自己的系统程序。

7. 撰写实验报告。

2考虑到本实验有一定难度,下面给出一个“小型动物分类专家系统”示例,以供参考。

1. 动物分类规则集(1)若某动物有奶,则它是哺乳动物。

(2)若某动物有毛发,则它是哺乳动物。

(3)若某动物有羽毛,则它是鸟。

(4)若某动物会飞且生蛋,则它是鸟。

(5)若某动物是哺乳动物且有爪且有犬齿且目盯前方,则它是食肉动物。

(6)若某动物是哺乳动物且吃肉,则它是食肉动物。

(7)若某动物是哺乳动物且有蹄,则它是有蹄动物。

(8)若某动物是有蹄动物且反刍食物,则它是偶蹄动物。

《人工智能及其应用》实验指导书讲解

《人工智能及其应用》实验指导书讲解

《⼈⼯智能及其应⽤》实验指导书讲解《⼈⼯智能及其应⽤》实验指导书浙江⼯业⼤学计算机科学与技术学院—⼈⼯智能课程组2011年9⽉前⾔本实验是为了配合《⼈⼯智能及其应⽤》课程的理论学习⽽专门设置的。

本实验的⽬的是巩固和加强⼈⼯智能的基本原理和⽅法,并为今后进⼀步学习更⾼级课程和信息智能化技术的研究与系统开发奠定良好的基础。

全书共分为⼋个实验:1.产⽣式系统实验;2.模糊推理系统实验;3.A*算法求解8数码问题实验;4.A*算法求解迷宫问题实验;5.遗传算法求解函数最值问题实验;6.遗传算法求解TSP问题实验;7.基于神经⽹络的模式识别实验;8.基于神经⽹络的优化计算实验。

每个实验包括有:实验⽬的、实验内容、实验条件、实验要求、实验步骤和实验报告等六个项⽬。

本实验指导书包括两个部分。

第⼀个部分是介绍实验的教学⼤纲;第⼆部分是介绍⼋个实验的内容。

由于编者⽔平有限,本实验指导书的错误和不⾜在所难免,欢迎批评指正。

⼈⼯智能课程组2011年9⽉⽬录实验教学⼤纲 (1)实验⼀产⽣式系统实验 (3)实验⼆模糊推理系统实验 (5)实验三A*算法实验I (9)实验四A*算法实验II (12)实验五遗传算法实验I (14)实验六遗传算法实验II (18)实验七基于神经⽹络的模式识别实验 (20)实验⼋基于神经⽹络的优化计算实验 (24)实验教学⼤纲⼀、学时:16学时,⼀般安排在第9周⾄第16周。

⼆、主要仪器设备及运⾏环境:PC机、Visual C++ 6.0、Matlab 7.0。

三、实验项⽬及教学安排序号实验名称实验平台实验内容学时类型教学要求1 产⽣式系统应⽤VC++ 设计知识库,实现系统识别或分类等。

2 模糊推理系统应⽤Matlab 1)设计洗⾐机的模糊控制器;2)设计两车追赶的模糊控制器。

2 验证课内3 A*算法应⽤I VC++ 设计与实现求解N数码问题的A*算法。

2 综合课内4 A*算法应⽤II VC++ 设计与实现求解迷宫问题的A*算法。

实验一 产生式系统实验

实验一  产生式系统实验

实验一产生式系统实验一、实验目的1.熟悉一阶谓词逻辑和产生式表示法。

2.掌握产生式系统的运行机制。

3.以及基于规则推理的基本方法。

二、实验内容运用所学知识,设计并编程实现一个小型的水果识别人工智能系统。

三、实验步骤1. 基于产生式系统实验程序,设计并实现一个小型人工智能系统:(1)系统设置,包括设置系统名称和系统谓词,给出谓词名及其含义。

(2)编辑知识库,通过输入规则或修改规则等,完成整个规则库的建立。

(3)建立事实库(综合数据库),输入多条事实或结论。

(4)运行推理,包括正向推理和反向推理,给出相应的推理过程、事实区和规则区。

2. 撰写实验报告。

四、实验结果1. 系统名称及谓词定义(1)系统名称:水果识别系统(2)谓词定义:①水果是:fruit②类别是:is③事实:positive2. 系统知识库(1)fruit("菠萝"):-is("温热性水果"),positive("酸甜的"),positive("也称凤梨")(2)fruit("甘蔗"):-is("平性水果"),positive("甜的"),positive("有节的")(3)fruit("火龙果"):-is("寒凉性水果"),positive("仙人掌科水果")(4)fruit("梨"):-is("寒凉性水果"),positive("药用功效强的"),positive("蔷薇科水果")(5)fruit("荔枝"):-is("温热性水果"),positive("需冷藏的")(6)fruit("柠檬"):-is("平性水果"),positive("酸的"),positive("黄色的")(7)fruit("苹果"):-is("平性水果"),positive("红色的")(8)fruit("桑葚"):-is("平性水果"),positive("紫色的")(9)fruit("西瓜"):-is("寒凉性水果"),positive("多汁的"),positive("葫芦科水果")(10)fruit("香蕉"):-is("寒凉性水果"),positive("黄色的"),positive("剥皮的")(11)fruit("樱桃"):-is("温热性水果"),positive("大红色的"),positive("甜的")(12)is("寒凉性水果"):-positive("清热降火")(13)is("平性水果"):-positive("寒热偏性不明,开胃健脾")(14)is("温热性水果"):-positive("驱寒补虚")3. 系统正反向推理过程、事实区和规则区。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《人工智能》实验指导书(2010年版)
供2011级计算机科学与技术专业使用
1.实验目的
培养学生利用人工智能技术解决简单实际问题的能力。

2. 实验设备或环境
硬件设备:微机。

软件环境:操作系统Windows XP,开发工具Microsoft Visual C++ 6.0、Visual Prolog5.2、Matlab6.5。

3. 实验内容
(1).在Visual C++环境下,利用状态空间法解决产生式系统问题。

4.实验步骤
(1).编写、调试程序。

(2).运行若干个实例。

(3).编写实验报告。

5. 考核要求或实验报告要求
每位学生独立完成编程与实验报告,在机房抽查同学的程序。

少量同学需要做口头报告与演示程序。

实验报告的格式见附件。

附件:《人工智能》课程实验报告模板
说明:
1、模板的斜体文字是编写提纲,正式报告中不用保留。

2、必须在理解教材和上课内容的基础上,自己独立完成本报告。

不要拷贝教材中的文字与流程图。

3、提交的实验报告包括本报告与程序源代码,每位同学以自己的学号名字为文件名,压缩后提交。

例如,06080700张三.zip/rar。

4、在机房抽查同学的程序。

在课堂上,要求部分同学口头讲解报告和演示程序。

以下是报告的模板正文
利用正向推理方法解决产生式系统问题
学号E201102053 姓名姚为民完成时间2011年10月1.产生式系统问题简介
产生式系统用来描述若干个不同的以一个基本概念为基础的系统。

这个基本概念就是产生式规则或产生式条件和操作的概念。

在产生式系统中,论域的知识分为两个部分:用事实表示静态知识,用产生式规则表示推理过程和行为。

产生式系统由三部分组成,即总数据库、产生式规则和控制策略。

总数据库用于存放求解过程中各种当前信息的数据结构。

产生式规则中某条规则的前提与总数据库中的某些事实相匹配时,该规则就被激活,并把其结论作为新的事实存入总数据库。

产生式规则是一个规则库,用于存放于求解问题有关的某个领域知识的规则集合及其交换规则。

控制策略为一个推理机构,由一组程序组成,用来控制产生式系统的运行,决定问题求解过程的推理路线,实现对问题的求解。

2.产生式系统的正向推理
产生式系统的问题求解过程即为对解空间的搜素过程,也就是推理过程。

正向推理从一组表示事实的谓词逻辑或命题出发,使用一组产生式规则,用以证明该谓词逻辑公式或命题是否成立。

正系推理的一般策略是:先提供一批事实到总数据库中,系统利用这些事实与规则的前提相匹配,出发匹配成功的规则,把其结论作为新的事实添加到总数据库中,继续上述过程,直到没有可匹配的新规则,不再用新的事实添加到总数据库中为止。

3.体会与致谢
此次试验报告让我真正感受到将人工智能知识用于解决实际推理问题,体会到了真正的快乐,原来编码是可以改变我们的生活,我们的世界
4.实验程序简单说明
#include<iostream>
#include<iomanip>
#include<fstream>
using namespace std;
int flag[23]={0};
char *condition[]={"01有毛","02产奶","03有羽毛","04会飞","05会下蛋","06吃肉","07有犬齿","08有爪","09眼睛前视","10有蹄","11反刍","12黄褐色","13有斑点", "14有黑色条纹","15长脖","16长腿","17不会飞","18会游泳","19黑白两色","20善飞","21哺乳类","22鸟类","23肉食类","24蹄类",
"25企鹅","26海燕","27鸵鸟","28斑马","29长颈鹿","30虎","31猎豹"};
typedef struct
{
int cid[20];
int res;
}rules;
rules rule[20]={
{{0,-1},20},
{{1,-1},20},
{{2,-1},21},
{{3,4,-1},21},
{{20,5,-1},22},
{{6,7,8,-1},22},
{{20,8,-1},23},
{{20,9,-1},23},
{{22,11,12,-1},30},
{{22,11,13,-1},29},
{{23,14,15,12,-1},28},
{{23,13,-1},27},
{{21,14,15,16,-1},26},
{{21,19,-1},25},
{{21,17,18,16,-1},24}};
void input()//在接受到用户的条件查询时,有两部分操作,1接受条件输入,2置标志位为1
{
int condid=0;
for(int i=0;i<24;i++)//对于条件标记数组,首先的操作是全部置零,然后对于用户的操作是对于指定的条件输入,则会将零改为1
{
flag[i]=0;
}
cout<<"请依次输入查询条件,以-1作为结束输入标记!"<<endl;
while(condid!=-1)//用户条件输入,直到“回车”为止
{
cin>>condid;
if(condid>=0 && condid<=23)
{
flag[condid]=1;
}
}
};
void condi_match()
{
int i,j;
int condid;//条件编号;
int resid;//结果编号;
for(i=0;i<15;i++)//循环扫描规则库
{
j=0;
condid=rule[i].cid[j];
while(condid!=-1)
{
if(flag[condid]==0)
break;
j++;
condid=rule[i].cid[j];
}
if(condid==-1)
{
resid=rule[i].res;
flag[resid]=1;
cout<<"运用了规则"<<i<<":";
j=0;
while(rule[i].cid[j]!=-1)
{
cout<<condition[rule[i].cid[j]]<<" ";
j++;
}
cout<<"-->"<<condition[resid];
cout<<endl;
}
}
};
void browseFile(char *fileName,int delline)//输出文本文件信息{
{
ifstream inf(fileName, ios::in);
char s[80];
for (int i=1;i<=delline;i++)
inf.getline(s,80);
while (!inf.eof())
{
inf.getline(s,80);
cout<<s<<endl;
}
inf.close();
}
};
int main()
{
int n=0;
int i=0,j=0;
int condin[10]={0};//用户查询条件输入数组
cout<<"查询条件分别有:"<<endl;
browseFile("condition.txt",0);
cout<<endl;
cout<<"推理规则分别有:"<<endl;
browseFile("rule.txt",0);
cout<<endl;
input();
condi_match();
return 0;
}。

相关文档
最新文档