param nOre ; param nBlender ; set Ore , default {1 . . nOre}; set Blender , default {1 . . nBlender}; param CuG{o in Ore}; param NiG{o in Ore}; param FBR; param MinNi; param penalty; var x{o in Ore,b in Blender} >= 0; var y {o in Ore,b in Blender} ,binary; var z {b in Blender}, >0; var CuContent, >= 0; var NiContent, >=0 ; var del1, >=0; var del2, >=0; Minimize obj : (del1+del2)*penalty+sum{o in Ore, b in Blender}y[o,b]; subj to first: x[a,d] <=y[a,d]; subj to second sum{o in Ore}x[o,b]=z[o,b]; subj to sum{b in Blender}z[b] =1; subj to Copper Cont = sum {o in Ore, b in Blender}x[o,b]*CuG[o]; subj to Nikel Content = sum {o in Ore, b in Blender}x[o,b]*NiG[o]; subj to NiContent <= CuContent + del1; subj to CuContent <= NiContent + del1; subj to BR{b in Blender:b>=1 and b=1 and b=MinNi; subj to NiContent+del2 <= MaxNi; Solve; data; param nOre: = 3; param nBlender: = 2; param CuG:= 1 6.1 2 2.6 3 1.4; param NiG:= 1 1.7 2 2.2 3 2.6; param FBR : = 2; param MinNi:= 2.8; param penalty := 1000;