建立一个集合覆盖问题的模型,然后用一些简单的方法求解即可
sets:
p1/1..7/:x;
p2/1..7/:;
p12(p1,p2):c;
endsets
data:
c=
1 0 0 0 1 0 1
1 1 0 0 1 0 1
1 0 0 1 0 0 1
0 1 0 1 1 0 0
0 0 1 1 0 1 0
0 0 0 1 1 1 0
1 0 0 0 1 1 1;
enddata
min=@sum(p1:x);
@for(p2(j):@sum(p1(i):x(i)*c(i,j))>=1);
@for(p1:@bin(x));