需要解释如何将方程转换为solver.lq中的cvxopt逻辑

数据挖掘 Python 收敛
2022-01-25 00:20:08

这是示例中给出的等式:

方程

在python中复制它的代码是

>>> from cvxopt import matrix, solvers
>>> A = matrix([ [-1.0, -1.0, 0.0, 1.0], [1.0, -1.0, -1.0, -2.0] ])
>>> b = matrix([ 1.0, -2.0, 0.0, 4.0 ])
>>> c = matrix([ 2.0, 1.0 ])
>>> sol=solvers.lp(c,A,b)

谁能解释一下如何将数据赋予变量a, b, c

1个回答

欢迎来到本站!

正如媒体所提到的,A、b、c 的值通过这些矩阵传递。为了更好地理解它,我将约束从上到下命名,即第一个约束为约束-1,......约束-4。

首先,让我们谈谈矩阵 b,它由约束右侧的所有值组成,即 1,2,0,4。他通过在两边乘以 -1 将所有约束转换为所以他乘以 -1 得到约束 2 和 3。

现在,constraints-2 从变为x1+x22x1x22

矩阵 b 的值为 1,-2,0(-0),4

现在让我们通过约束,即,

  1. x1+x21对于的系数分别为 -1 和 1。矩阵 A 第 1 行的值为 -1,1x1,x2
  2. 同样对于第 2 行到第 4 行,因为您有 4 个约束。

最后,我们的目标函数系数是 c 的值,即 2 和 1。

如果您还有任何疑问,请告诉我。