我正在尝试解决一个线性代数问题:一个优化问题,我正在使用CVXOPT。我把这个问题分为三个部分
以最简单的形式,CVXOPT的一般公式为
最小化1/2xTPx+qTx
以Gx为准≤h
Ax=b
第一个问题组件 首先,我必须最小化,受限于一个非常简单的问题,定义如下
p=
| S |
q=
| 0 |
A=
| 1 |
b=
| 1 |
G=
| r |
| -I |
h=
| rmin 0 |
我已经编码了这个,它工作得很好
第二个问题部分 第二个问题是将一个非凸问题转化为凸线性问题,从而使优化问题产生的营业额约束为最大值。在本例中,我对问题进行了建模和编码,如下所示,所有工作正常
p=
| S 0 0 |
| 0 0 0 |
| 0 0 0 |
| 0 0 0 |
q=
| -x1 0 0 |
A=
| 1 0 0 |
| I I -I |
b=
| 1 x0 0 |
G=
| 0 1 1 |
| -I 0 0 |
| 0 -I 0 |
| 0 0 -I |
h=
| T 0 0 |
第三个问题组件 我正在努力解决的第三个问题是将上述两个问题结合起来。我所做的,显然是不正确的,因为它变成了一个奇异矩阵
p=
| S 0 0 |
| 0 0 0 |
| 0 0 0 |
| 0 0 0 |
q=
| -x1 0 0 |
A=
| 1 0 0 |
| I I -I |
b=
| 1 x0 0 |
G=
| 0 1 1 |
| -I 0 0 |
| 0 -I 0 |
| 0 0 -I |
| 0 0 rmin |
| 0 0 -I |
h=
| T 0 0 rmin 0 |
因为我认为奇点的问题来自于G,有谁能帮助我以正确的方式表述第三个问题吗
谢谢
我认为你应该在G矩阵中再加一列
相关问题 更多 >
编程相关推荐