我正在尝试创建一个二进制指标,例如指标y==1 if x > -0.5
和其他,y==0 if x <= -0.5
. 现在,如果我的目标是最小化,我有一个可行的实现:
var y binary;
param M := 100;
var z;
param x := -0.49;
subto zval:
z <= 5;
subto a:
M * y - 0.5 >= x;
minimize obj: z;
但是,如果我改为最大化,则y
无论 x 的值如何,都将为 1。有没有办法以一种既能最大化又能最小化目标函数的方式重写它?