問題タブ [integer-programming]

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.

0 投票する
1 に答える
2860 参照

python - 二次元ビンパッキング

2 次元ビン パッキング問題を解決するために、次の整数計画モデルを使用しています。次のモデルは、1 次元バージョンを示しています。私が書いたコードには、追加の次元の制約が組み込まれています。

ここに画像の説明を入力


最適化問題を解決するために Python PuLP を使用しています。コードは次のとおりです。

次の出力が生成されます。

ハードコードされたサンプル入力データは、出力として 1 つのビンを生成する必要があります。つまり、1 つの y 変数の値は 1 になります。ただし、そうではありません。方程式は適切にモデル化されていますか? 制約を指定する別の方法はありますか?

0 投票する
0 に答える
1138 参照

python - numpy/sympy を使用して線形システムの最小二乗整数解を見つける

numpy または sympy を使用して線形ディオファントス方程式系を解く必要があります。

numpy の linalg.solve/linalg.lstsq メソッドを制約して整数解のみを返す方法はありますか? (おそらくそうではありませんが、私は尋ねるべきだと思いました)

Sympy の diophantine ソルバーを調べたところ、システム全体を解くには適用できないようです

私が取り組んでいる問題は、

この場合、X、Y、Z はおおよそのサービング サイズを表し、P1/F1/C1 はそれぞれプロ/脂肪/炭水化物プロファイルになります。

この論文に基づいて https://www.math.uwaterloo.ca/~wgilbert/Research/GilbertPathria.pdf

行削減を実行して、このシステムの参照 (行階層形式) を見つけ、それを sympy のソルバーにプラグインできるようです。

それについてもっと簡単な方法はありますか?

以下に簡単な例を示します。

整数解 [3,2] を期待していましたが、代わりに [ 2.16666667, 2.66666667] が得られました。

どちらの解も正しいですが、解を整数解のみにバインドしたい

0 投票する
1 に答える
1185 参照

python - 最小絶対値を使用した Python パルプ オプティマイザ

最適化の目的でパルプ ( https://pythonhosted.org/PuLP/ ) を使用しており、問題が発生しています。のような制約を使用する必要があり、abs(x) > MINここで解決策を見つけましたhttp://lpsolve.sourceforge.net/5.5/absolute.htm、2つの制約を作成するだけです:

ここで、B は 0 または 1 で、M は十分な値です。問題は、M ~ 10000 を使用するとすべてがうまく機能することですが、INT_MAX_VALUE または ~ 10000000000 を使用すると機能しません。誰かがこのような問題を抱えていますか?

0 投票する
1 に答える
231 参照

c++ - C++ での CPLEX: LP から MIP への変換

私は c++ で CPLEX を使用する初心者です。CPLEX を使用して単純な LP を解く方法を知っています。

変数を整数として設定すると (次のように)、CPLEX が分岐限定法を使用して MIP を解決するのか、LP を解決して最後に結果の値を整数に丸めるのか疑問に思っています。

変数以外は LP 問題と同じように定義します。これは私が変数を設定する方法です: IloIntVarArray Variables(env,LowerBound,UpperBound)

私を助けてくれるか、C++ での CPLEX の優れたチュートリアルを紹介していただければ、本当に感謝しています。

ありがとうございました

0 投票する
1 に答える
285 参照

c++ - c++ を使用して Cplex で 3 次元 IloIntVarArray を作成する

次のように、c++ を使用して cplex でいくつかの整数変数を使用しています。

alpha は、範囲が 0 ~ N の 1 次元配列です...

しかし、私の問題は、整数決定変数になる ax[N][M][K] を作成したいのですが、構文やこれらの変数を開始する方法がわかりません。