我有一个距离矩阵D,我以以下方式为其设置决策变量x[i,j,k]
:
varsGurobi = [(i,j,k) for i in range(len(D)) for j in range(len(D[i])) for k in range(len(D[i][j])) if D[i][j]]
x=model.addVars(varsGurobi, vtype=gp.GRB.INTEGER)
我如何添加x的下界或者x (I, j, k)等于或大于0的约束?
目前我是这样做的,但这是非常耗时的,因为距离矩阵很大:
[model.addConstr(x[i,j,k] >= 0) for i in range(len(D)) for j in range(len(D[i])) for k in range(len(D[i][j]))]
您可以在使用lb
关键字声明变量时添加Lower Bound。参考:
https://www.gurobi.com/documentation/10.0/refman/py_model_addvars.html
这和你现在做的是一样的,也许构造起来会快一点。
如果你正在创建一个整数矩阵,它是如此之大,它是"耗时";构建……根据你模型的其余部分,解决这个问题可能会很费力……