問題タブ [pulp]

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 投票する
0 に答える
153 参照

python - Python/PuLP で手荷物処理ワークステーションにフライトを割り当てる

私はかなり大きな問題に取り組んでおり、立ち往生しています。誰かが私にアイデアをくれることを期待して、ここでそれを単純化しようとします...

以下に示すように、異なる時間 (TimeIndex) に出発する 25 のフライト (FlightID) があり、10 の利用可能な手荷物処理ワークステーション (WS) に割り当てる必要があるとします。

フライト情報

各フライトには、StartTime から EndTime まで占有される 1 つ、2 つ、または 3 つの手荷物処理ワークステーション (WS) が必要です。各ワークステーションは、全期間 (StartTime から EndTime まで) で 1 つのフライトのみを提供できます。

私がこれまでに持っているものは次のようになります。

まず、.csv ファイルから情報を読み取ります。

次に、10 台のワークステーションを作成します。

次に、決定変数「x」を宣言します。これは、フライト、時間、ワークステーションの組み合わせをキーとし、0、1 を値とする辞書です。

ダミーの目的関数を使用して問題を宣言します。

最初の制約は、必要な 24 時間すべてにすべてのフライトをワークステーションに割り当てることを強制します。

これにより、可能なすべての時間の範囲を通過するのではなく、必要なときにのみ制約を作成するために、一意の時間セットが作成されます。

次の制約は、1 つのワークステーションが一度に 1 つのフライトにのみ割り当てられるように強制します。

モデルを.txtに書くだけです。

また、パンダを使用して「x」を視覚化しています。

さて、私の問題は、以下に示すように、1 つのワークステーション (WS) がそのフライトに必要なすべての時間に同じフライトに割り当てられるように、3 番目の制約を作成する方法がわからないことです。

これまでの結果。

より正確には、たとえば、Flight01 は、常に (116 から 140 まで) WS1 に割り当てられる必要があります。

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 に答える
474 参照

mathematical-optimization - GLPK (Pulp wrapper) での制約違反

私は GLPK ソルバーで Pulp を使用しており、次の制約があります。

ソルバー:

しかし、結果として、制約違反で解決された問題 (ステータス「最適」) が得られます。

では、この場合はどうすればよいのでしょうか。何らかの方法で精度を上げるか、別のソリューションを使用できますか?

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

python - デフォルトの PuLP ソルバーが完全に機能しているのに、GLPK が「glpsol.exe を実行できません」というエラーを生成するのはなぜですか?

PuLP で 2 進整数計画問題を解こうとしていて、GLPK をソルバーとして使用しているときに、次のエラーが発生します。WindowsにGLPKをインストールし、パスも設定しました。pulp.pulpTestAll()ショーの結果Solver <class 'pulp.solvers.GLPK_CMD'> passed

ただし、デフォルトの PuLP ソルバーを使用すると、問題なく動作します。私はstatus = prob.solve(pulp.GLPK())ソルバーを呼び出すために使用しています。完全な Python コードは非常に長いため、ここには掲載していません。PuLPの から得られる出力prob.writeLP('problem.txt')は次のとおりです。

GLPK でエラーが発生するのはなぜですか? デフォルトのソルバーを使用すると、次の出力が得られます。

0 投票する
2 に答える
973 参照

python - Python が予期せず終了しました。セグメンテーション違反: 11

Python 2.7.12 をインストールしました。「pip installpulp」を使用してpulpパッケージをインストールしました。私の問題は、「パルプのインポート」で次のエラーが発生することです。どうすればこの問題を解決できますか。他にデバッグが必要な場合はお知らせください。El Capitan 10.11.5 os を搭載した Mackbook pro を持っています。

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

python - Python の Pulp モジュールの条件付き制約線形プログラム

5 を超えるすべての変数をカウントし、そのカウントを 10 よりも大きくする必要がある Python のパルプ内に制約を追加する方法はありますか? 現在、次のコードがありますが、関数は 1 回しか呼び出されません。

したがって、たとえば、vars = [x1,x2,..,x20] があり、xi がpulp.Lpvariable で x1,..,x10 = 6 の場合、これらの変数のうち 10 個が 5 より大きいため、次の制約が満たされます。少なくとも 10 個の変数の値が 5 より大きい。