Statistical programming, matrix languages, and more

How to get the optimizations results when the error occurs?

Reply
Contributor
Posts: 22

How to get the optimizations results when the error occurs?

I define a objective function and use optimization subroutine NLPNMS to optimize it in IML. After a long time runing, the following error pops up in log window:

ERROR: NMSIMP Optimization cannot be completed.
ERROR: The function value of the objective function cannot be computed during the optimization
       process.
ERROR: Execution error as noted previously. (rc=100)

operation : NLPNMS at line 501 column 1
operands  : *LIT1287, x0, , constr

*LIT1287      1 row       1 col     (character, size 2)

ml

x0      1 row       6 cols    (numeric)

       0.5       0.1       0.1       0.5       0.1       0.1

constr      2 rows      6 cols    (numeric)

     -0.99      0.01      0.01     -0.99      0.01         1
      0.99         .         .      0.99         .         .

statement : CALL at line 501 column 1
501!                                     /*call Nelder-Mead Simplex optimization subroutine*/
502  print xr;
ERROR: Matrix xr has not been set to a value.

If I use the xr at this step as my suboptimal result, how can i get it?

SAS Super FREQ
Posts: 3,409

Re: How to get the optimizations results when the error occurs?

For most optimization methods you can print out the iteration history by specifying a large value for the "how much printed output do you want" option.  The iteration history will help you to determine if the optimization is diverging to infinity (bad, don't use the final estimate) or is converging, but very slowly.

See the doc for NLP options. The option is opt[2]. I can't remember if you need opt[2]=1 or opt[2]=4.

Ask a Question
Discussion stats
  • 1 reply
  • 277 views
  • 0 likes
  • 2 in conversation