【发布时间】:2015-10-22 16:43:51
【问题描述】:
当给定一个迷宫作为矩阵时,我想编写一个给出最短路线的代码。
在这种情况下,这个迷宫的矩阵表示如下。
## [,1] [,2] [,3] [,4]
## [1,] 2 0 0 0
## [2,] 1 1 0 1
## [3,] 0 1 0 0
## [4,] 1 1 1 3
, where 0 denotes inaccessible points, 1 denotes accessible points.
2 denotes the starting point, and 3 denotes the destination.
并且,期望的结果是这样的:c(4,1,4,4,1,1),其中 1 表示东,2 表示北,3 表示西,4 表示南。
我猜一个可能的代码可能是一个函数,当它被给出迷宫的矩阵表示时,它给出了最短路径作为向量。
除了这种情况,我想知道是否可以将覆盖范围扩展到一般情况,尽管这似乎是多余的。 我想知道是否可以制作一个理想的代码,以便它覆盖任意 n x m 大小的矩阵,尽管只有 4 x 4 的情况就足够了。 而且我想知道起点和目的地是否可以位于顶点以外的任意点,尽管顶点情况就足够了。
【问题讨论】:
-
我不确定这是一个编程问题——您需要先准备好搜索算法,然后再开始考虑如何编写代码。
-
我不确定矩阵是否是代表这个问题的合适数据结构。有图表会更好。然后你有一个 ILP / QP 问题,你的目标是找到两个点之间的最短距离,每个顶点之间的距离相等。
-
这不是一个正确答案的问题。有很多方法可以找到查找路径。查看:qiao.github.io/PathFinding.js/visual您需要决定哪种方法最适合您的数据。
-
我认为您可能正在寻找 Dijkstra 算法的实现。虽然我从来没有见过这样的图表输出
-
@stasg 有大量算法标签,专门用于解决有关编程问题使用什么算法的问题。算法问题不一定是题外话。我也不明白这里对“太宽泛”的赞成票——这很可能用 igraph 用 5 行或更少的行来实现......
标签: r algorithm path-finding