如果 A>0 那么 b=1 否则 b=0

if A>0 then b=1 else b=0

我想用线性规划来表述一个问题,但我似乎做不到。问题是: 如果 A>0 则 b=1 否则(如果 A=0)则 b=0,

其中 b 是二进制变量且 A>=0(整数)。

任何suggestions/recommendations?

假设

  • A 是一个标量(使用 A 的符号不太好)
  • A 由常数 M-1
  • 从上方限定

限制条件:

(1) A <= M * b
(2) b <= M * A

检查:

A = 2
    (1) b = 1
    (2) b free

A = 0
    (1) b free
    (2) b = 0

b = 1
    (1) A free 
    (2) A > 0

b = 0
    (1) A = 0
    (2) A free

大致如下:

  • 常用的指标约束方法,如所介绍的 here @ page 2
  • 命题演算:
    • x == y <-> (x -> y) & (y -> x)