用盲目搜索技术解决八数码问题(8页).doc
《用盲目搜索技术解决八数码问题(8页).doc》由会员分享,可在线阅读,更多相关《用盲目搜索技术解决八数码问题(8页).doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-用盲目搜索技术解决八数码问题-第 8 页用盲目搜索技术解决八数码问题题目在33的棋盘,有八个棋子,每个棋子上标有1至8的某一数字,不同棋子上标的数字不相同。棋盘上还有一个空格,与空格相邻的棋子可以移到空格中。要解决的问题是:任意给出一个初始状态和一个目标状态,找出一种从初始转变成目标状态的移动棋子步数最少的移动步骤。算法流程使用宽度优先搜索从初始节点开始,向下逐层对节点进形依次扩展,并考察它是否为目标节点,再对下层节点进行扩展(或搜索)之前,必须完成对当层的所有节点的扩展。再搜索过程中,未扩展节点表OPEN中的节点排序准则是:先进入的节点排在前面,后进入的节点排在后面。宽度优先算法如下: 把
2、初始结点S0放入OPEN表中 若OPEN表为空,则搜索失败,问题无解 取OPEN表中最前面的结点N放在CLOSE表中,并冠以顺序编号n 若目标结点,则搜索成功,问题有解 若N无子结点,则转2 扩展结点N,将其所有子结点配上指向N的放回指针,依次放 入OPEN表的尾部,转2源程序#include #include #include using namespace std; const int ROW = 3;/行数 const int COL = 3;/列数const int MAXDISTANCE = 10000;/最多可以有的表的数目 const int MAXNUM = 10000; ty
3、pedef struct _Node int digitROWCOL; int dist;/distance between one state and the destination一个表和目的表的距离int dep; / the depth of node深度 / So the comment function = dist + dep.估价函数值int index; / point to the location of parent父节点的位置 Node; Node src, dest;/ 父节表 目的表vector node_v; / store the nodes存储节点bool i
4、sEmptyOfOPEN() /open表是否为空for (int i = 0; i (); i+) if (node_vi.dist != MAXNUM) return false; return true; bool isEqual(int index,int digitCOL) /判断这个最优的节点是否和目的节点一样 for (int i = 0; i ROW; i+) for (int j = 0; j COL; j+) if (node_vindex.digitij != digitij) return false; return true; ostream& operator(os
5、tream& os, Node& node) for (int i = 0; i ROW; i+) for (int j = 0; j COL; j+) os ij ; os endl; return os; void PrintSteps(int index, vector& rstep_v)/输出每一个遍历的节点 深度遍历 back(node_vindex); index = node_vindex.index; while (index != 0) back(node_vindex); index = node_vindex.index; for (int i=()-1;i=0;i-)/
6、输出每一步的探索过程cout Step () - i endl rstep_vi 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+) ij = node_vindex.digitij; int GetMinNode() /找到最小的节点的位置即最优节点int dist = MAXNUM; int loc; / the location of minim
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 盲目 搜索 技术 解决 数码 问题
限制150内