在DQCP explainer页面上的cvxPy示例中,以下示例显示了可使用DQCP解决的一类问题:
import cvxpy as cp
x = cp.Variable(pos=True)
y = cp.Variable(pos=True)
product = cp.multiply(x, y)
assert product.is_dqcp()
有谁能给我一个解决向量变量问题的方法吗?我的问题有约束条件,但下面的示例代码显示了主要问题所在:
import cvxpy as cp
x = cp.Variable(2, pos=True)
y = cp.Variable(2, pos=True)
product = cp.sum(cp.multiply(x, y))
assert product.is_dqcp() #this fails since sum of products isn't DQCP
也尝试了DGP和DCCP,但找不到正确的方法来重新表述问题。
谢谢大家!
1条答案
按热度按时间hjzp0vay1#
您定义的目标函数是双线性的。解决此问题的传统方法是通过McCormick envelopes线性化目标函数。我个人没有使用过this package,但它看起来很有前途