首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

,关于深度优先探索和广度优先探索的一个有关问题

2012-12-23 
求助,关于深度优先探索和广度优先探索的一个问题大家好,最近遇见一个问题,问题类似是这样的,比如一张T(NxN

求助,关于深度优先探索和广度优先探索的一个问题
大家好,最近遇见一个问题,

问题类似是这样的,比如一张T(NxN)地图,可走点用(x,y)=0表示,不可走的点用(x,y)=1表示,
每一步都可以往上下左右四个方向行走,请问从初始点(0,0)到目标点(x,x),
求有多少种走法(不考虑走回头路),并罗列出来

我感觉和深度优先探索算法的寻找路径有些相似,
但是深度优先探索只提供一个结果(一条路径)的吧,
但是我想知道所有可能的结果(所有可能路径),
请问各位有什么思路,或者有处理过类似问题的提供下算法思想,感谢!
[解决办法]
就用BFS啊 DFS也行啊 
[解决办法]
这个问题。。。BFS(广搜) DFS(深搜)都是可以做的
首先有一个问题。。。你说的不考虑走回头路是指已经走过的点不能再走吧。。
以下讲述就在此基础上
1.深搜的时候,如果搜到目标点,则输出当前路径,返回(即返回到上一个点,继续搜索,即可搜到所有路径)
2.广搜的时候,每个点都要记录路径,需要注意判断下一步的点是否走过。。我没想到太好的判断方法


[解决办法]
走法的话数量可能很多,广搜 + DP可以,记忆化搜索也可以。举个简单的例子,比如40*40的矩阵,左上到右下的走法数量为137846528820,如果用单纯的搜索的话就太慢,用杨辉三角来算就快很多。这个问题也是一样的,需要记录搜索过的点的数量,减少重复的计算。
[解决办法]
这个应该不用上升到图的概念来理解就可以了,直接利用递归思想就可以了吧,递归入口就是第一个点开始,出口就是判断是否到头,然后中间向左或者向下走就是了吧
[解决办法]

引用:
引用:看错问题了,所说的不能走回头路,我以为是只能朝着2个方向走。

引用:小纠正。那篇东西只是tech report不是paper

可以往四个方向走,实际问题是可以朝多个(>4)方向走,这里做了简化,在每一步都可以往四个方向走,但不能是当前这条路径来的方向(不能往回走)

只是不能往来的方向走?那只要能走一个环那就有无数种走法了。

热点排行