problem encountered using Proc LP, optimized coefficients smaller than the lower bound
Posted: 04 April 2014 02:55 AM   [ Ignore ]
Total Posts:  1
Joined  2014-04-04

Hello, I’ve encountered a (weired) problem when using proc lp to do linear optimization. I’d really appreciate it if anyone can shed some light on it.
I am doing a linear minimization with several linear constraints. My constraints include several equations, four inqualities, upper bounds for every coefficient, and a lower bound that requires all the coefficients to be non-negative. I used the simplest command such as
proc lp data= trial_t2 PRIMALOUT=optimal MAXIT1=1000000 MAXIT2=100000 ;
id id;
type type;
rhs rhs;  run;

I need to do this optimization every day for several years. I found that for some days,  the optimized results somehow have a couple NEGATIVE coefficients, which clearly violates my lower bound. SAS doesn’t appear to recognize its mistake and still prints out the “terminated successfully” message, which implies the problem has been successfully solved.

Meanwhile it seems that SAS is able to recognize the lower bound, because if I set the lower bound to be higher than the upper bound, I’ll indeed receive a “infeasible message”.  Moreover, if I change the lower bound to be something like “-0.00001”, I can observe that most of the coefficients are indeede binded by this lower bound, while a couple other coefficients obtain values that are obviously lower than -0.00001.

I have tried leaving out the lower bound (for supposingly the default setting in PROC LP is to set the coefficients to be non-negative), and I have tried manually enter the lower bound as 0’s. Same error accurs. It’s as if SAS somehow decides to “ignore” the lower bounds for a couple coefficients, but at the same time recognizing the lower bounds for other coefficients.

I found this utterly confusing and I’ve desperately searching for answers. Any help would be much appreciated.

P.s. I tried the program in both 9.2 and 9.3. Same error accurs.

Posted: 04 April 2014 07:04 AM   [ Ignore ]   [ # 1 ]
Total Posts:  901
Joined  2011-09-19


I have not used proc lp before; I forwarded your question to the WRDS/SAS Google Group (If there are replies I will post them here).

best regards,



To reply/post new questions: Please use the group WRDS/SAS on Google Groups!