给定矩阵A,我正在寻找一组p列,它们最大化每行中匹配单元格总和的最小值。
例如:如果p = 2且A =
1 2 4
3 0 3
5 6 2
选择C1和C2会得到f = min(r1,r2,r3)= min(1 + 2; 3 + 0; 5 + 6)= 3
选择C1和C3时会给出f = min(1 + 4; 3 + 3; 5 + 2)= 5这是最好的选择。
是否有任何算法或启发式方法。
谢谢
答案 0 :(得分:4)
这个问题通过集合覆盖的平凡减少是NP难的(让A是表示元素集包含关系的0-1矩阵)。我会在简单的整数程序公式中尝试MIP求解器,如果c(j)
列被取j
为1,则其他为0。
maximize lambda
subject to
lambda <= c(1) A(i,1) + ... + c(n) A(i,n) for all i
c(1) + ... + c(n) = p
c(j) in {0, 1} for all j