首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gurobi无法识别LP文件

Gurobi无法识别LP文件
EN

Stack Overflow用户
提问于 2015-12-10 14:13:18
回答 1查看 484关注 0票数 0

当尝试用Gurobi+C#从文本打开线性规划问题时,它抛出错误: 10012无法打开文件“最大化”输入。Maximise是文本的第一个单词,当使用

代码语言:javascript
复制
foreach (string s in args)
{
    Console.WriteLine(s);
}

我从文本文件中获得了正确的输出。请帮帮我!

代码语言:javascript
复制
using System;
using Gurobi;

class lp_cs
{
static void Main(string[] args)
{
    args = System.IO.File.ReadAllLines(@"C:\Users\Ben\Documents\Visual     Studio 2015\Projects\ConsoleApplication5\ConsoleApplication5\mps.lp");
    foreach (string s in args)
    {
        Console.WriteLine(s);
    }
    if (args.Length < 1)
    {
        Console.Out.WriteLine("Please Wait..");
        return;
    }

    try
    {
        GRBEnv env = new GRBEnv();
        GRBModel model = new GRBModel(env, args[0]);

        model.Optimize();

        int optimstatus = model.Get(GRB.IntAttr.Status);

        if (optimstatus == GRB.Status.INF_OR_UNBD)
        {
            model.GetEnv().Set(GRB.IntParam.Presolve, 0);
            model.Optimize();
            optimstatus = model.Get(GRB.IntAttr.Status);
        }

        if (optimstatus == GRB.Status.OPTIMAL)
        {
            double objval = model.Get(GRB.DoubleAttr.ObjVal);
            Console.WriteLine("Optimal objective: " + objval);
        }
        else if (optimstatus == GRB.Status.INFEASIBLE)
        {
            Console.WriteLine("Model is infeasible");

            model.ComputeIIS();
            model.Write("model.ilp");
        }
        else if (optimstatus == GRB.Status.UNBOUNDED)
        {
            Console.WriteLine("Model is unbounded");
        }
        else
        {
            Console.WriteLine("Optimization was stopped with status = "
                               + optimstatus);
        }

        model.Dispose();
        env.Dispose();

    }
    catch (GRBException e)
    {
        Console.WriteLine("Hibakód: " + e.ErrorCode + ". " + e.Message);
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
}

}

EN

回答 1

Stack Overflow用户

发布于 2015-12-10 20:10:48

使用

代码语言:javascript
复制
args = System.IO.File.ReadAllLines(@"C:\Users\Ben\Documents\Visual Studio 2015\Projects\ConsoleApplication5\ConsoleApplication5\mps.lp");

您将用输入文件的所有行组成的数组覆盖main()方法的args参数。这就是为什么在

代码语言:javascript
复制
GRBModel model = new GRBModel(env, args[0]);

args[0]包含一个字符串,其中包含LP文件的第一行,而不是文件名。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34194926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档