优化:修订间差异
AIContentBot(留言 | 贡献) 上线数学百科初始内容与排版 |
AIContentBot(留言 | 贡献) 扩充定义、推导、算例、边界条件与原创 SVG 配图(AI 辅助整理,算例已复算) |
||
| 第1行: | 第1行: | ||
数学优化是在给定可行范围内寻找目标函数最小值或最大值的问题。最小化 <math>f</math> 与最大化 <math>-f</math> 可以互相转换。一个优化模型必须说明决策变量、目标与约束;“最好”只有在这些选择明确后才有数学含义。 | |||
== | == 目标函数与可行域 == | ||
一般约束优化可写为 | |||
<math display="block">\min_{x\in\mathbb R^n}f(x)\quad\text{使得}\quad g_i(x)\le0,\ h_j(x)=0.</math> | |||
满足所有约束的点构成可行域。不可行的问题没有可行解;有可行解也未必能取得最小值。例如 <math>\min_{x>0}x</math> 的下确界为 0,却没有可行点达到 0。连续函数在非空紧集上一定能取得最大、最小值,这是常用的存在性保证。 | |||
== | == 一个带边界的一维例子 == | ||
考虑 | |||
<math display="block">\min_{x\ge2}(x-1)^2.</math> | |||
没有约束时,导数 <math>2(x-1)=0</math> 给出 <math>x=1</math>,但该点不可行。对所有 <math>x\ge2</math>,函数递增,所以最优点为 <math>x=2</math>,最小值为 1。 | |||
== | [[File:Gezhi-optimization-boundary.svg|frame|center|alt=函数x减一的平方在x大于等于二的可行区域内,最小值位于边界二一,而无约束最低点一零不可行|约束改变最优解;只解“导数等于零”会漏掉边界最优点。]] | ||
* [[导数]] | 若在可行域内部取得局部极小值,且函数可微,那么梯度为零是必要条件。但驻点不一定是极小值,例如 <math>f(x)=x^3</math> 在 0 的导数为零却没有极值。 | ||
== 局部最优、全局最优与凸性 == | |||
局部最优只要求在附近没有更好点;全局最优要求整个可行域都没有更好点。集合 <math>C</math> 凸是指任意两点间的线段都在集合内。函数在凸域上凸,是指对 <math>0\le t\le1</math>, | |||
<math display="block">f(tx+(1-t)y)\le t f(x)+(1-t)f(y).</math> | |||
凸优化问题的局部极小点也是全局极小点。这并不自动保证最优点存在或唯一;严格凸函数若在凸域上取得最小值,才保证最优点唯一。线性规划要求线性目标与线性等式、不等式约束,是重要的凸优化类别。 | |||
== 拉格朗日乘子怎样使用 == | |||
求 <math>x^2+y^2</math> 在 <math>x+y=1</math> 下的最小值。定义 | |||
<math display="block">L(x,y,\lambda)=x^2+y^2+\lambda(x+y-1).</math> | |||
令对 <math>x,y</math> 的偏导为零,并满足约束,得到 <math>2x+\lambda=0</math>、<math>2y+\lambda=0</math>、<math>x+y=1</math>,所以 <math>x=y=1/2</math>,目标值为 <math>1/2</math>。 | |||
这次结论还可直接验证:由 <math>x^2+y^2=((x+y)^2+(x-y)^2)/2\ge1/2</math>,等号恰在 <math>x=y</math> 时成立。一般问题使用乘子法需要约束正则性等条件,求出驻点后仍需判断它是极小、极大还是其他情形。 | |||
== 梯度下降与步长 == | |||
无约束可微问题常用迭代 <math>x_{k+1}=x_k-\eta\nabla f(x_k)</math>,其中 <math>\eta>0</math> 是步长。对 <math>f(x)=(x-1)^2</math>,误差满足 | |||
<math display="block">x_{k+1}-1=(1-2\eta)(x_k-1).</math> | |||
只有 <math>0<\eta<1</math> 时,这个固定步长迭代对任意初值都收敛到 1;步长过大会振荡或发散。这个区间是本例结论,不能照搬到所有目标函数。 | |||
== 解得精确不等于模型正确 == | |||
[[数学建模]]中的目标可能是误差、成本或耗时,不同目标会产生不同解。多目标问题需要说明权衡,数值软件报告“成功”后还应检查约束残差、最优性条件和参数敏感性。整数决策、非凸结构和噪声目标可能需要不同算法。 | |||
== 延伸阅读 == | |||
* [https://stanford.edu/~boyd/cvxbook/ Stephen Boyd、Lieven Vandenberghe,《Convex Optimization》]:凸集、凸函数、最优性条件与算法。 | |||
* [[导数]] · [[线性代数]] · [[数学建模]] | |||
[[分类:应用与建模]] | [[分类:应用与建模]] | ||
2026年9月20日 (日) 00:33的版本
数学优化是在给定可行范围内寻找目标函数最小值或最大值的问题。最小化 与最大化 可以互相转换。一个优化模型必须说明决策变量、目标与约束;“最好”只有在这些选择明确后才有数学含义。
目标函数与可行域
一般约束优化可写为 满足所有约束的点构成可行域。不可行的问题没有可行解;有可行解也未必能取得最小值。例如 的下确界为 0,却没有可行点达到 0。连续函数在非空紧集上一定能取得最大、最小值,这是常用的存在性保证。
一个带边界的一维例子
考虑 没有约束时,导数 给出 ,但该点不可行。对所有 ,函数递增,所以最优点为 ,最小值为 1。
若在可行域内部取得局部极小值,且函数可微,那么梯度为零是必要条件。但驻点不一定是极小值,例如 在 0 的导数为零却没有极值。
局部最优、全局最优与凸性
局部最优只要求在附近没有更好点;全局最优要求整个可行域都没有更好点。集合 凸是指任意两点间的线段都在集合内。函数在凸域上凸,是指对 , 凸优化问题的局部极小点也是全局极小点。这并不自动保证最优点存在或唯一;严格凸函数若在凸域上取得最小值,才保证最优点唯一。线性规划要求线性目标与线性等式、不等式约束,是重要的凸优化类别。
拉格朗日乘子怎样使用
求 在 下的最小值。定义 令对 的偏导为零,并满足约束,得到 、、,所以 ,目标值为 。
这次结论还可直接验证:由 ,等号恰在 时成立。一般问题使用乘子法需要约束正则性等条件,求出驻点后仍需判断它是极小、极大还是其他情形。
梯度下降与步长
无约束可微问题常用迭代 ,其中 是步长。对 ,误差满足 只有 时,这个固定步长迭代对任意初值都收敛到 1;步长过大会振荡或发散。这个区间是本例结论,不能照搬到所有目标函数。
解得精确不等于模型正确
数学建模中的目标可能是误差、成本或耗时,不同目标会产生不同解。多目标问题需要说明权衡,数值软件报告“成功”后还应检查约束残差、最优性条件和参数敏感性。整数决策、非凸结构和噪声目标可能需要不同算法。
延伸阅读
- Stephen Boyd、Lieven Vandenberghe,《Convex Optimization》:凸集、凸函数、最优性条件与算法。
- 导数 · 线性代数 · 数学建模