人工智能实验一

人工智能实验一
人工智能实验一

实验目的

理解和掌握产生式知识表示方法及产生式系统的基本过程,能够利用编程技术建立一个基于产生式知识表示的简单的智能系统。

例建立一个动物识别系统的规则库,用以识别虎、豹、斑马、长颈鹿、企鹅、鸵鸟、信天翁等7种动物。

解为了识别这些动物,可以根据动物识别的特征,建立包含下述规则的规则库:

R1:if 动物有毛发 then 动物是哺乳动物

R2:if 动物有奶 then 动物是哺乳动物

R3:if 动物有羽毛 then 动物是鸟

R4:if 动物会飞 and 会生蛋then 动物是鸟

R5:if 动物吃肉then 动物是食肉动物

R6:if 动物有犀利牙齿and 有爪and 眼向前方 then 动物是食肉动物

R7:if 动物是哺乳动物and有蹄then动物是有蹄类动物

R8:if 动物是哺乳动物and反刍then动物是有蹄类动物

R9:if 动物是哺乳动物and是食肉动物and有黄褐色 and 有暗斑点then 动物是豹

R10:if 动物是哺乳动物and是食肉动物and有黄褐色and 有黑色条纹then 动物是虎

R11:if动物是有蹄类动物 and 有长脖子and有长腿and有暗斑点then 动物是长颈鹿

R12:if 动物是有蹄类动物and有黑色条纹then 动物是斑马

R13:if 动物是鸟and不会飞and有长脖子and有长腿and有黑白二色then 动物是鸵鸟

R14:if 动物是鸟and不会飞and会游泳and有黑白二

色 then 动物是企鹅

R15:if 动物是鸟and善飞then 动物是信天翁

如果初始综合数据库包含的事实有:

动物有暗斑点,有长脖子,有长腿,有奶,有蹄

推理出是什么动物?(长颈鹿)

系统的推理过程

(1) 先从规则库中取出第一条规则r1,检查其前提是否可与综合数据库中的已知事实相匹配。r1的前提是“有毛发”,但事实库中无此事实,故匹配失败。然后取r2,该前提可与已知事实“有奶”相匹配,r2被执行,并将其结论“该动物是哺乳动物”作为新的事实加入到综合数据库中。此时,综合数据库的内容变为:动物有暗斑,有长脖子,有长腿,有奶,有蹄,是哺乳动物。

(2) 再从规则库中取r3,r4,r5,r6进行匹配,均失败。接着取r7,

该前提与已知事实“是哺乳动物”相匹配,r7被执行,并将其结论“该动物是有蹄类动物” 作为新的事实加入到综合数据库中。此时,综合数据库的内容变为:动物有暗斑,有长脖子,有长腿,有奶,有蹄,是哺乳动物,是有蹄类动物。

(3) 此后,r8,r9,r10均匹配失败。接着取r11,该前提“该动物是有蹄类动物 AND 有长脖子 AND 有长腿 AND 身上有暗斑”

与已知事实相匹配,r11被执行,并推出“该动物是长颈鹿”。由于“长颈鹿”已是目标集合中的一个结论,即已推出最终结果,故问题求解过程结束。

产生式系统的问题求解基本过程

(1) 初始化综合数据库,即把欲解决问题的已知事实送入综合数据库中;

(2) 检查规则库中是否有未使用过的规则,若无转(7);

(3) 检查规则库的未使用规则中是否有其前提可与综合数据库中已知事实相匹配的规则,若有,形成当前可用规则集;否则转(6);

(4) 按照冲突消解策略,从当前可用规则集中选择一个规则执行,并对该规则作上标记。把执行该规则后所得到的结论作为新的事实放入综合数据库;如果该规则的结论是一些操作,则执行这些操作;

(5) 检查综合数据库中是否包含了该问题的解,若已包含,说明解已求出,问题求解过程结束;否则,转(2);

(6) 当规则库中还有未使用规则,但均不能与综合数据库中的已有事

实相匹配时,要求用户进一步提供关于该问题的已知事实,若能提供,则转(2);否则,执行下一步;

(7) 若知识库中不再有未使用规则,也说明该问题无解,终止问题求解过程。

说明:从第(3)步到第(5)步的循环过程实际上就是一个搜索过程

代码如下:

view plaincopy to clipboardprint?

1.#include

2.#include

https://www.360docs.net/doc/e218492342.html,ing namespace std;

4.

5.char *facts[]={"",

6. "反刍","有蹄","哺乳类","眼向前方","有爪", //1-5

7. "犬齿","吃肉","下蛋","能飞","有羽毛",

8. "蹄类","食肉类","鸟类","有奶","毛发",

9. "善飞","黑色白条纹","游泳","长腿","长脖子",

10. "黑条纹","暗斑点","黄褐色"

11. };

12.

13. char *resultSet[]={"",

14. "信天翁","企鹅","鸵鸟","斑马","长颈鹿","虎","豹" //1-7

15. };

16.

17. struct factDB{ //综合数据库中的已知事实

18. int curNum;

19. int fact[30];

20. int initNum;

21. }factDb;

22.

23. struct Rule{ //规则结构体

24. int factNum;

25. int fact[5];

26. bool endResult; //是否为结果集

27. int resultID; //推出的结果ID

28. bool used; //已使用过标志

29. bool possible; //是否可能标志,针对-9(不能飞)若Rule中有9,而综合

数据库中有-9 则该规则标记不可能

30. int needFactPos; //通过事实比较,记录下一个需要的事实位置,方便下次

比较开始点后移和首先寻找该位置值是否新增即可

31. }*rule;

32.

33. bool findNeedFact(int factID,int pos) //寻找needFactPos位置值是否存在于

综合事实库中

34. {

35. int i=pos;

36. for(;i

37. {

38. if(factID==factDb.fact[i])return true;

39. if(factID

40. }

41. return false;

42. }

43.

44. bool cmpArray(Rule &r) //两个数组的事实比较

45. {

46. int i,j;

47. i=r.needFactPos;

48. j=i;

49. while(i

50. {

51. while(j

52. {

53. if(r.fact[i]==factDb.fact[j])

54. {

55. i++;

56. if(i==r.factNum)return true;

57. }

58. else if(r.fact[i]

59. {

60. if(r.fact[i]<0 && findNeedFact(-r.fact[i],i))r.possible=false; //当存在

相反情况时,标记不可能

61. r.needFactPos=i;

62. return false;

63. }

64. j++;

65. }

66. if(i

67. }

68. return true;

69. }

70.

71. int cmpFact(Rule &r)

72. {

73. if(r.factNum>factDb.curNum)return 0; //已知事实还没有该规则事实多

74. if(r.needFactPos)

75. {

76. if(!findNeedFact(r.fact[r.needFactPos],r.needFactPos))return 0; //需要的

值还不存在

77. else r.needFactPos++;

78. }

79. if(cmpArray(r))

80. {

81. https://www.360docs.net/doc/e218492342.html,ed=true;

82. if(r.endResult)return 1; //得到了最终结果

83. else return 2; //得到中间结果

84. }else return 0;

85. }

86.

87. int main()

88. {

89. freopen("in.txt","r",stdin);

90. int n;

91. cin>>n;

92. rule=(Rule *)malloc(sizeof(Rule)*n);

93. int i,j;

94. for(i=0;i

95. {

96. cin>>rule[i].factNum;

97. for(j=0;j

98. cin>>rule[i].fact[j];

99. sort(rule[i].fact,rule[i].fact+rule[i].factNum); 100. cin>>rule[i].endResult>>rule[i].resultID; 101. rule[i].used=false;

102. rule[i].possible=true;

103. rule[i].needFactPos=0;

104. }

105.

106. cin>>factDb.initNum;

107. factDb.curNum=factDb.initNum;

108. cout<<"原始事实综合数据库:"<

110. {

111. cin>>factDb.fact[i];

112. cout<

113. }

114. cout<

115. sort(factDb.fact,factDb.fact+factDb.curNum); 116.

117. int res;

118. bool isEnd=false;

119. while(!isEnd)

120. {

121. isEnd=true;

122. for(i=0;i

123. {

124. if(rule[i].used || !rule[i].possible)continue;

125. res=cmpFact(rule[i]);

126. if(res==0)continue;//不匹配

127. else if(res==1) //匹配成功,得到最终结果

128. {

129. cout<<"得到最终结果:"<

130. return 0;

131. }

132. else if(res==2)//匹配成功,得到中间结果

133. {

134. cout<<"得到中间结果:"<

135. cout<<"\t将其加入到现有的事实数据库中。。。"<

136. factDb.fact[factDb.curNum]=rule[i].resultID;

137. factDb.curNum++;

138. sort(factDb.fact,factDb.fact+factDb.curNum); //这里是在有序数组里插入,应使用插入排序为宜

139. isEnd=false;

140. }

141. }

142. }

143. cout<<"现有事实无法推断出结果!"<

144.

145. return 0;

146. }

输入文件:

15 //规则数量

4 //事实条件数

22 23 12 3

1 7 //1表示最终结果,7为结果ID

4

21 23 12 3

1 6

4

22 19 20 11

1 5

2

21 11

1 4

5

17 19 20 13 -9

1 3

4

17 18 13 -9

1 2

2

16 13

1 1

1

15

0 3 //0表示中间结果,3表示结果ID

1

14

0 3

1

10

0 13

2

8 9

0 13

1

7

0 12

3

4 5 6

0 12

2

2 3

0 11

2

1 3

0 11

5

22 20 19 14 2 //有暗斑点,有长脖子,有长腿,有奶,有蹄 ==> 长颈鹿

3 //初始的事实数

1 15 21 //反刍、有毛发、黑条纹 ==> 斑马

输出结果:

实验1: Prolog语言程序设计 人工智能(AI)语言是一类适应于人工智能和知识工程领域的、具有符号处理和逻辑推理能力的计算机程序设计语言。能够用它来编写求解非数值计算、知识处理、推理、规划、决策等具有智能的各种复杂问题。 Prolog是当代最有影响的人工智能语言之一,由于该语言很适合表达人的思维和推理规则,在自然语言理解、机器定理证明、专家系统等方面得到了广泛的应用,已经成为人工智能应用领域的强有力的开发语言。 尽管Prolog语言有许多版本,但它们的核心部分都是一样的。Prolog的基本语句仅有三种,即事实、规则和目标三种类型的语句,且都用谓词表示,因而程序逻辑性强,方法简捷,清晰易懂。另一方面,Prolog是陈述性语言,一旦给它提交必要的事实和规则之后,Prolog就使用内部的演绎推理机制自动求解程序给定的目标,而不需要在程序中列出详细的求解步骤。 一、实验目的 1、加深学生对逻辑程序运行机理的理解。 2、掌握Prolog语言的特点、熟悉其编程环境。 3、为今后人工智能程序设计做好准备。 二、实验内容 1、编写一个描述亲属关系的Prolog程序,然后再给予出一些事实数据,建立一个小型演绎数据库。 提示:可以以父亲和母亲为基本关系(作为基本谓词),再由此来描述祖父、祖母、兄弟、姐妹以及其他所属关系。 2、编写一个路径查询程序,使其能输出图中所有路径。 提示:程序中的事实描述了下面的有向图,规则是图中两节点间通路的定义。 e

3、一个雇主在发出招聘广告之后,收到了大量的应聘申请。为了从中筛选出不量的候选人,该雇主采用下列判据:申请者必须会打字、开车,并且住在伦敦。 (a)用Prolog规则表述这个雇主的选择准则。 (b)用Prolog事实描述下列申请者的情况: 史密斯住在剑桥,会开车但不会打字。 布朗住在伦敦,会开车也会打字。 简住在格拉斯哥,不会开车但会打字。 埃文斯住在伦敦,会开车也会打字。 格林住在卢顿,会开车也会打字。 (c)要求Prolog提供一个候选人名单。 4、实现递归谓词remove(X,Y,Z),它用于从表Y中除去所有整型数X的倍数值后得到新表Z。例如,对于询问 remove(2,[3,4,5,6,7,8,9,10],Z). 的回答为: Z=[3,5,7,9] 三、实验建议 1、首先运行Prolog安装目录中PROGRAM目录下的示例程序,对Prolog功能有一个感性认识。 (1)HANOI.PRO 实现汉诺塔演示的程序。 程序运行界面如图所示。

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

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

实验四有限状态机实验 实验报告 一、实验目的 通过蚂蚁世界实验掌握游戏中追有限状态机算法 二、实验仪器 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();

人工智能实验报告大 全

人工智能课内实验报告 (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)

浙江大学人工智能研究所(以下简称AI)创建于1981年,是专门从事科学研究与培养高层次计算机专业人才的科研机构。全所现有各类研究人员46名,其中教授15名(含中国工程院院士1名,长江计划特聘教授1名,博士生导师10名),副教授22名,讲师10名。同时设有计算机应用技术博士点、硕士点和计算机科学与技术博士后流动站。现任研究所所长为浙江大学校长、中国工程院院士潘云鹤教授,副所长为董金祥教授、朱淼良教授和周昌乐教授,学术委员会主任为何志均教授。 研究所下设: 知识工程研究室、智能CAD研究室、CAD&CG研究室、计算机视觉与智能机器人研究室、智能信息管理与决策研究室等5个研究室、实验室,以及资料室、办公室等机构。 主要研究方向: 人工智能理论,形象思维,计算机图形学(CG)与计算机辅助设计(CAD),计算机集成制造(CIMS)及其它先进制造技术,智能CAD,信息智能和决策支持,计算机视觉与智能机器人,多媒体技术,工程数据库,智能控制,计算机网络和信息通讯,科学可视化,分布式知识库,操作系统,数据库,管理信息系统,计算机辅助工业设计等。 学术带头人: Founded in 1981, the Artificial Intelligence Research Institute (AIRI) is an institution specializing in scientific research and high-level computer talent cultivating. Presently it has a staff of 46. Among them, there are 15 professors ( including one member of Chinese Engineering Academy, one member of China Education Ministry’s Cheung Kong (Chiang Jiang) Scholar,ten doctoral supervisors), 22 associate professors and 10 lecturers. In addition to the Ph.D and Master degree programs, it also offers post doctoral program in computer science and technology. Chief of Institution is Prof. Pan Y unhe, who is also president of Zhejiang University and a member of Chinese Engineering Academy. Prof. Dong Jinxiang and Prof. Zhu Miaoliang and Prof. Zhou Changle are vice chiefs of the Institution. Prof. He Zhijun is chairman of academia committee of AIRI. The AIRI consists of one reference room, one administrative office and five research labs, including Knowledge Engineering Lab, Intelligence CAD Lab, CAD&CG Lab, Computer vision & Robotics Labs, Intelligence Information Management and Decision Lab. The main research scope is as follows: Artificial Intelligence theory Imagery thinking Computer Graphics and Computer Aided Design Computer Integrated Manufacture system (CIMS) and other Advanced Manufacturing Technologies Intelligence CAD Information Intelligence and policy support Computer Vision and Robotics Multimedia Technology Engineering Database Intelligent Control Computer Network and Communication Scientific Visualization Distributed Knowledge Database

实验报告 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 [] * ; =>

人工智能技术基础实验报告 指导老师:朱力 任课教师:张勇

实验三小型专家系统设计与实现 一、实验目的 (1)增加学生对人工智能课程的兴趣; (2)使学生进一步理解并掌握人工智能prolog语言; (3)使学生加强对专家系统课程内容的理解和掌握,并培养学生综合运用所学知识开发智能系统的初步能力。 二、实验要求 (1)用产生式规则作为知识表示,用产生系统实现该专家系统。 (2)可使用本实验指导书中给出的示例程序,此时只需理解该程序,并增加自己感兴趣的修改即可;也可以参考该程序,然后用PROLOG语言或其他语言另行编写。 (3)程序运行时,应能在屏幕上显示程序运行结果。 三、实验环境 在Turbo PROLOG或Visual Prolog集成环境下调试运行简单的PROLOG程序。 四、实验内容 建造一个小型专家系统(如分类、诊断、预测等类型),具体应用领域由学生自选,具体系统名称由学生自定。 五、实验步骤 1、专家系统: 1.1建造一个完整的专家系统设计需完成的内容: 1.用户界面:可采用菜单方式或问答方式。

2.知识库(规则库):存放产生式规则,库中的规则可以增删。 3.数据库:用来存放用户回答的问题、已知事实、推理得到的中 间事实。 4.推理机:如何运用知识库中的规则进行问题的推理控制,建议 用正向推理。 5.知识库中的规则可以随意增减。 1.2推理策略 推理策略包括:正向(数据驱动),反向(目标驱动),双向 2、动物分类实验规则集 (1)若某动物有奶,则它是哺乳动物。 (2)若某动物有毛发,则它是哺乳动物。 (3)若某动物有羽毛,则它是鸟。 (4)若某动物会飞且生蛋,则它是鸟。 (5)若某动物是哺乳动物且有爪且有犬齿且目盯前方,则它是食肉动物。(6)若某动物是哺乳动物且吃肉,则它是食肉动物。 (7)若某动物是哺乳动物且有蹄,则它是有蹄动物。 (8)若某动物是有蹄动物且反刍食物,则它是偶蹄动物。 (9)若某动物是食肉动物且黄褐色且有黑色条纹,则它是老虎。 (10)若某动物是食肉动物且黄褐色且有黑色斑点,则它是猎豹。 (11)若某动物是有蹄动物且长腿且长脖子且黄褐色且有暗斑点,则它是长颈鹿。 (12)若某动物是有蹄动物且白色且有黑色条纹,则它是斑马。 (13)若某动物是鸟且不会飞且长腿且长脖子且黑白色,则它是驼鸟。

一.追逐与闪躲 Bresenham算法的原理是,计算每一点与终点之间的的横轴与纵轴,然后比较两轴的长度,哪个轴比较长,就往该方向前进,如果两轴等长,则往斜边前进。 if (deltaCol > deltaRow) { fraction = deltaRow * 2 - deltaCol; while (nextCol != endCol) { if (fraction >= 0) { nextRow += stepRow; fraction -= deltaCol; } nextCol += stepCol; fraction += deltaRow; pathRow[currentStep] = nextRow; pathCol[currentStep] = nextCol; currentStep++; }} else { fraction = deltaCol * 2 - deltaRow; while (nextRow != endRow) { if (fraction >= 0) { nextCol += stepCol; fraction -= deltaRow; } nextRow += stepRow; fraction += deltaCol; pathRow[currentStep] = nextRow; pathCol[currentStep] = nextCol; currentStep++; }}} 连续环境中的视线算法:在函数中定义了4的局部变量。u和v是Vector类型的,Vector类是一个自定义类(见附录A),负责处理基本向量算术,比如向量加法,减法,数量积,交叉乘积,和其他操作。另两个局部变量是一对布尔变量,left和right。它们是用来分析哪个操纵力启动,两个初始都是false。定义局部变量的下一行是计算从掠夺者到被掠夺者的视线。实际上,这条线不仅仅是计算线的位置。它还会计算宏观上掠夺者到被掠夺者之间相对位置的向量,通过使用代码 (Prey.vPosition - Predator.vPosition) ,然后把结果向量传递给VRotate2D函数,把它转换成掠夺者本地,本体坐标。VRotate2D 表现成一个标准的结合系统,把有关earth-fixed的系统转换成body-fixed对应系统方向(看下边的“全局与局部坐标系统”)。结果保存在u里,然后规格化u即(u.Normalize()),把它转换成单位长度向量。最后一行代码调用刚性体类的SetThrusters成员函数,在模拟循环的当前反复中为掠夺者提供转向力。 void DoLineOfSightChase(void) { Vector u, v; bool left = false; bool right = false; u = VRotate2D(-Predator.fOrientation, (Prey.vPosition - Predator.vPosition)); u.Normalize(); if (u.x < -_TOL) left = true; else if (u.x > _TOL) right = true; Predator.SetThrusters(left, right); } 二.群聚规则 首先根据角度检测,对于不同的视野检测方法是不同的(比如,宽视野,窄视野),下面的例子是对于宽广视野的检测 ·计算d=目标单位位置-当前单位位置,w为d以目标单位反方向的坐标系中的向量坐标。 ·如果w.y>0,则目标单位必然在视野范围内。 ·如果w.y<0,则要看x,y坐标构成的线段斜率,是否在设定的视野区域之外,如果 fabs(w.x)>fab(w.y)*_BACK_VIEW_ANGLE_FACTOR,则目标单位在视野范围内。其中的 _BACK_VIEW_ANGLE_FACTOR就是视野角度系数。该系数等于1时,视野弧线的直线与x轴夹角是45度,该系数越大,两条线越接近x轴,不可见区域越大,反之,系数越小,两条线越接近y轴,不可见区域越小。 视野检查 if (WideView) //宽广视野的检查 {InView=((w.y>0)||((w.y<0)&&(fabs(w.x) >fabs(w.y)*BACK_VIEW_ANGLE_FACTOR))) ;

图像识别与人工智能研究所 图像识别与人工智能研究所(以下简称图像所)于1978年由教育部和航天部共同批准建立、直属于华中科技大学的一所融研究、教学为一体,以图像识别和人工智能为研究方向的研究机构。建所30余年来,图像所始终瞄准航天、航空和信息技术领域的国家目标,进行应用基础和应用技术的研究,在国内的模式识别与智能系统学科具有明显的研究特色和学科优势,在航天航空的智能信息处理领域具有较高的知名度。图像所分别于1984年、1990年获得硕士和博士学位授予权,20XX年被批准为湖北省重点学科,20XX年被批准为国家重点二级学科“模式识别与智能控制”,是该二级学科全国5个重点学科单位之一。1993年获批“图像信息处理与智能控制”国家教委开发实验室,1999年升格为教育部重点实验室。1998年3月由中国航天工业总公司和国家教委共同批准命名为“中国航天图像识别技术研究所”,与航天工业总公司共建。20XX年12月获批成立“多谱信息处理技术”国家级重点实验室。 图像所经过多年的建设已形成先进、配套的科研、教学、开发环境和雄厚的技术储备,有一支层次高,年龄、专业结构合理的科研教学梯队。该所现有科研、教学人员40余人,其中双聘院士1人,“长江学者”讲座教授1名,教授10名、副教授13名,入选“新世纪优秀人才支持计划”1人。87%的教师拥有博士学位,76%为45岁以下青年教师。20XX年被命名为国家级科技创新团队。除了本所的教师队伍外,图像所还聘请了航天科技集团的科学院院士沈绪榜教授、美国西北大学终生教授、计算机视觉领域的世界知名学者吴郢教授等作为图像所兼职博导培养博士生。目前本专业在读硕士生、博士生350余人。 图像所在“模式识别与智能系统”学科点上现有的研究方向是:计算机视觉与应用、模式识别与图像分析、图像处理系统及应用、医学成像与处理、人工智能与认知科学、集成电路及系统芯片的研究与设计以及微纳光电技术。在“导航制导与控制”学科点上现有的研究方向是:多谱寻的制导、多谱匹配制导、多谱目标探测以及制导信息处理芯片设计。在“信息安全”学科点上现有的研究方向是:混沌密码理论与技术(包括密码算法的IC设计),无线移动网络的安全技术,网络主动防御技术以及城市交通智能管理与安全信息服务技术。2001年以来,图像所培养博士135名、硕士540名,6人获得湖北省优秀博士论文,5人获得湖北省优秀硕士论文。图像所现有在读硕士研究生235人,博士研究生118人。 图像所在培养研究生的同时,承担了大量的国家级科研项目,取得了一大批科研成果。20XX年至今,图像所已经承担了包含国家自然科学基金、973、863、国家级预研计划等在

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 发展非定性

《人工智能及其应用》 实验指导书 浙江工业大学计算机科学与技术学院—人工智能课程组 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设计课内 2模糊推理系统应用Matlab1)设计洗衣机的模糊控制器; 2)设计两车追赶的模糊控制 器。 2验证课内 3A*算法应用I VC++设计与实现求解N数码问题的 A*算法。 2综合课内4A*算法应用II VC++设计与实现求解迷宫问题的A* 算法。 2综合课内5遗传算法应用I Matlab1)求某一函数的最小值; 2)求某一函数的最大值。 2验证课内6遗传算法应用II VC++设计与实现求解不同城市规模 的TSP问题的遗传算法。 2综合课内 7基于神经网络的模式识别Matlab1)基于BP神经网络的数字识 别设计; 2)基于离散Hopfiel神经网络 的联想记忆设计。 2验证课内 8基于神经网络的 优化计算 VC++设计与实现求解TSP问题的连2综合课内 四、实验成绩评定 实验课成绩单独按五分制评定。凡实验成绩不及格者,该门课程就不及格。学生的实验成绩应以平时考查为主,一般应占课程总成绩的50%,其平时成绩又要以实验实际操作的优劣作为主要考核依据。对于实验课成绩,无论采取何种方式进行考核,都必须按实验课的目的要求,以实际实验工作能力的强弱作为评定成绩的主要依据。

实验四有限状态机实验 实验报告 一、实验目的 通过蚂蚁世界实验掌握游戏中追有限状态机算法 二、实验仪器 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

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

一、实验背景 在新的时代背景下,人工智能这一重要的计算机学科分支,焕发出了他强大的生命力。不仅仅为了完成课程设计,作为计算机专业的学生, 了解他,学习他我认为都是很有必要的。 二、实验目的 识别手写字体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():,最后就是实现测试。

盘点:从斯坦福人工智能实验室走出的人物及创举 来源:宇辰网 成立至今,斯坦福人工智能实验室的历史已逾50年,在人工智能漫长的发展岁月里,从这座实验室走出了许多杰出人物和作品。 1.图像识别 李飞飞/图来源网络 斯坦福大学人工智能实验室和视觉实验室(Stanford Artificial Intelligence Laboratory,SAIL)华裔教授李飞飞,多年来致力于解决图像识别、机器学习和语言处理等人工智能领域的棘手难题。 2007-2009年,李飞飞及其团队通过网络众包技术,建立起了含有1500万张照片、涵盖22000种物品的全球最大图像识别数据库Imagenet。

“这些物品是根据日常英语单词进行分类组织的。无论是在质量上还是数量上,这都是一个规模空前的数据库。在"猫"这个对象中,我们有超过62000只猫,长相各异,姿势五花八门,而且涵盖了各种品种的家猫和野猫。我们对ImageNet收集到的图片感到异常兴奋,而且我们希望整个研究界能从中受益,所以以一种和TED一样的方式,我们公开了整个数据库,免费提供给全世界的研究团体。”Li Feifei在TED演讲上说:“事后我们再来看,这个利用大数据来训练计算机算法的思路,也许现在看起来很普通,但回到2007年时,它就不那么寻常了。我们在这段旅程上孤独地前行了很久。” 图像识别之后,李飞飞又开启了Visual Genome(视觉基因组)计划,要把语义和图像结合起来,推动人工智能的进一步发展。 2.人工神经网络 吴恩达/图来源网络

机器学习领域专家,斯坦福人工智能实验室教授,在线教育平台Coursera 的联合创始人吴恩达,曾于2011年创建并领导了谷歌的深度学习团队,打造出大规模人工神经网络。该神经网路总共由16000 个处理器连接而成,内部共有10 亿个节点,能够在没有任何先验知识的情况下自主学习。这个项目的技术已经被应用到了安卓操作系统的语音识别系统上。 人工神经网络是20世纪80年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,按不同的连接方式组成不同的网络。近十多年来,随着研究工作的不断深入,人工神经网络取得了显著进展,现已应用于模式识别、智能机器人、生物、医学、经济等领域,成功地解决了很多现代计算机难以解决的实际问题。 3.开源机器人技术软件平台 ROS/图来源网络

《一人工智能方向实习一》 实习报告 专业:计算机科学与技术 班级:12419013 学号: 姓名: 江苏科技大学计算机学院 2016年3月

实验一数据聚类分析 一、实验目的 编程实现数据聚类的算法。 二、实验内容 k-means聚类算法。 三、实验原理方法和手段 k-means算法接受参数k ;然后将事先输入的 n个数据对象划分为 k个聚类以便使得 所获得的聚类满足:同一聚类中的对象相似度较高 四、实验条件 Matlab2014b 五、实验步骤 (1)初始化k个聚类中心。 (2)计算数据集各数据到中心的距离,选取到中心距离最短的为该数据所属类别。 (3)计算(2)分类后,k个类别的中心(即求聚类平均距离) (4)继续执行(2)(3)直到k个聚类中心不再变化(或者数据集所属类别不再变化) 六、实验代码 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % mai n.m % k-mea ns algorithm % @author matcloud %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear; close all ; load fisheriris ; X = [meas(:,3) meas(:,4)]; figure; plot(X(:,1),X(:,2), 'ko' ,'MarkerSize' ,4); title( 'fisheriris dataset' , 'FontSize' ,18, 'Color' , 'red'); [idx,ctrs] = kmea ns(X,3); figure; subplot(1,2,1); plot(X(idx==1,1),X(idx==1,2), 'ro' , 'MarkerSize' ,4); hold on;

stem课程实验室建设方案 一、政策背景 国务院颁布的《新一代人工智能发展规划》中指出:“人工智能成为国际竞争的新焦点,应逐步开展全民智能教育项目,在中小学阶段设置人工智能相关课程、逐步推广编程教育、建设人工智能学科,培养复合型人才,形成我国人工智能人才高地。” 战略目标: 第一步 ----- 2020年 ----- 人工智能产业成为新的重要经济增长点。技术应用成为改善民生的新途径。 第二步 ----- 2025年 ----- 人工智能成为带动我国产业升级和经济转型的主要动力。 第三步 ----- 2030年 ----- 我国将成为世界主要人工智能创新中心,为跻身创新型国家前列和经济强国奠定重要基础。 二、如何建设stem课程实验室

如何搭stem课程实验室,STEAM实验室正在全国各地的学校涌现。Stem课程创客实验室为教育实践提供新的创新方法,鼓励 学生设计、实验、建设和发明。 创客实验室不仅仅是科学实验室,木工作坊,计算机实验室或艺术室,而是可能包含所有这些空间中的元素。因此,它的设计必 须适应各种活动需求以及活动的多样性和趣味性,这个在制作和探索过程非常重要,这就是STEM实验室与一次性空间的区别。 三、中小学stem课程包含有哪些内容,以智库教育为例: 四、备注 由于每个学校的stem课程实验室及其适应的活动可能会有所不同,也要看学校的具体的需求和要求。建设创客实验室功能和使用最为关键的步骤之一,学校可以与创客企业合作,阐明满足这些需求。或者,访问其他创客空间或实验室可以得到一些宝贵的 意见。作为创客教育设备提供商,会有很多合作的创客空间与

steam实验室可供参观。

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

《人工智能及其应用》 实验指导书 浙江工业大学计算机科学与技术学院—人工智能课程组 2011年9月

前言 本实验是为了配合《人工智能及其应用》课程的理论学习而专门设置的。本实验的目的是巩固和加强人工智能的基本原理和方法,并为今后进一步学习更高级课程和信息智能化技术的研究与系统开发奠定良好的基础。 全书共分为八个实验:1.产生式系统实验;2.模糊推理系统实验;3.A*算法求解8数码问题实验;4.A*算法求解迷宫问题实验;5.遗传算法求解函数最值问题实验;6.遗传算法求解TSP问题实验;7.基于神经网络的模式识别实验;8.基于神经网络的优化计算实验。每个实验包括有:实验目的、实验内容、实验条件、实验要求、实验步骤和实验报告等六个项目。 本实验指导书包括两个部分。第一个部分是介绍实验的教学大纲;第二部分是介绍八个实验的内容。 由于编者水平有限,本实验指导书的错误和不足在所难免,欢迎批评指正。 人工智能课程组 2011年9月

目录 实验教学大纲 (1) 实验一产生式系统实验 (4) 实验二模糊推理系统实验 (6) 实验三 A*算法实验I (11) 实验四 A*算法实验II (14) 实验五遗传算法实验I (16) 实验六遗传算法实验II (21) 实验七基于神经网络的模式识别实验 (24) 实验八基于神经网络的优化计算实验 (28)

实验教学大纲 一、学时:16学时,一般安排在第9周至第16周。 二、主要仪器设备及运行环境:PC机、Visual C++ 6.0、Matlab 7.0。 三、实验项目及教学安排 序号实验名称实验 平台 实验内容学 时 类型教学 要求 1 产生式系统应 用VC++ 设计知识库,实现系统识 别或分类等。 2 设计课内 2 模糊推理系统 应用Matlab 1)设计洗衣机的模糊控制 器; 2)设计两车追赶的模糊控 制器。 2 验证课内 3 A*算法应用I VC++ 设计与实现求解N数码问 题的A*算法。 2 综合课内4 A*算法应用II VC++ 设计与实现求解迷宫问题 的A*算法。 2 综合课内 5 遗传算法应用 I Matlab 1)求某一函数的最小值; 2)求某一函数的最大值。 2 验证课内 6 遗传算法应用 II VC++ 设计与实现求解不同城市 规模的TSP问题的遗传算 法。 2 综合课内 7 基于神经网络 的模式识别Matlab 1)基于BP神经网络的数 字识别设计; 2)基于离散Hopfiel神经 网络的联想记忆设计。 2 验证课内 8 基于神经网络 的优化计算VC++ 设计与实现求解TSP问题 的连续Hopfield神经网 络。 2 综合课内 四、实验成绩评定

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

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

相关文档
最新文档