質問

Microsoft Solver Foundation 2を使用してかなり複雑な状況を解決しようとしていますが、モデルをできるだけ馬鹿にしても、サポートされていないModelexceptionにこだわっています。
誰かが私が間違っていることについて考えを持っていますか?
以下は、問題のある動作を再現するために必要な最も少ない例です。

var ctx = SolverContext.GetContext();
var model = ctx.CreateModel();
var someConstant = 1337.0;

var decisionA = new Decision(Domain.Real, "decisionA");
var decisionB = new Decision(Domain.Real, "decisionB");
var decisionC = new Decision(Domain.Real, "decisionC");

model.AddConstraint("ca", decisionA <= someConstant);
model.AddConstraint("cb", decisionB <= someConstant);
model.AddConstraint("cc", decisionC <= someConstant);

model.AddConstraint("mainConstraint", Model.Equal(Model.Sum(Model.Abs(decisionA), decisionB, decisionC), someConstant))

model.AddDecisions(decisionA, decisionB, decisionC);

model.AddGoal("myComplicatedGoal", GoalKind.Minimize, decisionC);

var solution = ctx.Solve();

solution.GetReport().WriteTo(Console.Out);

Console.ReadKey();

私の実際のモデルには、完了したら、a+ba <= somevalueなので、最終的にサポートされていない場合は、事前にお知らせください。もしそうなら、私は使用できる.NETフレンドリーなインターフェイスを備えた他のソルバーの提案にも感謝します(よく知られている商用パッケージのみをお願いします)。

前もって感謝します

役に立ちましたか?

解決

このリンクからソースをつかんで試してみてください(いくつかのModel.ABSがあります)。それが死んだ場合、セットアップに何か問題があり、最短ソリューションはアンインストール、再起動、再インストールすることです。

http://geekswithblogs.net/cyoung/archive/2009/02/25/129672.aspx

わかりました、今、あなたは二次制約について言及したので、少なくともエクスプレスバージョンは間違いなくそれらをサポートしていません:

http://code.msdn.microsoft.com/solverfoundation/thread/view.aspx?threadid=2756

エンタープライズバージョンは$$$$を費やす可能性があります - 「アカデミックエンタープライズ」を手に入れた場合、それはまだグルビソルバーがないので、お金から別れを考える前に、特定の質問を送るのは良いことです( http://gurobi.com/ )そして、彼らがそれがそれを処理するだろうと言った場合に備えて、いくらかの保証を求めますが、そうではありません。

他のヒント

制約でそれらを使用する前に、モデルに決定を追加する必要があると思います。決定を作成した後にこの行を追加すると、コードが私のために機能します。

model.AddDecisions(decisionA, decisionB, decisionC);

ネイサン

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