中南大学人工智能实验报告
姓名
周文俊
年级
自动化0806班
指导老师
陈白帆
日期
2010-11-6
实验目的
熟悉和掌握启发式搜索的定义、估价函数和算法过程,并利用A*算法求解N数码难题,理解求解流程和搜索顺序。
搜索图
使用的是实验环境中已经建立好的“多重路径修建”搜索图
算法比较
深度优先
Best First(贪婪算法)
A*算法
Open表
% the computer science department
cs_course(C) <- department(C,comp_science).
% math_course(C) is true if course C is offered in
% the mathematics department
第151代误差 0.06
第201代误差 0.03
模拟的问题或函数
多数赞成表决器
异或问题
MailReading(邮件信息识别)
观测结果
经过200代的进化,误差以明显的阶梯型降低
由于初始误差比较低,故经过50代的进化,误差已经极大地降低,几乎不再变化
经过200代的进化,误差极大地降低
学生结论
神经计算能够实现“多数赞成表决器”功能
{6.5.7.8}
{5.7.8}
{7.8}
{8}
{空}
Close表
{空}
{0}
{0.1}
{0.1.3}
{0.1.3.4}
{0.1.3.4.2}
{0.1.3.4.2.6}
{0.1.3.4.2.6.5}
{0.1.3.4.2.6.5.7}
{0.1.3.4.2.6.5.7.8}
{空}
{0}
{0.1}
{0.1.3}
{0}
{1.3.4}
{3.4.2}
{4.2.6}
{2.6.5.7.8}
{6.5.7.8}
{5.7.8}
{7.8}
{8}
{空}
{0}
{1.3.4}
{3.4.2}
{4.2.6}
{2.6.5.7.8}
{6.5.7.8}
{5.7.8}
{7.8}
{8}
{空}
{0}
{1.3.4}
{3.4.2}
{4.2.6}
{2.6.5.7.8}
贪婪算法是一种不追求最优解,只希望得到较为满意解的方法。贪婪算法一般可以快速得到满意的解,因为它省去了为找最优解要穷尽所有可能而必须耗费的大量时间。贪婪算法常以当前情况为基础作最优选择,而不考虑各种可能的整体情况,所以贪婪法不要回溯。
A*算法结合了启发式方法(这种方法通过充分利用图给出的信息来动态地作出决定而使搜索次数大大降低)和形式化方法(这种方法不利用图给出的信息,而仅通过数学的形式分析,如Dijkstra算法)。它通过一个估价函数(Heuristic Function)f(h)来估计图中的当前点p到终点的距离(带权值),并由此决定它的搜索方向,当这条路径失败时,它会尝试其它路径。
3、取C=315,构造出假设事实集!
于是假设事实集为:enrolled(john,315)、department(315,math)、student(john)、course(315)
初始事实集为:course(315)、department(315,math)、student(john)、enrolled(john,315)。
department(322,comp_science).
department(315,math).
% student(S) is true if S is a student
enrolled(john,322).
student(john).
% enrolled(S,C) is true if student S is enrolled incourse C
math_course(C) <- department(C,math).
% cs_or_math_course(C) is true if course C is offered in
% either the computer science department or the
% mathematics department
{0.1.3.4}
{0.1.3.4.2}
{0.1.3.4.2.6}
{0.1.3.4.2.6.5}
{0.1.3.4.2.6.5.7}
{0.1.3.4.2.6.5.7.8}
{空}
{0}
{0.1}
{0.1.3}
{0.1.3.4}
{0.1.3.4.2}
{0.1.3.4.2.6}
{0.1.3.4.2.6.5}
于是假设事实集为:enrolled(john,322)、department(322,math)、student(john)、course(322)
初始事实集为:course(315)、department(315,math)、student(john)、enrolled(john,315)。
2、可见,假设集与事实集匹配不成功,说明先前的取值有问题,返回再次取值。
单层的神经网络无法实现异或问题,但是含有中间层的BP网络却可以很好的解决异或问题
经过训练的BP网络可以进行邮件识别,解决信息识别的难题,可以极大地提高生产力
:
姓名
周文俊
年级
自动化
0806班
指导
老师
陈白帆
日期
2010-12-22
实验目的
熟悉和掌握自动规划的基本原理,方法和主要技术
搜
索
图
状态谓词定义
empty:机械手为空手ontable(A):木块A在桌面上
(1,1,0,1,0)(0,1,1,0,1)(0,0,0,0,0)(1,0,0,1,0)(1,1,1,1,1)(1,0,0,0,0)(0,0,1,0,0)(0,1,1,0,1)(1,0,0,1,0)(1,1,0,0,0)(0,0,1,1,0)(1,1,0,0,0)(1,0,1,1,1)(1,1,1,0,1)(1,1,1,1,1)(1,0,1,0,1)(1,1,1,1,1)(0,1,1,0,1)
我们说如果在一般的图搜索算法中应用了上面的估价函数对OPEN表进行排序的,就称A算法。在A算法之上,如果加上一个条件,对于所有的结点x,都有h(x)<=h*(x),那就称为A*算法。如果取h(n)=0同样是A*算法,这样它就退化成了有序算法。
A*算法是否成功,也就是说是否在效率上胜过蛮力搜索算法,就在于h(n)的选取,它不能大于实际的h*(n),要保守一点,但越接近h*(n)给我们的启发性就越大,是一个难把握的东西。
4、此后,一一匹配,均与事实集匹配。
5、能够证明——in_dept(john,math)
备注(原因等)
学生结论
运用正向和反向推理,产生式系统能够完成有一定难度的推理问题。
指导老师意见
姓名
周文俊
指导老师: 陈白帆
日期:2010-12-6
实验目的
理解反向传播网络的结构和原理,掌握反向传播算法对神经元的训练过程,了解反向传播公式。通过构建BP网络实例,熟悉前馈网络的原理及结构。
in_dept(S,D) <- enrolled(S,C) & department(C,D) & student(S) & course(C).
% course(C) is true if C is a university course
course(322).
course(315).
% department(C,D) is true if course C is offered in department D.
on(A,B):木块A在木块B上clear(A):木块A顶上没有任何东西
动作谓词定义
pickup(A,B):把木块A木块B起来。动作之前要求机械手为空,且木块A空的。
pickuptable(A):把木块A桌面上拿起来。动作之前要求机械手为空,且木块A是空的。
putdown(A,B):把木块A堆放在木块B上。动作之前要求机械手已抓着木块A,且木块B上是空的。
putdowntable(A):把木块A堆放在桌面上。动作之前要求机械手已抓着木块A。
holding(A):机械手抓着木块A。
初始状态
empty
ontable(木块1)
on(木块2,木块1)
clear(木块3)
on(木块3,木块1)
ontable(木块2)
clear(木块2)
目标状态
empty
ontable(木块3)
cs_or_math_course(C) <- cs_course(C).
cs_or_math_course(C) <- math_course(C).
% in_dept(S,D) is true if student S is enrolled
% in a course offered in deparment D
姓名
周文俊
年级
班级
自动化0806班
指导老师
陈白帆
日期
2010-11-18
实验目的
熟悉和掌握产生式系统的运行机制,掌握基于规则推理的基本方法。掌握人工智能的知识表示技术,能用产生式表示法表示知识。
推理
方法
□正向推理
□反向推理
建立规则库
建立事实库
% cs_course(C) is true if course C is offered in
on(木块2,木块3)
on(木块1,木块2)