Algorithm 遍历图并满足特定条件?

Algorithm 遍历图并满足特定条件?,algorithm,data-structures,graph,graph-theory,Algorithm,Data Structures,Graph,Graph Theory,我想找到图形网格的两个顶点之间的路径(a x B大小,带有1x1个单元格)(a1,b1)和(a2,b2),但是有一个额外的标准,即尽量远离任何一个节点以到达目的地。这意味着对于所有潜在路径,与任何禁止节点的最近距离应最大。节点位置是整数,但距离节点的距离可以是浮点数 我认为像Dijkstra这样的最短路径算法可能不会有多大影响,因为最短路径可能最终会穿越n个禁止节点中的一个。但是,我怎样才能将距离节点的“最远距离”因子考虑进去呢?我的想法: 我可以尝试平均禁止节点的位置,但我已经设法想出了一个反

我想找到图形网格的两个顶点之间的路径(a x B大小,带有1x1个单元格)(a1,b1)和(a2,b2),但是有一个额外的标准,即尽量远离任何一个节点以到达目的地。这意味着对于所有潜在路径,与任何禁止节点的最近距离应最大。节点位置是整数,但距离节点的距离可以是浮点数

我认为像Dijkstra这样的最短路径算法可能不会有多大影响,因为最短路径可能最终会穿越n个禁止节点中的一个。但是,我怎样才能将距离节点的“最远距离”因子考虑进去呢?我的想法:

  • 我可以尝试平均禁止节点的位置,但我已经设法想出了一个反例,这可能最终会遍历其中一个节点

  • 另一种方法是简单地计算所有可能的路径,并找到距离任何一个禁止节点最远的路径。这可能意味着使用一些动态规划方法

  • 我们还可以将图中每个节点与任何一个禁止节点的最小距离制成表格,并选择在每一步给出最大距离的路径

  • 其他想法:可能必须使用不相交集和MST


  • 我的潜在解决方案似乎具有很高的时间复杂性,我认为这种问题应该很常见(人们可能以前就想到过)。是否有一种标准的实践或方法来优化处理此类问题?

    选择一个距离D,并从图中删除距离D内的所有禁止节点。找出源和目标是否仍然连接。使用二进制chop查找仍保持源和目标连接的最大可能D。此图上从源到目标的路径就是您想要的路径。

    如果有多条路径与禁止节点的最小距离相同,如何对它们进行排序?最短距离?或者没有排名?有什么原因不能只使用Dijkstra算法,而是在评估下一个要访问的节点时使用
    -min(到每个禁止节点的距离)
    作为成本函数?或者,如果你想在相等者之间找到最小的距离,也可以追踪它(一个元组)并将其用作平局破坏者?我同意@IanMercer。“最短”不需要是欧几里得距离。考虑如何指定获得所需结果的边权重。但是请注意,Ian的确切建议不起作用。您需要使用Bellman Ford或其他处理负权重的算法。Dijkstra没有。交叉张贴:。请每个社区都应该有一个诚实的回答机会,而不会浪费任何人的时间。@D.W.我认为在CS论坛上这个问题更合适,因为没有涉及代码,但由于投票的原因,无法删除这里的帖子。