AMPL+CBC求解器如何在日志中显示MIP当前间隙?
在AMPL中配置CBC显示MILP整数解间隙的方法
CBC原生支持输出整数解的最优性间隙,这些参数可能未在AMPL官方文档中详细说明,但可通过cbc_options直接传递给求解器,具体配置方法如下:
核心参数:
ratio
开启该参数后,CBC每次找到更优的整数解时,会自动计算并显示当前的最优性间隙(对偶间隙)。配置语句示例:option cbc_options 'outlev=1 ratio=1';其中
ratio=1表示每次更新整数解都触发间隙输出,outlev控制基础日志的详细程度,可根据需求调整为1-4。精细控制:
printingOptions
若需要更全面的输出内容,可搭配printingOptions参数强制开启间隙相关信息打印,示例:option cbc_options 'outlev=2 printingOptions=3';printingOptions=3会包含间隙、最佳上下界等关键指标的输出。辅助参数:
bestbound
开启bestbound参数后,CBC会在日志中持续更新当前的最佳下界,结合已找到的整数解上界,可手动计算间隙。配置示例:option cbc_options 'outlev=3 bestbound=1';
对于大型MILP问题,建议组合使用outlev=2和ratio=1,既能避免日志过于冗余,又能实时追踪间隙变化过程。
内容的提问来源于stack exchange,提问作者Víctor Mario Noble Ramos
相关产品推荐
相关产品推荐

