【问题标题】:How do I Implement "Continuous with Minimum or Nothing" Variables in DocPlex?如何在 DocPlex 中实现“最小或无连续”变量?
【发布时间】:2020-03-22 11:43:40
【问题描述】:

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

最小化是基于复杂的分段线性/非线性函数 f(x0,...,xn)。

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

【问题讨论】:

  • 这称为半连续变量。有关确切语法,请参阅文档。

标签: python optimization cplex nonlinear-optimization docplex


【解决方案1】:

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

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

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

【讨论】:

  • 看起来像解决方案,谢谢。两个问题。半连续是否假设 0 作为奇数点?我的问题已经是 MIQP 会将其添加到不同的类型?
  • 是的,0 始终是半连续变量的奇异值。请注意,它们的下限必须严格为正。
  • 由于您的问题已经是混合整数(来自分段线性函数),其类型不应改变。
猜你喜欢
  • 2023-02-20
  • 2020-03-10
  • 2019-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 2020-08-10
  • 1970-01-01
相关资源
最近更新 更多