Python cvxopt忽略约束

2024-05-23 20:12:44 发布

您现在位置:Python中文网/ 问答频道 /正文

根据以下示例,我将CVXOPT用于线性规划: http://abel.ee.ucla.edu/cvxopt/examples/tutorial/lp.html 我很确定我表达了一种约束

X1 >= 0 

但是得到一个负值。 怎么会?我收到“找到最佳解决方案”的信息

^{pr2}$

约束值(右侧)

b = matrix( [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0] )

最小化函数:

c = matrix( [-1.0, -1.0, -1.0] )

呼叫:

 sol=solvers.lp(c,A,b)

但是:

print (sol['x']): 
[-4.83e-09]
[ 1.00e+00]
[ 1.00e+00]

-4.83e-09>=0 
False

谢谢


Tags: http示例htmlexamplesmatrixtutorialeex1
1条回答
网友
1楼 · 发布于 2024-05-23 20:12:44

根据user guideCVXOPT中的默认可行性容差为1.0e-7。因此,您应该期望您的约束仅满足于此精度级别。在

编辑因此,为了确保您的“硬”约束得到满足,您需要将变量下限设置为等于“硬”约束(即在您的情况下为0)加上可行性公差:

X1 >= 1.0e-7

相关问题 更多 >