gpt4 book ai didi

java - Gurobi:如何添加约束x1*x2*x3

转载 作者:行者123 更新时间:2023-12-01 18:29:04 25 4
gpt4 key购买 nike

我希望在 Gurobi 中添加约束 n1 = x1 * x2 *x3,其中 x1x2x3 是带有 0 或 1 的变量。不幸的是,找不到解决方案。

有人可以帮助我吗?

最佳答案

您正在尝试对二元变量创建看似非线性的约束。您可以通过记下 n 将其建模为一系列线性约束。当且仅当 x1、x2 和 x3 均为 1 时,值为 1。

// only if part
model.addConstr(n, GRB.LESS_EQUAL, x1);
model.addConstr(n, GRB.LESS_EQUAL, x2);
model.addConstr(n, GRB.LESS_EQUAL, x3);

// if part
GRBLinExpr all_three;
all_three.addTerm(1.0, x1);
all_three.addTerm(1.0, x2);
all_three.addTerm(1.0, x3);
all_three.addConstrant(-2);
model.addConstr(n, GRB.GREATER_EQUAL, all_three);

这增加了约束 n >= x1 + x2 + x3 - 2n <= min(x1, x2, x3) .

关于java - Gurobi:如何添加约束x1*x2*x3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25012778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com