如何解决Mosek 求解器中决策变量值的初始化通过 Cvxpy 框架
我们有一个优化问题,想要初始化其决策变量的值以实现快速收敛。
我们正在使用 Mosek 求解器(通过其 Cvxpy 接口)。
感谢任何帮助,非常感谢!
解决方法
关于您在评论中关于 Pyomo 的问题:是的,Pyomo 的 MOSEK 接口将让您初始化变量。以下代码为您提供了可以在 Pyomo-MOSEK 中执行的操作的示例:
import mosek
import pyomo.kernel as pmo
solver = pmo.SolverFactory('mosek')
model = pmo.block()
# Integer variables with initial solution
init_sol = [1,1,0]
model.x = pmo.variable_list(pmo.variable(
domain=pmo.NonNegativeIntegers,value=init_sol[i]) for i in range(3))
# Continuous variable
model.x.append(pmo.variable(domain=pmo.NonNegativeReals))
model.con_1 = pmo.constraint(sum(model.x) <= 2.5)
model.obj = pmo.objective(
7*model.x[0] + 10*model.x[1] + model.x[2] + 5*model.x[3],sense=pmo.maximize)
# Solve "model" with warmstart set to True.
solver.solve(model,tee=True,warmstart=True)
print("Initial solution utilization = {}".format(
solver._solver_model.getintinf(mosek.iinfitem.mio_construct_solution)))
print("Initial solution objective value = {}".format(
solver._solver_model.getdouinf(mosek.dinfitem.mio_construct_solution_obj)))
PS:我没有足够的声誉来直接回复评论,因此是答案。很抱歉。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。