All,

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?

Thanks

Hi.

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"

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"

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

difference

approximations of the derivatives), and also increases precision (since your

derivatives will be more accurate than the finite difference

approximations).

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

usually

handled better in SAS-L if you ask them in separate messages.

HTH,

David

_________________________________________________________________

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

http://www.yqcomputer.com/

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?

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?

1. Can you do array processing and a proc nlp from within proc iml?

2. Using vectors in single NLP constraint inside proc iml with call statement

3. Using vectors in single NLP constraint inside proc iml

4. Using vectors in single NLP constraint inside proc iml with call statement

5. Using dataset in single NLP constraint inside proc iml and call nlpqn

6. [Question] How to solve NLP problems ?

9. proc NLP

10. Proc NLP with very complex function

11. PROC NLP Warning

12. PROC NLP Profile statement

13. Help: proc nlp maxium likelihood

4 post • Page:**1** of **1**