問題タブ [ms-solver-foundation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
casting - F# を使用した MS Solver Foundation の Domain.IntegerRange
私は F# を使用して MS ソルバーで遊んでおり、ドメインを int の範囲として定義する必要があります。Rational 型の 2 つのパラメーターを取る Domain.IntegerRange という関数があることを知りました。
C# では、Rationals の代わりに int を使用しても問題ありません: http://msdn.microsoft.com/en-us/library/ff826356(v=vs.93).aspx?cs-save-lang=1&cs-lang=csharp#コードスニペット-1
ただし、F# では、このような暗黙的な変換は受け入れられません。代わりにどのように実装する必要がありますか? int に基づいて何とか Rational を作成しようとしましたが、失敗しました。
c# - C#SolverFoundationは長さの最大の組み合わせを見つけます
特定の長さに最適な、最大 4 つのブラケットの組み合わせを見つける必要があるブラケットのリストがあります。
これらは私のブラケットです。たとえば、これらのブラケットのどの組み合わせが 120 インチを超えずに最も近くなるかを調べる必要があります。
私は SolverFoundation ライブラリを理解しようとしましたが、私は数学専攻ではなく、ほとんど経験がありません...シンプレックス LP 解法で Excel ソルバーを使用すると、解は 1 30.28 インチのブラケット、1 42.09 インチのブラケット、および119.14インチになる46.77インチブラケット1個。
matlab - MATLAB Sparse Filtering を F# に移植するときに、minFunc を置き換えるためにどのソルバーを使用する必要がありますか?
F# に移植したい次のSparse Filtering MATLAB コードがあります。F# Type Provider for MATLAB は知っていますが、MATLAB への依存関係が作成されるため、ここでは使用できません (テストに使用できます)。
私は MATLAB コードのほとんどを理解していますが、MATLAB に相当するコードがminFunc
.Net にあるかどうかはわかりません。のいずれかが欲しいと思いMicrosoft.SolverFoundation.Solvers
ます。MATLABのサイトによると
... minFunc のデフォルト パラメータは準ニュートン戦略を呼び出します。ここでは、Shanno-Phua スケーリングを使用した限られたメモリの BFGS 更新がステップ方向の計算に使用され、強い Wolfe 条件を満たす点のブラケット ライン検索が使用されます。ステップ方向を計算します。ライン サーチでは、(保護された) 3 次補間を使用して試行値を生成し、目的関数がパラメーターが実数値の出力を生成しない領域に入る繰り返しで、メソッドは Armijo バック トラッキング ライン サーチに切り替わります。
上記の情報を考慮して、 Microsoft.SolverFoundation.Solvers.CompactQuasiNewtonModelが正しい方法であると誰でも確認できますか?
また、上記のコードを F# に移植する際に、他に明らかな「落とし穴」はありますか? (このタイプのポートには新しい)
c# - Microsoft Solver Foundation で Math.Pow を使用する
私は単純なソルバーの演習に取り組んでおり、使用するのに苦労していますMath.Pow
。
Math.Pow(error1, 2)
次の行で使用できないのはなぜですか?
エラーが発生します:
エラー 3 引数 1: 'Microsoft.SolverFoundation.Services.Term' から 'double' に変換できません
関連するコード:
c# - Microsoft Solver Foundation - 関数を制約として使用する方法は?
C# で Microsoft Solver Foundation を使用して問題の解決策を見つけようとしていますが、必要なすべての制約を設定するのに問題があります。私の基本的なモデルは、ベイのリストがあり、すべてのベイの合計が最大になるように各ベイをロードする必要があるというものです。現在こんな感じでやってます
私が本当にできるようにしたいのは、特定の関数が true を返すという制約を追加することです。関数は次のようになります
しかし、この関数に渡すベイのリストを作成する方法がわかりません。次のようなことをしたいのですが、ToDouble または GetDouble と言うと例外がスローされ続けます。
誰でもこれを行う方法を提案できますか? ありがとう!
c# - Microsoft Solver Foundation は、Excel ソルバーによって解決されるものを解決しません。
制約のある非線形最適化の問題があります。Excel Solver (GRG) で解決しましたが、C# に変換しようとするMicrosoft Solver Foundation
とsolution.Quality = SolverQuality.Unknown
.
問題はこれです: 私はいくつかの決定をしており、それらのすべてに制約 (上限と下限) を制限しています。そして、他の 2 つの制約 (これは問題のある制約です):
- 決定の合計は 1 (100%) である必要があります
(MMULT(TRANSPOSE(Decision-Array),MMULT(Tabel-with-values,Decision-Array)))^0.5
別の値と等しい必要があります
目標はsum(Decision * value)
。Microsoft Solver Foundation によって次のように記述します。
上記のコードで使用する関数は次のとおりです。
誰かが解決策を持っていますか?
c# - Microsoft Solver Foundationの目標関数としてのメソッド?
以下は、MSF を使用した典型的な最適化の定式化です。
目標関数として「5 * xs + 20 * xl」のようなステートメントの代わりに別の方法を使用することは可能ですか? 例えば以下のような方法でしょうか。どのように?
c# - Microsoft Solver Foundation Services (SFS) での目的関数の使用
下位レベルのソルバー プログラミング (MS ソルバー ファンデーション ソルバー) を使用すると、Rosenbrock サンプルから以下に示すように、目的関数を最適化モデルに割り当てることができます。
Solver Foundation Services (SFS) プログラミング内で、より高いレベルで目的関数を最適化モデルに割り当てることは可能ですか?
このレベルで目的関数を使用できるのであれば、より高いレベルの SFS にとどまりたいと考えています。
c# - Solver Foundation、奇妙な動作
このコードをそのまま実行すると、Solver Foundation はそれぞれが 2 に等しい 7 つの値を正しく計算します。
コメントを外すmodel.AddConstraint("constraint", x[0] + x[1] + x[2] == 2)
と、最後の値には 0、1、1 の 3 つの値しか含まれていません。残りの値が含まれていないのはなぜですか?
どうしたの?