如何处理 Microsoft Solver Foundation 中已经存在的活动模型?
How to deal with an active model already present in Microsoft Solver Foundation?
我用这个库来求解线方程,它适用于从这个库中创建一个 class 对象,但是当我想重新创建对象时,它把我扔掉了:
System.InvalidOperationException: There is already an active model in the context.
At 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;
}
}}
先呼叫ClearModel
:
SolverContext context = SolverContext.GetContext();
context.ClearModel();
Model model = context.CreateModel();
我用这个库来求解线方程,它适用于从这个库中创建一个 class 对象,但是当我想重新创建对象时,它把我扔掉了:
System.InvalidOperationException: There is already an active model in the context. At
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;
}
}}
先呼叫ClearModel
:
SolverContext context = SolverContext.GetContext();
context.ClearModel();
Model model = context.CreateModel();