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%)的起点数占总起点数的比例。一致率高,说明当前解是“多数起点都能到达”的主吸引域,可信度更高;一致率低则提示存在多个竞争性局部解,需要进一步排查。

四个指标的关系可以这样理解:gap 回答“差多少”,CV 回答“抖不抖”,S 回答“挑不挑起点”,一致率回答“大家是否都同意”。单看任何一个都可能误判,必须组合成风险画像。
局部最优风险四维指标 → 综合风险等级 解的质量差距 gap_rel = (f*−f_ref)/|f_ref| 看“差多少” 稳定性 CV = std/|mean| 看“抖不抖” 初始条件敏感度 S = 1 − 最优命中率 看“挑不挑起点” 多起点一致性 一致率 = 同域起点占比 看“是否都同意” 加权综合风险分 R R = w₁·gap + w₂·CV + w₃·S + w₄·(1−一致率) 低风险 R < 0.15,可直接采用 中风险 0.15 ≤ R < 0.40,需复核 高风险 R ≥ 0.40,须重优化 不可判定 样本不足或指标冲突 示例阈值仅作教学参考,实际项目应按问题规模与容差重新标定

指标怎么算:一个可复现的评估流程

下面给出一个可直接套用的评估流程,以二维非凸目标函数为例(示例参数为教学假设,非实测)。设目标函数为 f(x,y) = (x² + y − 11)² + (x + y² − 7)²(Himmelblau 函数),变量范围 [-5, 5]²,已知全局最优值约为 0。评估步骤如下:

  1. 生成起点集。 用拉丁超立方在 [-5,5]² 内采样 M = 50 个起点,保证覆盖均匀。
  2. 批量求解。 每个起点用同一局部算法(如拟牛顿法)求解,记录收敛点、目标值、迭代次数与收敛标志。
  3. 聚类去重。 将收敛点按距离阈值(如 0.1)聚类,得到若干候选局部解,统计每个解的命中次数。
  4. 计算四指标。 以命中次数最多的解为当前解,计算 gap、CV(对最优解附近 10 个起点做扰动重解)、S 与一致率。
  5. 加权打分并定级。 按 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.15gap 小、CV 小、一致率高直接采用,记录指标备查
中风险0.15~0.40某一维偏高,其余正常增加起点数或换算法复核,确认主吸引域
高风险≥ 0.40gap 大或一致率低、多解竞争重优化:多算法交叉验证、全局搜索兜底
不可判定—样本不足、指标相互矛盾补采样、检查收敛标志与约束可行性
常见误判:只看 gap 就宣布“找到全局最优”。若参考值本身来自同一起点族的局部搜索,gap 会系统性偏小。参考值必须来自独立来源(更强算法、理论下界或更大规模多起点),否则 gap 指标不可信。

让指标真正可用的三个细节

第一,归一化要固定口径。 gap 和 CV 的量纲随问题变化,必须用同一批评估样本做 min-max 或分位数归一化,且归一化参数要随评估报告一起存档,否则不同批次的风险分不可比。

第二,权重按决策后果设定。 若一次错误决策代价极高(如工程设计安全裕度),应提高 gap 与一致率的权重;若算法需在线反复调用、对抖动敏感,则提高 CV 权重。权重不是数学问题,是业务判断,必须写明理由。

第三,把评估流程固化为脚本。 手工统计 50 个起点容易出错,建议将“采样—求解—聚类—打分—定级”写成可重复执行的脚本,输出一张包含四指标、综合分、等级与建议动作的评估表。每次优化结果交付时附带该表,风险就从“感觉”变成了“证据”。

至此,局部最优风险有了可计算、可比较、可定级的度量体系。后续无论做算法选型还是结果验收,都可以用同一套指标说话,避免“这个解看起来不错”式的模糊判断。