You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SCIP中完全禁用预求解(presolve)功能?

如何在SCIP中完全禁用预求解功能?

要彻底禁用SCIP的预求解功能,仅设置你提到的lp/presolving = false、concurrent/presolvebefore = false、presolving/maxrounds = 0是不够的——SCIP的预求解由多个独立子模块组成,默认部分子模块仍会执行初始简化操作。你需要添加并设置以下所有参数,或者通过API直接关闭全量预求解:

方法1:通过参数文件设置

将以下参数全部添加到你的SCIP配置文件,或通过命令行/API逐个设置:

presolving/maxrounds = 0
presolving/maxrestarts = 0
lp/presolving = false
concurrent/presolvebefore = false
presolving/dualreds = false
presolving/aggressive = false
presolving/fiximplied = false
presolving/implied = false
presolving/strongreds = false
presolving/zerocoeffs = false

这些参数的作用分别是:

  • 关闭预求解的轮次循环与重启机制
  • 禁用LP求解阶段的预处理
  • 关闭并行求解前的预求解步骤
  • 逐一禁用对偶简化、激进预求解、隐含变量固定、隐含约束推导、强约束简化、零系数清理等所有预求解子模块

方法2:通过SCIP API直接关闭(更便捷)

如果是通过C/C++/Python等API调用SCIP,可在创建SCIP实例后直接执行:

// C API示例
SCIPsetPresolving(scip, SCIP_PARAMSETTING_OFF);

这个调用会一次性关闭所有预求解相关模块,无需逐个设置参数。

设置完成后,你的原始模型将完全保留:THATROW和LASTROW约束不会被删除,COLONE、COLTHREE等变量也不会被固定为单点值,此时SCIPgetDualSolVal和SCIPgetVarRedcost就能返回对应原始模型变量与约束的正确结果。

内容的提问来源于stack exchange,提问作者Peter Notebaert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 22:07:25