如果A> 0,则b = 1,否则b = 0

时间:2017-03-23 11:22:58

标签: mathematical-optimization linear

我想在线性编程中制定一个问题,我似乎无法做到这一点。问题是: 如果A> 0,则b = 1 否则(如果A = 0)则b = 0,

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

有任何建议/建议吗?

1 个答案:

答案 0 :(得分:1)

<强>假设

  • 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)