【问题标题】:Check whether variable has a value equal to some value in a fixed set检查变量的值是否等于固定集中的某个值
【发布时间】:2016-07-04 08:53:28
【问题描述】:

我目前正在为一个线性程序建模,我正在使用一个我不知道它是否好的公式。 我有一些变量 X,并且在某些约束中我想检查 X 是否从某个列表或集合中获取一个值(如果是这种情况,则禁止该值,否则通过 BigM 方法等禁用约束等,但我认为这不是那么重要)。 例如,SET = {1, 2, 10},现在如果在解决方案中 X 为 2,这是不允许的,X 必须采用不同的值。 现在我正在为 SET 中的每个可能值 x 创建一个约束,并在约束中使用 |X - x|,然后执行类似 0

【问题讨论】:

    标签: linear-programming cplex gurobi


    【解决方案1】:

    在 OPL 中你可以写

    {int} SET={1,2,10};

    dvar int x;

    受制于 {

    forall(i in SET) x!=i;

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-17
      • 1970-01-01
      • 2021-03-28
      • 1970-01-01
      • 1970-01-01
      • 2011-11-20
      相关资源
      最近更新 更多