Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Gurobi中覆盖约束的覆盖矩阵_Python_Sparse Matrix_Linear Programming_Gurobi_Integer Programming - Fatal编程技术网

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

Python Gurobi中覆盖约束的覆盖矩阵,python,sparse-matrix,linear-programming,gurobi,integer-programming,Python,Sparse Matrix,Linear Programming,Gurobi,Integer Programming,设C是一个集合覆盖问题的二元覆盖矩阵,我想把它转换成Gurobi中适当的覆盖约束。我已经设法使用scipy.csr\u 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 c

设C是一个集合覆盖问题的二元覆盖矩阵,我想把它转换成Gurobi中适当的覆盖约束。我已经设法使用
scipy.csr\u 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 if过滤器将执行更多迭代