0

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

x + M * B >= MIN
-x + M * (1 - B) >= MIN

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

4

1 に答える 1

1

COIN-CBCの方がいいかもしれません。別の投稿で数値の問題を見ましたが、VUB の制約に起因しているようです。

まず、CBC の背後にある LP ソルバー (CLP) は GLPK よりも精巧であり、次にSOS 制約を使用できます。これは、これらの VUB 制約をモデル化します。これは、abs-Function に使用する方がはるかに優れています (数値ハザードなしで、それらを分岐するだけです)。 )。そして、全体的なパフォーマンスは通常より優れています。私の答えをフォローアップして、質問にコメントしてください。

于 2016-05-25T09:25:10.580 に答える