3. 约束条件的建模方法
在非线性约束优化中,目标函数决定“往哪里走”,而约束条件决定“哪些地方不能走、哪些地方必须贴着走”。约束建模的核心任务,是把现实世界中的物理规律、资源上限、安全规范和逻辑规则,翻译成优化器能够识别的等式 h(x)=0 或不等式 g(x)≤0。这一步做得好不好,直接决定模型是否可解、解是否有物理意义、求解是否稳定。
本节围绕四类常见约束来源展开:物理规律、资源限制、安全规范与逻辑关系,并给出可操作的转化思路与示例。
一、物理规律:优先写成等式约束
物理规律通常表现为守恒关系或本构关系,例如质量守恒、能量守恒、力学平衡、电路基尔霍夫定律、热传导方程等。这类关系在数学上往往是“必须精确成立”的,因此优先建模为等式约束 h(x)=0。
以一个承压圆筒设计为例,设内半径 r、壁厚 t、内压 p,若要求筒壁平均环向应力满足薄壁近似 σ = p·r/t,而材料许用应力为 σ_allow,则安全条件可写为不等式约束:
g1(x) = p·r/t − σ_allow ≤ 0
若问题中还要求筒体总体积固定为 V0(例如容积给定),则体积关系 V = π·r²·L 应写成等式约束 h1(x) = π·r²·L − V0 = 0。注意:等式约束会“吃掉”一个自由度,因此不宜过多;当物理关系本身是近似的(如经验公式),更稳妥的做法是写成带容差的不等式,例如 |h(x)| ≤ ε,避免模型过度刚性。
二、资源限制:不等式约束的主力场景
资源限制包括材料用量、功率上限、时间预算、资金额度、算力配额等,其共同特征是“不超过”或“不少于”,天然对应不等式约束。建模时要注意两点:一是量纲要统一,二是要区分“硬上限”和“软目标”。
例如某生产计划中,两种原料用量 x1、x2 对应单位成本 c1、c2,总预算为 B,则约束为 c1·x1 + c2·x2 ≤ B。若某设备功率与产量呈非线性关系 P(x) = a·x^1.5,额定功率为 P_max,则约束写成 a·x^1.5 − P_max ≤ 0。这里的关键是保留真实的非线性形式,不要为了“好解”而随意线性化,否则可能得到看似可行、实际超限的方案。
c1·x1 + c2·x2 ≤ B 两边同除以 B,得到无量纲形式,可显著改善求解器对约束尺度的敏感度。三、安全规范:留裕度、设边界
安全规范往往以标准条文形式给出,如“安全系数不低于 1.5”“温度不得超过 80 ℃”“变形量不超过 L/250”。这类约束在数学上仍是 g(x)≤0,但建模时要主动引入安全裕度,而不是贴着规范临界值建模。
例如要求应力安全系数 n = σ_y/σ ≥ 1.5,可写成 1.5·σ − σ_y ≤ 0;若考虑载荷不确定性,可进一步写成 1.5·σ − 0.9·σ_y ≤ 0,用折减系数体现保守性。对于“必须位于某区间”的规范要求(如温度 T ∈ [T_min, T_max]),应拆成两条不等式:T_min − T ≤ 0 与 T − T_max ≤ 0,而不是写成一条含绝对值的式子,便于求解器逐条处理。
四、逻辑关系:用辅助变量与大 M 转化
逻辑关系是约束建模中最容易被忽视、也最容易出错的部分。典型形式包括“若 A 则 B”“A 与 B 至少选一个”“A、B 互斥”等。这类关系不能直接写成连续不等式,需要引入 0-1 辅助变量,配合“大 M”技巧转化为线性或非线性不等式组。
设 y ∈ {0,1} 表示某设备是否启用。若“启用时产量 x 不超过 U,停用时 x=0”,可写为:
x ≤ U·y
x ≥ 0
若“A 与 B 至少选一个”,设 y_A + y_B ≥ 1;若“互斥”,则 y_A + y_B ≤ 1。当逻辑条件与非线性函数耦合时,例如“仅当温度 T 超过阈值 T0 时才允许开启冷却”,可写成 T − T0 ≤ M·(1−y),其中 M 是足够大的常数。M 取值过大会导致数值病态,过小则会错误地“剪掉”可行解,实践中应取“该约束可能出现的最大差值”并留 10%~20% 余量。
五、建模后的自检清单
约束写完后,建议做一次系统自检,避免“形式正确、语义错误”。可参考以下检查项:
- 量纲一致性:每条约束左右两侧单位是否相同,常数是否与变量同量纲。
- 可行域非空:用一组典型设计点代入,确认至少存在一个满足全部约束的点;若全部违反,说明约束过紧或符号写反。
- 约束尺度:各约束的典型量级是否接近,必要时归一化,避免某条约束数值过大主导求解。
- 冗余与冲突:检查是否存在两条约束互相矛盾(如
x≥5与x≤3),或某条约束被其他约束完全蕴含。 - 逻辑变量取值:确认 0-1 变量在松弛求解后是否被正确固定,大 M 是否足够大且不过大。
综上,约束建模不是简单的“把条件抄成公式”,而是一次有意识的语义翻译:物理规律优先等式、资源限制用不等式、安全规范留裕度、逻辑关系借辅助变量转化。四类来源对应四种处理策略,配合量纲、尺度与可行性自检,才能得到既数学可解、又工程可用的非线性约束优化模型。