gpt4 book ai didi

python - Python Gurobi 中覆盖约束的覆盖矩阵

转载 作者:行者123 更新时间:2023-12-01 09:33:56 30 4
gpt4 key购买 nike

设 C 为集合覆盖问题的二进制覆盖矩阵,我想将其转换为 Gurobi 中适当的覆盖约束。我已经设法使用 scipy.csr_matrix 让它工作,但过程似乎很慢。我想知道是否有更有效的方法。

# Convert coverage to sparse matrix
csr_cover = csr_matrix(C.astype(bool))
cover_rows = np.split(csr_cover.indices, csr_cover.indptr)[1:-1]

# add facility coverages to the covering constraints
for i in range(numDemands):
m.addConstr(quicksum(X[j] for j in range(numSites) if i in cover_rows[j]) >= 1)

最佳答案

这似乎比上述方法更快地构建约束:

cover_rows = [np.nonzero(t)[0] for t in C]

for i in range(numDemands):
m.addConstr(quicksum(X[j] for j in cover_rows[i]) >= 1)

关于python - Python Gurobi 中覆盖约束的覆盖矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49702989/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com