3

私は、方程式と不等式のセットに要約されるプログラミングの問題に取り組んでいます。

x[0]*a[0] + x[1]*a[1] + ... x[n]*a[n] >= D
x[0]*b[0] + x[1]*b[1] + ... x[n]*b[n] =  C

入力と リスト およびとから構成される のX絶対最小値を与える の値を解きたいと思います。CDABa[0 - n]b[0 - n ]

現時点では Python で問題を解決していますが、一般的な問題は言語に依存しません。

明確化の更新: 係数x[0 - n]は負でない整数のセットに制限されます。

4

5 に答える 5

11

これは線形計画問題のように見えます。シンプレックス アルゴリズムは通常、良い結果をもたらします。基本的に、不等式で区切られた部分空間の境界をたどり、最適なものを探します。

視覚的に考えてみてください。それぞれの不等式は、n 次元空間の平面である半空間を表し、右側にある必要があります。効用関数は、最適化しようとしているものです。空間が閉じている場合、最適は閉じた空間の頂点の 1 つになります。開いている場合、最適は無限大である可能性があります。

于 2008-10-22T19:59:29.227 に答える
3

線形計画法に関するウィキペディアのエントリを見てください。整数プログラミング セクションは、あなたが探しているものです (x[i] が整数であるという制約は簡単なものではありません)。

branch&bound、branch&cut などの python ライブラリを検索します (まだ scipy に実装されていないと思います)。

その他の興味深いリンク:

于 2008-10-22T21:28:01.577 に答える
2

これは線形計画法の問題のようです。

于 2008-10-22T19:56:32.320 に答える
1

最小化関数を実装する方法については、Matlab または Mathematica を使用するか、C の Numerical Recipes のコードを参照してください。提供されているリンクは、1992 年版の本へのリンクです。新しいバージョンは、Amazon で入手できます。

于 2008-10-22T20:07:37.433 に答える
0

この会社には、そのようなことを行うためのツールがあります。

于 2008-10-22T20:33:19.987 に答える