使用gurobi如何在一组值中约束变量的域

时间:2015-09-06 10:53:16

标签: python gurobi

这就是我使用addVar将变量添加到模型中的方法:

my_set[j, t] = self.m.addVar(vtype=GRB.INTEGER, lb=min_value, ub=max_value, name='test')

这只能将值约束为min_value和max_value之间的整数,但实际上我想约束某些整数集中的可能值。 我该怎么做?

1 个答案:

答案 0 :(得分:0)

我不知道它是否可以直接实现(这在标准ILP中是不可能的,因此可能作为gurobi的扩展),但您可以为您的程序添加一些约束。假设您想要约束的变量是 y ,变量集是 D y = {v 1 ,v 2 ,...,v | D y | } ,你可以添加以下 x i 变量和约束:

  • y = x i for i in 1 ... | D y |
  • sum(x i for i in 1 ... | D y |)= 1
  • x i = 0或 1