python - 在 CVXPY 中将两个变量相乘

标签 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 程序?有没有可能。

最佳答案

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

关于python - 在 CVXPY 中将两个变量相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32530818/

相关文章:

python - CVXPY : give a hint of the solution 中的初始猜测/热启动

python - python中的内存斐波那契算法

Python 的 scipy.optimize.minimize 与 SLSQP 失败并显示 "Positive directional derivative for linesearch"

python - 用于非凸目标函数的 LBFGS

matlab - MATLAB 中 CPLEX "cplexmilp"函数的奇怪结果

python - CVXPY 表达式未给出预期结果

python - Django migrate error _mysql_exceptions.ProgrammingError : (1064, "你的SQL语法有错误

python - 在 gnuplot 中绘制 pm3d map 的 python 类比是什么?

python - 非常大的 numpy 数组的效率

python-3.x - 在 CVXPY 中广播