If you are unable to share your original code, you may want to at least try finding these small coefficients. They are probably a sign that your model could be improved by handling some special case in the data more precisely. One way to find them is to use the expand statement, then search for E- (like that, with no spaces) in the results. That will match scientific notation. For example, this code:
proc optmodel;
var XE, Y;
con SmallCoefficients{i in 1..10}: 1/(10**i)* xE - 6*y <= 1;
expand;
quit;
will produce:
Var XE
Var Y
Constraint SmallCoefficients[1]: 0.1*XE - 6*Y <= 1
Constraint SmallCoefficients[2]: 0.01*XE - 6*Y <= 1
Constraint SmallCoefficients[3]: 0.001*XE - 6*Y <= 1
Constraint SmallCoefficients[4]: 0.0001*XE - 6*Y <= 1
Constraint SmallCoefficients[5]: 0.00001*XE - 6*Y <= 1
Constraint SmallCoefficients[6]: 1E-6*XE - 6*Y <= 1
Constraint SmallCoefficients[7]: 1E-7*XE - 6*Y <= 1
Constraint SmallCoefficients[8]: 1E-8*XE - 6*Y <= 1
Constraint SmallCoefficients[9]: 1E-9*XE - 6*Y <= 1
Constraint SmallCoefficients[10]: 1E-10*XE - 6*Y <= 1
Because of the way optmodel formats the output, you will only encounter the E- pattern in a small number, unless your data encodes it in a string.
... View more