Anyone who know how to use Proc NLP to solve NLP problem

Anyone who know how to use Proc NLP to solve NLP problem

Post by haryshe » Tue, 27 Sep 2005 18:33:18


Is there anyone who are familiar with Proc NLP in SAS/OR? I have over
100 decision variables and over 100 constrains, is Proc NLP powerful
enough to have the ability to find the solution?

Another question is about SAS/EM. We all know EM is used in interactive
mode. Assuming we have already decided used EM/Tree to do the task, and
we only want automatically refresh the results based on the updated
data. I means I want to use SAS/EM in a programming mode(I want
integrate EM part work with other sas programs). Is that possible?


Anyone who know how to use Proc NLP to solve NLP problem

Post by topkat » Wed, 28 Sep 2005 02:46:46


If, by "over 100 decision variables and over 100 constrains" you mean "on
the order of" 100 variables / constraints, then you probably will be able
to run a PROC NLP model to convergence. But, as you're no doubt aware,
nonlinear programming is delicate and can be tied up by even a handful of
complex constraints. Conjugate gradient is typically the fastest
implementation of the many different optimization techniques available in
PROC NLP (although, for quadratic problems some of the strictly quadratic
techniques may prevail) But even if you can't get convergence with
conjugate gradient, you might have better luck with another method.

About E-Miner: There are several ways to use EM. If, by "refresh the
results based on the updated data" you mean that you want to use the same
tree model, but with new values of the variables, then you can use the
score node to generate code to do this. The score node code consists of a
data step with some formats, and you can run it like any SAS program you
write, which also means that you can stick it into an existing SAS
program, e.g., the program that produces the updated data. If you
actually wish to regenerate the entire model, but you're satisfied with
the modeling process, you should be able to create a model diagram that
you can run from start to finish, including scoring. You can even put
your auxiliary code (such as data set creation) into one or more SAS code
nodes. What I have not seen done (although I wouldn't swear that it
couldn't be done) is to take the SAS code equivalent of this entire model
diagram flow and produce a model automatically that way.

-- TMK --
"The Macro Klutz"


Anyone who know how to use Proc NLP to solve NLP problem

Post by davidlcass » Wed, 28 Sep 2005 04:42:07

XXXX@XXXXX.COM wrote (in part):

PROC NLP can handle this easily. However, you can have lots of issues with
convergence, the number of iterations, and the time involved. With this
many variables, I would recommend that you input your own derivatives.
You can use several different statements to do this (including GRADIENT,
JACOBIAN and HESSIAN depending on your own preferences), but providing
your own derivative information saves a huge amount of time on each
iteration (since the system doesn't have to go through all the finite
approximations of the derivatives), and also increases precision (since your
derivatives will be more accurate than the finite difference

I see that TopKatz has already given a much better answer to your second
question than I had. I'll just add that totally different questions are
handled better in SAS-L if you ask them in separate messages.

Don just search. Find. Check out the new MSN Search!

Anyone who know how to use Proc NLP to solve NLP problem

Post by haryshe » Wed, 28 Sep 2005 10:59:23

Thank you very much for your excellent answer. In terms of EM, I wonder
whether SAS provide a means to do the job that EM do, I means the
programming mode. As you said probably this can't be done that way. Is
that right?