我希望MIP求解器在找到第一个非零解(即第二个解)时退出。
所以我设置了mip_limit_solutions来运行我的代码。它确实可以运行并找到解决方案,但是当它返回输出时会给出错误。我试图将限制增加到999,它找到了全局最优值并返回了解决方案。因此,我怀疑与解决方案限制有关的错误。我在下面包括了终端输出和代码段。
如果以下格式不正确,请查看终端输出的屏幕截图。Terminal Error Output
检测对称性...
0 2 2466.7967 37 1475.9071 2465.8441 280 67.07%
经过的时间= 0.50秒。 (218.90滴答,树= 0.01 MB,解决方案= 1)
- 228 155积分0 1476.1593 2315.5068 3073 56.86%
隐含的边界切割应用:1
应用了削减流量:4
已应用混合整数舍入法:19
应用了Goryry分数削减:1
根节点处理(在b&c之前):
实时= 0.50秒。 (218.93滴答声)
顺序B&C:
实时= 0.16秒。 (71.10滴答) ------------总计(根+分支和剪切)= 0.66秒。 (290.03滴答)
0.67 seconds required for solver
回溯(最近通话最近一次):
文件
中的“ Castro MILP.py”文件,第324行X.solve(report_timing=True, tee=True, warmstart=True)
文件 “ \ venv \ lib \ site-packages \ pyomo \ solvers \ plugins \ solvers \ persistent_solver.py”, 527行,在解决 default_variable_value = self._default_variable_value)
文件“ \ venv \ lib \ site-packages \ pyomo \ core \ base \ PyomoModel.py”,行 242,在load_from中 %str(results.solver.status))
ValueError:无法加载状态错误的SolverResults对象:错误
X.options['threads'] = 1
X.options['mip_limits_solutions'] = 2
X.options['timelimit'] = 1
X.options['emphasis_mip'] = 1
X.solve(report_timing=True, tee=True, warmstart=True)