线性规划中的IF / THEN语句建模

时间:2016-10-30 19:09:14

标签: linear-programming

给定一组布尔变量X = {x0,x1,... xn},其中X中的每个变量x \属于一个组G = {g0,g1,...,gm},g \子集X.

问题的目的是最大化X中设置为1的变量数。

如何对LP中的约束进行建模,该约束要求属于G中相同组g \的所有变量设置为EITHER 0或1?更确切地说,G中的g \中没有两个布尔变量可以具有不同的值。

P.S:上面定义的问题只是对实际问题的简化,除了上面定义的限制之外还包括其他限制。

1 个答案:

答案 0 :(得分:0)

这种约束不是凸的,因此不能表示为LP。然而,这是 ILP(整数LP)的情况,即NP任务,但实际上可以通过合理数量的变量来解决。

您甚至可以通过约束0 <= x <= 1轻松地将LP任务扩展到ILP,当最佳值不是0或1时,您可以解决两个LP,一个将x固定为0,另一个固定为1并选择更好的一个。重复(递归)直到满足所有整数条件。 (有关使用Google的详细信息或更有效的方式)。

编辑:鉴于您的具体问题分配,为什么您只是将所有变量都等于1?这显然是最大值,并且对于所有可能的组,它认为没有两个值是不同的(因为所有都是1)。