SCIP - 卡在派系表清理中

问题描述 投票:0回答:1

我正在使用连续变量和二元变量进行多年优化。第一年,SCIP 能够在 5 秒内预求解,并在一分钟内完全求解,但是,第二年,SCIP 陷入了 clique 表清理的困境,无法在超过 1 小时内完成。

问题详情: 第一年:

original problem has 249472 variables (4189 bin, 0 int, 0 impl, 245283 cont) and 324123 constraints
presolved problem has 77757 variables (4189 bin, 0 int, 0 impl, 73568 cont) and 63603 constraints

第二年:

original problem has 247394 variables (2112 bin, 0 int, 0 impl, 245282 cont) and 299978 constraints

如您所见,第二年应该更快地解决(更少的约束和二进制变量)。

我尝试更改 clique 表参数来加快清理速度,但没有成功。

这是第二年的信息:

presolving:
(round 1, fast)       111770 del vars, 199370 del conss, 0 add conss, 175207 chg bounds, 0 chg sides, 0 chg coeffs, 0 upgd conss, 2112 impls, 0 clqs
(round 2, fast)       111774 del vars, 199371 del conss, 0 add conss, 228820 chg bounds, 1 chg sides, 0 chg coeffs, 0 upgd conss, 2112 impls, 0 clqs
(round 3, fast)       111774 del vars, 199371 del conss, 0 add conss, 262799 chg bounds, 1 chg sides, 0 chg coeffs, 0 upgd conss, 2112 impls, 0 clqs
(round 4, fast)       111774 del vars, 199371 del conss, 0 add conss, 267181 chg bounds, 1 chg sides, 0 chg coeffs, 0 upgd conss, 2112 impls, 0 clqs
(round 5, fast)       111774 del vars, 199371 del conss, 0 add conss, 269297 chg bounds, 1 chg sides, 0 chg coeffs, 0 upgd conss, 2112 impls, 0 clqs
(round 6, fast)       111774 del vars, 199371 del conss, 0 add conss, 269297 chg bounds, 2114 chg sides, 4224 chg coeffs, 0 upgd conss, 2112 impls, 0 clqs
   (3.0s) running MILP presolver
   (4.0s) MILP presolver (8 rounds): 21903 aggregations, 2 fixings, 6504 bound changes
(round 7, medium)     133680 del vars, 199372 del conss, 0 add conss, 275801 chg bounds, 2114 chg sides, 4224 chg coeffs, 0 upgd conss, 2112 impls, 0 clqs
(round 8, fast)       138055 del vars, 230038 del conss, 0 add conss, 275801 chg bounds, 4228 chg sides, 8448 chg coeffs, 0 upgd conss, 2112 impls, 0 clqs
(round 9, exhaustive) 138057 del vars, 234415 del conss, 0 add conss, 275811 chg bounds, 4228 chg sides, 8448 chg coeffs, 0 upgd conss, 2112 impls, 0 clqs
(round 10, exhaustive) 138057 del vars, 234415 del conss, 0 add conss, 275823 chg bounds, 4230 chg sides, 8448 chg coeffs, 2112 upgd conss, 2112 impls, 0 clqs
   (5.0s) probing: 52/2112 (2.5%) - 2 fixings, 0 aggregations, 0 implications, 0 bound changes
   (5.0s) probing aborted: 50/50 successive totally useless probings
   (5.0s) symmetry computation started: requiring (bin +, int -, cont +), (fixed: bin -, int +, cont -)
   (7.0s) symmetry computation finished: 585 generators found (max: 585, log10 of symmetry group size: inf) (symcode time: 2.00)
   (7.0s) no symmetry on binary variables present.
pressed CTRL-C 1 times (5 times for forcing termination)
(round 11, exhaustive) 138061 del vars, 234417 del conss, 171405 add conss, 275835 chg bounds, 4232 chg sides, 8448 chg coeffs, 2112 upgd conss, 2112 impls, 0 clqs
presolving (11 rounds: 11 fast, 4 medium, 3 exhaustive):
 138061 deleted vars, 234417 deleted constraints, 171405 added constraints, 275835 tightened bounds, 0 added holes, 4232 changed sides, 8448 changed coefficients
 2112 implications, 0 cliques
presolving was interrupted.
Presolving Time: 560.00

SCIP Status        : solving was interrupted [user interrupt]
Solving Time (sec) : 562.00
Solving Nodes      : 0
clique table cleanup detected 0 bound changes
optimization pyomo scip
1个回答
0
投票

如您所见,第二年应该更快地解决(更少的约束和二进制变量)。

仅靠优化问题的大小可能无法准确预测解决问题所需的时间。如果您查看 miplib 基准测试 (https://miplib.zib.de/tag_benchmark.html),则会发现具有 5k 变量的实例 (bnatt500) 被标记为“硬实例”,而具有 20+k 变量的实例 (academictimetablesmall )是“容易”。因此,问题大小之外的因素(例如问题结构和复杂性)会显着影响解决时间。

560 秒无论如何都不是一个巨大的时间限制。我建议设置一个时间限制(2 小时)以便显示日志。然后,我们可以查看统计数据,看看哪个预求解器/启发式算法等消耗了很多时间。 通过识别并可能禁用耗时的问题,可以提高求解器效率。

尽管如此,如果您在 SCIP 中遇到意外行为或错误,请随时在 SCIP 中提交错误单。 https://www.scipopt.org/bugs.php

© www.soinside.com 2019 - 2024. All rights reserved.