proc optmodel; set Carrier={'I','II'}; set Lane={'AB','BC','CA','CB'}; set Pack={'1','2','3','4','5','6','7','8','9'}; number Bids{Carrier,Pack}=[ 500 500 500 475 975 950 975 900 1325 525 525 475 525 1000 925 925 900 1375]; number PackBin{Lane,Pack}=[ 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 0 1 1 0 1 0 0 0 1 0 0 0 1 0]; var Loads{Carrier,Pack} integer >=0 ; minimize Z=sum{i in Carrier, k in Pack}Bids[i,k]*Loads[i,k]; con LoadsperLane{j in Lane}: sum{i in Carrier, k in Pack}PackBin[j,k]*Loads[i,k]=10; con LoadsperCarrier{i in Carrier}: sum{k in Pack}Loads[i,k]>=10; solve; print Loads Z; quit;