使用热方程进行负载平衡



我不认为这是数学数学的mathoverflow,所以我想我将在这里尝试。这是一个编程问题,所以它是一个主题。

我有一个图(在数学中),我有一些顶点,a,B,C..每个都有一个负载"值",它们通过一些任意拓扑(至少有一个生成树)连接起来。问题的目标是在每个顶点之间传递负载,最好使用尽可能小的流量。

我想知道沿每条边的传输值。

我正在考虑的问题的解决方案是将其视为传热问题,并迭代传递负载,或以某种方式解决热量方程,计算沿每条边消散的负载量。因此,在网络达到稳定状态之前的热量传递量应该产生结果。

虽然我认为这将工作,它似乎是愚蠢的解决方案。我想知道是否有一个参考或示例问题,有人可以指出我-我不确定什么关键词搜索。

我看不出如何将这个问题耦合为一个单纯形问题或一个网络流问题——每个边都有无限的容量,每个节点也是如此。同时有两个最小化问题需要解决,所以单纯形法似乎不适用?

如果你有一个生成树,那么就有一个O(n)解。

计算平均值。(最后,每个节点都有这个值。)然后遍历叶子:计算该叶子所需的值变化(平均值),将该变化添加到叶子中,将其(作为流)分配到连接该叶子和树的边缘,并从另一个节点中减去它。从树中移除叶子和边缘(当然不是从图中);如果另一个节点在树中只剩下一条边,它可能成为一个新的叶子。

当你到达最后一个节点时,如果你正确地做了算术,它最终会得到平均值,就像所有其他节点一样。

最新更新