优化
数学优化是在给定可行范围内寻找目标函数最小值或最大值的问题。最小化 与最大化 可以互相转换。一个优化模型必须说明决策变量、目标与约束;“最好”只有在这些选择明确后才有数学含义。
目标函数与可行域
一般约束优化可写为 满足所有约束的点构成可行域。不可行的问题没有可行解;有可行解也未必能取得最小值。例如 的下确界为 0,却没有可行点达到 0。连续函数在非空紧集上一定能取得最大、最小值,这是常用的存在性保证。
一个带边界的一维例子
考虑 没有约束时,导数 给出 ,但该点不可行。对所有 ,函数递增,所以最优点为 ,最小值为 1。
若在可行域内部取得局部极小值,且函数可微,那么梯度为零是必要条件。但驻点不一定是极小值,例如 在 0 的导数为零却没有极值。
局部最优、全局最优与凸性
局部最优只要求在附近没有更好点;全局最优要求整个可行域都没有更好点。集合 凸是指任意两点间的线段都在集合内。函数在凸域上凸,是指对 , 凸优化问题的局部极小点也是全局极小点。这并不自动保证最优点存在或唯一;严格凸函数若在凸域上取得最小值,才保证最优点唯一。线性规划要求线性目标与线性等式、不等式约束,是重要的凸优化类别。
拉格朗日乘子怎样使用
求 在 下的最小值。定义 令对 的偏导为零,并满足约束,得到 、、,所以 ,目标值为 。
这次结论还可直接验证:由 ,等号恰在 时成立。一般问题使用乘子法需要约束正则性等条件,求出驻点后仍需判断它是极小、极大还是其他情形。
梯度下降与步长
无约束可微问题常用迭代 ,其中 是步长。对 ,误差满足 只有 时,这个固定步长迭代对任意初值都收敛到 1;步长过大会振荡或发散。这个区间是本例结论,不能照搬到所有目标函数。
解得精确不等于模型正确
数学建模中的目标可能是误差、成本或耗时,不同目标会产生不同解。多目标问题需要说明权衡,数值软件报告“成功”后还应检查约束残差、最优性条件和参数敏感性。整数决策、非凸结构和噪声目标可能需要不同算法。
延伸阅读
- Stephen Boyd、Lieven Vandenberghe,《Convex Optimization》:凸集、凸函数、最优性条件与算法。
- 导数 · 线性代数 · 数学建模