工程分析/优化
优化 是工程学中一个重要的概念。找到问题的任何解决方案都不如找到问题的唯一“最佳解决方案”。优化问题通常被重新格式化,使它们成为最小化问题,这是数学领域中得到充分研究的问题。
通常,在优化系统时,该系统的成本和收益被安排到一个成本函数中。然后,工程师的工作就是最小化这个成本函数(从而最小化系统的成本)。值得注意的是,在这一点上,“成本”这个词可以有多种含义,具体取决于具体的问题。例如,成本可以指系统的实际货币成本(用于托管网站的计算机单元数量、连接费城和纽约所需的电缆数量)、系统的延迟(网站的加载时间、通信网络的传输延迟)、系统的可靠性(手机网络中的掉话次数、汽车变速箱的平均寿命)或任何其他类型的因素,这些因素会降低系统的有效性和效率。
由于优化通常变成数学上的最小化问题,因此我们将在此讨论最小化。
最小化是找到给定函数中数值最低点,或给定函数特定范围内最低点的行为。数学和微积分的学生可能还记得使用函数的导数来找到函数的极大值和极小值。如果我们有一个函数 f(x),我们可以通过求解以下方程中的 x 来找到极大值、极小值或鞍点(函数斜率为零但不是极大值或极小值的点)
换句话说,我们正在寻找函数 f 导数的根以及 f 有角点的那些点。一旦我们有了函数的所谓临界点(如果有),我们可以测试它们,看看它们是相对高(最大值)还是相对低(最小值)。在这个上下文中要记住的一些词是
- 全局最小值
- 函数的全局最小值是该函数在任何地方的最低值。如果函数的定义域受限,比如 A < x < B,那么最小值也会出现在边界,这里 A 或 B。
- 局部最小值
- 函数的局部最小值是该函数在某个小范围内最低的值。因此,一个值可以是局部最小值,即使存在更小的函数值,但不在一个小的邻域内。
无约束最小化是指在不需要考虑任何其他规则或注意事项的情况下对给定函数进行最小化。另一方面,约束最小化是指在必须同时满足其他称为约束的关系的情况下进行最小化的问题。
除了上述方法(我们对函数求导并将其设为零),还有几种数值方法可用于找到函数的最小值。对于这些方法,有一些有用的计算工具,例如Matlab。
如果Hessian矩阵 H(x) 是正定的,则函数在点 x 处有一个局部最小值
其中 x 是函数的所有自变量的向量。如果 x 是一个标量变量,则 Hessian 矩阵简化为函数 f 的二阶导数。
计算函数 f 最小值的牛顿-拉夫森方法使用迭代计算。我们可以定义序列
其中
当我们重复上述计算,代入 n 的连续值时,我们的解将收敛于真实解。但是,这个过程将需要无限次迭代才能收敛,但是如果真实解的近似值就足够了,你可以在仅几次迭代后停止,因为该序列收敛得相当快(二次收敛)。
牛顿-拉夫森方法可能很棘手,因为它依赖于函数 f 的二阶导数,这在很多时候可能很难(如果不是不可能)准确计算。然而,最速下降法不需要二阶导数,但它需要选择一个适当的标量 ε,该标量不能任意选择(但也不能使用固定公式计算)。最速下降法由以下迭代计算定义
其中epsilon需要足够小。如果epsilon太大,迭代可能会发散。如果发生这种情况,需要选择新的epsilon值,并重复该过程。
共轭梯度法
[edit | edit source]约束最小化
[edit | edit source]约束最小化是在一定数量的称为约束的附加规则下找到函数最小值的過程。例如,我们可以说“找到f(x)的最小值,但g(x)必须等于10”。这类问题更难,但Khun-Tucker定理以及Karush-Khun-Tucker定理有助于解决它们。
约束有两种类型:等式约束和不等式约束。我们将分别考虑它们,然后是混合约束。
等式约束
[edit | edit source]Khun-Tucker定理是一种在等式约束g(x)下最小化函数f(x)的方法。该定理如下所示
给定成本函数f和以下形式的等式约束g
- ,
然后我们可以通过构造f和g的拉格朗日函数将此问题转换为无约束最小化问题
其中Λ是拉格朗日乘子,< , >表示向量空间Rn(其中n是等式约束的数量)的标量积。我们将在后面更详细地讨论标量积。如果我们对这个方程关于x求导,我们可以找到这个整个函数L(x,Λ)的最小值,这将是我们函数f的最小值。
这是一个包含n+k个方程和n+k个未知变量(n个Λ和k个x)的方程组。
不等式约束
[edit | edit source]与上述方法类似,假设我们有一个成本函数f,以及以下形式的不等式约束
然后我们可以再次取这个的拉格朗日函数
但现在我们必须使用以下三个方程/不等式来确定我们的解
最后两个方程可以这样解释
- 如果,那么
- 如果 ,那么
利用这两个附加方程/不等式,我们可以用与上述类似的方法求解。
混合约束
[edit | edit source]如果我们有一组等式和不等式约束
我们可以将它们组合成一个拉格朗日函数,并添加两个附加条件
无限维最小化
[edit | edit source]上述方法在分析中涉及的变量是有限维向量(如RN中的向量)时效果很好。然而,当我们试图最小化比向量更复杂的某些东西时,例如函数,我们需要以下概念。我们考虑存在于L2(RN)的子空间中的函数,这是一个无限维向量空间。我们将定义术语泛函如下
- 泛函
- 泛函是一个映射,它接受一个或多个函数作为参数,并返回一个标量值。
假设我们考虑时间t的函数x(N=1)。进一步假设我们有一个固定函数f,它包含两个变量。利用该函数,我们可以关联一个成本泛函J
其中,我们明确地考虑了f定义中的t。为了最小化这个函数,就像所有最小化问题一样,我们需要对函数求导并将其导数设为零。但是,我们需要稍微更复杂的导数版本,因为x是一个函数。这就是Gateaux导数进入该领域的原因。
Gateaux导数
[edit | edit source]我们可以用以下极限定义Gateaux导数
这类似于方向h上导数的经典定义。简单地说,我们对x在方向h上求取了F的导数。h是时间的任意函数,与x在同一个空间(这里我们谈论的是L2空间)。与一维情况类似,如果上述极限存在,则函数在x处可微。我们可以使用Gateaux导数来找到我们上面泛函的最小值。
欧拉-拉格朗日方程
[edit | edit source]我们现在将使用上面讨论的Gateaux导数来找到以下类型函数的最小值
因此,我们必须找到以下方程的解
该解是欧拉-拉格朗日方程
忽略 x 是 t 的函数这一事实,以常规方式进行偏导。该方程的解要么是成本函数 J 的最大值、最小值,要么是鞍点。
示例:最短距离
[edit | edit source]我们常说两点之间最短距离是直线。我们可以用欧拉-拉格朗日方程来证明这条规则。
如果我们在 R2 中有两个点 a 和 b ,我们想要找到连接这两个点的最小曲线 (x,y(x)) 。线元素 ds 读作
我们试图最小化的函数定义为
或
我们可以对函数 J 求 Gateaux 导数,并将其设为零以找到这两个点之间的最小函数。将平方根记为 f ,我们得到
已知线元素将是有限的,这归结为方程
其众所周知的解为