6

在这段代码中:

import cvxpy as cvx

# Examples: linear programming
# Create two scalar optimization variables.
x = cvx.Variable()
y = cvx.Variable()

# Create 4 constraints.
constraints = [x >= 0,
               y >= 0,
               x + y >= 1,
              2*x + y >= 1]

# Form objective.
obj = cvx.Minimize(x+y)

# Form and solve problem.
prob = cvx.Problem(obj, constraints)
prob.solve(warm_start= True)  # Returns the optimal value.
print ("status:", prob.status)
print ("optimal value", prob.value)
print ("optimal var", x.value, y.value)

我正在寻找一种自己选择热启动值的方法例如:x = 1/2 和 y = 1/2),而不是之前的求解器结果。

有没有办法给求解器这个输入?如果没有,是否有 cvxpy 的非商业替代品?

4

2 回答 2

4

您可以使用 手动分配值x.value = 1/2,然后warm_start=True在可用的求解器中传递参数。请记住,并非所有求解器都允许这样做,例如 SCS。

更多信息请访问:https ://www.cvxpy.org/tutorial/advanced/index.html

于 2018-10-29T03:37:05.713 回答
1

致 2021 年的读者:今天(在 cvxpy 中)不可能通过初步猜测帮助求解器。现在,热启动仅在您使用不同的参数值解决相同的问题时才有效,并使用以前的解决方案进行初始化(请参阅https://github.com/cvxpy/cvxpy/issues/1355)。

于 2021-04-29T15:19:36.130 回答