如何处理Microsoft Solver Foundation中已有的活动模型?

时间:2018-05-08 20:23:55

标签: c# ms-solver-foundation

我使用该库来解决线方程,它适用于从这个库中创建一个类对象,但是当我想重新创建该对象时,它会抛弃我:

  

System.InvalidOperationException:上下文中已存在活动模型。      在Microsoft.SolverFoundation.Services.SolverContext.CreateModel ()

问题是,在计算第一个例子之后,我想要更改数据并单击按钮并获得另一个例子的结果。

class LinearResolve
{
    public string[] Zmienne = new string[3];

    public LinearResolve(string[] table)
    {
        Zmienne = table;
    }

    public string Solver()
    {
        SolverContext context = SolverContext.GetContext();
        Model model = context.CreateModel();
        Decision a = new Decision(Domain.Real, "a");
        Decision b = new Decision(Domain.Real, "b");
        Decision c = new Decision(Domain.Real, "c");
        model.AddDecisions(a, b, c);
        model.AddConstraint("eqA", Zmienne[0]);
        model.AddConstraint("eqB", Zmienne[1]);
        model.AddConstraint("eqC", Zmienne[2]);
        Solution solution = context.Solve();
        string results = solution.GetReport().ToString();
        return results;
    }
}}

1 个答案:

答案 0 :(得分:3)

首先致电ClearModel

SolverContext context = SolverContext.GetContext();
context.ClearModel();
Model model = context.CreateModel();