使用线性表达式对二次约束建模

计算科学 优化 线性规划 二次规划
2021-12-16 18:22:11

在我尝试使用 MIP 程序建模的问题中,会出现以下情况:

我得到二进制变量x1,,xny1,,yn真的可以认为是n-向量。我需要计算的是它们不同的位数。特别是我只需要确保它们最多只有一位相等。

这可以通过添加以下二次约束来完成

i=1nxiyi1

鉴于这种情况的特殊性质,我想知道

有没有更好的表达方式?

有没有把这个表达式转换成线性表达式的技巧?

2个回答

引入一个新变量zi代表xiyi(逻辑和)。你的约束是i=1nzi1, 产品由xi+yi1zi.

认为

zi=xi×yi
约束
i=1nxiyi1
可以重新表述为线性约束:

1)

i=1nzi1
2)
zixi
3)
ziyi
4)
zixi+yi1