1. 课程导入与问题界定
非线性约束优化并不是从公式开始的,而是从一句模糊的现实诉求开始的。工程师说“这个支架要更轻”,调度员说“这批订单要排得更紧”,控制工程师说“这条轨迹要更省能”,这些表述都还不是优化问题。把它们变成可计算模型,需要完成一次关键转换:明确决策变量、写出目标函数、识别约束条件、划定边界与精度要求。本章的任务不是求解,而是把问题“界定清楚”——这一步做错,后面再精确的算法也只会给出错误答案。
一、什么是非线性约束优化问题
一个标准形式可以写成:在可行域内寻找决策变量 x,使目标 f(x) 最小(或最大),同时满足等式约束 h(x)=0 与不等式约束 g(x)≤0。当 f、h、g 中至少有一个关于 x 是非线性的,问题即为非线性约束优化。这里的“非线性”不是数学装饰,它直接决定了可行域可能是弯曲的、非凸的,最优解可能落在约束边界上,也可能存在多个局部最优。
与线性规划相比,非线性约束优化有三个显著特征需要在建模阶段就意识到:第一,可行域形状复杂,约束之间可能相互挤压,导致可行域很窄甚至为空;第二,最优性条件依赖梯度信息,KKT 条件中的乘子与约束活跃状态成为判断解质量的关键;第三,初值敏感,不同起点可能收敛到不同局部解。因此,建模阶段必须同时回答“问题是什么”和“解大概长什么样”。
二、从场景到模型的四步界定
下面以一个工程中常见的示例说明界定过程。假设要设计一个承受内压的薄壁圆筒形容器,要求在满足强度与几何限制的前提下使材料用量最少。这是一个典型的非线性约束优化场景,因为壁厚与半径的乘积、应力与壁厚的关系都带有非线性。
第一步,确定决策变量。选择真正可自由调整、且能完整描述方案的量。本例取平均半径 R(mm)与壁厚 t(mm)为决策变量,记为 x=(R,t)。注意不要把由它们推导出的量(如体积、应力)也列为变量,否则会引入冗余等式约束。
第二步,写出目标函数。材料用量正比于筒体体积,示例中取单位长度体积 V=2πRt,目标为最小化 f(x)=2πRt。目标必须可计算、量纲明确,并且与真实诉求一致;若同时关心重量与成本,应通过加权或分层处理,而不是含糊地写“综合最优”。
第三步,识别约束。本例包含:强度约束(环向应力不超过许用应力)、几何约束(半径与壁厚在工艺范围内)、以及可能的稳定性约束。以薄壁公式为例,环向应力 σ=pR/t,强度约束可写为 pR/t ≤ σ_allow,整理为 g₁(x)=pR−σ_allow·t ≤ 0。几何约束写为 R_min≤R≤R_max、t_min≤t≤t_max。每个约束都要说明来源:是物理定律、安全规范,还是制造能力。
第四步,划定边界与输出要求。明确变量取值范围、单位统一、精度要求(如 t 精确到 0.1 mm)、以及交付物形式(最优变量值、目标值、活跃约束列表、收敛信息)。这一步常被忽略,却直接决定模型是否可复现。
三、界定阶段最容易犯的三类错误
第一类,变量选错。把不可控参数当作决策变量,或把派生量也设为变量,会让模型自由度虚高、约束冗余。判断标准很简单:这个量能否由设计者或调度者直接改变?若不能,它应作为参数进入模型。
第二类,约束遗漏或过强。遗漏硬约束会得到“数学上最优、工程上不可行”的解;约束过强则可能使可行域为空。建模时应先做一次可行性预判:用一组保守的初始值代入所有约束,观察是否满足;若明显不满足,说明边界设定或约束表达有误。
第三类,目标与约束混淆。把“必须满足的安全要求”写成目标中的惩罚项,会弱化其硬性地位。正确做法是:硬性要求进约束,偏好与权衡进目标,二者不要混用。
四、示例参数与预期判断
为便于后续章节衔接,给出示例假设参数:内压 p=2 MPa,许用应力 σ_allow=150 MPa,半径范围 200≤R≤400 mm,壁厚范围 2≤t≤20 mm,壁厚精度 0.1 mm。由强度约束可得 t ≥ pR/σ_allow,当 R=300 时要求 t≥4 mm。由于目标 2πRt 随 R 与 t 同时增大,直觉上最优会倾向于较小的 R 与刚好满足强度约束的 t,即强度约束很可能在最优处活跃。这一预判不是结论,而是建模阶段应记录的“预期解特征”,用于后续检验求解结果是否合理。
需要强调:上述数值为教学示例假设,并非实测数据。真正建模时,所有参数都应来自设计规范、材料手册或实测标定,并在模型中注明来源与不确定度。