gpt4 book ai didi

python-2.7 - CVXOpt op参数错误

转载 作者:行者123 更新时间:2023-12-03 08:05:33 24 4
gpt4 key购买 nike

我正在使用以下模型测试CVXOpt

>>> from cvxopt.modeling import op
>>> x = variable()
>>> y = variable()
>>> c1 = ( 2*x+y >> c2 = ( x+2*y >> c3 = ( x >= 0 )
>>> c4 = (y >= 0 )
>>> lp1 = op(-4*x-5*y, [c1,c2,c3,c4])

但是,我遇到两个问题:
  • 代码的最后一行的约束参数无效。我已经检查了CVXOpt文档,并且编码方式似乎是正确的方法。
  • 不太重要,但如果有人能告诉我为什么在同一行中写所有约束(c1,c2,..)时出现语法错误,那还是不错的。相反,我不得不为每个使用不同的行。
  • 最佳答案

    您使用的语法似乎有些问题。另外,请始终确保您截断的代码允许运行该代码。编写优化问题的正确方法是:

    >>> from cvxopt.modeling import op
    >>> from cvxopt.modeling import variable
    >>> x = variable()
    >>> y = variable()
    >>> c1 = ( 2*x+y <= 7) # You forgot to add the (in-) equality here and below
    >>> c2 = ( x+2*y >= 2)
    >>> c3 = ( x >= 0 )
    >>> c4 = (y >= 0 )
    >>> lp1 = op(-4*x-5*y, [c1,c2,c3,c4])
    >>> lp1.solve()
    pcost dcost gap pres dres k/t
    0: -1.0900e+01 -2.3900e+01 1e+01 0e+00 8e-01 1e+00
    1: -1.3034e+01 -2.0322e+01 9e+00 1e-16 5e-01 9e-01
    2: -2.4963e+01 -3.5363e+01 3e+01 3e-16 8e-01 3e+00
    3: -3.3705e+01 -3.3938e+01 2e+00 3e-16 4e-02 4e-01
    4: -3.4987e+01 -3.4989e+01 2e-02 5e-16 4e-04 5e-03
    5: -3.5000e+01 -3.5000e+01 2e-04 3e-16 4e-06 5e-05
    6: -3.5000e+01 -3.5000e+01 2e-06 4e-16 4e-08 5e-07
    Optimal solution found.

    在第五和第六行中,您忘记添加(in-)等式。您必须明确说明要比较的内容,即不等号和要比较的值。

    如果使用分号分隔,则可以将所有等号写在一行上。同样,请注意语法,您忘记在示例代码中加上一些括号。
    >>> c1 = ( 2*x+y <= 7); c2 = ( x+2*y >= 2); c3 = ( x >= 0 ); c4 = (y >= 0 )

    关于python-2.7 - CVXOpt op参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22664398/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com