数学优化是根据某些标准从一组可用的替代方案中选择一个最佳元素。各种优化问题出现在从计算机科学和工程到运筹学和经济学的所有定量学科中,几个世纪以来,求解方法的发展一直引起数学界的兴趣。
在最简单的情况下,优化问题包括通过从允许的集合中系统地选择输入值并计算函数的值来最大化或最小化实际函数。将优化理论和技术推广到其他公式构成了应用数学的一个大领域。更一般地,优化包括在给定定义域(或输入)的情况下找到某些目标函数的“最佳可用”值,包括各种不同类型的目标函数和不同类型的域。
优化问题
一个优化问题可以用以下方式表示:
给定:一个函数 f : A → ℝ从某个集合 A到实数求:一个元素
这样的公式被称为优化问题或数学规划问题。许多现实世界和理论问题都可以在这个通用框架中建模。
由于以下是有效的
和
解决最小化问题更方便。然而,相反的观点也是有效的。
在物理领域使用这种技术制定的问题可以将这种技术称为能量最小化,将函数的值表示为被建模系统的能量。在机器学习中,总是有必要通过使用成本函数来持续评估数据模型的质量,其中最小值意味着一组可能具有最优(最低)误差的最优参数。
通常,是欧几里得空间
的成员必须满足的一组约束、等式或不等式指定。
的域A称为搜索空间或选择集,而
的元素称为候选解或可行解。

在数学中,传统的优化问题通常用最小化来表述。
局部最小值
也就是说,在
虽然局部最小值至少与任何附近元素一样好,但全局最小值至少与每个可行元素一样好。通常,除非目标函数在最小化问题中是凸的,否则可能存在多个局部最小值。在凸问题中,如果存在内部的局部最小值(不在可行元素集的边缘),它也是全局最小值,但非凸问题可能有多个局部最小值,并非所有的都需要成为全球最小值。
为解决非凸问题而提出的大量算法无法区分局部最优解和全局最优解,并将前者视为原始问题的实际解。全局优化是应用数学和数值分析的一个分支,它与确定性算法的开发有关,这些算法能够保证在有限时间内收敛到非凸问题的实际最优解。
主要子领域
- 凸规划研究目标函数为凸(最小化)或凹(最大化)且约束集为凸的情况。这可以看作是非线性规划的一个特例,或者是线性或凸二次规划的推广。
- 整数规划研究线性规划,其中一些或所有变量被约束为整数值。
- 二次规划允许目标函数具有二次项,而可行集必须用线性等式和不等式指定。对于二次项的特定形式,这是一种凸规划。
- 分数规划研究优化两个非线性函数的比率。特殊类别的凹分数规划可以转化为凸优化问题。
- 非线性规划研究目标函数或约束或两者都包含非线性部分的一般情况。
- 随机规划研究某些约束或参数取决于随机变量的情况。
- 与随机规划一样,稳健优化是试图捕捉优化问题背后的数据中的不确定性。稳健优化旨在找到在不确定性集定义的不确定性的所有可能实现下都有效的解决方案。
- 组合优化与可行解集是离散的或可以简化为离散解的问题有关。
- 随机优化与随机(噪声)函数测量或搜索过程中的随机输入一起使用。
- 无限维优化研究可行解集是无限维空间(例如函数空间)的子集的情况。
- 启发式和元启发式对正在优化的问题做出很少或没有假设。通常,启发式方法不保证需要找到任何最佳解决方案。另一方面,启发式算法用于为许多复杂的优化问题找到近似解。
- 约束满足研究目标函数f为常数的情况(这用于人工智能,特别是在自动推理中)。
- 析取编程用于必须满足至少一个约束但不是全部的情况。它在调度中特别有用。
- 空间映射是利用合适的物理上有意义的粗略或替代模型对工程系统进行建模和优化以实现高保真(精细)模型精度的概念。
多目标优化
向优化问题添加多个目标会增加复杂性。例如,为了优化结构设计,人们需要一种既轻便又坚固的设计。当两个目标发生冲突时,必须进行权衡。可能有一种最轻的设计,一种最硬的设计,以及无数种重量和刚度折衷的设计。以牺牲另一个标准为代价改进一个标准的一组权衡设计称为帕累托集。绘制重量与最佳设计刚度的曲线被称为帕累托前沿。
如果一个设计不受任何其他设计支配,则该设计被判断为“帕累托最优”:如果它在某些方面比另一个设计更差并且在任何方面都没有更好,那么它是支配的并且不是帕累托最优的。
决定“最喜欢的解决方案”的“帕累托最优”解决方案的选择被委托给决策者。换句话说,将问题定义为多目标优化表明缺少一些信息:给出了理想的目标,但它们的组合没有相对于彼此进行评级。在某些情况下,缺失的信息可以通过与决策者的互动会议获得。
多模式或全局优化
优化问题通常是多模态的;也就是说,他们拥有多个好的解决方案。它们可能都是全局好的(相同的成本函数值),也可能是全局好的和本地好的解决方案的混合。获得所有(或至少部分)多个解决方案是多模式优化器的目标。
经典优化技术由于其迭代方法而在用于获得多个解决方案时不能令人满意地执行,因为不能保证即使在算法的多次运行中具有不同的起点也会获得不同的解决方案。
可能存在多个局部极值的全局优化问题的常用方法包括进化算法、贝叶斯优化和模拟退火。