model:

sets:

a/1..10/;

b/1..30/;

t/1..38/;

m/1..15/:f;

link(m,t):x;

endsets@for(link:@bin(x));

data:

f=1000,2800,2000,2600,1550,2100,3380,1680,1700,3050,2830,1590,2200,1890,1650;

enddata

min=@sum(t(j):f(i)*x(i,j));

@sum(t(j):x(1,j))>=3;

@sum(a(j):x(1,j))>=2;

@sum(t(j):x(2,j))>=3;

@sum(a(j):x(2,j))>=2;

@sum(t(j):x(3,j))>=2;

@sum(b(j):x(3,j))>=1;

@sum(t(j):x(4,j))>=2;

@sum(b(j):x(4,j))>=1;

@sum(t(j):x(5,j))>=3;

@sum(a(j):x(5,j))>=2;

@sum(t(j):x(6,j))>=3;

@sum(a(j):x(6,j))>=2;

@sum(t(j):x(7,j))>=2;

@sum(b(j):x(7,j))>=1;

@sum(t(j):x(8,j))>=4;

@sum(a(j):x(8,j))>=2;

@sum(t(j):x(9,j))>=4;

@sum(a(j):x(9,j))>=2;

@sum(t(j):x(10,j))>=3;

@sum(a(j):x(10,j))>=2;

@sum(t(j):x(11,j))>=3;

@sum(a(j):x(11,j))>=2;

@sum(t(j):x(12,j))>=3;

@sum(a(j):x(12,j))>=2;

@sum(t(j):x(13,j))>=3;

@sum(a(j):x(13,j))>=2;

@sum(t(j):x(14,j))>=2;

@sum(a(j):x(14,j))>=1;

@sum(t(j):x(15,j))>=2;

@sum(a(j):x(15,j))>=1;

@for(t(j):@sum(m(i):x(i,j))>=2);

@for(a(j):@sum(m(i):x(i,j))<=3);

@for(link:@bin(x));

end