cvxpy - 如何在 cvxpy 中使用带双变量的 warm_start
问题描述
如何在 cvxpy 中设置对偶变量的起始猜测?对于正常的单值问题,解决方案是
x.value = 1/2
对于双变量问题,这将如何完成?
代码示例
import cvxpy as cp
# Create two scalar optimization variables.
x = cp.Variable()
y = cp.Variable()
# Create two constraints.
constraints = [x + y == 1,
x - y >= 1]
# Form objective.
obj = cp.Minimize((x - y)**2)
# Form and solve problem.
prob = cp.Problem(obj, constraints)
# This is the way I amagine but it does not work
constraints[0].dual_value = 3
prob.solve()
# The optimal dual variable (Lagrange multiplier) for
# a constraint is stored in constraint.dual_value.
print("optimal (x + y == 1) dual variable", constraints[0].dual_value)
print("optimal (x - y >= 1) dual variable", constraints[1].dual_value)
print("x - y value:", (x - y).value)
解决方案
CVXPY 目前不支持初始猜测,既不支持原始变量,也不支持对偶变量。
推荐阅读
- c - 如何使我的代码符合 MISRA 2012 RULE 2.1
- java - 仅使用一个循环将数组分成 2 个相等的部分,需要替代方法
- python - Python selenium WebDriverWait 等到页面加载结束而不是我提到的事件
- android - ExpandedListView:如何使用 List 扩展组或获取正确的 groupPosition
- java - 使用相同命名的静态方法创建多个类
- android - 删除位于 raw 或 assets 目录中的 android 文件
- python - Docker API - 如何创建镜像
- python-3.x - 如果我没有将 NGINX 与 uWSGI 或 Gunicorn 一起使用会发生什么?
- javascript - 在节点集合上使用 classList
- ssas - MDX 名称集在计算成员中不起作用