人 工 智 能 课 内 实 验 报 告 (8 次) 学 院: 自动化学院 班 级: 智能1501 姓 名: 刘少鹏(34) 学 号: ******** 目 录 课内实验1:猴子摘香蕉问题的VC 编程实现……………………1 课内实验2:编程实现简单动物识别系统的知识表示………5 课内实验3:盲目搜索求解 8 数码问题………………………18 课内实验4:回溯算法求解四皇后问题………………………33 课内实验5:编程实现一字棋游戏……………………………37 课内实验6:字句集消解实验…………………………………46 课内实验7:简单动物识别系统的产生式推理………………66 课内实验8:编程实现D-S证据推理算法……………………78 1 人 工 智 能 课 内 实 验 报 告 实验1:猴子摘香蕉问题的VC 编程实现 学 院: 自动化学院 班 级: 智能1501 姓 名: 刘少鹏 (33) 学 号: 06153034 日 期: 2017-3-8 10:15-12:00 2 实验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) { 3 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来表示猴子箱子香蕉...