Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python cvxopt忽略约束_Python_Linear Programming - Fatal编程技术网

Python cvxopt忽略约束

Python cvxopt忽略约束,python,linear-programming,Python,Linear Programming,根据以下示例,我将CVXOPT用于线性规划: 我很确定我表达了一个约束 X1 >= 0 但是得到一个负值。 怎么会?我收到了“找到最佳解决方案”的信息 约束值(右侧) 最小化函数: c = matrix( [-1.0, -1.0, -1.0] ) 电话: sol=solvers.lp(c,A,b) 但是: 感谢根据。因此,您应该期望您的约束仅满足此精度级别 编辑因此,为了确保您的“硬”约束确实得到满足,您需要将变量下限设置为等于您的“硬”约束(即在您的情况下为0)加上可行性公差:

根据以下示例,我将CVXOPT用于线性规划: 我很确定我表达了一个约束

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

约束值(右侧)

最小化函数:

c = matrix( [-1.0, -1.0, -1.0] )
电话:

 sol=solvers.lp(c,A,b)
但是:


感谢

根据。因此,您应该期望您的约束仅满足此精度级别

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

X1 >= 1.0e-7

根据标准,CVXOPT中的默认可行性公差为1.0e-7。因此,您应该期望您的约束仅满足此精度级别

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

X1 >= 1.0e-7

不确定你所说的“这不起作用”是什么意思,但请参阅我的更新以获得进一步澄清。我希望它能更清楚地解释我想要表达的内容。我已经将可行性容差设置为0,但仍然得到相同的结果。很明显,我做错了什么。然而,我发现了一个不同的解决方案,所以这个问题不再(对我)相关。谢谢也许这是一个旁白,但对我来说这似乎是一个非常关键的问题。我用非常简单的方程测试优化,只是为了看看CVXOPT是否有效,出于某种原因,我得到了那些奇怪的e-7、e-10等答案。然后多亏了安德斯的观点,我不知何故意识到,不确定你所说的“这不起作用”是什么意思,但请参阅我的更新以获得进一步澄清。我希望它能更清楚地解释我想要表达的内容。我已经将可行性容差设置为0,但仍然得到相同的结果。很明显,我做错了什么。然而,我发现了一个不同的解决方案,所以这个问题不再(对我)相关。谢谢也许这是一个旁白,但对我来说这似乎是一个非常关键的问题。我用非常简单的方程测试优化,只是为了看看CVXOPT是否有效,出于某种原因,我得到了那些奇怪的e-7、e-10等答案。多亏了安德斯的观点,我才意识到这一点
print (sol['x']): 
[-4.83e-09]
[ 1.00e+00]
[ 1.00e+00]

-4.83e-09>=0 
False
X1 >= 1.0e-7