Python 约束所有变量 x >= 0



我有一个距离矩阵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

这和你现在做的是一样的,也许构造起来会快一点。

如果你正在创建一个整数矩阵,它是如此之大,它是"耗时";构建……根据你模型的其余部分,解决这个问题可能会很费力……

最新更新