我正在尝试优化决策变量 (X) 是 NxN 二进制矩阵的问题。我发现使问题的约束之一起作用时遇到了麻烦。
第一个约束意味着每行中 X 的总和必须 == 1。(已覆盖)
第二个约束(我无法使用的约束)要求对于对角线 == 1 的那些列,X 的总和必须 >= 2。我在 PuLP 中生成了以下约束:
for j in W:
prob += sum(X[i][j] for i in W if X[j][j] >= 1) >= 2
PuLP 指示解决方案状态为“不可行”。¿ 我做错了什么?¿ 这个约束不能在纸浆中实现?
本质上,涵盖先前要求的示例解决方案矩阵将是:
[0,0,0,1,0]
[0,0,0,1,0]
[0,0,0,1,0]
[0,0,0,0,1]
[0,0,0,0,1]