推箱子自动求解算法思想

luckyboy101 2009-03-23 08:44:16
求推箱子自动求解算法思想,请高手指导如何把多个箱子推至目的地,请不要纯粹的贴代码。
搜了一些资料,有人说是用A*算法,如果是推动一个箱子我能理解如何用A*算法,那么多个箱子算法思路是怎么样的?
请高手谈谈算法思想或者给点参考资料
...全文
852 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
bbsdkjdx 2012-02-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 currenttt 的回复:]

帮顶……最近玩手机上的推箱子,有一关一直过不去……有哪位写了程序就共享一下吧,帮我把那关过了……囧~
[/Quote]
把关卡发过来,看一下。
nj_dobetter 2011-07-04
  • 打赏
  • 举报
回复
mark!
hityct1 2009-03-28
  • 打赏
  • 举报
回复
http://school.cfan.com.cn/pro/pother/2006-08-28/1156728741d14415.shtml
dzc8866 2009-03-27
  • 打赏
  • 举报
回复
学习!UP
mabailin 2009-03-26
  • 打赏
  • 举报
回复
顶一个
na2650945 2009-03-25
  • 打赏
  • 举报
回复
学习啦。
还是有点看吧懂啊。
blacksapper 2009-03-25
  • 打赏
  • 举报
回复
其实人工智能的大部分都可以用A*算法。关键在于如何定义算符。推荐你去看看人工智能应用的帖子。或者借鉴华科出版社的尹朝庆的《人工智能与应用》
上面有个9个格子数字排序的算符。用的倒是宽度优先。不过这个具体的是算符定义。这个要你自己考虑了。
我想的是开始估算步。用启发函数。有一个到了目标点就-1 推近了一个就-0.1
还有神级的遗传算法。主要是算符定义
luckyboy101 2009-03-25
  • 打赏
  • 举报
回复
顶起来
baihacker 2009-03-24
  • 打赏
  • 举报
回复
如果是推动一个箱子我能理解如何用A*算法,那么多个箱子算法思路是怎么样的?

对于每个状态,生成很多子状态,如果状态已经出现过,那么就放弃(当然,如果是求最优的话,还要注意重新搜索)
这些子状态,加入要扩展的状态集合中,然后按已耗费值进行排序.然后找最小的耗费值,重新进行子状态的生成.

1.注意状态的等价,比如你在空地上移动一步,这是无用功的.没啥意思.也就是说不同的状态,要求至少改变一个箱子的位置.
2.可以考虑一下双向搜索
3.a*的状态空间是指数级的,你可以考虑一下IDA*(迭代加深的A*算法)

luckyboy101 2009-03-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 dlyme 的回复:]
采用A*算法和箱子多少没有关系,箱子再多也要一步一步地推。
将所有箱子当前位置当成一个状态节点来记录,其中任何一个箱子往任何方向挪动一步就会变成另外一个状态节点,所以本质上还是在图中找寻两个节点间的最短路径,可以A*
[/Quote]
有相关的参考资料?如果每移动一个点都是一个状态节点,需要保存的数据量挺大的
  • 打赏
  • 举报
回复
采用A*算法和箱子多少没有关系,箱子再多也要一步一步地推。
将所有箱子当前位置当成一个状态节点来记录,其中任何一个箱子往任何方向挪动一步就会变成另外一个状态节点,所以本质上还是在图中找寻两个节点间的最短路径,可以A*
ckc 2009-03-24
  • 打赏
  • 举报
回复
遍历法
只是不知道速度会不会太慢
无天 2009-03-23
  • 打赏
  • 举报
回复
一个箱子和多个箱子有多大区别啊?
LZ先把一个箱子的A*算法说出来吧。
感觉上多个箱子就是对A*算法进行一些条件限制,只不过算法复杂度就比较高了。
currenttt 2009-03-23
  • 打赏
  • 举报
回复
帮顶……最近玩手机上的推箱子,有一关一直过不去……有哪位写了程序就共享一下吧,帮我把那关过了……囧~

33,006

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧