【发布时间】:2018-09-10 03:21:02
【问题描述】:
在我用 Python 中的 PuLP 求解的 LP 模型中,我有两组决策变量,例如
#Variables x
x = LpVariable.dicts("Decision_x",(range(3),range(3)),0,1,LpInteger)
#Variables y
y = LpVariable.dicts("Decision_y",(range(3),range(3)),0,1,LpInteger)
求解模型后,我只对 x[i][j] 取值为 1 的变量感兴趣。我知道
for v in prob.variables():
if v.varValue == 1:
print(v)
我可以打印所有值等于 1 的变量。因此,打印所有值等于 1 的 x 和所有 y 变量。我怎样才能设法只访问 x 变量,以便不打印 y 变量?我尝试了prob.variables(x) 或prob.variables()[x],但到目前为止没有任何效果。
然后在下一步中,我想提取 x 等于 1 的 x 变量的索引。例如,如果 x[1][3] == 1 那么我想找到那些索引 1 和 3。他们有什么聪明的方法吗在纸浆中实现这一目标?
【问题讨论】:
标签: python python-3.x optimization linear-programming pulp