是否可以在GLPK中定义多边界优化问题?

时间:2019-03-21 15:38:59

标签: linear-programming glpk

典型的优化问题属于以下类型:

minimize ax + by
x1 <= x <= x2
y1 <= y <= y2

我们可以将a和b视为与这两个变量相关的成本。

是否可以解决变量具有多个可能的区间边界的优化问题?

例如:

minimize x + y
x1 <= x <= x2 OR x3 <= x <= x4
y1 <= y <= y2 OR y3 <= y <= y4

费用可能在不同的范围内吗?我不知道如何在公式中表达后者的要求。

在文档中,我只找到了一个下限和一个上限,以及与变量相关的成本

1 个答案:

答案 0 :(得分:1)

数学告诉我们这不是凸的,因此我们永远无法将其表述为纯LP。但是,我们可以引入二进制变量(问题将变成MIP)并写入

c1 ≤ x ≤ c2 OR c3 ≤ x ≤ c4

δ1 * c1 ≤ x1 ≤ δ1 * c2
δ2 * c3 ≤ x2 ≤ δ2 * c4
δ1 + δ2 = 1
x1 + x2 = x
δ1, δ2 ∈ {0,1}
我假设c是问题的常数(如果不是,即它们是决策变量,则重新编写类似但稍微复杂一些)。

当然,如果订购了c,我们也可以这样做:

c1 ≤ x ≤ c4  (these are bounds)
x <= c2 OR x >= c3

我将其保留为练习(提示:再次需要一个二进制变量)