【问题标题】:Maximum Capacity with minimum length routing最小长度路由的最大容量
【发布时间】:2013-09-15 15:37:30
【问题描述】:

在虚拟电路分组交换中,我们首先在网络中的源和目标之间建立一条专用路径。优选地,路径长度应该很小。同样,沿最短路径的最小链路的容量会对信息流施加限制。

因此,最好设计一个成本函数,即路径长度和最小链路容量的加权组合。由于我们想要减少路径长度 l 并想要增加最小链路容量 cmin 我们的成本函数可以是最大化 ( w1* f( cmin) - w2*g(l )) 其中 w1 和 w2是权重,f 和 g 是线性或非线性函数。

在任意网络中解决这个问题的有效算法是什么?

我已经被这个问题困扰了一个多星期,到目前为止还没有取得任何进展,我搜索了不同的方法来解决这个问题,并思考了很多,就像将它制定为最宽路径问题一样。但是最广泛的问题只考虑链路的容量,但是问题中如何包括长度因素。或者还有其他方法可以解决问题。

【问题讨论】:

  • 不应该 Dijkstra 的算法工作吗?在检查暂定距离的同时,将上述函数计算到候选节点并更新。
  • @AbhishekBansal 想试试这个,但这里如何为特定路线维护 cmin。
  • 是的,正如@mcdowella 指出的那样,它需要修改。

标签: algorithm networking graph routing


【解决方案1】:

我不认为 Dijkstra 完全不加修改地工作,因为中间节点看到的最佳答案不一定构成最佳整体答案的一部分:如果所有直接连接到目标节点的链接的容量都非常小,那么路由通过提供大容量而在早期做得很好可能毫无意义。

可以使用 Dijkstra 找到容量至少为 X 的最短路径,首先删除所有容量小于 X 的链接。如果不同的链接容量很少,您可以计算所有可能的 X 的最短路径的长度。即使有许多不同的容量,您也可以使用二分法找到容量最大的路径。

要彻底修改 Dijkstra,我认为您最终会在每个节点上为所有可能的容量 Xi 保存到该节点的最短路径的长度,每个链路使用至少 Xi 的容量。

【讨论】:

    猜你喜欢
    • 2019-01-02
    • 1970-01-01
    • 1970-01-01
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多