4. 风险度量与评价指标体系
在全局优化中,我们真正担心的不是“算法没收敛”,而是“算法收敛到了一个看起来很好、实际上很差的点”。局部最优风险的本质是决策不确定性:同一个问题、同一套约束,换一个起点、换一次扰动,结果可能相差很大。因此,风险度量不能只看最终目标函数值,而要从多个维度刻画“这个解有多可信”。本节建立一套可落地的指标体系,并给出风险等级划分与评估流程。
四个核心指标:从“差多少”到“稳不稳”
1. 解的质量差距(Quality Gap)。 设当前解为 x*,目标值为 f(x*);用多起点或更强算法得到的参考最优值为 f_ref(若已知理论下界 LB,则用 LB 替代)。相对质量差距定义为:
gap_rel = (f(x*) - f_ref) / max(|f_ref|, ε)
其中 ε 取一个很小的正数(如 1e-8)防止除零。若 f_ref 未知,可用“多次运行中的最好值”作为参考,此时 gap 反映的是“当前解相对于已知最好解差多少”。工程上更常用的是相对差距百分比,便于跨问题比较。
2. 稳定性(Stability)。 对同一初始点做 K 次轻微扰动(如对初始向量加 N(0, σ²) 噪声,σ 取变量量级的 1%~5%),记录每次收敛的目标值 f_1…f_K,用变异系数衡量:
CV = std(f_1…f_K) / max(|mean(f_1…f_K)|, ε)
CV 越小,说明解对微小扰动越不敏感,稳定性越好。注意:稳定性高不等于质量高——一个稳定收敛到次优点的算法,CV 可能很小,但 gap 很大,两者必须联合看。
3. 初始条件敏感度(Sensitivity)。 在变量空间内均匀撒 M 个起点(如拉丁超立方采样),统计落入不同“吸引域”的比例。若 M 个起点收敛到 B 个明显不同的局部解,且最优解被命中的比例仅为 p,则敏感度可量化为 S = 1 - p。S 接近 1 表示“换个起点就换答案”,风险高;S 接近 0 表示解对起点不敏感。
4. 多起点一致性(Consistency)。 定义一致率为:收敛到与当前解目标值相差不超过 δ(如 1%)的起点数占总起点数的比例。一致率高,说明当前解是“多数起点都能到达”的主吸引域,可信度更高;一致率低则提示存在多个竞争性局部解,需要进一步排查。
指标怎么算:一个可复现的评估流程
下面给出一个可直接套用的评估流程,以二维非凸目标函数为例(示例参数为教学假设,非实测)。设目标函数为 f(x,y) = (x² + y − 11)² + (x + y² − 7)²(Himmelblau 函数),变量范围 [-5, 5]²,已知全局最优值约为 0。评估步骤如下:
- 生成起点集。 用拉丁超立方在
[-5,5]²内采样M = 50个起点,保证覆盖均匀。 - 批量求解。 每个起点用同一局部算法(如拟牛顿法)求解,记录收敛点、目标值、迭代次数与收敛标志。
- 聚类去重。 将收敛点按距离阈值(如 0.1)聚类,得到若干候选局部解,统计每个解的命中次数。
- 计算四指标。 以命中次数最多的解为当前解,计算 gap、CV(对最优解附近 10 个起点做扰动重解)、S 与一致率。
- 加权打分并定级。 按
R = 0.4·gap_norm + 0.2·CV_norm + 0.2·S + 0.2·(1−一致率)计算,其中gap_norm与CV_norm做 min-max 归一化到 [0,1]。
假设某次运行结果:50 个起点中 32 个收敛到全局最优附近(一致率 0.64),12 个落入一个目标值约 4.0 的局部解,6 个未收敛;最优解附近扰动 10 次的 CV 为 0.03;gap 约为 0(因为命中了全局最优)。则 S = 1 − 0.64 = 0.36,综合分约为 0.4×0 + 0.2×0.03 + 0.2×0.36 + 0.2×0.36 ≈ 0.15,处于中风险边界——虽然找到了全局最优,但仍有超过三分之一的起点“跑偏”,说明问题地形复杂,若换一批起点,结果未必稳定。
风险等级划分与处置动作
风险等级不是给解“贴标签”,而是决定下一步动作。建议按综合分 R 划分四档,并绑定明确的处置策略:
| 等级 | 综合分 R | 典型特征 | 处置动作 |
|---|---|---|---|
| 低风险 | < 0.15 | gap 小、CV 小、一致率高 | 直接采用,记录指标备查 |
| 中风险 | 0.15~0.40 | 某一维偏高,其余正常 | 增加起点数或换算法复核,确认主吸引域 |
| 高风险 | ≥ 0.40 | gap 大或一致率低、多解竞争 | 重优化:多算法交叉验证、全局搜索兜底 |
| 不可判定 | — | 样本不足、指标相互矛盾 | 补采样、检查收敛标志与约束可行性 |
让指标真正可用的三个细节
第一,归一化要固定口径。 gap 和 CV 的量纲随问题变化,必须用同一批评估样本做 min-max 或分位数归一化,且归一化参数要随评估报告一起存档,否则不同批次的风险分不可比。
第二,权重按决策后果设定。 若一次错误决策代价极高(如工程设计安全裕度),应提高 gap 与一致率的权重;若算法需在线反复调用、对抖动敏感,则提高 CV 权重。权重不是数学问题,是业务判断,必须写明理由。
第三,把评估流程固化为脚本。 手工统计 50 个起点容易出错,建议将“采样—求解—聚类—打分—定级”写成可重复执行的脚本,输出一张包含四指标、综合分、等级与建议动作的评估表。每次优化结果交付时附带该表,风险就从“感觉”变成了“证据”。
至此,局部最优风险有了可计算、可比较、可定级的度量体系。后续无论做算法选型还是结果验收,都可以用同一套指标说话,避免“这个解看起来不错”式的模糊判断。