BookmarkSubscribeRSS Feed
ShufeGuoding
Obsidian | Level 7

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?

1 REPLY 1
Rick_SAS
SAS Super FREQ

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.

hackathon24-white-horiz.png

The 2025 SAS Hackathon Kicks Off on June 11!

Watch the live Hackathon Kickoff to get all the essential information about the SAS Hackathon—including how to join, how to participate, and expert tips for success.

YouTube LinkedIn

From The DO Loop
Want more? Visit our blog for more articles like these.
Discussion stats
  • 1 reply
  • 1620 views
  • 0 likes
  • 2 in conversation