我的问题中有5-20个变量,通常对于3-6个变量,允许的解决方案空间可以连续减小到最小值或恰好为零。例如,在一个问题中,第一个变量(x0)可以在250-1000之间,也可以是0。
最小化是在复杂的分段线性/非线性函数f(x0,...,xn)上进行的。
这可以在单个Docplex模型/最小化调用中完成吗?如果是这样,那么Docplex在解决方案空间中的此类漏洞方面表现良好吗?
答案 0 :(得分:2)
此概念称为“半连续”或“半整数”变量。查看文档,您会在semicontinuous_var
类中找到函数semicontinuous_var_dict
,Model
,...。这些函数将使用您要求的属性创建变量:
x0 = model.semicontinuous_var(250, 1000, "x0")
请注意,使用半连续变量将隐式地将模型转换为MIP。