首页 > 解决方案 > 使用 CVXPY 对矩阵约束进行向量化

问题描述

这就是我目前编写约束的方式 -

x = cp.Variable(shape=(len(dogs), len(fields)), boolean=True)

# Each dog must run in exactly one field
constraints = []
for i in range(len(dogs)):
    constraints.append(cp.sum([x[i][j] for j in range(len(fields))]) == 1)

# Each field must not have more than 10 dogs
for j in range(len(fields)):
    constraints.append(cp.sum([fields[i] * x[i][j] for i in range(len(dogs))]) <= 10)

我阅读了文档说矢量化约束可以带来更好的性能。我将约束更改为

constraints = [cp.sum(x[:,])==1,cp.sum([dogs@x]) <= 10]

但是,这似乎不起作用。有人可以帮我向量化约束吗?

标签: pythonconstraintscvxpymixed-integer-programmingconvex-optimization

解决方案


推荐阅读