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

SCIP C API分支规则开发:获取变量目标函数系数敏感性范围

SCIP C API获取变量目标系数敏感性范围的方法
  • SCIP提供了专门的敏感性分析函数,在BRANCHEXECLP回调中可直接调用SCIPcomputeObjPseudosensitivity()计算单个变量的目标系数允许变化范围。该函数返回的[objlow, objup]区间,就是变量目标系数的变化范围——在此范围内调整时,当前LP松弛的最优基结构保持不变,即最优解的基变量集合、非基变量的松弛状态均不会改变。

  • 调用示例代码:

    SCIP_VAR* targetVar = ...; // 你要分析的候选变量
    SCIP_Real objLowerBound;    // 目标系数下界x1
    SCIP_Real objUpperBound;    // 目标系数上界x2
    // 最后一个参数设为FALSE,基于当前已求解的LP最优解直接计算敏感性
    SCIP_RETCODE ret = SCIPcomputeObjPseudosensitivity(scip, targetVar, &objLowerBound, &objUpperBound, FALSE);
    
  • 注意事项:

    • 调用前需确保当前LP松弛已求解至最优状态,可通过SCIPisLPSolved(scip)验证,否则计算结果无效。
    • 若变量为固定变量或未包含在当前LP中,函数会返回错误码,需提前做变量有效性判断。
    • 该区间仅保证最优基结构不变,目标值会随系数变化线性调整;系数超出范围后,最优基会改变,LP最优解也会随之变化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 03:30:46