将两个变量乘以CVXPY

时间:2015-09-11 19:27:31

标签: python mathematical-optimization cvxpy

我需要一个LP,你可以将两个非常数相乘。以下是我要执行的以下代码:

import cvxpy as cvx
a = cvx.Variable()
b = cvx.Variable()
c = cvx.Variable()
obj = cvx.Maximize(((0.4270437386 * a) + (0.1737677971 * b) + (0.21763175116 * c) - 0.03)  /  (((((2 * a * 0.424718270)  * b) * (0.195770376 ** 0.5)) * (0.022090814 ** 0.5)) * ((2 * c * -0.041137487) * b * (0.194241184 ** 0.5) * (0.022090814 ** 0.5)) * (2 * a * 0.363033596 * c * (0.195770376** 0.5) * (0.194241184 ** 0.5))))

不幸的是,这会引发错误:

cvxpy.error.DCPError: Cannot multiply two non-constants.

这源于obj分母中的几个区域,例如(2 * a * 0.424718270) * b)

我想知道是否有人知道任何LP程序,我们可以做这种事情?甚至是可能的。

1 个答案:

答案 0 :(得分:-1)

问题在于,您要求线性编程包针对非线性目标函数进行优化。这不仅仅是一个技术问题。用于解决线性编程问题的方法没有意义,无法进行调整。

相关问题