我正在用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]
但是不会添加约束!
答案 0 :(得分:1)
0==yearly_volume[2025]
最初是发生了什么,然后有人建议技术上它是
None == yearly_volume[2025]
可以将其解释为空约束
虽然可能在github repo上启动了一个问题,但我对你的观点提出了警告。甚至更好的拉动请求
由于
斯图