You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OR-Tools最大流示例代码未修改却运行失败,求解原因

OR-Tools MaxFlow求解失败(状态码0)的排查方案
  • 状态判断逻辑错误:OR-Tools中SimpleMaxFlow.OPTIMAL的枚举值就是0,如果你代码里错误地将「状态码不等于0」判定为失败,就会出现明明求解成功却输出失败的情况。正确的判断逻辑应该是:

    from ortools.graph import pywrapgraph
    
    max_flow = pywrapgraph.SimpleMaxFlow()
    # 此处添加图的边与容量配置
    status = max_flow.Solve(source_node, sink_node)
    if status == max_flow.OPTIMAL:
        print(f"最大流值: {max_flow.OptimalFlow()}")
        # 还可输出各边的流量
        for i in range(max_flow.NumArcs()):
            print(f"边 {max_flow.Tail(i)} -> {max_flow.Head(i)}: 流量 {max_flow.Flow(i)} / 容量 {max_flow.Capacity(i)}")
    else:
        print(f"求解失败,状态码: {status}")
    
  • 版本兼容性或安装问题:

    1. 执行pip show ortools查看当前版本,建议使用稳定版(如9.x、10.x系列),避免开发版的兼容性问题。
    2. 若安装不完整,完全卸载后重新安装:
      pip uninstall -y ortools
      pip cache purge
      pip install ortools
      
  • 图结构配置错误:检查源点、汇点的编号是否正确,以及所有边的起点、终点、容量是否与Taha示例6.4-2完全匹配。如果源汇节点在图中不连通,求解状态码会是INFEASIBLE(值为1),而非0,但仍需确认图的构建逻辑。

内容的提问来源于stack exchange,提问作者zyg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 22:15:41