如何线性化minmax约束

时间:2013-11-20 12:22:44

标签: algorithm mathematical-optimization linear-programming minmax

目前我有这种线性编程模型:

Max X

这样:

Max_a(Min_b(F(a,b,X)))< =某个常数

* Max_a 意味着只需更改a即可最大化以下等式,同样适用于 Min_b

现在,问题变成了如何线性化约束部分。目前大多数Minmax线性化论文都以Minmax为目标。但是,如果它是一个约束,如何线性化?

由于

1 个答案:

答案 0 :(得分:0)

初步评论:您描述的问题是“线性编程模型”,并且无法直接将其转换为线性模型(这并不意味着它不能解决)。

首先,请注意约束中的Max不是必需的,即您的问题可以重新表述为:

 Max X
 subject to: Min_b F(a, b, X) <= K  forall a

现在,既然你说'线性模型',我认为至少F是线性的,即:

 F(a, b, X) = Fa.a + Fb.b + FX.X

显然可以写出约束:

 Fa.a + Min_b Fb.b + FX.X <= k forall a

有趣的是,b上的最小值不依赖于aX的值。因此,它可以事先解决:首先找到u = Min_b Fb.b,然后解决

 Max X
 subject to Fa.a + FX.X <= k - u   forall a

当然,这假设ab的域是独立的(AxB形式):如果存在耦合a和{的其他约束{1}},这是一个不同的问题(在这种情况下,请在问题中写下完整的问题)。