networkx.algorithms.flow.min_cost_flow
的用法。用法:
min_cost_flow(G, demand='demand', capacity='capacity', weight='weight')
返回满足有向图 G 中所有需求的最小成本流。
G 是一个有边成本和容量的有向图,其中节点有需求,即它们想要发送或接收一定量的流量。负需求意味着节点想要发送流量,正需求意味着节点想要接收流量。如果流入每个节点的净流量等于该节点的需求,则有向图 G 上的流量满足所有需求。
- G:NetworkX 图
DiGraph 找到满足所有需求的最小成本流。
- demand:string
图 G 的节点预计具有一个属性需求,该属性指示节点想要发送(负需求)或接收(正需求)多少流量。请注意,需求之和应为 0,否则问题不可行。如果此属性不存在,则认为节点的需求为 0。默认值:‘demand’。
- capacity:string
图 G 的边应该有一个属性容量,表示边可以支持多少流量。如果此属性不存在,则认为边具有无限容量。默认值:‘capacity’。
- weight:string
图 G 的边应该有一个属性权重,该属性权重指示在该边上发送一个单位的流量所产生的成本。如果不存在,则认为权重为 0。默认值:‘weight’。
- flowDict:字典
由节点键入的字典字典,使得 flowDict[u][v] 是流边 (u, v)。
- NetworkXError
如果输入图未定向或未连接,则会引发此异常。
- NetworkXUnfeasible
在以下情况下会引发此异常:
需求之和不为零。那么,就没有满足所有需求的流程。
没有满足所有需求的流量。
- NetworkXUnbounded
如果有向图 G 具有负成本和无限容量的循环,则会引发此异常。那么,满足所有需求的流程的成本在下面是无界的。
参数:
返回:
抛出:
注意:
如果边权重或需求是浮点数(溢出和舍入错误可能导致问题),则不保证此算法有效。作为一种解决方法,您可以通过将相关边属性乘以一个方便的常数因子(例如 100)来使用整数。
例子:
最小成本流问题的一个简单示例。
>>> 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)
相关用法
- Python NetworkX min_cost_flow_cost用法及代码示例
- Python NetworkX minimum_spanning_edges用法及代码示例
- Python NetworkX minimum_edge_cut用法及代码示例
- Python NetworkX minimum_st_node_cut用法及代码示例
- Python NetworkX minimum_spanning_tree用法及代码示例
- Python NetworkX minimum_node_cut用法及代码示例
- Python NetworkX minimum_cut_value用法及代码示例
- Python NetworkX minimum_cut用法及代码示例
- Python NetworkX minimum_st_edge_cut用法及代码示例
- Python NetworkX minimum_cycle_basis用法及代码示例
- Python NetworkX multi_source_dijkstra_path用法及代码示例
- Python NetworkX maximal_independent_set用法及代码示例
- Python NetworkX make_small_graph用法及代码示例
- Python NetworkX modularity_matrix用法及代码示例
- Python NetworkX maximum_spanning_tree用法及代码示例
- Python NetworkX multi_source_dijkstra_path_length用法及代码示例
- Python NetworkX maximum_flow用法及代码示例
- Python NetworkX modularity用法及代码示例
- Python NetworkX maximum_flow_value用法及代码示例
- Python NetworkX make_max_clique_graph用法及代码示例
- Python NetworkX maximum_spanning_edges用法及代码示例
- Python NetworkX max_flow_min_cost用法及代码示例
- Python NetworkX multi_source_dijkstra用法及代码示例
- Python NetworkX multipartite_layout用法及代码示例
- Python NetworkX negative_edge_cycle用法及代码示例
注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.algorithms.flow.min_cost_flow。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。