0

lp-solveで次のようなインスタンスを解決しようとしています

/* Objective function */
min: +x;

/* Constraints */
+2046853249 x +2046853248 y +c = 0;
+1954481150 x +1954481149 y +c = 0;
R3: +x >= 1;

/* Variable bounds */
-10000 <= x <= 10000;
-10000 <= y <= 10000;
-10000 <= c <= 10000;

/* Integer definitions */
int x,y,c;

これは難しい例ではないようですが、lp-solveはそれを解決できません。lp-solveのドキュメントについての私の理解は、ソルバーが実際にインスタンスを通常のlpとして解決し始め、次に問題を整数定義に修正することです。この場合、lp-solutionは正しいはずです。

誰かが私にこれがうまくいかない理由についていくつかの洞察を教えてもらえますか?特に、このようなインスタンスをすばやく解決するための「トリック」はありますか?

4

1 に答える 1

0

lp_solveの開発者とチャットをしました。この問題の理由は、lp_solveが内部でdouble型の変数を使用しており、そのような大きな整数を処理するのに十分な精度を提供していないためです。

lp_solveを使用してそのようなシステムを解決することは不可能のようです。私のような同様の問題が発生した場合は、おそらく別のツールを検索するでしょう。

于 2012-08-02T22:42:34.643 に答える