最优化理论

来源:互联网 发布:ubuntu关闭网卡 编辑:程序博客网 时间:2024/06/07 18:08

   最优化(optimization),应用数学的重要研究领域.它是研究在给定约束之下如何寻求某些因素(的量),以使某一(或某些)指标达到最优的一些学科的总称.由于运筹学中出现的问题大多即是最优化所研究的问题,因此运筹学的许多分支,如数学规划、组合最优化、排队论,以及决策论等也是最优化的组成部分.此外,最优化还包括如工程最优设计、最优控制(控制论与运筹学的交叉分支)等.

    狭义地说,最优化即指数学规划,有时也专指非线性规划.

主要研究以下形式的问题:

    给定一个函数f:A\to \mathbb{R},寻找一个元素\mathbf{x}^0\in A使得对于所有A中的\mathbf{x}f(\mathbf{x}^0)\leq f(\mathbf{x})(最小化);或者f(\mathbf{x}^0)\geq f(\mathbf{x})(最大化)

    这类定式有时还称为“数学规划”(譬如,线性规划)。许多现实和理论问题都可以建模成这样的一般性框架。

典型的,A一般为欧几里得空间\mathbb{R}^n中的子集,通常由一个A必须满足的约束等式或者不等式来规定。 A的元素被称为是可行解。函数f被称为目标函数,或者费用函数。一个最小化(或者最大化)目标函数的可行解被称为最优解

一般情况下,会存在若干个局部的极小值或者极大值。局部极小值x^*定义为对于一些\delta>0,以及所有的x 满足

                                \|\mathbf{x}-\mathbf{x}^*\|\leq\delta;

公式                               f(\mathbf{x}^*)\leq f(\mathbf{x})

成立。这就是说,在\mathbf{x}^*周围的一些闭球上,所有的函数值都大于或者等于在该点的函数值。一般的,求局部极小值是容易的,但是要确保其为全域性的最小值,则需要一些附加性的条件,例如,该函数必须是凸函数。

主要分支:

线性规划
当目标函数f是线性函数而且集合A是由线性等式函数和线性不等式函数来确定的, 我们称这一类问题为线性规划
整数规划
当线性规划问题的部分或所有的变量局限于整数值时, 我们称这一类问题为整数规划问题
二次规划
目标函数是二次函数,而且集合A必须是由线性等式函数和线性不等式函数来确定的。
非线性规划
研究的是目标函数或是限制函数中含有非线性函数的问题。
随机规划
研究的是某些变量是随机变量的问题。
动态规划
研究的是最优策略基于将问题分解成若干个较小的子问题的优化问题。
组合最优化
研究的是可行解是离散或是可转化为离散的问题。
无限维最优化
研究的是可行解的集合是无限维空间的子集的问题,一个无限维空间的例子是函数空间。


方法:

对于无约束的优化问题, 如果函数是二次可微的话,可以通过找到目标函数梯度为0(也就是鞍点)的那些点来解决此优化问题。我们需要用黑塞矩阵来确定此点的类型。如果黑塞矩阵是正定的话,该点是一个局部最小解, 如果是负定的话,该点是一个局部最大解,如果黑塞矩阵是不定的话,该点是某种鞍点。

要找到那些拐点,我们可以通过猜测一个初始点,然后用比如以下的迭代的方法来找到。

  • 梯度下降法
  • 牛顿法
  • 共轭梯度法
  • 线性搜索
  • 置信域方法

如果目标函数在我们所关心的区域中是凸函数的话,那么任何局部最小解也是全局最优解。现在已经有稳定,快速的数值计算方法来求二次可微地凸函数的最小值。

有约束条件的约束问题常常可以通过拉格朗日乘数转化为非约束问题。

其他一些流行的方法有:

  • 模拟退火
  • 遗传算法
  • 类免疫算法
  • 演化策略
  • 差异演化算法
  • 微粒群算法
  • 神经网络
  • 支持向量机

人工智能和最优化

现代的计算机科学技术和人工智能科学把最优化作为一个重要的领域来研究。我们也可以认为人工智能的一些算法,就是模拟了人类寻求实际问题最优解的过程。例如,利用人工智能方法设计软件,配合外部的电子设备例如摄像头识别人脸;利用数据挖掘和神经网络算法来寻找投资的最佳时机等等。

原创粉丝点击