当使用空列表推导时,纸浆产生无意义的约束

时间:2018-03-22 15:36:26

标签: list-comprehension pulp

我正在用PuLP解决一个林业LP问题,浪费了很多时间来弄清楚为什么CPLEX会产生毫无意义的答案。基本上我有一些变量未附加到问题的其余部分,因为空列表理解。我的约束总是那种:

for year in YEARS:
    lp+=pulp.lpSum([vol[i]*x[i] for i in possible_combinations 
                    if test(i)])==yearly_volume[year], "yearly_volume[%d]" %(year)

在某些情况下,定义列表理解(测试)的条件从未实现,从而导致未附加的变量。当发生这种情况时,有没有其他人认为PuLP会警告我们?我应该得到一个看起来像

的约束
0==yearly_volume[2025]

但是不会添加约束!

1 个答案:

答案 0 :(得分:1)

0==yearly_volume[2025]

最初是发生了什么,然后有人建议技术上它是

None == yearly_volume[2025]

可以将其解释为空约束

虽然可能在github repo上启动了一个问题,但我对你的观点提出了警告。甚至更好的拉动请求

由于

斯图