在这段代码中:
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是否有非商业替代方案?
答案 0 :(得分:1)
致 2021 年的读者:今天(在 cvxpy 中)不可能通过初步猜测帮助求解器。热启动现在仅在您使用不同参数值解决同一问题时有效,并使用先前的解决方案进行初始化(请参阅 https://github.com/cvxpy/cvxpy/issues/1355)。
答案 1 :(得分:0)
您可以使用x.value = 1/2
手动分配值,然后在可用的求解器中传递warm_start=True
参数。请记住,并非所有求解器都允许这样做,例如SCS。
有关更多信息,请访问:https://www.cvxpy.org/tutorial/advanced/index.html