如何线性化 LP 中两个决策变量的乘积之和?

How to linearize the sum of a product of two decision variables in LP?

作为线性规划和 Gurobi 的新手,我正在处理一个整数线性规划,其中我有两个 binary decision 变量定义为B[u_v、x_y]A[u_x],我正在尝试通过 PythonGurobi 中实现此约束,但我对如何翻译 两个决策变量的乘积之和定义在这个循环中:

for each edge(u,v) in Set_of_edges:
    for each vertex x in Set_of_vertices:
        Sum_over(y) (B[u_v,x_y]) * A[u_x] == 1

从这个book开始,它必须被线性化,但我做不到。 任何人都可以阐明一些想法并为我提供一些见解吗?

谢谢

如果您有两个二进制变量 xy,您可以通过这些约束添加一个新的辅助二进制变量 z = x*y

  • z <= x
  • z <= y
  • z >= x + y - 1

由于我无法完成您的任务(不完整的伪代码),您将不得不使用新引入的变量自己完成剩下的工作 z