网格上最长的路径,无需重新访问网格单元格

时间:2013-05-12 09:56:59

标签: algorithm language-agnostic grid path-finding longest-path

我正在寻找一种算法来填充网格上两点之间的最长路径,并增加了限制,即您无法重新访问网格上的单元格。 (另外,你只能向上,向下,向左和向右移动。)

考虑到这些限制,我认为走最长的路径与尽可能多地填充空间是一样的。但是,我有一些困难,想弄清楚如何做到这一点。

2 个答案:

答案 0 :(得分:0)

在一般网格图(你所描述的那种)上,最长路问题仍然是NP难的。

这是因为hamiltonian path is NP-complete on general grid graphs。减少是相同的:一个快速的最长路径求解器会立即给你一个快速的哈密顿路径求解器,只需将每对节点之间的最长路径的长度与n-1进行比较。

答案 1 :(得分:0)

这是2D网格的线性时间算法:http://www.sciencedirect.com/science/article/pii/S0166218X11003088

如果网格不是矩形,那么问题是NP难的,你应该使用一些算法的变化来解决旅行商问题 - 例如一个使用整数 线性规划。