繁体   English   中英

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

[英]minimize sum while minimizing difference

我想找到同时满足以下两个条件的节点(例如索引i ):

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

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

可能这是一个众所周知的问题,但是我找不到开发合适算法的参考。

计算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)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM