0

Apache Commons Mathライブラリで提供されているシンプレックス法を使用して、次の線形計画問題を解決するつもりです。動作しません。APIドキュメントが制限されています。

問題

ベクトルから始めて、次の解をs0決定します。s

| min   f' * s
|  s
|
| s.t.  s_l <= s <= s_u

ここfで、はベクトルでs_lあり、はそれぞれs_uの下限と上限sです。

この問題は、コマンドを使用してMatlabで簡単に解決できlinprog(f, [], [], [], [], s_l, s_u, s0, options)ます。また、Javaでも、できればApacheCommonsMathを使用して同じことを実行したいと考えています。

SimplexSolver

SimplexSolverここでの説明と同様の ApacheCommonsMathを使用しようとしました:http: //google-opensource.blogspot.se/2009/06/introducing-apache-commons-math.html

s_lしかし、境界を定義するためにシームすることはできず、このメソッドを使用して(私にはありませんが)s_u提供する必要があります。LinearConstraint

あなたはそれができるはずですか?

4

1 に答える 1

0

ショートカットがあるかどうかはわかりませんが、実際には下限と上限は 2 つの線形制約にすぎません。

最初の変数が下限の最初の要素 (制約 1) よりも大きく、上限の最初の要素 (制約 2) よりも小さいことを確認してください。

次に、2 番目の変数が .... であることを確認します。

これを書くのは骨が折れるかもしれませんが、正しく理解するのは難しくありません。

于 2013-03-07T16:49:56.330 に答える