私は C# でアプリケーションを持っています。Excel ソルバー アドインのように、いくつかの最適化計算を行う必要があります。1 つのオプションは、確かに独自のソルバー実装を作成することですが、時間がないので調べています。これに役立つ既存のライブラリ。
私は Microsoft Solver Foundation を試してきましたが、これはかなりきちんとしていてクールに思えますが、問題は、私が行う必要のある種類の計算では機能しないように思われることです。
この質問の最後に、実行して最適化する必要がある計算に関する情報を追加します。
したがって、基本的に私の質問は、この目的に使用できる他のライブラリ、または独自のソルバーを実行するのに役立つチュートリアル、またはこの問題を解決するためのリードを与えるアイデアを知っているかどうかです。
ありがとう。
追加情報:
これは私が計算する必要があるデータです:
7 つの変数があります。それらを var1、var2、...、var7 と呼びましょう。
これらの変数の制約は次のとおりです。
- それらはすべて 0 <= varn <= 0.5 である必要があります (n は変数の数)
- すべての変数の合計は 1 に等しくなければなりません
目的は、Excel では次のように表示されるターゲット数式を最大化することです。
(MMULT(TRANSPOSE(L26:L32),M14:M20)) / (SQRT(MMULT(MMULT(TRANSPOSE(L26:L32),M4:S10),L26:L32)))
この数式で表示される範囲 L26:L32 は、実際には上記の変数 var1、var2、...、varn の範囲です。
M14:M20 と M4:S10 は、さまざまなソースから取得したデータの範囲であり、10 進数値である可能性が高くなります。
前に言ったように、私は Microsoft Solver Foundation を使用していました。それを使ってほとんどすべてをモデル化し、ターゲット式の操作を処理する関数を作成しましたが、モデルを解こうとすると常に失敗します。操作の複雑さ。
いずれにせよ、実装する必要がある計算の種類について理解できるように、これらのデータを表示したかっただけです。