質問

線形制約数学モデルを解くことができる単純なソルバーを知っている人はいますか?例の単純なモデル:

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が役立つ場合があります(少なくとも検証のために)。入力が強調されているため、複雑な問題を解決できるとは思いません。しかし、あなたの例として単純な問題については、それは大丈夫です。

http://www.wolframalpha.com/input/?i = solve+a+%2b+b+ %2b+c+%3d%3D+100%3b+a %2fb+%3d%3d+2%2f3%3b+b %2FC%3D%3D3%2F4%3B+A+%3E+D

alt text

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top