Wolfram 语言中约束最优化介绍
最优化问题
约束最优化问题是在约束条件 下最小化或最大化一个函数 的一类问题. 这里 称为目标函数, 而 是一个布尔值的公式. 在 Wolfram 语言中约束条件 可以是等式 ,弱不等式 ,严格不等式 和 语句的任意一个布尔组合. 我们将使用下面的符号表示.
下面我们对约束最优化问题进行更确切的描述,为简要起见,我们的讨论范围限制在最小化问题上.
全局最优化
我们说点 是 在约束条件 下的一个全局最小值点,如果 满足这些约束条件并且对于任意满足这些约束条件的点 都有 .
我们说值 是 在约束条件 下的一个全局最小值,如果对于任意满足约束条件的点 都有.
全局最小值 对于任意 和 都存在. 我们可以得到全局最小值 ,如果存在一个点 满足 的值为 true 并且. 这样的一个点 必然是全局最小值.
如果 是一个连续函数并且满足约束条件 的点集是紧緻的(闭集并且有界) 和非空的,那么一个全局最小值是存在的. 否则一个全局最小值可能存在也可能不存在.
局部最优化
我们说点 是 在约束条件 下的一个局部最小值,如果 满足约束条件,并且对于某 ,如果 满足 ,那么 .
一个局部最小值可能不是全局最小值. 一个全局最小值总是局部最小值.
求解最优化问题
用以求解局部和全局最优化问题的方法取决于特定问题的类型. 最优化问题可以根据一些不同的标准分类. 根据所涉及到的函数类型,我们有线性和非线性 (多项式、代数、超越、 ...) 最优化问题. 如果约束条件涉及 ,我们就有了整数以及整数-实数混合最优化问题. 此外,最优化算法可分为数值和符号化 (精确) 算法.
关于约束最优化的 Wolfram 语言函数包括 Minimize、Maximize、关于全局约束最优化的NMinimize、NMaximize、关于局部约束最优化的 FindMinimum 和提供了对线性最优化方法有效直接应用的 LinearOptimization. 下面的表格对各个函数进行了简要的总结.
函数 | 求解 | 算法 |
FindMinimum、FindMaximum | 数值局部最优化 | 线性规划方法、非线性内点算法、利用二阶导数 |
NMinimize、NMaximize | 数值全局最优化 | 线性规划方法、Nelder-Mead、差分进化、模拟退火、随机搜索 |
Minimize、Maximize | 精确全局最优化 | 线性规划方法、柱形代数分解、拉格朗日乘子法和其他分析方法、整数线性规划 |
LinearOptimization | 线性最优化 | 线性最优化方法(单纯型法、修正单纯型法、内点法) |