如何在DocPlex中实现“连续最少或什么都没有”变量?

时间:2019-11-27 00:30:55

标签: python optimization cplex nonlinear-optimization docplex

我的问题中有5-20个变量,通常对于3-6个变量,允许的解决方案空间可以连续减小到最小值或恰好为零。例如,在一个问题中,第一个变量(x0)可以在250-1000之间,也可以是0。

最小化是在复杂的分段线性/非线性函数f(x0,...,xn)上进行的。

这可以在单个Docplex模型/最小化调用中完成吗?如果是这样,那么Doc​​plex在解决方案空间中的此类漏洞方面表现良好吗?

1 个答案:

答案 0 :(得分:2)

此概念称为“半连续”或“半整数”变量。查看文档,您会在semicontinuous_var类中找到函数semicontinuous_var_dictModel,...。这些函数将使用您要求的属性创建变量:

x0 = model.semicontinuous_var(250, 1000, "x0")

请注意,使用半连续变量将隐式地将模型转换为MIP。