如何在if循环中加入if检查

问题描述 投票:-1回答:1

我尝试将约束表达式添加到python / pyomo模型:我尝试的代码是这样的:

for r_k in VAR1: 
    for p_v in VAR2:
        for b_n in VAR3:
            IF mix[b_n][p_v]() >= 0:
                model.cons.add(model.func2[r_k,b_n,p_v]*q1[b_n][p_v] - model.func1[r_k,b_n,p_v] ==0)

如果我离开IF循环,它将运行正常。上面的代码产生语法错误。唯一的缺点是它会创建数千个不需要的额外数学上的琐碎约束。“ mix”仅是稀疏填充的“二进制”字典(即,大多数为零,中间为几个)。仅当存在“ 1”时才需要约束。似乎在for循环中评估/调用字典值存在问题。任何解决此问题的想法将不胜感激。谢谢。

python dictionary for-loop if-statement pyomo
1个回答
0
投票
for r_k in VAR1: for p_v in VAR2: for b_n in VAR3: IF mix[b_n][p_v] >= 0: model.cons.add(model.func2[r_k,b_n,p_v]*q1[b_n][p_v] - model.func1[r_k,b_n,p_v] ==0)
© www.soinside.com 2019 - 2024. All rights reserved.