人工智能实验二

人工智能实验二
人工智能实验二

昆明理工大学信息工程与自动化学院学生实验报告

( 2014 — 2015 学年第 1 学期)

课程名称:人工智能及其应用开课实验室:信自504 2014年12月14日年级、专业、班学号姓名

实验项目名称手写数字识别指导教师王剑

教师评语

该同学是否了解实验原理: A.了解□ B.基本了解□ C.不了解□该同学的实验能力: A.强□ B.中等□ C.差□该同学的实验是否达到要求: A.达到□ B.基本达到□ C.未达到□实验报告是否规范: A.规范□ B.基本规范□ C.不规范□实验过程是否详细记录: A.详细□ B.一般□ C.没有□

教师签名:

年月日

一、实验目的及内容

1.手写数字的识别

-参见week8中的资料

-任选两种方法完成识别

-可选的方法有:模板匹配、欧式举例、bayes、神经网络、决策树等

-需对模式识别的基本原理和过程、本题中涉及的数字特征的提取和表示问题做阐述二、所用仪器、材料(设备名称、型号、规格等或使用软件)

1台PC以及matlab2012软件。

三、实验方法、步骤(或:程序代码或操作过程)

实现方法为四个步骤(1)数据获取和预处理

(2)特征抽取和选择

(3)分类器设计

(4)使用分类器进行分类

数字图像被分成5行5列的格子,共5*5个特征。

X: (x1,x2,x3,…… x25)

共有9个数字,因此X有9类

特征的计算:

统计每个格子中黑色像素的个数,除以该格子中所有的像素数目,即得一个特征手写数字特征保存在templet中,由结构体pattern表示

数字‘1’的5个样本

的特征矩阵

每列代表一个样品

每行代表一个特征

手写数字图像9_1.bmp特征提取的代码如下:

该手写数字的特征向量如右所示:

1.基于二值数据的贝叶斯分类器

计算先验概率P(ωi)

计算类条件(先验)概率P(X| ωi)

P(X| ωi) = ∏P(xj=a| ωi) 其中 i=1…9, j=0…24,a=0或1, P(xj=a| ωi) = (∑xj+1)/(Ni+2)

应用Bayes公式求后验概率

P(ωi|X) = P(ωi)* P(X| ωi)

后验概率最大值的类别就是手写数字的所属类别

Testing 运行: bayesBinaryTest

function y=bayesBinary(sample);

clc;

load templet pattern;

sum=0;

prior=[];%

p=[];

likelihood=[];

P=[];

%calculate prior propability

for i=1:9

sum = sum+pattern(i).num;

end

for i=1:9

prior(i) = pattern(i).num/sum;

end

%calculate likelihood propability

for i=1:9

for j=1:25

sum=0;

for k=1:pattern(i).num

if(pattern(i).feature(j,k)>0.05) sum=sum+1;

end

end

p(j,i)=(sum+1)/(pattern(i).num+2); end

end

for i=1:9

sum=1;

for j=1:25

if(sample(j)>0.05)

sum=sum*p(j,i);

else

sum=sum*(1-p(j,i));

end

end

likelihood(i)=sum;

end

%calculate bayes propability

sum=0;

for i=1:9

sum=sum+prior(i)*likelihood(i);

end

for i=1:9

P(i)=prior(i)*likelihood(i)/sum;

end

[maxval maxpos]=max(P);

y=maxpos;

2.神经网络分类器

Implementation procedure实现步骤

初始化输入输出矩阵p[],t[]。P为训练样本,t为训练样品所属类别构件神经网络(newff函数),设置参数调整方式

Bpnet=newff(x,[50,4],{‘logsig’,’logsig’},’traingd’) 调用matlab的train(bpnet,p,t)函数,训练神经网络

对待测样品,调用sim函数,利用之前已训练好的BP网络进行识别Testing 运行bpnetTest

function y=bpnet(sample)

global bpnet;

clc;

a = sim(bpnet,sample)

a = round(a)

b = num2str(a);

c = bin2dec(b');

y = c

function bpGradientTrain

global bpnet;

clc;

load templet pattern;

c=0;

p=[];

for i=1:9

for j=1:5

c=c+1;

p(:,c)=pattern(i).feature(:,j);

end

end

t=zeros(4,45);

t(4,1:5)=1;

t(3,6:10)=1;

t(3:4,11:15)=1;

t(2,16:20)=1;

t(2,21:25)=1;

t(4,21:25)=1;

t(2:3,26:30)=1;

t(2:4,31:35)=1;

t(1,36:40)=1;

t(1,41:45)=1;

t(4,41:45)=1;

x=ones(25,2);

x(:,1)=0;

bpnet = newff(x,[50,4],{'logsig','logsig','traingd'}); bpnet.trainParam.show=50;

bpnet.trainParam.lr=0.2;

bpnet.trainParam.epochs=2000;

bpnet.trainParam.goal=0.2e-1;

bpnet.trainParam.min_grad=1e-10;

[bpnet] = train(bpnet,p,t);

四、实验过程原始记录( 测试数据、图表、计算等)

五、实验结果、分析和结论(误差分析与数据处理、成果总结等。其中,绘制曲线图时必

须用计算纸或程序运行结果、改进、收获)

手写数字识别在我们生活中随处可见。想要获得较好的识别,就要有一个类库,里面的东西越详细那么得到的识别就越正确。虽然这是给的代码,但是看懂关键部分后手写识别还是不难的。只要用心,我们可以用计算机解决生活中的很多问题

注:教师必须按照上述各项内容严格要求,认真批改和评定学生成绩。

人工智能实验报告大全

人工智能实验报告大 全

人工智能课内实验报告 (8次) 学院:自动化学院 班级:智能1501 姓名:刘少鹏(34) 学号: 06153034 目录 课内实验1:猴子摘香蕉问题的VC编程实现 (1) 课内实验2:编程实现简单动物识别系统的知识表示 (5)

课内实验3:盲目搜索求解8数码问题 (18) 课内实验4:回溯算法求解四皇后问题 (33) 课内实验5:编程实现一字棋游戏 (37) 课内实验6:字句集消解实验 (46) 课内实验7:简单动物识别系统的产生式推理 (66) 课内实验8:编程实现D-S证据推理算法 (78)

人工智能课内实验报告实验1:猴子摘香蕉问题的VC编程实现 学院:自动化学院 班级:智能1501 姓名:刘少鹏(33) 学号: 06153034 日期: 2017-3-8 10:15-12:00

实验1:猴子摘香蕉问题的VC编程实现 一、实验目的 (1)熟悉谓词逻辑表示法; (2)掌握人工智能谓词逻辑中的经典例子——猴子摘香蕉问题的编程实现。 二、编程环境 VC语言 三、问题描述 房子里有一只猴子(即机器人),位于a处。在c处上方的天花板上有一串香蕉,猴子想吃,但摘不到。房间的b处还有一个箱子,如果猴子站到箱子上,就可以摸着天花板。如图1所示,对于上述问题,可以通过谓词逻辑表示法来描述知识。要求通过VC语言编程实现猴子摘香蕉问题的求解过程。 图1 猴子摘香蕉问题

四、源代码 #include unsigned int i; void Monkey_Go_Box(unsigned char x, unsigned char y) { printf("Step %d:monkey从%c走到%c\n", ++i, x, y);//x表示猴子的位置,y为箱子的位置 } void Monkey_Move_Box(char x, char y) { printf("Step %d:monkey把箱子从%c运到%c\n", ++i, x, y);//x表示箱子的位置,y为香蕉的位置 } void Monkey_On_Box() { printf("Step %d:monkey爬上箱子\n", ++i); } void Monkey_Get_Banana() { printf("Step %d:monkey摘到香蕉\n", ++i); } void main() { unsigned char Monkey, Box, Banana; printf("********智能1501班**********\n"); printf("********06153034************\n"); printf("********刘少鹏**************\n"); printf("请用a b c来表示猴子箱子香蕉的位置\n"); printf("Monkey\tbox\tbanana\n"); scanf("%c", &Monkey); getchar(); printf("\t"); scanf("%c", &Box); getchar(); printf("\t\t"); scanf("%c", &Banana); getchar(); printf("\n操作步骤如下\n"); if (Monkey != Box) { Monkey_Go_Box(Monkey, Box); } if (Box != Banana)

人工智能实验4三-专家系统方案

《人工智能导论》实验报告

一、实验题目:识别型专家系统设计 ————识别动物专家系统 二、实验目的 1、掌握专家系统的基本构成 2、掌握用人工智能程序设计语言编制智能程序的方法 三、实验容 1、所选编程语言:C语言; 2.拟订的规则: (1)若某动物有奶,则它是哺乳动物。 (2)若某动物有毛发,则它是哺乳动物。 (3)若某动物有羽毛,则它是鸟。 (4)若某动物会飞且生蛋,则它是鸟。 (5)若某动物是哺乳动物且有爪且有犬齿且目盯前方,则它是食肉动物。 (6)若某动物是哺乳动物且吃肉,则它是食肉动物。 (7)若某动物是哺乳动物且有蹄,则它是有蹄动物。 (8)若某动物是哺乳动物且反刍食物,则它是有蹄动物。 (9)若某动物是食肉动物且黄褐色且有黑色条纹,则它是老虎。 (10)若某动物是食肉动物且黄褐色且有黑色斑点,则它是金钱豹。 (11)若某动物是有蹄动物且长腿且长脖子且黄褐色且有暗斑点,则它是长颈鹿。 (12)若某动物是有蹄动物且白色且有黑色条纹,则它是斑马。 (13)若某动物是鸟且不会飞且长腿且长脖子且黑白色,则它是驼鸟。(14)若某动物是鸟且不会飞且会游泳且黑白色,则它是企鹅。 (15)若某动物是鸟且善飞,则它是海燕。 2、设计思路: 用户界面:采用问答形式; 知识库(规则库):存放产生式规则,推理时用到的一般知识和领域知识,比如动物的特征,动物的分类标准,从哺乳动物、食肉动物来分,再具体地添加一些附加特征得到具体动物;建立知识库的同时也建立了事实库。事实库是一个动态链表,一个事实是链表的一个结点。知识库通过事实号与事实库发生联系。

数据库:用来存放用户回答的问题,存放初始状态,中间推理结果,最终结果; 推理机:采用正向推理,推理机是动物识别的逻辑控制器,它控制、协调系统的推理,并利用知识库中的规则对综合数据库中的数据进行逻辑操作。推理机担负两项基本任务:一是检查已有的事实和规则,并在可能的情况下增加新的事实;二是决定推理的方式和推理顺序。将推理机制同规则对象封装在一起,事实对象记录了当前的状态,规则对象首先拿出前提条件的断言(只有这些前提都有符合时才会做这条规则的结论),询问事实对象集,如事实对象集不知道,则询问用户,如所有前提条件都被证实为真则结论为真,否则系统不知道结论真假。 3、程序流程图: 程序运行如下: 以老虎,金钱豹,长颈鹿为例画出程序流程图如下:

人工智能实验报告_2

课程实验报告 学年学期2015—2016年第一学期课程名称人工智能原理与技术实验名称PROLOG语言编程练习实验室无 专业年级电气134 学生姓名赵倩 学生学号2013011989 提交时间2015.12.28 成绩 任课教师樊强 水利与建筑工程学院

第一章PROLOG语言编程练习 1.1实验目的 加深学生对逻辑程序运行机理的理解,使学生掌握PROLOG语言的特点、熟悉其编程环境,同时为后面的人工智能程序设计做好准备。 (1)熟悉PROLOG语言编程环境的使用; (2)了解PROLOG语言中常量、变量的表示方法; (3)了解利用PROLOG进行事实库、规则库的编写方法; 1.2实验环境 计算机,Turbo PROLOG教学软件。 1.3预习要求 实验前应阅读实验指导书,了解实验目的、预习PROLOG语言的相关知识。 1.4实验内容 (1)学习使用Turbo PROLOG,包括进入PROLOG主程序、编辑源程序、修改环境目录、退出等基本操作。(2)在Turbo prolog集成环境下调试运行简单的Turbo PROLOG程序,如描述亲属关系的PROLOG程序或其他小型演绎数据库程序等。 1.5实验方法和步骤 (1)启动Windows XP操作环境。 (2)打开文件目录,执行prolog应用程序,启动Turbo prolog,并按空格键(SPACE)进入集成开发环境。(3)选择Setup项,打开下拉菜单,选择Directories项,进行工作目录修改,按Esc键退出,选择Save Configuration项,保存修改。 (4)选择Files项,打开下拉菜单,选择New file项,进入源程序输入和编辑,或选择Load项,选择要打开的示例程序,再选择Edit项,可以进行编辑源程序。 (5)编辑之后,可以选择Run项,执行程序,可以在Dialog窗口进行询问,即外部目标的执行,查看程序运行结果,分析程序之功能。 (6)仿前例,可以选择其他程序并运行,分析程序功能。 (7)退出,选择Quit项,可以退出Turbo Prolog程序,返回到Windows XP环境。 1.6示例程序 逻辑电路模拟程序。该程序以逻辑运算“与”、“或”、“非”的定义为基本事实,然后在此基础上定义了“异或”运算。那么,利用这些运算就可以对“与”、“或”、“非”和“异或”等逻辑电路进行模拟。事实上,在此基础上也可以对其他任一逻辑门电路进行模拟。 domains d=integer predicates not_(d,d) and_(d,d,d) or_(d,d,d) xor_(d,d,d) clauses not_(1,0). not_(0,1). and_(0,0,0). and_(0,1,0). and_(1,0,0). and_(1,1,1).

游戏人工智能实验报告记录四

游戏人工智能实验报告记录四

————————————————————————————————作者:————————————————————————————————日期:

实验四有限状态机实验 实验报告 一、实验目的 通过蚂蚁世界实验掌握游戏中追有限状态机算法 二、实验仪器 Windows7系统 Microsoft Visual Studio2015 三、实验原理及过程 1)制作菜单 设置参数:点击会弹出对话框,设置一些参数,红、黑蚂蚁的家会在地图上标记出来 运行:设置好参数后点击运行,毒药、食物、水会在地图上随机显示 下一步:2只红蚂蚁和2只黑蚂蚁会随机出现在地图上,窗口右方还会出现红、黑蚂蚁当前数量的统计 不断按下一步,有限状态机就会不断运行,使蚁群产生变化 2)添加加速键

资源视图中下方 选择ID和键值

3)新建头文件def.h 在AntView.cpp中加入#include"def.h" 与本实验有关的数据大都是在这里定义的 int flag=0; #define kForage 1 #define kGoHome 2 #define kThirsty 3 #define kDead 4 #define kMaxEntities 200 class ai_Entity{ public: int type; int state; int row; int col; ai_Entity(); ~ai_Entity() {} void New (int theType,int theState,int theRow,int theCol); void Forage(); void GoHome(); void Thirsty(); void Dead();

游戏人工智能实验报告四

实验四有限状态机实验 实验报告 一、实验目的 通过蚂蚁世界实验掌握游戏中追有限状态机算法 二、实验仪器 Windows7系统 Microsoft Visual Studio2015 三、实验原理及过程 1)制作菜单 设置参数:点击会弹出对话框,设置一些参数,红、黑蚂蚁的家会在地图上标记出来 运行:设置好参数后点击运行,毒药、食物、水会在地图上随机显示 下一步:2只红蚂蚁和2只黑蚂蚁会随机出现在地图上,窗口右方还会出现红、黑蚂蚁当前数量的统计 不断按下一步,有限状态机就会不断运行,使蚁群产生变化 2)添加加速键 资源视图中 下方

选择ID和键值 3)新建头文件def.h 在AntView.cpp中加入#include"def.h" 与本实验有关的数据大都是在这里定义的 int flag=0; #define kForage 1 #define kGoHome 2 #define kThirsty 3 #define kDead 4 #define kMaxEntities 200 class ai_Entity{ public: int type; int state; int row; int col; ai_Entity(); ~ai_Entity() {} void New (int theType,int theState,int theRow,int theCol); void Forage(); void GoHome(); void Thirsty(); void Dead(); }; ai_Entity entityList[kMaxEntities]; #define kRedAnt 1 #define kBlackAnt 2

人工智能实验报告大全

人工智能课内实验报告 (8次) 学院:自动化学院 班级:智能1501 姓名:刘少鹏(34) 学号: 06153034

目录 课内实验1:猴子摘香蕉问题的VC编程实现 (1) 课内实验2:编程实现简单动物识别系统的知识表示 (5) 课内实验3:盲目搜索求解8数码问题 (18) 课内实验4:回溯算法求解四皇后问题 (33) 课内实验5:编程实现一字棋游戏 (37) 课内实验6:字句集消解实验 (46) 课内实验7:简单动物识别系统的产生式推理 (66) 课内实验8:编程实现D-S证据推理算法 (78)

人工智能课内实验报告实验1:猴子摘香蕉问题的VC编程实现 学院:自动化学院 班级:智能1501 姓名:刘少鹏(33) 学号: 06153034 日期: 2017-3-8 10:15-12:00

实验1:猴子摘香蕉问题的VC编程实现 一、实验目的 (1)熟悉谓词逻辑表示法; (2)掌握人工智能谓词逻辑中的经典例子——猴子摘香蕉问题的编程实现。 二、编程环境 VC语言 三、问题描述 房子里有一只猴子(即机器人),位于a处。在c处上方的天花板上有一串香蕉,猴子想吃,但摘不到。房间的b处还有一个箱子,如果猴子站到箱子上,就可以摸着天花板。如图1所示,对于上述问题,可以通过谓词逻辑表示法来描述知识。要求通过VC语言编程实现猴子摘香蕉问题的求解过程。 图1 猴子摘香蕉问题 四、源代码 #include unsigned int i; void Monkey_Go_Box(unsigned char x, unsigned char y) {

昆明理工大学人工智能第二次实验报告

理工大学信息工程与自动化学院学生实验报告 ( 2013 — 2014 学年第 1 学期) 课程名称:人工智能开课实验室:信自楼445 2013 年12月 20日 一、上机目的及容 1.上机容 用确定性推理算法求解教材65-66页介绍的八数码难题。 2.上机目的 (1)复习程序设计和数据结构课程的相关知识,实现课程间的平滑过渡; (2)掌握并实现在小规模状态空间中进行图搜索的方法; (3)理解并掌握图搜索的技术要点。 二、实验原理及基本技术路线图(方框原理图或程序流程图) (1)设计并实现程序,求解出正确的解答路径; (2)对所设计的算法采用大O符号进行时间复杂性和空间复杂性分析; (3)对一般图搜索的技术要点和技术难点进行评述性分析。 三、所用仪器、材料(设备名称、型号、规格等或使用软件) 1台PC及VISUAL C++6.0软件 四、实验方法、步骤(或:程序代码或操作过程)

建立工程后建立5个source Files文件分别为 1.AttributeValue.cpp #include "AttributeValue.h" #include "base.h" AttributeValue::AttributeValue(std::string const& instring) : m_value(instring) { } bool AttributeValue::GetType() { if (m_value == "P") { return true; } else if (m_value == "N") { return false; } else { throw DataErrException(); } } 2.basefun.cpp #include float log2 (float x) { return 1.0 / log10(2) * log10(x); } float calEntropy(float prob) { float sum=0; if (prob == 0 || prob == 1) { return 0; } sum -= prob * log2(prob); sum -= (1 - prob) * log2 ( 1 - prob ); return sum;

游戏人工智能的发展与展望

XXXX大学 人工智能专题研究 游戏人工智能的发展与展望 学院计算机科学与技术学院 学生姓名 学号 指导教师姓名 2011年12月26日

目录 课题研究背景及问题的提出 (3) 一、人工智能及游戏人工智能简介 (4) 1、人工智能简介 (4) 2、游戏人工智能简介 (4) 二、游戏AI设计目的 (4) 1、增加游戏的挑战性 (5) 2、增加游戏可玩性 (5) 3、帮助展开游戏情节 (5) 三、定性与非定性AI (5) 1、定性的游戏AI (5) 2、非定性的游戏AI (6) 四、现有的一些游戏AI技术 (6) 五、从一些具体的游戏实例中看游戏AI (7) 1、魔兽世界的一些小AI (7) 2、即时战略强大的AI (7) 3、战棋类AI和即时战略AI的比较 (7) 六、游戏AI的展望 (8) 1、我所希望的游戏AI的改观 (8) 2、未来的游戏AI发展 (8) 七、总结 (9) 参考资料 (9)

课题研究背景及问题的提出 1、游戏产业的飞速发展 游戏是一项新兴事物,但游戏的发展十分迅速。在国外,游戏开发经历了20余年的风雨,现在已成为一个高技术,高利润和高速发展的行业。在中国,游戏特别是网络游戏,构成了IT 行业中新型的利润增长点,中国游戏产业也开始蓬勃发展。由于中国拥有最大数量的游戏玩家和用户,使得中国游戏市场已经成为全球最关注的市场。 2、游戏离不开人工智能 我们从小就接触了电子游戏,可以说是见证了游戏业的不断发展与进步。我们玩的游戏越来越高级,越来越精彩。从最早的俄罗斯方块,到小霸王,到魔兽,到现在的纷繁的令人眼花缭乱的各种单机游戏以及网络游戏。我们不禁要问:这些游戏吸引我们的是什么,为什么有的游戏经久不衰,令人乐此不疲,一遍又一遍的玩;有的却索然无味,最多玩两遍就不去再碰?毫无疑问,游戏人工智能是极其重要的一个方面。 我们最早开始知道游戏人工智能存在应该是在即时战略类游戏中,与电脑操纵的部队进行战斗。在魔兽争霸出现之前,国外玩家就很热衷于与电脑进行即时战略对战,那类的游戏也是各种各样层出不穷。但当魔兽争霸出现后立即占领了市场,因为它允许玩家进行局域网联机对战,也就是说,玩家更倾向于“与人斗其乐无穷”,而不是那些死板的,摸透了的,低级的“电脑”----它们需要进化。可以看出,正是玩家的需求促使了游戏人工智能的前进。 3、问题的提出 在游戏业长久的发展中,游戏人工智能在不断进步,带给我们一个又一个惊喜。作为一个电脑游戏爱好者以及计算机专业的学生,使得我对游戏人工智能在游戏中的作用,玩家需要什么样的游戏人工智能及未来的人工智能将会是什么样的产生了极大的兴趣。因此我对这方面进行了一些简单的研究。 关键字:人工智能游戏AI 发展非定性

人工智能实验报告

计算机科学与技术1341901301 陈敏 实验一:知识表示方法 一、实验目的 状态空间表示法是人工智能领域最基本的知识表示方法之一,也是进一步学习状态空间搜索策略的基础,本实验通过牧师与野人渡河的问题,强化学生对知识表示的了解和应用,为人工智能后续环节的课程奠定基础。 二、问题描述 有n个牧师和n个野人准备渡河,但只有一条能容纳c个人的小船,为了防止野人侵犯牧师,要求无论在何处,牧师的人数不得少于野人的人数(除非牧师人数为0),且假定野人与牧师都会划船,试设计一个算法,确定他们能否渡过河去,若能,则给出小船来回次数最少的最佳方案。 三、基本要求 输入:牧师人数(即野人人数):n;小船一次最多载人量:c。 输出:若问题无解,则显示Failed,否则,显示Successed输出一组最佳方案。用三元 组(X 1, X 2 , X 3 )表示渡河过程中的状态。并用箭头连接相邻状态以表示迁移过程:初始状态-> 中间状态->目标状态。 例:当输入n=2,c=2时,输出:221->110->211->010->021->000 其中:X 1表示起始岸上的牧师人数;X 2 表示起始岸上的野人人数;X 3 表示小船现在位置(1表 示起始岸,0表示目的岸)。 要求:写出算法的设计思想和源程序,并以图形用户界面实现人机交互,进行输入和输出结果,如: Please input n: 2 Please input c: 2 Successed or Failed?: Successed Optimal Procedure: 221->110->211->010->021->000 四、算法描述

人工智能(蔡自兴)实验2事实表示

实验2 Prolog程序事实表示 Visual Prolog是面向对象的、严格类型化的和模式检验的程序设计语言。在编写Visual Prolog程序时,必须掌握这些内容,但是在这里将集中在编写代码这个核心问题上,也就是说,编写这些代码时暂时不考虑类、类型和模式。 为此,将使用包含在Visual Prolog 6 中的PIE例子。PIE是一个经典的Prolog解释器,通过它,可以学会和实现Prolog程序,而不必关心类、类型等方面的知识。 这里的内容是基于使用Build6004或者是以后的Visual Prolog 6版本,否则,PIE应用程序将不会象现在描述的这样工作。这个编译号可以在VDE的About对话框中找到。 1.Horn子句逻辑 Visual Prolog 和其它Prolog用语都是基于Horn子句逻辑的。Horn 子句逻辑是对事物及其相互关系进行推理的形式系统。 在自然语言中,可以有这样样的一个陈述句: John是Bill的父亲。

这里涉及两个实体,John和Bill,以及他们之间的关系,即一个是另一个的父亲.在Horn子句逻辑中,可以这样形式化地表述上面的陈述句: father(“Bill”,”John”). 上面的father是带两个参量的一个谓词或关系,它表示第2个人是第1个人的父亲。 注意:此处已经选择了第2个人是第1个人的父亲,也可以选择另外的方式,变量的顺序形式化设计者的选择,然而一旦选定了,就必须保持一致,在这里的表述中,父亲始终是第2个人。 已经选择用人名来代表人,因为在现实世界中,许多人有相同的名字,所以这一方法不一定有效。但在这里,用这一简单的形式化表示。 有了上面的形式化方法,可以表示任何人之间的任何类型的家庭关系,但是,为了让这些表述更为有趣,制定下面的规则。 X是Z的祖父,如果X是Y的父亲且Y是Z的父亲 其中X,Y,Z指人。在Horn子句逻辑中,可以这样表述grandFathe(Person,GrandFathe):- father(Person,Father),father(Father,GrandFather).

人工智能实训室建设方案

人工智能实验室 2021年1月 武汉唯众智创科技有限公司

人工智能实验室建设方案 一、专业背景 人工智能(Artificial Intelligence),它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。 人工智能的实际应用有:机器视觉,指纹识别,人脸识别,视网膜识别,虹膜识别,掌纹识别,专家系统,自动规划,智能搜索,定理证明,博弈,自动程序设计,智能控制,机器人学,语言和图像理解,遗传编程等。 如今处于风口上的人工智能产业界,受到了众多企业的追捧。截至2019年6月,中国人工智能企业超过1200家,位居全球第二。但我国人工智能行业并未摆脱人才稀缺的发展短板,专业人才稀缺严重。根据猎聘发布的《猎聘2019年中国AI&大数据人才就业趋势报告》,中国人工智能人才缺口超过500万。为了满足人工智能产业界对人才的迫切需求,国家相继出台了多项政策方针,引导高校尽快设置人工智能相关专业,加大人工智能人才培养力度。2019年3月,35所高校获批建设人工智能本科专业。2019年10月18日在教育部发布的《普通高等学校高等职业教育(专科)专业目录》2019年增补专业中,增补了人工智能技术服务专科专业。 根据教育部《普通高等学校高等职业教育(专科)专业设置管理办法》,在相关学校和行业提交增补专业建议的基础上,教育部组织研究确定了2019年度增补专业共9个,自2020年起执行。在高等职业教育行业目录中,正式宣布人工智能技术服务专业诞生,专业代码610217。 该专业建设以人工智能技术与应用素质培养为基础,以人工智能技术与应用能力为培养主线,将人工智能技术服务专业技能知识和职业资格认证相结合,构建专业的理论教学体系和实践能力培养体系。采取多种形式,通过实施“双证书”和“多证书”制,培养社会所需的实用型人才。2018年4月2日,教育部印发了《高等学校人工智能创新行动计划》,行动计划中要求各大高校加快人工智能科技创新基地。因此,在高职院校设立人工智能专业迫在眉睫。

AI实验2

实验二:聚集与避障 一、实验目的 掌握游戏中聚集与避障的人工智能算法,理解宽视野和有限视野的区别 二、实验仪器 Windows XP Microsoft Visual Studio 三、实验原理及过程 //描述聚集与避障的算法原理 //描述程序实现时的思路包括对每个调用的API进行详细说明 智能体只考虑哪些在检测盒内的障碍物。初始的时候,要将游戏世界中所有的障碍物都迭代到内存中,并标记哪些在检测盒内的障碍物以作进一步分析,然后把所有已经标记的障碍物都转换到智能体的局部空间。转换坐标后,那些x坐标为负值的物体将不被考虑,所以问题就变得简单多了,接下来必须要检测障碍物是否和检测盒重叠。使障碍物的包围半径扩大检测盒宽度的一半。然后测试该障碍物的y值是否小于这个值(即障碍物的包围半径加上检测盒宽度的一半)。此时,只剩下那些与检测盒相交的障碍物了。接下来我们找出离智能体最近的相交点。再一次在局部空间中计算,第三步中扩大了障碍物的包围半径。用简单的线圆周相交测试方法可以得到被扩大的圈和x轴的相交点。 四、实验结果

五、实验心得(需包括有何不足如何改进) //你认为目前的聚集与避障有什么不足之处,如何改进 有的地方可能会因为设计错误而搞错躲避路线. 改进则需要实验前经过精确的计算并且代码没有错误。 六、主要代码 #include"main.h" #include"time.h" //--------------------------------------------------------------------------- /* Book: AI for Game Developers Authors: David M. Bourg & Glenn Seemann Example: Flocking, Chapter 4 */ //--------------------------------------------------------------------------- #define_TIMESTEP 0.0025 #define_TOL 1e-10 #define_FWDTIME 10 #define_THRUSTFACTOR 1.0 #define _CHASESETUP true #define_SPAWN_AREA_R 100 #define_MAX_NUM_UNITS 20 #define_UNIT_LENGTH 4 #define_OBSTACLE_RADIUS_FACTOR 8 #define_OBSTACLE_RADIUS _OBSTACLE_RADIUS_FACTOR * _UNIT_LENGTH #define_COLLISION_VISIBILITY_FACTOR 25 #define_WIDEVIEW_RADIUS_FACTOR 200 #define_NARROWVIEW_RADIUS_FACTOR 50 #define_LIMITEDVIEW_RADIUS_FACTOR 30 #define_SEPARATION_FACTOR 5 #define_BACK_VIEW_ANGLE_FACTOR 1 #define_FRONT_VIEW_ANGLE_FACTOR 1 #define_NUM_OBSTACLES 8

人工智能实验报告

实验报告 1.对CLIPS和其运行及推理机制进行介绍 CLIPS是一个基于前向推理语言,用标准C语言编写。它具有高移植性、高扩展性、 强大的知识表达能力和编程方式以及低成本等特点。 CLIPS由两部分组成:知识库、推理机。它的基本语法是: (defmodule< module-n ame >[< comme nt >]) CLIPS的基本结构: (1).知识库由事实库(初始事实+初始对象实例)和规则库组成。 事实库: 表示已知的数据或信息,用deftemplat,deffact定义初始事实表FACTLIS,由关系名、后跟 零个或多个槽以及它们的相关值组成,其格式如下: 模板: (deftemplate [] *) :: = | 事实: (deffacts [] *) 当CLIPS系统启动推理时,会把所有用deffact定义的事实自动添加到工作存储器中。常用命令如下:asser:把事实添加到事实库(工作存储器)中retract:删除指定事实 modify :修改自定义模板事实的槽值duplicate :复制事实 clear:删除所有事实 规则库 表示系统推理的有关知识,用defrule命令来定义,由规则头、后跟零个或多个条件元素以 及行为列表组成,其格式如下: (defrule [] * ; =>

人工智能试验 结课报告

人工智能结课报告 学号:姓名: 一、课题:机器视觉及机器视觉系统的运用 二、摘要:科技在不停的发展,很多智能的东西在我们生活中随处可见,随着人工智能的不断发展,我们可以制造出真正的智能机器,而且这个领域也将成为下一个技术革命。机器视觉就是用机器代替人眼来做测量和判断。机器视觉系统是指通过机器视觉产品(即图像摄取装置,分 CMOS 和CCD 两种)将被摄取目标转换成图像信号,传送给专用的图像处理系统,根据像素分布和亮度、颜色等信息,转变成数字化信号;图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。 机器视觉系统适合于人工作业的危险工作环境或人工视觉难以满足要求的场合,常用机器视觉来替代人工视觉;同时在大批量工业生产过程中,用人工视觉检查产品质量效率低且精度不高,用机器视觉检测方法可以大大提高生产效率和生产的自动化程度。而且机器视觉易于实现信息集成,是实现计算机集成制造的基础技术。 机器视觉不会有人眼的疲劳,有着比人眼更高的精度和速度,借助红外线、紫外线、X 射线、超声波等高新探测技术,机器视觉在探测不可视物体和高危险场景时,更具有其突出的优点。机器视觉技术现已得到广泛的应用。 机器视觉技术的诞生和应用,极大地解放了人类劳动力,提高了生产自动化水平,改善了人类生活现状,其应用前景极为广阔。目前在国外,机器视觉技术已广泛应用于生产、生活中,而我国正处于起步阶段,急需广大科技工作者的共同努力,来迅速提高我国机器视觉技术的发展水平,为我国的现代化建设做出自己的贡献。 三、三个问题回答 (1)应用价值(10分):为什么跟踪这个人、项目、技术或者算法? 答:在学习人工智能时,从老师的课堂扩充中,我了解到了“机器视觉”这个词,所以我就对这项技术产生了兴趣,也对此进行了跟踪。 在国外,机器视觉的应用普及主要体现在半导体及电子行业。机器视觉系统还在质量检测的各个方面已经得到了广泛的应用,并且其产品在应用中占据着举足轻重的地位。 目前国内随着经济水平的提高,3D机器视觉也开始进入人们的视野。目前3D机器视觉大多用于水果和蔬菜、木材、化妆品、烘焙食品、电子组件和医药产品的评级。它可以提高合格产品的生产能力,在生产过程的早期就报废劣质产品,从而减少了浪费节约成本。这种功能非常适合用于高度、形状、数量甚至色彩等产品属性的成像。

新兴人工智能应用(练习一:人工智能游戏)

新兴人工智能应用(练习一:人工智能游戏) 1、(单选,10分) 井字棋游戏,是一种在()格子上进行的连珠游戏? A、2*2 B、3*3 C、4*4 D、5*5 答案:B 2、(单选,10分) 美国科学家经过18年的努力,构建了一个无法被击败的西洋跳棋人工智能程序是(),就是最顶尖的跳棋选手也只能和它打成平手。 A、Tic-Tac-Toe B、TD-Gammon C、Chinook D、深蓝 答案:C 3、(单选,10分) 人工智能游戏用到的主要技术错误的是() A、决策树 B、有限状态机 C、神经网络 D、区块链 答案:D

决策树通常有()个步骤 A、二 B、三 C、四 D、五 答案:B 5、(单选,10分) 有限状态机有()个要素 A、二 B、三 C、四 D、五 答案:C 6、(单选,10分) 神经网络的组成层次中错误的是() A、输入层 B、隐藏层 C、中间层 D、输出层 答案:C

OpenAI 使用一种称为()的方法来训练AI,这种技术看似简单,却能让AI 学习复杂的行为。 A、决策树 B、有限状态机 C、神经网络 D、强化学习 答案:D 8、(单选,10分) AlphaStar之所以能战胜人类,错误的原因是() A、使用深度增强学习来实现训练模型,包含了强化学习和深度学习 B、高度可伸缩的分布式训练系统 C、AI的反应较快,视野较好,不会墨守成规 D、AlphaStar运气好 答案:D 9、(单选,10分) AlphaStar与两位《星际争霸2》人类职业选手进行了11场比赛对决演示,人类取得了0场胜利。 A、正确 B、错误 答案:B 10、(单选,10分) 人工智能游戏可以应用到兵棋推演、战术推演、模拟驾驶和军事训练中。

人工智能实验二prolog中表的基本操作

数学与软件科学学院实验报告 学期:___至___ 第__ 学期年月日 课程名称:___人工智能 ___ 专业: _级_ _班 实验编号:02实验项目熟悉和掌握Prolog语言的基本技术指导教师__ 姓名:_ __ 学号: __实验成绩:_____ 一、实验目的及要求 (1) 回溯是Prolog语言的主要特点之一,也是掌握Prolog语言来表达问题求解 过程的关键技术之一。本实验主要目的是掌握Prolog语言中的回溯技术的使用。 (2) 表处理技术也是Prolog中的重要基本技术,本实验目的在于掌握基本的 表技术处理方法。 二、实验内容 (1) 掌握Prolog回溯技术的实现特点;熟悉Prolog回溯技术的基本过程; (2) 掌握Prolog中的表技术。 三、实验准备及设备 课前复习并从理论上了解Prolog回溯技术;准备实验实例。 四、实验步骤和实验过程及实验结果 (1) 复习上一实验中的Prolog环境及程序编写与调试方法等; (2) 编辑准备好的回溯实例程序。 domains child=symbol age=integer /*谓词申明段*/ predicates nondeterm pupil(child,age) nondeterm IsAgeSame(child,child) /*子句段:定义事实和规则*/ clauses pupil(peter,9). /*事实:Peter9岁,是个小学生*/ pupil(chris,9). pupil(paul,10). pupil(susan,9). IsAgeSame(X1,X2):-pupil(X1,Y1) and pupil(X2,Y2) and X1<>X2 and Y1=Y2. /*定义规则:年龄相同,人名不同*/

人工智能实验报告

人工智能课程项目报告 姓名: 班级:二班

一、实验背景 在新的时代背景下,人工智能这一重要的计算机学科分支,焕发出了他强大的生命力。不仅仅为了完成课程设计,作为计算机专业的学生, 了解他,学习他我认为都是很有必要的。 二、实验目的 识别手写字体0~9 三、实验原理 用K-最近邻算法对数据进行分类。逻辑回归算法(仅分类0和1)四、实验内容 使用knn算法: 1.创建一个1024列矩阵载入训练集每一行存一个训练集 2. 把测试集中的一个文件转化为一个1024列的矩阵。 3.使用knnClassify()进行测试 4.依据k的值,得出结果 使用逻辑回归: 1.创建一个1024列矩阵载入训练集每一行存一个训练集 2. 把测试集中的一个文件转化为一个1024列的矩阵。 3. 使用上式求参数。步长0.07,迭代10次 4.使用参数以及逻辑回归函数对测试数据处理,根据结果判断测试数 据类型。 五、实验结果与分析 5.1 实验环境与工具 Window7旗舰版+ python2.7.10 + numpy(库)+ notepad++(编辑)

Python这一语言的发展是非常迅速的,既然他支持在window下运行就不必去搞虚拟机。 5.2 实验数据集与参数设置 Knn算法: 训练数据1934个,测试数据有946个。

数据包括数字0-9的手写体。每个数字大约有200个样本。 每个样本保持在一个txt文件中。手写体图像本身的大小是32x32的二值图,转换到txt文件保存后,内容也是32x32个数字,0或者1,如下图所 示 建立一个kNN.py脚本文件,文件里面包含三个函数,一个用来生成将每个样本的txt文件转换为对应的一个向量:img2vector(filename):,一个用 来加载整个数据库loadDataSet():,最后就是实现测试。

人工智能 课程实验 专家系统 程序源代码

游戏人物识别专家系统 ——邢洪伟一试验题目 游戏人物识别专家系统 二、试验内容 游戏人物识别专家系统是流行的专家系统实验模型,主要基于暴风公司出品的经典角色类游戏《暗黑破坏神2》。它用产生式规则来表示知识,共15条规则、可以识别八种游戏人物,这些规则既少又简单,可以改造他们,也可以加进新的规则,还可以用来识别其他东西的新规则来取代这些规则。游戏人物识别15条规则的中文表示是: 规则1: 如果:暴风公司出品的单机角色类游戏 则:该游戏是暗黑破坏神 规则2: 如果:暴风公司出品的单机对抗类游戏 则:该游戏是魔兽争霸 规则3: 如果:暴风公司出品的网络游戏 则:该游戏是魔兽世界 规则4: 如果:网易游戏出品的网络游戏 则:该游戏是梦幻西游 规则5: 如果:暗黑破坏神版本1 则:该游戏是暗黑破坏神1 规则6: 如果:是暗黑破坏神2 则:该游戏是暗黑破坏神2 规则7: 如果:是暗黑破坏神3 则:该游戏是暗黑破坏神3 规则8: 如果:暗黑破坏神版本2单手武器使用木棒的男性人物 则:该人物是德鲁伊 规则9: 如果:暗黑破坏神2单手武器使用手杖的男性人物 则:该人物是亡灵法师 规则10:

如果:暗黑破坏神版本2单手武器使用法杖的女性人物 则:该人物是巫师 规则11: 如果:暗黑破坏神版本2双手武器使用长剑和盾牌的男性人物 则:该人物是圣骑士 规则12: 如果:暗黑破坏神版本2单手武器使用斧头的男性人物 则:该人物是野蛮人 规则13: 如果:暗黑破坏神版本2单手武器使用爪子的男性人物 则:该人物是刺客 规则14: 如果:暗黑破坏神2单手武器使用长剑的女性人物 则:该人物是亚马逊 规则15: 如果:梦幻西游单手使用鞭子的女性人物 则:该人物是飞燕女 游戏人物识别专家系统由15条规则组成,可以识别八种动物,在15条规则中,共出现 37个概念(也称作事实),共37个事实,每个事实给一个编号,从编号从1到37,在规则对象中我们不存储事实概念,只有该事实的编号,同样规则的结论也是事实概念的编号,事实与规则的数据以常量表示,其结构如下:Char *str{}={"暴风公司出品 ","网易游戏出品","单机游戏","网络游戏", "角色类游戏","对抗类游戏","版本1","版本2","版本3","男性","女性", "暗黑破坏神","梦幻西游","暗黑破坏神1","暗黑破坏神2","暗黑破坏神3","单身武器","双手武器","使用木棒","是用手杖","使用法杖","使用长剑","使用盾牌","使用斧头","使用爪子","使用鞭子","巫师","德鲁伊","亡灵法师","法师","圣骑士","野蛮人","刺客","亚马逊","飞燕女","魔兽争霸","魔兽世界","\ 0"} 程序用编号序列的方式表达了产生式规则,如资料中规则15,如果动物是鸟,且善飞,则该动物是信天翁。相应的规则数组第八条是{26,17,13,11,0,0},第26个是“使用鞭子”,如果事实成立,询问使用者下一个事实,第17 个“单手武器”,如果也成立,询问使用者下一个事实,第13个是“梦幻西游”则,如果事实成立,询问使用者下一个事实,第11个是“女性”,如果事实成立,查找结论断言编号数组{28,29,30,31,32,33,34,35,14,15,16,1 3,12,36,37}中第八个“35”,这里35对应事实数组中的“飞燕女”。 上述就是程序的推理过程,也是程序中的重点,该部分是由规则类(类rul e)中的Query方法实现。 三、流程图及分析 主程序的流程主要是:1、实例化各个类 2、初始化事实集 3、初始化规则集

人工智能实验1-2

试验1:用谓词表示猴子摘香蕉问题 实验内容: 利用一阶谓词逻辑求解猴子摘香蕉问题:房内有一个猴子,一个箱子,天花板上挂了一串香蕉,其位置如图所示,猴子为了拿到香蕉,它必须把箱子搬到香蕉下面,然后再爬到箱子上。请定义必要的谓词,列出问题的初始化状态(即下图所示状态),目标状态(猴子拿到了香蕉,站在箱子上,箱子位于位置b)。写出所用谓词的定义,并给出每个谓词的功能及变量的个体域,然后编程实现。 实验目的: 通过此实验加深对谓词逻辑和谓词知识表示的理解。 实验报告要求: 所撰写的实验报告必须包含以下内容: 1. 所用谓词的定义以及每个谓词的功能及变量的个体域; 2. 实验结果;(可截图) 3. 提供全部源程序及软件的可执行程序。(打印) 实验2:八数码问题 实验内容: 八数码问题:在3×3的方格棋盘上,摆放着1到8这八个数码,有1个方格是空的,其初始状态如图1所示,要求对空格执行空格左移、空格右移、空格上移和空格下移这四个操作使得棋盘从初始状态到目标状态。 2 5 4 1 2 3 3 7 8 4 1 8 6 7 6 5 (a) 初始状态(b) 目标状态 请任选一种盲目搜索算法(深度优先搜索或宽度优先搜索)或任选一种启发式搜索方法(A 算法或A* 算法)编程求解八数码问题(初始状态任选),并对实验结果进行分析,得出合理的结论。 实验目的: 1. 熟悉人工智能系统中的问题求解过程; 2. 熟悉状态空间的盲目搜索和启发式搜索算法的应用; 3. 熟悉对八数码问题的建模、求解及编程语言的应用。 实验报告要求 所撰写的实验报告必须包含以下内容: 1. 算法基本原理和流程框图; 2. 基本数据结构分析和实现;

相关文档
最新文档