ILOG CPLEX:x2 > x1(整数约束)

ILOG CPLEX: x2 > x1 (integer constraint)

我正在尝试构建一个整数程序,当 x3 = 1 时,它的解为 x2 > x1,但是 cplex 似乎对约束 c1 (x2 - x1 + 99 x3 > -99) 做了一些奇怪的事情,也许这是一个舍入错误。我可以使用不同的语法来表达 c1 (x2 - x1 + 99 x3 > -99) 以获得所需的结果吗? 谢谢

问题文件

Maximize
 obj: x1 + x2
Subject To
 c1: x2 - x1 + 99 x3 > -99
 c3: x3 = 1
Bounds
 1 <= x1 <= 2
 1 <= x2 <= 2
Binary
 x3
General
 x1
 x2

复杂的解决方案

MIP - Integer optimal solution:  Objective =  4.0000000000e+00
Solution time =    0.00 sec.  Iterations = 0  Nodes = 0
Deterministic time = 0.00 ticks  (1.11 ticks/sec)

CPLEX> Incumbent solution
Variable Name           Solution Value
x1                            2.000000
x2                            2.000000

CPLEX 中不能有 "strictly greater than" 约束。因此,CPLEX 将您提供的内容解释为 "greater than or equal to"。尝试

x2 - x1 + 99 x3 >= -98.99999999

P.S:CPLEX 的默认精度为 8 位。