3

私が試したソルバー (CPLEX、CBC) で解決するのに非常に時間がかかる整数線形計画法の問題があります。彼らはそれを完全に証明するのに永遠にかかります.

最小化問題の客観的な値の自明な下限を計算するのは簡単ですが、CPLEX の出力 (Best Bound 列) を見ると、長い間、その下限に近づいていないことがわかります。すぐに本当に良い解を見つけますが、最適な解がもっと優れている可能性があると誤って考えます。

これらのソルバーがどのように機能するかはよくわからないことを認めざるを得ませんが、信じられないほど楽観的なソリューションを探して、途方もなく弱い下限を改善しようとして時間を無駄にしているようです。だから私の質問は:

  1. ソルバーに適切な目的の下限を伝えることで、より速く実行できるでしょうか?

  2. もしそうなら、どのソルバーが追加入力として提供された既知の下限を受け入れることができますか?

例として、実行例からの CPLEX の出力の最初の数行を貼り付けます (目標のさらなる改善と最良の境界の非常に遅い改善なしで、はるかに長く続きます)。

        Nodes                                         Cuts/
   Node  Left     Objective  IInf  Best Integer    Best Bound    ItCnt     Gap
      0     0     -388.6997   178                   -388.6997        9
*     0+    0                          297.0000     -388.6997        9  230.88%
*     0+    0                          275.0000     -388.6997        9  241.35%
      0     2     -388.6997   178      275.0000     -387.8106        9  241.02%
*    20+   20                          185.0000     -307.6363       80  266.29%
*    30+   30                          135.0000     -307.6363       90  327.88%
*    30+   30                           94.0000     -307.6363       90  427.27%
*    60+   60                           90.0000     -307.6363      120  441.82%
*   160+  126                           77.0000     -307.6363      272  499.53%
*   200+   93                           12.0000     -307.4836      325     ---
    300   182     -135.2988   107       12.0000     -268.6638      466     ---
   1200   934      -50.6022    85       12.0000     -206.2938     1480     ---
   2197  1755      -96.9612    93       12.0000     -189.8013     2470     ---
   3226  2600       -2.8316    87       12.0000     -179.9669     3480     ---
   4374  3521     -156.2442   110       12.0000     -170.4183     4567     ---
   5490  4421     -128.0871    97       12.0000     -167.3696     5623     ---
   6971  5603     -147.5022   108       12.0000     -162.4180     7055     ---
   8739  6997     -103.5374   113       12.0000     -156.3532     8673     ---

ソルバーに、目的が 10 未満の解を探す必要がないように (より単純な方法でそれを証明できるため)、特に負の目的値を使用しないように (私のモデルでは不可能なため) 教えてくれたらいいのにと思います。

4

1 に答える 1