gpt4 book ai didi

python - Gurobi Python == 和变量

转载 作者:太空宇宙 更新时间:2023-11-04 03:30:39 31 4
gpt4 key购买 nike

== 在 Gurobi Python 中如何工作?

在我创建了所需的变量 (x[s,d,r]) 之后,我尝试制作一个 if 语句,如 x[ s,d,r] == 1。问题是,这个陈述总是正确的,所以无论我将它设置为 x[s,d,r]==0 还是 x[s,d,r] 都没有关系==2,总是一样的。

x[s,d,r] 是由 x[s,d,r] = m.addVar(0.0,1.0,1.0,GRB.BINARY, "x_"+ s+"_"+ d +"_"+ r)

z = 0.0
for s in students:
for d in dates:
if (s,d) in preferences:
if preferences[s,d]!=0:
for r in rooms:
if (d,r) in tutorials:
if x[s,d,r]>0.001:
print('%s:%s:%s:%s '%(s,d,r,preferences[s,d]))
z = z + preferences[s,d]
else:
print('no')

m.setObjective((z), GRB.MAXIMIZE)

所以如果 x[s,d,r]>0.001: 是始终评估为“真”的部分。

最佳答案

grb.Expr 的 == 运算符返回一个 grb.Constraint 对象。如本answer所述,约束对象始终为真,因此您将始终获得“if”部分。

假设您已经进行了优化,您需要优化解决方案中 x 值的实际值。这是由 grb.Variable 上的 X 属性给出的。所以你应该用

替换你的代码
                        if x[s,d,r].X>0.001:

它应该会像您预期的那样工作。

关于python - Gurobi Python == 和变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31223297/

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