Как бороться с активной моделью, уже представленной в Microsoft Solver Foundation? - PullRequest
0 голосов
/ 08 мая 2018

Я использовал библиотеку для решения линейного уравнения, она работает для одного создания объекта класса из этой библиотеки, но когда я хочу воссоздать объект, она отбрасывает меня:

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 голосов
/ 08 мая 2018

Звоните ClearModel сначала:

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