1

以平面的正方形拼贴为例,想象一个有限的、连接的和简单连接的拼贴子集 D。D 当然也可以通过为每个图块取一个节点并连接相邻节点来解释为方形网格的特定子图。

假设我在 DD 的边界中有一个起始节点/图块 A 和一个结束图块 B。

是否有一种简单、直接的算法可以在 A 和 B 之间的 D 中找到相当长的自回避路径?

我发现了有关寻找绝对最长路径的文献,以及次优算法,虽然性能非常好,但看起来非常复杂。我想知道是否存在足够好的驯服算法。

我在这里唯一的想法是计算通过 A* 的最短路径,然后通过横向“折叠”来扭曲它以填充尽可能多的空间,但我不确定这是否是个好主意。

另一个想法是是否有一个几乎愚蠢简单的“扫描线”模式填充 A 和 B 之间的空间,因此对于“矩形”D 表现良好。我怀疑这存在,但我找不到它。

4

1 回答 1

0

对于大于 2 维的方格:
最长路径问题被认为是 NP-Hard;它不能在多项式时间内求解,除非对于某个任意图 P=NP。

话虽如此,您可以在每个节点上进行DFS以确定最长路径。这一切都假设图表是加权的(你没有在你的帖子中指出)。请务必注意,您不应允许重复顶点。

在 DFS 结束时,将当前最长的路径与之前认为最长的路径进行比较。根据需要用最长的时间替换这个结果。

运行时间不是很大;指数

对于二维的方形网格

于 2016-04-14T20:30:32.963 回答