人工智能实验报告大全

更新时间:2023-12-06 21:55:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

人工智能课内实验报告

(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

实验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) {

2

printf(\从%c走到%c\\n\, ++i, x, y);//x表示猴子的位置,y为箱子的

}

void Monkey_Move_Box(char x, char y) {

位置

printf(\把箱子从%c运到%c\\n\, ++i, x, y);//x表示箱子的位置,y为

}

void Monkey_On_Box() {

香蕉的位置

printf(\爬上箱子\\n\, ++i);

}

void Monkey_Get_Banana() {

printf(\摘到香蕉\\n\, ++i);

}

void main() {

unsigned char Monkey, Box, Banana; printf(\智能1501班**********\\n\); printf(\); printf(\刘少鹏**************\\n\); printf(\请用a b c来表示猴子箱子香蕉的位置\\n\); printf(\); scanf(\, &Monkey); getchar(); printf(\);

scanf(\, &Box); getchar(); printf(\); scanf(\, &Banana); getchar();

printf(\操作步骤如下\\n\); if (Monkey != Box) {

Monkey_Go_Box(Monkey, Box); }

if (Box != Banana) {

Monkey_Move_Box(Box, Banana); }

Monkey_On_Box(); Monkey_Get_Banana(); printf(\);

3

getchar(); }

五、实验结果相关截图

六、心得体会

通过本次实验,我初步了学会了使用VC的新建工程,并且进行简单的程序编写。

此外我还学会如何使用一些谓词来解决生活中的一些简单问题,并且用VC编程给出具体的操作步骤,感觉对VC编程有了新的认识。在实验中我也遇到过许多问题,比如在我写完代码进行编译时总是会出现一个错误“ fatal error C1010: 在查找预编译头时遇到意外的文件结尾,是否忘记了向源中添加“#include ‘stdafx.h’”关于这个错误我我问了几个同学得不出答案后,我决定通过上网查找,最终找到了解决方法,需要在该项目的每一个cpp结尾的文件属性中设置不使用预编译头即可。在这个过程中也锻炼了自己解决问题的能力。

4

人工智能课内实验报告

实验2:编程实现简单动物识别系统的知识表示

学 院: 自动化学院 班 级: 智能1501 姓 名: 刘少鹏(33) 学 号: 06153034 日 期: 2017-3-13 10:15-12:00

5

实验2:编程实现简单动物识别系统的知识表示

一、实验目的

1、理解和掌握产生式知识表示方法;

2、能够通过VC编程语言实现产生式系统的规则库。 二、实验内容

1、以动物识别系统的产生式规则为例;

2、用选定的编程语言建造规则库和综合数据库,并能对它们进行增加、删除和修改操作。

三、实验步骤

1、确定需要识别的动物及其属性

本次实验的简单动物识别系统总共能识别7种动物,即:老虎、金钱豹、斑马、长颈鹿、企鹅、鸵鸟和信天翁。

2、建立识别七种动物识别系统的规则

3、选定编程语言并确定综合数据库和规则库结构 (1)选用C语言作为编程语言 (2)综合数据库的建立 (3)规则库的建立 四、程序源代码

#include #include using namespace std; struct RULES {

int count; char pre[255]; char back[255]; int mark;

};

void check(); RULES r[100] = {

{ 1,\有毛发\,\哺乳动物\,0 }, { 1,\有奶\,\哺乳动物\,0 }, { 1,\有羽毛\,\鸟\,0 }, { 2,\会飞&下蛋&\,\鸟\,0 }, { 1,\吃肉\,\食肉动物\,0 },

6

//所有规则静态数据库

{ 3,\有锋利的牙齿&有爪&眼睛盯着前方&\,\食肉动物\,0 }, { 2,\哺乳动物&有蹄&\,\有蹄类哺乳动物\,0 }, { 2,\哺乳动物&反刍&\,\有偶蹄类哺乳动物\,0 },

{ 4,\哺乳动物&食肉动物&黄褐色&有暗斑&\,\金钱豹\,0 }, { 4,\哺乳动物&食肉动物&黄褐色&黑色条纹&\,\老虎\,0 }, { 4,\有蹄类哺乳动物&有长脖子&有长腿&有暗斑&\,\长颈鹿\,0 }, { 2,\有蹄类哺乳动物&黑条纹&\,\斑马\,0 },

{ 5,\鸟&不会飞&有长脖子&有长腿&黑白色&\,\鸵鸟\,0 },

{ 4,\鸟&不会飞&会游泳&黑白色&\,\企鹅\,0 }, { 2,\鸟&会飞&\,\信天翁\,0 }, { 1,\反刍\,\哺乳动物\,0 }

};

int number; int m; int cat = 15; int a; int length; void input() {

//输入的事实长度

string f[255];

//输入的事实数组

while (1) {

cat++;

cout << \ << endl; cin >> r[cat].count;

cout << \输入事实,两种以上的事实请在每个事实后加上‘&’符号\ << endl; cin >> r[cat].pre;

cout << \输入结果\ << endl; cin >> r[cat].back; r[cat].mark = 0; while (1) {

cout << \输入“1”继续添加规则,输入“2”查看规则库\ << endl; int p; cin >> p; if (p == 1) { } else {

if (p == 2) {

7

input();

}

}

check();

else { }

cout << \输入错误,重新输入\ << endl;

}

} void delate() {

}

cout << \输入要删除的条数\ << endl; int bar; cin >> bar;

for (int t = 0; t <= cat; t++) {

r[bar - 1] = r[bar]; bar++;

} cat--; check();

} void check() {

cout << endl << \规则库如下\ << endl; for (int i = 0; i <= cat; i++) { }

cout << endl; while (1) {

cout << i + 1 << \ << \由\ << r[i].pre << \可得\ << r[i].back << endl;

cout << \输入“1”继续添加规则,输入“3”删除选定的规则\ << endl; cin >> m; if (m == 1) { } else { }

8

input();

if (m == 3)

delate();

本文来源:https://www.bwwdw.com/article/ekgt.html

Top