会挽雕弓如满月,西北望,射天狼。 注册 | 登陆

走地图:广度优先搜索的优化算法

目标:
最小的时间占用
最小的空间占用
最优的解法
灵活的扩展性

思路:
基本数据结构,
地图
地图标记>标记某位置是否走过
搜索表>顺序存储搜索位置
路径树>以长叶子的方式存放行进路线,最后从叶回根,生成最优解

基本算法,
1把给定的出发点加入搜索表
2开始搜索搜索表,往上下右左搜索
3判断是否可前进(这里可以扩展),若可前进(且末走过,因为若走过,而搜索表是顺序表,再走肯定不是最优角),标记走过,把新位置加入搜索表,把路径加入路径树
4搜索搜索表的下一个位置,直到表空或者结束条件满足
5生成路径,清除算法临时生成的数据

小结:
如此算法,搜索复杂度为地图边长的平方,而无更多余的计算即可保证最优解(因为已经把地图全部算完)

本算法成功用于电子系2007队式设计大赛《电子系的复兴》前两关走地图的本地测试。可灵活修改结束条件和添加设置炸弹等功能。

示例程序不方便公开,感兴趣者可联系我索取。

Tags: 编程

« 上一篇 | 下一篇 »

只显示5条记录相关文章

Usereg Tunet for Android (浏览: 840, 评论: 0)
可能是jQuery1.3.2的一个小bug (浏览: 3096, 评论: 0)
扫雷对战版 (浏览: 14323, 评论: 1)
一个用Qt写的多线程聊天室软件 (浏览: 6931, 评论: 3)
C/C++利用CPU时钟计数器精确计时 (浏览: 4490, 评论: 0)

发表评论

评论内容 (必填):