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

时间:2018-03-18 22:03:16

标签: algorithm data-structures graph graph-theory

我想找到图形网格的两个顶点之间的路径(A x B大小,1x1个单元格)(a1,b1)和(a2,b2),但是避免一些n个禁止节点的附加标准(x1,y1),(x2,y2)尽可能远离任何一个节点到达目的地。这意味着对于所有潜在路径,与任何禁用节点的最近距离应该是最大的。节点位置是整数,但距离节点的距离可以是浮点数。

我认为像Dijkstra这样的最短路径算法可能并不重要,因为最短路径可能最终遍历n个禁止节点之一。但那么我怎样才能将“最远距离”与节点因子分开?我的想法:

  1. 我可以尝试平均禁用节点的位置,但我设法提出了一个计数器示例,这可能最终会遍历其中一个节点

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

  3. 我们还可以将图表中每个节点上任意一个禁止节点的最小距离制成表格,并选择每一步给出最大距离的路径。

  4. 其他想法:可能不得不使用不相交的集合和MST?

  5. 我的潜在解决方案似乎会产生非常高的时间复杂度,我认为这种问题应该是非常普遍的(人们之前可能已经想过这个问题)。是否有一种标准的做法或方法可以最佳地解决这类问题?

1 个答案:

答案 0 :(得分:2)

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

相关问题