ソルバー解決制約プログラミングの問題
-
28-09-2019 - |
質問
線形制約数学モデルを解くことができる単純なソルバーを知っている人はいますか?例の単純なモデル:
a + b + c = 100;
a/b/c = 2/3/4;
a > d
私はMS Solver Foundationを使用していますが、これは私のC#コードですが、それはoflvablemodelexceptionです。
SolverContext solverContext = SolverContext.GetContext();
Model model = solverContext.CreateModel();
Decision a = new Decision(Domain.Real, "a");
Decision b = new Decision(Domain.Real, "b");
model.AddDecisions(a, b);
model.AddConstraint("fator", a / b == 4);
model.AddConstraint("sum", a + b == 5);
Solution solution = solverContext.Solve(new ConstraintProgrammingDirective());
Report report = solution.GetReport();
Console.WriteLine("a = {0} ; b = {1}", a, b);
助けてくれてありがとう
編集:
int CSP(制約SSTISTIFCACTIONプログラミング)の問題であるため、それを解決する際には指令を使用しないでください。コードは次のとおりです。
SolverContext solverContext = SolverContext.GetContext();
Model model = solverContext.CreateModel();
Decision a = new Decision(Domain.Real, "a");
Decision b = new Decision(Domain.Real, "b");
model.AddDecisions(a, b);
model.AddConstraint("fator", a / b == 4);
model.AddConstraint("sum", a + b == 5);
Solution solution = solverContext.Solve();
Report report = solution.GetReport();
Console.WriteLine("a = {0} ; b = {1}", a, b);
しかし、なぜゆっくりと走ったのかわかりません。ソリューションセットで最初のソリューションだけが必要です。
解決
ニーズに応じて、Wolfram Alphaが役立つ場合があります(少なくとも検証のために)。入力が強調されているため、複雑な問題を解決できるとは思いません。しかし、あなたの例として単純な問題については、それは大丈夫です。
所属していません StackOverflow