我想在cvxpy下的优化问题中添加许多约束。在 matlab 中,我可以通过添加一行主题,然后使用 for 循环来生成约束。我如何在 cvxpy 中做同样的工作,因为 cvxpy 中没有“受制于”概念。请问有什么建议吗?

最佳答案

在 Python 中 constraints 是一个列表。您可以使用 for 循环像这样附加/扩展它(并且 CVXPY functions 使它更容易)。

import cvxpy as cvx

samples = 10
x = cvx.Variable(samples)
y = range(1, samples+1)
constraints = []

for i in xrange(samples):
    constraints += [
        y[i] * x[i] <= 1000,
        x[i] >= i
    ]

objective = cvx.Maximize(cvx.sum_entries(x))

prob = cvx.Problem(objective, constraints)
prob.solve()
print x.value

关于python - 如何在cvxpy中写几个约束?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42706519/

10-12 18:13