如何从ojalgo求解的混合整数模型优化结果中获取相对间隙?
从Ojalgo优化结果中获取混合整数模型的相对间隙
在Ojalgo中求解混合整数规划模型后,可直接通过Optimisation.Result实例的getMIPRelativeGap()方法获取相对间隙。该方法返回当前可行解与理论最优解之间的相对差距(以小数形式呈现,例如返回0.02代表2%的间隙)。
补充完整的Java代码示例如下:
ExpressionsBasedModel model = new ExpressionsBasedModel(); //... 创建目标函数、变量和表达式 ... Optimisation.Result result = model.minimise(); if (result.getState().isFeasible()) { System.out.println("Objective Value = " + result.getValue()); // 获取并打印相对间隙 double relativeGap = result.getMIPRelativeGap(); System.out.println("Relative Gap = " + relativeGap); // 若需以百分比形式展示 System.out.println("Relative Gap (Percentage) = " + (relativeGap * 100) + "%"); }
需要注意:
- 该方法仅对混合整数规划(MIP)模型有效,若求解的是线性规划(LP)模型,返回值通常为0或NaN。
- 相对间隙的计算逻辑为:
|当前目标值 - 最优边界值| / (1e-10 + |当前目标值|),求解器会在间隙小于预设阈值时终止迭代。
内容的提问来源于stack exchange,提问作者Buck
相关产品推荐
相关产品推荐

