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

C#使用Google SimpleMinCostFlow报错:缺少引用与依赖包问题

解决C#中MinCostFlow/SimpleMinCostFlow实例化错误的方案

兄弟,你踩的坑我之前也遇到过——MinCostFlow和你需要的SimpleMinCostFlow都不是.NET框架自带的类,它们属于Google OR-Tools这个专门用于组合优化(包括最小费用最大流这类问题)的第三方库,必须先安装对应的NuGet包才能正常引用。

具体解决步骤:

  1. 安装Google.OrTools NuGet包
    打开Visual Studio,右键你的项目 → 选择「管理NuGet程序包」,在搜索框输入Google.OrTools,找到后安装最新的稳定版本。
    或者直接用Package Manager Console执行命令:

    Install-Package Google.OrTools
    

    如果你用的是.NET CLI,也可以在终端运行:

    dotnet add package Google.OrTools
    
  2. 添加正确的using命名空间
    安装完成后,在你的代码文件顶部添加如下using语句(不是System.Windows.Forms这类,要指向Graph命名空间):

    using Google.OrTools.Graph;
    
  3. 示例代码验证
    现在你就能正常使用SimpleMinCostFlow的AddArcWithCapacityAndUnitCost()、SetNodeSupply()这些方法了,给你一个极简的示例参考:

    using System;
    using Google.OrTools.Graph;
    
    namespace MinCostFlowDemo
    {
        class Program
        {
            static void Main(string[] args)
            {
                // 实例化SimpleMinCostFlow对象
                SimpleMinCostFlow minCostFlow = new SimpleMinCostFlow();
    
                // 添加边:参数依次是起点ID、终点ID、容量、单位费用
                minCostFlow.AddArcWithCapacityAndUnitCost(0, 1, 10, 2);
                minCostFlow.AddArcWithCapacityAndUnitCost(1, 2, 15, 1);
                minCostFlow.AddArcWithCapacityAndUnitCost(0, 2, 5, 5);
    
                // 设置节点供应/需求:正数表示供应,负数表示需求
                minCostFlow.SetNodeSupply(0, 10); // 节点0供应10单位流量
                minCostFlow.SetNodeSupply(2, -10); // 节点2需要10单位流量
    
                // 求解最小费用最大流
                int solveStatus = minCostFlow.Solve();
    
                if (solveStatus == SimpleMinCostFlow.Status.OPTIMAL)
                {
                    Console.WriteLine($"最优解的最小费用: {minCostFlow.OptimalCost()}");
                    Console.WriteLine("各边的流量分配:");
                    for (int i = 0; i < minCostFlow.NumArcs(); i++)
                    {
                        Console.WriteLine($"边 {minCostFlow.Tail(i)} → {minCostFlow.Head(i)} : 流量 {minCostFlow.Flow(i)}");
                    }
                }
                else
                {
                    Console.WriteLine($"求解失败,状态码: {solveStatus}");
                }
            }
        }
    }
    

额外注意事项:

  • 确保你的项目目标框架和Google.OrTools兼容,目前该包支持.NET Core 3.1、.NET 5及以上版本,旧版.NET Framework可能需要找对应的兼容版本。
  • 如果还是报错,检查NuGet包是否安装成功,或者尝试清理项目后重新生成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:59:51