Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何计算无限容量图中的最大流量_Python_Networkx_Graph Theory - Fatal编程技术网

Python 如何计算无限容量图中的最大流量

Python 如何计算无限容量图中的最大流量,python,networkx,graph-theory,Python,Networkx,Graph Theory,我想实现一种方法,在任何至少包含一个无限容量的图中计算“最大流量”。我曾经在有图形处理时导入NetworkX库,但不幸的是,根据以下描述,它尚未考虑无限容量: 。。。如果图具有无限容量的路径,则图上可行流的值在上面是无界的,并且函数将引发NetworkXUnbounded 所以,我的问题是: 如何简单地实现无限容量的最大流量 是否有可能为此调整NetworkX的方法 欢迎提出任何其他建议 谢谢假设您有一个流动网络,其中一些边具有无限容量。有两种可能的选择: 有一条从无限容量边的源到汇的路径。

我想实现一种方法,在任何至少包含一个无限容量的图中计算“最大流量”。我曾经在有图形处理时导入NetworkX库,但不幸的是,根据以下描述,它尚未考虑无限容量:

。。。如果图具有无限容量的路径,则图上可行流的值在上面是无界的,并且函数将引发NetworkXUnbounded

所以,我的问题是:

  • 如何简单地实现无限容量的最大流量
  • 是否有可能为此调整NetworkX的方法
欢迎提出任何其他建议


谢谢

假设您有一个流动网络,其中一些边具有无限容量。有两种可能的选择:

  • 有一条从无限容量边的源到汇的路径。在这种情况下,可以通过将无限流量推过该路径来找到最大流量。你不能通过在其他边缘推动更多的流来改善这种流,因为你已经有了无限的流

  • 网络中不存在无限容量路径。然后有一个上限,可以在网络中推送多少流量(一个快速证明:考虑由开始节点所形成的切口和以无限容量边缘可到达的一切作为切口的一部分,以及其他作为另一部分;然后最大流量由该切割的容量限制)。在这种情况下,无限容量边的功能本质上是“你可以按自己的意愿推动尽可能多的流量通过这条边”,但实际上没有一条流路可以有无限的流量通过它。因此,取每个无限容量边,用一个容量巨大但有限的边替换它(比如,有限容量边的所有容量之和)。现在,这个修改后的图中的最大流给出了原始网络中的最大流


  • 希望这有帮助

    假设有一个流动网络,其中一些边具有无限容量。有两种可能的选择:

  • 有一条从无限容量边的源到汇的路径。在这种情况下,可以通过将无限流量推过该路径来找到最大流量。你不能通过在其他边缘推动更多的流来改善这种流,因为你已经有了无限的流

  • 网络中不存在无限容量路径。然后有一个上限,可以在网络中推送多少流量(一个快速证明:考虑由开始节点所形成的切口和以无限容量边缘可到达的一切作为切口的一部分,以及其他作为另一部分;然后最大流量由该切割的容量限制)。在这种情况下,无限容量边的功能本质上是“你可以按自己的意愿推动尽可能多的流量通过这条边”,但实际上没有一条流路可以有无限的流量通过它。因此,取每个无限容量边,用一个容量巨大但有限的边替换它(比如,有限容量边的所有容量之和)。现在,这个修改后的图中的最大流给出了原始网络中的最大流

  • 希望这有帮助