set BIDS;
set ITEMS;

var is_accepted{j in BIDS}, >=0, <=1;

param is_in{i in ITEMS, j in BIDS}, binary;
param value{j in BIDS};

maximize total_value: sum{j in BIDS} is_accepted[j]*value[j];

s.t. no_overlap{i in ITEMS}: sum{j in BIDS} is_accepted[j]*is_in[i,j] <= 1;

data;

set BIDS := b1 b2 b3;
set ITEMS := iA iB iC;

param value := b1 2 b2 3 b3 2;
param is_in :
       b1  b2  b3 :=
iA      1   1   0
iB      1   0   1
iC      0   1   1;

end;
