有没有办法在python中将cplex表达式(docplex.mp.LinearExpr(..))提升到-1或3的幂



我在Python中构造了一个线性编程问题,并使用CPLEX求解器。变量被表示为cplex表达式,如docplex.mp.LinearExpr(…(。目标是构建一个目标,我们用这样的表达式对变量进行优化,其幂为-1或3:

选择1/可变

不幸的是,我收到以下错误消息;docplex.mp.utils.DOcplexException:无法引发"docplex.mp.LinearExpr(…(";功率为-1。变量的指数必须是0、1或2。

有人知道是否有办法解决这个问题吗?那么,有没有一种方法可以将某个数字除以一个相当于docplex.mp.LinearExpr(…(的值?

Erwin一如既往地正确。然而,在某些有限的情况下,您可以重新排列表达式以避免被变量除,例如将a <= 1 / var更改为a * var <= 1。如果没有看到更多您的模型,我们就无法知道这种简单的重新排列是否适用于您。

不,Cplex只能做线性和二次模型。它不是一个通用的非线性求解器。

注意:我构造了一个线性规划问题不是真的。这现在正成为一个非线性模型。

最新更新