最小化和,同时最小化差异

时间:2018-04-10 10:37:07

标签: algorithm mathematical-optimization min

我想找到节点(比如索引i)以同时满足以下两个标准:

  1. 最小化从节点A到节点i的距离总和,比如d(A,i),以及从节点i到节点Bd(i,B),即min d(A,i)+d(i,B)

  2. 最小化这些距离之间的差异,即min |d(A,i)-d(i,B)|

  3. 这可能是一个众所周知的问题,但我找不到任何能够开发出合适算法的参考资料。

1 个答案:

答案 0 :(得分:2)

计算A到所有其他节点的距离,然后计算从B到逆图中所有其他节点的距离(如果你的图不是定向的,那么它就在原始图中)。

您可以运行Bellman ford O(VE)或Dijkstra(ElogV)。

然后迭代每个节点,你有d(A,i)和d(B,i)计算,所以选择一个满足你的标准,听起来你应该更喜欢min d(A,i)+d(i,B)而不是min|d(A,i) - d(i,B)| 。在任何情况下,您都将获得所有值,因此您只需选择所需的值即可。这将是O(V)。

总的来说,假设你使用Dijkstra,你的解决方案将是O(ElogV)。