scip - 根据原始变量存储可行的解决方案
问题描述
我想从捕获SCIP_EVENTTYPE_BESTSOLFOUND
事件的事件处理程序中存储一个可行的解决方案,然后我想将此解决方案作为启发式解决方案提供给另一个正在优化相同问题但具有不同参数设置的 SCIP 实例(这可能在随后的优化或并行)。
我的问题是我使用的解决方案SCIPgetBestSol()
将根据转换后的问题,这可能与第二个 SCIP 实例中的转换后的问题不同。
关闭预解析(使用SCIPsetPresolving()
)是否足以确保 SCIP 始终引用回调函数中的原始变量?你有什么特别的方法可以推荐这样做吗?
谢谢!
解决方案
确保您的事件处理程序可以访问原始变量数组(SCIPget(N)OrigVars()
成功了)。您始终可以使用 查询原始变量的解值,甚至从转换后的解中SCIPgetSolVal()
,并将这些值存储在通过 创建的解中SCIPcreateOrigSol()
。
为了将此解决方案提供给不同的 SCIP 实例,您必须正确获取主 SCIP 实例和辅助 SCIP 实例的变量之间的映射。为辅助 SCIP 实例创建一个新的解决方案,并将变量的解决方案值设置为其在主 SCIP 中的(前)图像变量的值。
推荐阅读
- postgresql - Rspec 数据库视图为空
- python - Python - 将包含 NULL 值的数据从 Oracle 移动到 PostgreSQL 数据库
- pytorch - 火炬填充的工作原理
- rust - 使用字符串键从结构中获取数据,并从结构中获取数据到数组
- nestjs - 如何在来自表关系的实体存储库的查询中使用“where”
- c++ - 如何将元素添加到每 3 行的对向量中?
- node.js - 无法使用 axios 发送 cookie
- javascript - 延迟后在新标签页中打开时,Android 上的 Chrome 不提供打开 PDF
- bash - 如何在数据集中变量的值之后命名文件?
- perforce - Perforce 触发器不会运行 rubyscript