Skip to content

理解求解结果 ​

求解输出是“状态、候选方案和证明信息”的组合,不只是一个目标值。业务系统应先判断存在什么证据,再决定展示、继续计算或采用方案。

1. 可行、最优与未知 ​

可行解满足模型中的全部条件;最优解还需要证明不存在更好的可行方案。incumbent 是求解过程中保留的当前最好可行解,不自动具有最优性证明。

情况可以使用的信息不应得出的结论
已证明最优解与目标值,按声明容差成立的最优性精确实数意义下零误差
有可行解,尚未证明最优候选方案、目标值及已有界没有其他更好的方案
已证明不可行指定模型无可行方案现实业务永远无解
已证明无界目标沿可行方向可无限改善应返回无限收益的业务方案
未知或中断且无解停止原因、可能已有的界模型不可行或零方案可行

“Infeasible or unbounded”之类未区分状态不能任选一种解释。求解调用失败、模型不支持和许可证错误也不是数学不可行。

2. 界与 gap ​

对于最小化问题,可行解值给出上界 U,证明过程给出下界 L。最大化问题相反:可行解值给出下界 L,证明过程给出上界 U。在一致的数学语义下:

L≤z∗≤U,gabs=U−L.

相对 gap 的定义依赖后端。一个报告约定可以是:

grel=U−Lmax(s,|zinc|),s>0.

这里 s 与目标使用相同单位;这是示例约定,不替代后端原始 gap 定义。目标接近零、有负值或发生常数平移时,相对 gap 的解释尤其需要谨慎。缺失界不能填零,缺失 gap 不能显示成 0%。

3. 例子:最大化收益的中途结果 ​

模型 ​

产品集合为 {A,B},非负整数变量 xA,xB 表示产量(件),已用工时和收益为:

Ulabor=2xA+3xB,R=3xA+4xB.

数据断言是单位工时为正。无其他谓词或辅助变量。约束与目标为:

s.t.Ulabor≤8,maxR.

解读 ​

假设中途保留 (xA,xB)=(1,2),收益为 11;同时已知所有可行方案收益至多 12,则 11≤z∗≤12。绝对 gap 为 1。随后找到 (4,0),收益 12,结合上界即证明最优。

“11 元方案”可以作为候选,但不应被写成“最高收益为 11 元”。如果上界尚未提供,只能报告已知收益和状态,不自行假定上界为 12。

4. 超时与业务可接受性 ​

超时是执行终止原因,不是可行性状态。可能超时前已有可行方案,也可能只有界而没有方案。是否采用已有解取决于业务质量门槛、时效与安全要求;算法不能用默认值替业务作决定。

把浮点返回值四舍五入为整数后,需要重新检查约束和目标。独立舍入可能破坏资源上限、流平衡或逻辑关系。模型可行也不意味着覆盖了未被建模的业务条件。

5. 比较方案时保留上下文 ​

比较需要相同目标方向、单位、参数快照和业务范围。目标相同的两份解可能在设备分配、稳定性或公平性上不同;若这些差异重要,应成为明确指标或次级目标。

不同输入下的目标变化可能来自需求或容量,而不是算法更好。未证明最优的两次结果不能仅按目标值差宣称某项规则的全局收益。见场景分析和临界约束自动分析。

6. 从求解结果到业务报告 ​

建议报告模型身份、求解状态、是否有解、目标值与单位、界、gap 定义、终止原因以及业务指标。没有相应证据的字段保持缺失或未知。

不可行性分析进一步解释无解原因;多目标优化解释不同业务优先级下的结果意义。