AI的实验报告,改了改发上来。希望路过的大牛不吝赐教。非常是纳闷我的ida*怎么还没有双搜快。还有发现基于不在位启示的A*和Ida*都挺慢。尤其是ida* 搜索31步的竟然要十几秒。是我写的代码有问题吗?忘路过的大牛指导啊!!!!另外声明一下,有些东西也是看网上各路牛人的blog学来的,因为比較杂,...
分类:
其他好文 时间:
2015-01-19 20:52:31
阅读次数:
1181
/*
问题描述:
目标状态为:
1 2 3
4 5 6
7 8 0
输入初始状态,求初始状态到最终状态的路径分别
用u(向上),d(向下),l(向左),r(向右)来表示四个方向的移动;
如果有解,则输出路径,否则输出"unsolvable"
有多个输入
*/
#include
#include
#include
#include
using namespace std;
long long f...
分类:
其他好文 时间:
2015-01-09 17:22:51
阅读次数:
311
/*
问题描述:
初始状态为:
1 2 3
4 5 6
7 8 0
输入最终状态,求初始状态到最终状态的步数;
如果步数小于等于5,则输出步数;否则输出-1
*/
#include "iostream"
#include "string"
#include "queue"
#include "vector"
#include "algorithm"
using namespace std;
...
分类:
其他好文 时间:
2015-01-08 13:29:14
阅读次数:
176
今天来讲遗传算法,遗传算法有很多应用,比如寻路问题,八数码问题,囚犯困境问题,动作控制,TSP问题,生产
调度问题,在一个多边形中寻找一个包含在该多边形内的一个圆,函数求最值问题等等。之前讲的模拟退火算法是用
来求解最优化问题的,链接为:http://blog.csdn.net/acdreamers/article/details/10019849 模拟退
火算法用一句话概括就是:贪心过程中...
分类:
编程语言 时间:
2015-01-05 20:31:06
阅读次数:
396
先简单的了解一下,双向广搜很好理解,就是从两端一起搜,如果遇到之前已经搜到过的状态,就相当于已经有解了,这样就会节省一半的内存和时间,并且代码复杂度并不高。只需要在正常的基础上多开一个域,保存这个点是从起始状态还是终止状态拓展的。当然双向广搜中状态的判断需要一些技巧,现在还没有总结出什么。八数码问题...
分类:
其他好文 时间:
2015-01-02 18:45:13
阅读次数:
206
题意 八数码问题
还是八数码问题 只是要输出路径了
#include
#include
using namespace std;
const int M = 1000003;
int e[9] = {1, 2, 3, 4, 5, 6, 7, 8, 0};
int x[4] = { -1, 1, 0, 0}, y[4] = {0, 0, -1, 1};
int dir[M], pre[M], ...
分类:
其他好文 时间:
2014-12-18 13:37:50
阅读次数:
254
题目大意:
给你一个八数码的序列,要求你在50步之内还原成,初始的形状,如果可以就输出其路径,否则就输出 This puzzle is not solvable.
解析:
这题是用A*算法实现的,上网查了很多资料,了解了什么是A*算法。
A*算法,实质上是根据估价函数进行bfs,每次都选取估价最小的状态,进行移动。
其中 f(n) 是从初始点经由节点n到目标点的估价函数,
g(...
分类:
其他好文 时间:
2014-12-13 18:06:56
阅读次数:
187
AI的实验报告,改了改发上来。希望路过的大牛不吝赐教。非常是纳闷我的ida*怎么还没有双搜快。还有发现基于不在位启示的A*和Ida*都挺慢。尤其是ida* 搜索31步的竟然要十几秒。是我写的代码有问题吗?忘路过的大牛指导啊!!!!另外声明一下,有些东西也是看网上各路牛人的blog学来的,因为比較杂,...
分类:
其他好文 时间:
2014-10-29 21:24:14
阅读次数:
333
八数码转换问题……
经典bfs……
关键问题:
1.状态的保存(见longwuxu该题解题报告中的全排列Hash表示)
2.bfs中标记数组的处理:
bfs中有两个标记数组,一个是标记队列中节点的标记数组isadd[],另一个是标记已访问节
点标记数组isvis[]。前者在入队列的时候进行标记,而后者则要在出队列的时候才进行标记
用isadd标记的时候队列中不...
分类:
其他好文 时间:
2014-10-23 14:30:24
阅读次数:
178