【发布时间】:2014-10-28 07:01:34
【问题描述】:
寻找一种模式来搜索网格上的特定路径。有简单节点的二维网格,例如:
public class TileNode {
private final int ID;
public TileNode leftNeightbour;
public TileNode topNeightbour;
public TileNode rightNeightbour;
public TileNode bottomNeightbour;
private TileState currentTileGameState;
}
如果其中一个邻居无法通过当前节点,则其状态设置为outOfGame。我尝试使用递归 DFS alg 来查找所有路径,但复杂性很糟糕。我将尝试使用这些搜索路径来削减搜索集合:
红色节点是我们开始和结束的节点,黑色线是应该通过其他节点(邻居)的路径,这些节点可以通过。
我们不考虑除指定路径之外的任何其他路径。当然,这些路径的长度没有限制。
编辑: 我想检查两个节点之间是否存在任何遵循图像路径的路径。这可能很简单。可能存在不止一个。它看起来类似于那些路径example
【问题讨论】:
-
换句话说。您必须在网格上找到具有给定起点终点的 n 路径。路径可能不会相交,并且可能没有解决方案,因为路径可能会相互锁定。对吗?
-
感谢您的澄清。但是你一次只看一条路吗?或者你需要找到几条不能跨越的路径?
-
我寻找一个存在。如果存在与其中一种模式匹配的模式,我想将其存储以备将来使用。
标签: java android algorithm oop path-finding