繁体   English   中英

在图中找到一个最小化其他两个节点之间距离的节点

[英]Find a node in a Graph that minimizes the distance between two other nodes

我有一个有向加权图 G,有 V 个顶点和 E 个边。 给定图中的两个节点,假设 A 和 B,并给定边 AB 的权重表示为 w(A, B),我需要找到一个节点 C,以便 max(w(A, C), w (B, C)) 在所有可能性中是最小的。 我所说的可能性是指 C 可以采用的所有值。 我不知道它是否完全清楚,如果不是,我会尝试更精确。

如果 w(A, C) 你真的只是指一条边的权重,那么依次检查所有直接连接到 A 的节点,最坏的总成本是图的大小,这与你预期的一样好,假设您总是需要阅读图表。

如果 w(A, C) 是指从 A 到 C 的最低成本路径的成本,请注意大多数寻路算法,如http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm ,实际上计算从 A 到每个其他节点的最低成本路径的成本。 如果您同时拥有从 A 到每个节点的成本和从每个节点到 B 的成本,则可以通过依次查看每个节点来解决您的问题。

因此,进行一次运行以计算从 A 到每个其他节点的成本,然后反转节点中的边并进行另一次运行以计算从 B 到反转图中每个其他节点的最低成本路径。 然后对于每个节点,您都有成本最低的 w(A, C) 和成本最低的 w(C, B),因此您可以依次检查每个节点,看看哪个是最好的。

如果您的图表包含循环,那么您需要类似http://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm 的内容 如果它有负循环,你就会遇到问题。

不是很清楚你问的是什么,但这里是加权距离的一种方法:将其视为 R^n 中的距离问题,其中在任何维度上到 C 的实际直线距离乘以该路径维度的权重以获得加权距离。 使整个表达式成为加权距离的总和,并使用二阶导数检验来最大化该表达式。

干杯,安德鲁

暂无
暂无

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

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