解决简单的电网(流网络)

时间:2014-05-14 13:47:02

标签: algorithm graph-theory

我希望将电网建模为一个简单的图形,并试图了解如何解决每条边缘的电量。

这是我的电网"的一个例子:

Grid example

在左侧我有源(发电机),在右边我有水槽(电力消费者)。

我认为这与常规Flow Network之间存在两个不同之处:

  1. 我的每个人都有固定的要求,他们不能接受或多于
  2. 我可能有一个可选的顶点(在图中标记为s / t),可以代表"外部网格",我可以根据需要发送多余电量或接收补充电源。
  3. 暂时忽略外部网格顶点,我想我可以通过添加所有源背后的通用源,所有接收器后面的通用接收器,以及向每个边缘添加上下容量来建模下沉,其中容量上限==容量较低。

    这是模拟每个接收器具有特定需求的要求的最佳方式吗?

    当然,如果有两条边通向水槽会变得更加棘手,因为那时我不知道两条边的容量应该是多少。我想也许我可以添加一个假顶点,两个边首先附着,然后假顶点和水槽之间有一个具有该容量的边缘?

    然后,当我有s / t顶点时,我不确定如何解决它。如果我在没有额外顶点的情况下计算图形的解决方案,那么这会给我网格中的多余或不足,我可以使用它来使顶点成为源或接收器吗?

    欢迎任何想法,谢谢。

1 个答案:

答案 0 :(得分:1)

  

我想也许我可以添加两个边首先连接的假顶点,然后在假顶点和具有该容量的接收器之间添加一个边缘?

这正是你应该做的。所以基本上你已经完全解决了网络构建部分。

  

然后,当我有s / t顶点时,我不确定如何解决它。

只需将其连接到具有无限容量的超级资源和超级链接。

注意:如果您感兴趣,我描述了从可行流量减少到最大流量in another answer的下限。