【发布时间】:2020-12-15 10:30:19
【问题描述】:
我们已经很好地设置了约束,现在正在研究合作伙伴偏好问题的目标函数。我们可以构建一个 20x20 的工人到工人的对称矩阵,每个元素是两个工人之间的综合得分。但是,矩阵不是半正定的,我们无法进一步前进。我们正在使用cvxpy python 包。请帮忙!
一段代码澄清一下:
part_pref = pd.read_excel('Preferred Partners Updated.xlsx')
part_pref_np = np.array(part_pref)[:,1:21] # 20x20 symmetric matrix with partner preference
y = cp.Variable((20, 4), integer = True)
objective = cp.Maximize(-cp.sum(y.T @ part_pref_np @ y))
constraints = [y >= 0,
y <= 1,
cp.sum(y, axis = 1) == 1,
cp.sum(y, axis = 0) >= b,
cp.sum(y, axis = 0) <= c,
(skill_np-d).T @ y >= e,
cp.multiply((skill_np[:,2]-4),y[:,0]) >= 0,
cp.multiply((skill_np[:,0]-4),y[:,3]) >= 0,
f @ x[:,0] >=1]
problem = cp.Problem(objective, constraints)
problem.solve()
引发错误
DCPError:问题不符合 DCP 规则。
【问题讨论】:
标签: python matrix optimization cvxpy