📜  具有等式约束的多元优化

📅  最后修改于: 2021-08-27 06:47:17             🧑  作者: Mango

Wikipedia将优化定义为一个问题,在该问题中,您函数通过从允许的集合中系统选择输入值并计算函数的值来最大化或最小化实际函数。这意味着当我们谈论优化时,我们总是对寻找最佳解决方案感兴趣。因此,可以说一个人具有某种函数形式(例如,以f(x)的形式),而他正试图为此函数形式找到最佳解决方案。现在,最好的意思是什么?有人可以说他有兴趣最小化这种功能形式或最大化这种功能形式。
通常,优化问题包含三个部分。

最小化f(x),
wrt x,
服从

其中,f(x):目标函数
x:决策变量
a

什么是多元优化问题?

在多变量优化问题中,有多个变量充当优化问题中的决策变量。

z = f(x 1 ,x 2 ,x 3 …..x n )

因此,当您查看这些类型的问题时,通用函数z可能是决策变量x 1 ,x 2 ,x 3至x n的某些非线性函数。因此,有n个变量可以操纵或选择以优化此函数z。请注意,可以使用二维图像来解释单变量优化,这是因为在x方向上我们具有决策变量值,而在y方向上我们具有函数的值。但是,如果是多变量优化,则我们必须使用三维图片,并且如果决策变量大于2,则很难可视化。

什么是带有等价constarint的多元优化
在数学中,相等是两个量或更确切地说是两个数学表达式之间的关系,断言这些量具有相同的值,或者这些表达式表示相同的数学对象。因此,如果给定的目标函数具有多个决策变量并且具有相等约束,那么这就是已知的。
范例

最小2x 1 2 + 4x 2 2
英石
3x 1 + 2x 2 = 12

其中x 1和x 2是两个等式约束相等的决策变量3x 1 + 2x 2 = 12

等式约束条件下确定最佳点的条件

让我们为此快速解决一个数值示例,以更好地理解这些条件。

数值示例:

问题: min 2x_1^2 + 4x_2^2服从3x_1 + 2x_2 - 12 = 0解:在这里,目标函数(f(x))=  2x_1^2 + 4x_2^2和等式约束(h(x))=  3x_1 + 2x_2 - 12 = 0为了确定最佳点,我们可以将等式写为- \nabla f = \lambda \nabla h 因此 - \nabla f = - \begin{bmatrix} \partial f/ \partial x_1\\ \partial f/ \partial x_2\\ \end{bmatrix} = \begin{bmatrix} -4x_1\\ -8x_2\\ \end{bmatrix} 相似地,  \nabla h = \begin{bmatrix} \partial h/ \partial x_1\\ \partial h/ \partial x_2\\ \end{bmatrix} = \begin{bmatrix} 3\\ 2\\ \end{bmatrix} 根据条件 \begin{bmatrix} -4x_1\\ -8x_2\\ \end{bmatrix} = \lambda \begin{bmatrix} 3\\ 2\\ \end{bmatrix} 这可以写成-4x_1 = 3 \lambda ---(1)-8x_2 = 2 \lambda ---(2) ,并且我们已经有等式约束方程3x_1 + 2x_2 - 12 = 0 ---(3)通过求解这三个方程,我们可以获得变量λ的最优解。  \begin{bmatrix} x_1 ^*\\ x_2 ^*\\ \lambda ^* \\ \end{bmatrix} = \begin{bmatrix} 3.27\\ 1.09\\ -4.36\\ \end{bmatrix} 因此x_1 ^* = 3.27x_2 ^* = 1.09是我们的最佳解决方案。

从数据科学的角度来看,为什么约束对优化问题很重要?

我们从数据科学的角度看待优化,因为我们正在努力使错误最小化。在许多情况下,当我们尝试解决数据科学问题并最小化错误时,我们说可以使用某种基于梯度的算法(称为学习算法)来解决该问题。在某些情况下,当我们试图最小化错误或目标函数,我们可能会知道一些有关我们要纳入解决方案中的问题的信息。因此,例如,如果您试图发现几个变量之间的关系,而又不知道有多少个关系,但是您确定知道某些关系存在,并且知道这些关系是什么,那么当您尝试求解数据科学问题,您将尝试将问题限制为满足已知关系。因此,这可能会带来一个优化问题,其中您在特定的等式约束中具有约束,而在其他几种情况下,当解决数据科学问题时,您可能不得不查看问题的约束版本。因此,重要的是要了解如何解决这些问题。不等式约束问题比等式约束问题更重要,例如,用于不等式约束的算法在称为支持向量机等数据科学算法中非常有用。