gpt4 book ai didi

python - 以下约束的 PuLP 程序 min(a,b) > min(x,y)

转载 作者:行者123 更新时间:2023-12-05 02:27:45 25 4
gpt4 key购买 nike

假设我有 4 个变量 a、b、x、y和一个约束 min(a,b) > min(x,y)。

我如何在 pulp python 中表示这个程序?

最佳答案

好的。所以,我发布(删除)的第一个答案有点仓促,并且对于所描述的关系逻辑是错误的。这是(希望)正确的! ;)

max()min() 是非线性的,所以我们需要以某种方式将它们线性化(使用辅助变量)和一些逻辑来关联 2 个最小值,其中(下面)可以使用二进制辅助变量和 Big-M 约束。

在伪代码中:

a, b, x, y : real-valued variables
ab_min : real-valued variable
x_lt_y : binary variable, 1 implies x <= y, 0 else

M = some suitably large constant, depending on the max range of a, b, x, y

新约束:

ab_min <= a
ab_min <= b
ab_min >= x - (1 - x_lt_y) * M
ab_min >= y - (x_lt_y) * M

逻辑:

  • 我们用 ab_min 找到 a, b 的最小值。
  • 我们需要来自 min(x, y) 的“向上压力”...所以我们知道ab_min 必须大于 x 或 y,或者可能同时大于两者。对于“或”约束,我们使用上面的二进制逻辑并将其乘以“大常数”使其他约束变得微不足道。

关于python - 以下约束的 PuLP 程序 min(a,b) > min(x,y),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72943397/

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