解决二次凸优化问题的Python实现示例

二次优化问题是一类目标函数为二次型的特殊问题。

解决二次凸优化问题的Python实现示例

二次凸问题:标准形式

在此,P,q,r,G,h,A和b是矩阵。h,b是一维向量。通常,我们跳过r(常数偏差项),因为这不会改变解。

我们将以一个示例为例,了解如何使用现成的求解器来解决QP问题。假设问题是这样的:

解决二次凸优化问题的Python实现示例

x₁> 0,x 2> 0可写成-x₁<0,-x 2 <0,以使其成为标准形式。这里x将是[x₁x²]

解决二次凸优化问题的Python实现示例

目标函数的矩阵方程

当我们将上面的方程式与标准形式进行比较时,我们得到p1 = 3,p4 = 4,依此类推。最终矩阵看起来像

解决二次凸优化问题的Python实现示例

(1/2)xᵀP x +qᵀx是x中的一个二阶表达式,使其为二次。不等式和平等约束都是仿射的。

请注意,cvxopt需要期望的变量必须是浮点型的,因此请确保将3写入3.0。Python实现示例如下:

解决二次凸优化问题的Python实现示例

相关推荐