理解求解结果
求解输出是“状态、候选方案和证明信息”的组合,不只是一个目标值。业务系统应先判断存在什么证据,再决定展示、继续计算或采用方案。
1. 可行、最优与未知
可行解满足模型中的全部条件;最优解还需要证明不存在更好的可行方案。incumbent 是求解过程中保留的当前最好可行解,不自动具有最优性证明。
| 情况 | 可以使用的信息 | 不应得出的结论 |
|---|---|---|
| 已证明最优 | 解与目标值,按声明容差成立的最优性 | 精确实数意义下零误差 |
| 有可行解,尚未证明最优 | 候选方案、目标值及已有界 | 没有其他更好的方案 |
| 已证明不可行 | 指定模型无可行方案 | 现实业务永远无解 |
| 已证明无界 | 目标沿可行方向可无限改善 | 应返回无限收益的业务方案 |
| 未知或中断且无解 | 停止原因、可能已有的界 | 模型不可行或零方案可行 |
“Infeasible or unbounded”之类未区分状态不能任选一种解释。求解调用失败、模型不支持和许可证错误也不是数学不可行。
2. 界与 gap
对于最小化问题,可行解值给出上界
相对 gap 的定义依赖后端。一个报告约定可以是:
这里
3. 例子:最大化收益的中途结果
模型
产品集合为
数据断言是单位工时为正。无其他谓词或辅助变量。约束与目标为:
解读
假设中途保留
“11 元方案”可以作为候选,但不应被写成“最高收益为 11 元”。如果上界尚未提供,只能报告已知收益和状态,不自行假定上界为 12。
4. 超时与业务可接受性
超时是执行终止原因,不是可行性状态。可能超时前已有可行方案,也可能只有界而没有方案。是否采用已有解取决于业务质量门槛、时效与安全要求;算法不能用默认值替业务作决定。
把浮点返回值四舍五入为整数后,需要重新检查约束和目标。独立舍入可能破坏资源上限、流平衡或逻辑关系。模型可行也不意味着覆盖了未被建模的业务条件。
5. 比较方案时保留上下文
比较需要相同目标方向、单位、参数快照和业务范围。目标相同的两份解可能在设备分配、稳定性或公平性上不同;若这些差异重要,应成为明确指标或次级目标。
不同输入下的目标变化可能来自需求或容量,而不是算法更好。未证明最优的两次结果不能仅按目标值差宣称某项规则的全局收益。见场景分析和临界约束自动分析。
6. 从求解结果到业务报告
建议报告模型身份、求解状态、是否有解、目标值与单位、界、gap 定义、终止原因以及业务指标。没有相应证据的字段保持缺失或未知。