第一范文网 - 专业文章范例文档资料分享平台

人工智能 - 八数码实验报告

来源:用户分享 时间:2020-06-22 本文由萧萧慕雨 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

西安郵電大学

人工智能实验

报 告 书(三)

学院:自动化学院

专业:智能科学与技术

班级:智能1403

姓名:刘忠强

时间:2016-3-29

一、实验目的

1. 熟悉人工智能系统中的问题求解过程; 2. 熟悉状态空间的盲目搜索策略;

3.掌握盲目收索算法,重点是宽度优先收索和深度优先收索。 二、实验算法

广度优先收索是一种先生成的节点先扩展的策略。它的过程是:从初始节点开始逐层向下扩展,再第n层节点还没有完全搜索之前,不进如第n+1层节点。Open表中的节点总是按进入的先后排序,先进入的节点排在前面,够进入的排在后面。 三、程序框图

四、实验结果及分析

初始状态: 目标状态: 2 8 3 2 1 6 1 6 4 4 0 8 7 0 5 7 5 3

五、源程序及注释

#include #include #include

using namespace std;

const int ROW = 3; const int COL = 3;

const int MAXDISTANCE = 10000; const int MAXNUM = 10000;

int abs(int a) {

if (a>0) return a; else return -a; }

typedef struct _Node{ int digit[ROW][COL]; int dist; // 距离 int dep; // 深度

int index; // 索引值 } Node;

Node src, dest;

vector node_v; // 储存节点

bool isEmptyOfOPEN() { //判断Open表是否空 for (int i = 0; i < node_v.size(); i++) { if (node_v[i].dist != MAXNUM) return false; }

return true; }

bool isEqual(int index, int digit[][COL]) { //判断节点是否与索引值指向的节点相同

for (int i = 0; i < ROW; i++)

for (int j = 0; j < COL; j++) {

if (node_v[index].digit[i][j] != digit[i][j]) return false;

}

return true; }

ostream& operator<<(ostream& os, Node& node) { for (int i = 0; i < ROW; i++) { for (int j = 0; j < COL; j++) os << node.digit[i][j] << ' '; os << endl; }

return os; }

void PrintSteps(int index, vector& rstep_v) { //rstep_v.push_back(node_v[index]); index = node_v[index].index; while (index != 0) {

rstep_v.push_back(node_v[index]); index = node_v[index].index; }

for (int i = rstep_v.size() - 1; i >= 0; i--) cout << \ << endl << rstep_v[i] << endl; }

void Swap(int& a, int& b) { //交换 int t; t = a; a = b; b = t; }

void Assign(Node& node, int index) { //获取节点 for (int i = 0; i < ROW; i++) for (int j = 0; j < COL; j++)

node.digit[i][j] = node_v[index].digit[i][j]; }

int GetMinNode() { //获取启发值最小的节点 int dist = MAXNUM;

int loc; // the location of minimize node for (int i = 0; i < node_v.size(); i++) { if (node_v[i].dist == MAXNUM)

输出步骤

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新幼儿教育人工智能 - 八数码实验报告 全文阅读和word下载服务。

人工智能 - 八数码实验报告 .doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1097232.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top