我只是想确保这会奏效。你能找到使用 Dijkstra 算法的最佳路径吗?您是否必须先将距离初始化为-1,然后更改relax 子例程以检查它是否更大?
这是一个不会有任何负权重的问题。
这实际上是问题所在:
假设给定一个电话网络图,它是一个图 G,其顶点代表交换机中心,其边代表两个中心之间的通信线路。边缘由其最低带宽边缘的带宽标记。给出一个算法,给定一个图表和两个开关中心 a 和 b,将输出 a 和 b 之间路径的最大带宽。
这行得通吗?
编辑:
我确实找到了这个:
提示:基本子程序与 Dijkstra 中的 Relax 子程序非常相似。假设我们有一条边 (u, v)。如果 min{d[u],w(u, v)} > d[v] 那么我们应该将 d[v] 更新为 min{d[u],w(u, v)} (因为从 a 到u 然后到 v 的带宽为 min{d[u],w(u, v)},比我们目前的带宽还要多)。
不完全确定这意味着什么,因为所有距离在初始化时都是无穷大的。所以,我不知道这将如何工作。任何线索?