Cplex中的非线性优化

问题描述

以下类型的问题可以在cplex解决吗?

minimize mT

subject to
mT - 2214.44 x1 - 168.5 x2 - 1874.75 x3=0
110722.0 x1>=29.75 mT
110722.0 x1<=30.25 mT
8425.0 x2>=14.75 mT
8425.0 x2<=15.25 mT
93737.5 x3>=4.75 mT
93737.5 x3<=5.25 mT

Bounds
x1>=0
x2>=0
x3>=0
mT>=0

Integer
x1
x2
x3

end

约束本质上是非线性的。我还尝试了110722.0 x1/mT>=29.75格式。有帮助吗?

解决方法

在CPLEX中,您还可以依赖约束编程。 使用CPOptimizer,您不需要任何线性属性。

例如,在OPL中,您可以编写

using CP;

dvar int x in 1..100;
dvar int y in 1..100;

maximize x+y;
subject to
{
  x*y+log(y)<=10;
}

但是您可以对所有API(例如C ++,python,java ...)进行相同的操作