cost_of_flow#
- cost_of_flow(G, flowDict, weight='weight')[source]#
计算图G上由flowDict给定的流的费用。
请注意,此函数不检查flowDict流的有效性。如果图G和流不具有相同的边集,此函数将失败。
- Parameters:
- GNetworkX图
要在其上找到满足所有需求的最低成本流的DiGraph。
- weight字符串
图G的边应具有一个属性weight,该属性指示在该边上发送一个单位的流所产生的成本。如果不存在,则权重被视为0。默认值:’weight’。
- flowDict字典
由节点键控的字典的字典,使得flowDict[u][v]是边(u, v)的流。
- Returns:
- cost整数, 浮点数
流的总成本。这是通过对所有边的流的乘积和边的权重求和得到的。
Notes
如果边权重或需求是浮点数,此算法不保证能工作(溢出和舍入误差可能导致问题)。作为一种解决方法,您可以通过将相关的边属性乘以一个方便的常数因子(例如100)来使用整数。
Examples
>>> G = nx.DiGraph() >>> G.add_node("a", demand=-5) >>> G.add_node("d", demand=5) >>> G.add_edge("a", "b", weight=3, capacity=4) >>> G.add_edge("a", "c", weight=6, capacity=10) >>> G.add_edge("b", "d", weight=1, capacity=9) >>> G.add_edge("c", "d", weight=2, capacity=5) >>> flowDict = nx.min_cost_flow(G) >>> flowDict {'a': {'b': 4, 'c': 1}, 'd': {}, 'b': {'d': 4}, 'c': {'d': 1}} >>> nx.cost_of_flow(G, flowDict) 24