SECTION A. FOLKLORE AND SUGGESTIONS
The following are suggestions on which method to choose for various problems.Since the performance of each of these methods varies significantly with the function to be optimized and with the starting points and accuracy given, in cases where the optimization is not prohibitively expensive and the results are very important (as opposed to a Monte Carlo study for example) it has been suggested that several methods be tried with a number of different starting points. For problems in which only one or two methods will be used, the following folklore may be useful. The default method of DFP is probably the best general purpose method for most problems (especially if analytic derivatives can be supplied by the user). Nevertheless, it tends to stop prematurely at times and is not as robust as GRADX. SSVM is in the same family and may beat DFP in many cases. If the function's analytic second derivatives are not too complicated or expensive, GRADX (with or without stretching) may be recommended. In either GRADX or DFP, stretching is recommended when the function evaluation is inexpensive (relative to eigenvalue calculations or several matrix products) or when the parameters are very symmetric (i.e. really a lower dimension problem than stated). Stretching should also be applied to all large dimensional problems (NP greater than 6 for GRADX or greater than 12 for DFP). When GRADX is used with symmetric numerical derivatives, it is advisable that some form of stretching should be used. When the function to be optimized is not at all approximately quadratic, POWELL or (for small dimensional problems, i.e. NP less than 15) NMSIMP should be used first to produce fairly good starting values, then, if possible, DFP or GRADX can be tried. GRADX, with analytic or numerical derivatives, will most likely be more expensive than DFP but may be able to converge to a better answer in very difficult problems. PATERN and RNSRCH are not usually the first choice for optimization but can be useful if the function is very flat and other methods do not work because of inaccurate numerical derivatives. The H matrix returned by DFP as an approximation to the inverse second derivatives is only reasonably accurate at best and will probably be of very little value when termination occurs in only a few iterations. When NP is less than 7 or 8 NMSIMP has proven to be rather successful and efficient in function evaluations. In constrained optimization GRADX tends to be less effective than DFP. GRADX may, in such cases, terminate with "BACKTRACK CYCLE EXCEEDED" more frequently than in unconstrained problems.
Note that it is useful to consider several tricks that may improve the behavior of the function to be optimized. First, if we wish to optimize f(x), it may be useful to replace it with
ef(x)
which preserves the signs of the derivatives of the original function.
Secondly, if the function to be minimized is nonnegative and very flat, it may be useful to replace it with a power of the original function; this will tend to reduce flatness. None of these devices are without hazards, but they are worth some consideration.
Following is a list of all pertinent COMMON blocks and the section in which they are referenced.
COMMON BLOCK/NAME/CONTENTS SECTION
COMMON/BARMA1/IP,IQ,IBJ,IT,IROOTS 18.1 COMMON/BARMA2/Y 18.1 COMMON/BARMA3/YY 18.1 COMMON/BARMA4/EPSIL 18.1 COMMON/BCLUST3/JCLI,JCLJ not for general users COMMON/BDFP/STPMIN,FOPT 3.1 COMMON/BFIDIF/FDFRAC,FDMIN 2.1,3.1,9.1 COMMON/BGENALG2/NC,INITGEN,IPAIR,IMATE,KTERL,IMUTE,ITEST,IHOWMAN 16.3 COMMON/BGENALG3/XMUTE,ALPH1,BET1,BACC,PM4,SHRINK1,EXPAND 16.3 COMMON/BGENALG5/JNITGEN,JPAIR,JTERL,JTEST 17.3 COMMON/BGENALG6/YMUTE,BCC 17.3 COMMON/BGEN1/IVAL not for general users COMMON/BGENRAN1/PM4 not for general users COMMON/BGENRAN2/ALPHA3,BETA3,GAMMA3,EPS3,ETA3,DELTA3 16.4 COMMON/BGLOB1/XL1,XH1 16.1 COMMON/BGLOB2/IERCTL 16.2 COMMON/BGRADX/JP,JBINV not for general users COMMON/BGRDX1/NTRM,NBHHH,LBHHH,KBHHH 2.2 COMMON/BGRDX2/RTM,EIG,RTMULT 2.1 COMMON/BGRDX3/ACTI,ACTW,ZFUL,BETM 2.1 COMMON/BINPUT/INFLG 3.2 COMMON/BLNSR/STEP1,STPACC,NLNSR 2.1, 3.1, 4.1 COMMON/BNEL/STP1,VAR,KONVGE,NRST 5.1 COMMON/BNLYSA/KEY1,TRUE,LABEL,KPARM,IREP not for general users COMMON/BNLYS1/NMETH,NPARMT,NEST,NCOMP,NOUT,MAXREP not used currently COMMON/BNLYS2/INLIST,NEWPAG,NLIST,CLIST not used currently COMMON/BNLYS3/IPARM,JREP,MLABEL,IMETH not for general users COMMON/BNLYS5/KREP,METH,LP,NSIZE,RE,FE,PROD,RLOG,REP,REPL,DF,BAR,DENOM not for gen'l use COMMON/BNLYS6/FMT3(20),TITLE(20) not for general users COMMON/BNLYS6/FMT3(20),TITLE(20) not for general users COMMON/BNLYSA/KEY1,TRUE,LABEL,KPARM,IREP not for general users COMMON/BNOBS/NOBS 1.4 COMMON/BNORMPRB/PRIB not for general users COMMON/BNWRP1/IVFLIM,INVLIM 11. COMMON/BNWRP2/EPCOR,EPSVRT 11. COMMON/BNWRP3/JNRP1,JNRP2,JNRP3 11. COMMON/BOPT/IVER,LT,IFP,ISP,NLOOP,IST,ILOOP 2.1, 3.1 COMMON/BOPT1/NPARS,JH,JFP,JFP1,JSP,JSP1,JA1,JS,JBHHH not for general use COMMON/BOPT2/ACC,R,PM1,IVAL,ITERL,ITERC,MX,IER not for general users COMMON/BOPT3/JSMP,JF,JSPD not for general users COMMON/BOPT5/PM2,JTHET,JPHI,JRAN,JSAVE,JMOV not for general users COMMON/BOPT6/DELTAZ,SDELTA,RHO 7. COMMON/BOPT7/ALPHA,BETA,OMEGA,EPSTIL,RH,DELTIL,SIGMA,BIGL,AKAPPA 8.1 COMMON/BOPT8/IV8,IV3 8.1 COMMON/BOPT9/JX1,JD0,JD1,JTEMV,JG0,JG1,JV,JP,JQ,JSS not for general users COMMON/BOUT1/IMODIF not for general users COMMON/BPAT/STPSIZ,SHRINK 6.1 COMMON/BPENLT/PM1,MXX,JN,NC3,NC4,ITERLC,NC not for general users COMMON/BPNLT1/SHRK,XL1,XL2,IVERS1 1.10 COMMON/BPREC/RSMALL,ABSMAL not for general users COMMON/BPRM/IPRM(np) 1.9 COMMON/BPRM2/XPRM(np) 1.9 COMMON/BPRINT/IPT,NFILE,NDIG,NPUNCH,JPT,MFILE 1.1 COMMON/BPROB/IPROB,JPROB 10. COMMON/BPROB2/KPROB not for general users COMMON/BREAD/NREAD 1.1 COMMON/BSPD/ISPD 2.1 COMMON/BSSVM1/THETAA,PHII,SHRIP1,SHRIP2,EPSS 2.2,9.1 COMMON/BSTACK/AINT(i2) 1. COMMON/BSTAK/NQ,NTOP 1. COMMON/BSTOP/NVAR1,ISTOP(3) 1.1 COMMON/BSTOP1/JSTOP(2) 1.10 COMMON/BSTR/ST2,F2,ST3,F3,IEDGE not for general users COMMON/BVAL/VAL not for general users COMMON/CDATA/PHI,PHIN not for general users COMMON/CNSTS/PI,SQ2,SQ2PI,SQ2PIL not for general users COMMON/CONST/RT2PI,RT2 not for general users COMMON/HERMIT/Q(12),Y(12) not for general users COMMON/BHETRO/NDIM,N,K1,K2 13.3 COMMON/MNCRL/B,XM,SI,CV not for general users COMMON/ROOT/RT2 not for general users COMMON/USERP1/DATA(n,k) 10. COMMON/USERP2/NDIM,KDIM 10. COMMON/USERP3/ICJACK not for general users COMMON/USERQ1/DATA(1) 10.7 COMMON/USERQ2/IDATA(1) 10.7 COMMON/USERQ3/N,K,NCAT 10.7 COMMON/USER1/Q(1) 10. COMMON/USER1/X1(1) 10. COMMON/USER1/X2(1) 10. COMMON/USSER0/Q(1) 10. COMMON/USSER1/P(1) 10. COMMON/USSER2/X1(1) 10. COMMON/USSER3/X2(1) 10. COMMON/USSER4/X3(1) 10. COMMON/USSER5/N,K1,K2,K3 10.
This is a simple sample program:
IMPLICIT REAL*8(A-H,O-Z)
DIMENSION A0(5)
CHARACTER*8 ALABEL(5)
COMMON/BSTACK/AINT(155)
COMMON/BSTAK/NQ,NTOP
COMMON/DATA/PI2
C This demonstrates how to pass data to the FUNC subroutine.
COMMON/BOPT/IX,LT,IFP,ISP,NLOOP,IST,ILOOP
C This COMMON block card is needed only if some option is being used.
EXTERNAL DFP,FUNC1
C
C Next statement for PC and workstation versions only
C
CALL DFLT
PI2=3.14159265D0**2
NQ=155
IST=0
C This demonstrates how to use one of the options. (a very useful one).
NP = 5
MX=2
ITERL =150
ACC=1.D-8
DO I = 1,NP
A0(I) = .5
END DO
CALL LABEL (ALABEL,5)
CALL OPT(A0,NP,FU0,DFP,ITERL,MX,IER,ACC,FUNC1,ALABEL)
CALL OPTOUT(0)
C This option is very useful.
STOP
END
SUBROUTINE FUNC1(X0,NP,FU0,*)
IMPLICIT REAL*8(A-H,O-Z)
DIMENSION X0(5 )
COMMON/DATA/PI2
FU0=PI2
DO I = 1,5
FU0 = FU0 + X0(I)**2 + X0(I)**3 + X0(I)**4
END DO
RETURN
END
SECTION C. MAINTENANCE OF GQOPT ---Not of interest to the general user
Description of COMMON blocks:
COMMON/BGENRAN2/ALPHA3,BETA3,GAMMA3,EPS3,ETA3,DELTA3 ALPHA3 = Used in generating points, between 0.0 and 1.0 (e.g.,0.02) BETA3 = Used in generating points, between 0.0 and 1.0 (e.g., 0.5) GAMMA3 = Used in generating points, between 0.0 and 1.0 (e.g., 0.1) EPS3 = Expansion of search region factor (> 0.0) (e.g.,0.01) ETA3 = Test for printing (> 0.0) (e.g., 0.003) DELTA3 = Shrinkage factor for search region (< 0.5) (e.g., 0.1)
COMMON/BGLOB1/XL1,XH1 XL1 = Array of lower bounds for search XH1 = Array of upper bounds for search
COMMON/BGLOB2/IERCTL IERCTL = Number of function errors permitted before termination in GLOB2
COMMON/BNORMPRB/PRIB PRIB = for internal communication of PROB in NORMPRB
COMMON/BNWRP1/IVFLIM,INVLIM IVFLIM = limit on step shrinkages in NEWRAP INVLIM = limit on Jacobian modifications in case of singularity
COMMON/BNWRP2/EPCOR,EPSVRT EPCOR = amount by which diagonal of singular Jacobian is modified EPSVRT = matrix inversion accuracy
COMMON/BSMLQ2/IG,NBEG,NEND,IAUTO,ISDIAG,IJAC IG = number of equations in system NBEG = index of first observation to be used NEND = index of last observation to be used IAUTO = 0 if no autocorrelations of residuals are to be estimated 1 otherwise ISDIAG = 0 if covariance matrix is not diagonal,1 if it is.If 2, user must set IQQ2 for covariance restrictions. IJAC = 1 if the user provides the Jacobian array in SUBROUTINE SIMEQ3 and the Jacobian does not vary with the observations, IJAC =2 if the Jacobian does vary with the observations.
COMMON/BSMLQ3/IQQ2(10,10) IQQ2 = matrix to contain covariance matrix restrictions
COMMON/BSMLQ4/MP MP = should be set to NP, the total number of parameters in the problem
COMMON/BSTACK/A(1) A = A double precision array for scratch (or dynamic) storage. It must be given sufficient space in users calling program to supply scratch storage for the method selected.
COMMON/BSTAK/NQ,NTOP NQ = The total storage avail in array A. i.e. dimension of A. NTOP = Pointer to current top of storage being used. Thus first available scratch location is NTOP+1. When more scratch space is required the value of NTOP must be incremented to NTOP + additional storage. Note that scratch storage may be reserved by any program (including the user's) at any time but, for efficiency, the storage should be released (decrement NTOP) before returning from the program or package, as the case may be. OPT saves the previous top of storage (LASTOP) and releases all its storage by setting NTOP=LASTOP on exit.
COMMON/BOPT/IX,LT,IFP,ISP,NLOOP,IST,ILOOP LT = 0 if analytic first partials were supplied. LT = 1 otherwise (LT is set to 0 in the BLOCK DATA, but is changed to 1 during the first use of numerical derivatives). ILOOP = Number of times the method has looped on the current step. When this reaches NLOOP an error will occur.
COMMON/BOPT1/NPARS,JH,JFP,JFP1,JSP,JSP1,JA1,JS,JBHHH NPARS = ... JH = Pointer to H matrix (if used). Output by OPTOUT(1). JFP = Pointer to 1st derivatives (if used). Output by OPTOUT(3). JFP1 = Pointer to alternate 1st derivatives (if used). JSP = Pointer to 2nd derivatives (if used). Output by OPTOUT(2). JSP1 = Pointer to inverse 2nd derivaties only when GRADX ends with IER greater than 0 (else a non-zero ALF has been added) JA1 = Pointer to alternate X-vector (always used). JS = Pointer to direction of linear search (if used). OPTOUT(5). JBHHH = Pointer to derivatives if NBHHH procedure used.
COMMON/BOPT2/ACC,R,PM1,IVAL,ITERL,ITERC,MX,IER ACC = Accuracy requested by the user. R = Current step size along the direction of search. Varies in importance with the method selected. PM1 = 1 for maximum, -1 for minimum. Set by OPT. IVAL = Number of function evaluations to date. = Maximum iterations permitted by user before error. ITERC = Current number of iterations taken. MX = 1 for maximum, 2 for minimum. IER = Error flag. If, while calculating analytic derivatives, the user wants to stop the optimization, he can set the error flag, IER (in COMMON BOPT2), to -2 while in FP or SP and the optimization routine will return with termination flag -2.
COMMON/BOPT3/JSMP,JF,JSPD JSMP = Pointer to simplex used by POWEL or NELMED. Output by OPTOUT(4). JF = Pointer to function values associated with JSMP (NELMED). JSPD = Pointer to diagonal of 2nd derivative approx. (DFP). Output by OPTOUT(6).
COMMON/BOPT5/PM2,JTHET,JPHI,JRAN,JSAVE PM2 = -1 for maximum, 1 for minimum JTHET = Pointer to temporary storage for X-array JPHI = Pointer to random trial point JRAN = Pointer to random perturbation JSAVE = Pointer to temporary save area
COMMON/BOPT9/JX1,JD0,JD1,JTEMV,JG0,JG1,JV,JP,JQ,JSS JX1 = Pointer to new X-vector JD0 = Pointer to H-matrix JD1 = Pointer to new H-matrix JTEMV = Pointer to H*GRADIENT JG0 = Pointer to gradient JG1 = Pointer to new gradient JV = Pointer to V-vector JP = Pointer to step JQ = Pointer to change in gradient JSS = Pointer to search direction
COMMON/BPENLT/PM1,MXX,JN,NC3,NC4,ITERLC,NC PM1 = 1 for maximum, -1 for minimum MXX = 1 for maximum, 2 for minimum JN = Pointer to constraint values NC3 = Same as NC1 NC4 = Same as NC2 ITERLC = Counts CONOPT passes NC = NC1 + NC2
COMMON/BCLUST3/JCLI,JCLJ For internal communication in CLUSHIER
COMMON/BPREC/RSMALL,ABSMAL RSMALL = Relative precision of computer. Default = 1.D-14 ABSMAL = Absolute precision of computer. Default = 1.D-35
COMMON/BGRADX/JP,JBINV JP = Pointer to eigenvectors of 2nd derivative (GRADX). JBINV = Pointer to ellipsoid of IVER = 2. (GRADX).
COMMON/BREGR00/EPSTOL EPSTOL = The precision used in inverting X'X (Default = 1.D-15)
COMMON/BSTR/ST2,F2,ST3,F3,IEDGE ST2 = Distance from A0 along del to 2nd point used by STR1. F2 = Function value at 2nd point for STR1. ST3 = Distance from A0 along del to 3rd point used by STR1. F3 = Function value at 3rd point for STR1. IEDGE = 1, if bracketing failed (see comment in STR) 0, otherwise
COMMON/BPRINT/IPT,NFILE,NDIG,NPUNCH,JPT,MFILE NDIG = 6, 7 or 8 for 6 elements per line in 1PD16.8 format. = 3, 4 or 5 for 8 elements per line in 1PD12.4 format. = 0, 1 or 2 for 10 elements per line in 1PD9.1 format. NPUNCH = Device number for 'punched' output. Default is 9. NFILE = Device number for output. Default is 8.
COMMON/BOUT1/IMODIF IMODIF = 1 if the covariance matrix is to be used by OPTOUT or OPTMOV. = 0 otherwise
COMMON/BVAL/VAL VAL = The optimized value This is used to pass the value to OPTOUT and OPTMOV.
COMMON/BPRM2/XPRM(1) XPRM = The array used in function calls with permutation of variables. All calls use this array to insure that constrained variables remain unchanged.
COMMON/CNSTS/PI,SQ2,SQ2PI,SQ2PIL PI = 3.14159265 SQ2 = squareroot of 2.0 SQ2PI = squareroot of 2.*PI SQ2PIL = natural logarithm of SQ2PI
COMMON/FNABSC1/CONFF CONFF = Confidence level in ZVAL
COMMON/MNCRL/B,XM,SI,CV For internal communication in MONCARL for the A, SIG, XMU, COV arrays
COMMON/USERP3/ICJACK For internal communication in PROBJACK and LOGJACK
IER CONOPT SEQOPT GRADX DFP POWELL NMSIMP PATERN RNSRCH MUKAI
- 1 ITERL ITERL ITERL ITERL ITERL ITERL ITERL - 2 FP,SP FP FP - 3 INPUT INPUT INPUT INPUT INPUT INPUT INPUT - 4 SCRATCH SCRATCH SCRATCH SCRATCH SCRATCH SCRATCH SCRATCH - 5 STRAY STRAY - 6 R31 - 7 BACKTRCK - 8 EIGENVAL - 9 FUNC FUNC FUNC FUNC FUNC FUNC FUNC -10 RESTART -11 SIMPLEX -12 SIMPLEX -13 STOPCRI STOPCRI STOPCRI STOPCRI STOPCRI STOPCRI -14 H-MAT -15 STOPCRI -16 GRAD'NT -17 PERM -18 PERM -19 ITERLG -20 ITERL3 -21 STOPCRI -22 NP1 -23 NP -24 GRAD'NT -34 NC1,NC2 -35 ITERLG -36 FUNC -37 CONSTR -42 LIN.SRCH
ERROR CODES CONTINUED
PROBIT TOBIT LOGIT SSVM REGFAL NEWRAP INTEG UTILITY SIMEQ
-1 ITERL ITERL -2 SINGUL -3 INPUT INPUT INPUT INPUT INPUT -4 SCRATCH -9 FUNC -38 MORE THAN 1 SELECTED -39 LIN.SRCH -40 FUNC -41 PQ,DEN -50 to -64 INPUT -65 PRMCHK -66 JACOB JACOB -67 SINGULR COVAR -68 EQ.ERROR -69 DIVERGE -70 SIMEQ2 -71 COVAR -72 AUTOCOR
ERROR CODES CONTINUED
REGRES GLOB1 GLOB2 CONTING ROMB GENALG MONCARL NORMPRB
- 1 ITERL - 3 INPUT INPUT INPUT - 5 STRAY - 7 BAD A&B -10 FUNC -67 SINGUL COVAR COVAR -73 COVAR -74 Y-VAR -80 FUNC -81 FUNC -82 FUNC -83 FUNC -84 FUNC -85 FUNC -86 BOUNDS -99 INTERNL -100 EXP.FRQ. FUNC -101 EXP.FRQ. ITERL -102 FISHER -103 EXP.FRQ. -104 NO CONV.
DETAILED ERROR MESSAGES
A AND B DO NOT BRACKET SOLUTION
Occurrence: NORMPRB
Meaning: The function values at the extreme points of
the initial search region have the same sign
Remedy: Increase the initial search region
A MUST BE POSITIVE---QUITTING
Occurrence: RANDVAR
Meaning: The A specified for the exponential density
is nonpositive
Remedy: Correct the input
A AND B MUST BE POSITIVE
Occurrence: RANDVAR
Meaning: The A or the B specified for the Pareto was
nonpositive
Remedy: Correct the input
ASYMPTOTIC VARIANCES ARE NOT ALL POSITIVE--ERROR IN T-RATIOS
Occurrence: GRADX,DFP
Meaning: Obvious
Remedy: Refine location of optimum. Compute derivatives
analytically. Failing that, change values of FDFRAC
and FDMIN by factors of 10 upwards or downwards.
AX ≥ BX---QUITTING
Occurrence: BIVAR3
Meaning: Obvious
Remedy: Obvious
BACKTRACK CYCLE EXCEEDED
Occurrence: GRADX
Meaning: An apparent saddlepoint with repeated step-size shrink-
ages unable to find an improvement. Often an optimum
and mistakenly diagnosed as a saddlepoint due to in-
accurate derivatives.
Remedy: Use analytic derivatives. Failing that, alter FDFRAC
and FDMIN by factors of 10 upwards and downwards.
BHHH PROCEDURE VALID ONLY FOR LIKELIHOOD MAXIMIXATION --- NBHHH RESET
TO ZERO
Occurrence: GRADX
Meaning: The user asked for the BHHH procedure in a minimization
problem.
Remedy: GRADX automatically resets NBHHH and no further action is
necessary.
CONSTRAINED OPTIMIZATION TERMINATED
Occurrence: CONOPT
Meaning: optimization encountered an error termination (other than
exceeding the iteration limit)
Remedy: Analyze why optimization failed
CONSTRAINT ERROR AFTER CONOPT PASS
Occurrence: CONOPT
Meaning: After normal return is made from optimization, the
constraints are evaluated. This evaluation failed.
Remedy: Should not happen normally.
CONSTRAINT ERROR AT END OF CONSTRAINED OPTIMIZATION
Occurrence: CONOPT
Meaning: After CONOPT termination (normal or abnormal) a con-
straint could not be evaluated
Remedy: Should not happen with a normal termination. With ab-
normal termination analyze cause of CONOPT failure.
CONTINUAL STRAYING INTO FORBIDDEN REGION
Occurrence: GRADX,MUKAI,GENALG
Meaning: Repeated attempts are made to take a step into a region where
the function is undefined
Remedy: Attempt optimization from alternative starting points
or in GENALG vary the run-time parameters
COVARIANCE DET <= 0
Occurrence: SIMEQ
Meaning: The determinant of the sample covariance matrix is
nonpositive
Remedy: Check the data. Possibly use a new starting point.
COVARIANCE MATRIC IS NOT POSITIVE DEFINITE
Occurrence: REGR
Meaning: Sigma-squared times X'X has some nonpositive elements
Remedy: Check the data in X
COVARIANCE MATRIC NOT POSITIVE DEFINITE
Occurrence: NORMPRB
Meaning: A bad covariance matrix was specified
Remedy: Correct the input
COVARIANCE MATRIC IS NOT POSITIVE DEFINITE
Occurrence: MONCARL
Meaning: A bad covariance matrix was specified
Remedy: Correct the input
COVARIANCE MATRIX SINGULAR
Occurrence: SIMEQ
Meaning: The sample covariance matrix could not be inverted
Remedy: Check the data. Possibly use a new starting point.
Check SIMUL2. Possibly use another matrix inversion
routine.
DELX <= 0---QUITTING
Occurrence: BIVAR3
Meaning: Obvious
Remedy: Obvious
EIGENVALUES DID NOT CONVERGE
Occurrence: GRADX
Meaning: Obvious
Remedy: Increase values of variables in COMMON/BPREC/RSMALL,ABSMAL
EIGENVALUES NOT ALL POSITIVE
Occurrence: NORMPRB, PRINCOMP
Meaning: A bad covariance matrix was specified
Remedy: Correct the input
ERROR IN EVALUATING EQUATIONS
Occurrence: NEWRAP
Meaning: An error occurred in evaluating G(X) in the Newton
Raphson algorithm
Remedy: Choose a different starting point or change IVFLIM,
INVLIM, EPCOR
ERROR IN FINDING JACOBIAN
Occurrence: NEWRAP
Meaning: Error occurred in finding the Jacobian
Remedy: Alter the values in COMMON/BFIDIF/FDFRAC,FDMIN
or try a new starting point.
ERROR IN FUNCTION CLARK:COVARIANCE MATRIX NOT POSITIVE DEFINITE. CLARK=
-999.0
Occurrence: CLARK2
Meaning: The correlation R12 is greater than 1.0 in absolute value
Remedy: Correct the input value for R12
ERROR IN FUNCTION DUTT2: COVARIANCE MATRIX NOT POSITIVE DEFINITE.DUTT2=
-999.0
Occurrence: DUTT2
Meaning: The correlation R12 is greater than 1.0 in absolute value
Remedy: Correct the input value for R12
ERROR IN K1 or K2 or NP...EXECUTION TERMINATED
Occurrence: DISEQ1, DISEQ3
Meaning: K1+K2+2 must be .GE. NP
Remedy: Check input parameters
ERROR IN SIMPLEX SHRINKAGE
Occurrence: NMSIMP
Meaning: Function error occurred in simplex shrinkage
Remedy: Attempt optimization from alternative starting points.
ERROR RETURN FROM SIMUL2
Occurrence: SIMEQ
Meaning: An error condition was detected in computing the
residuals and a RETURN 1 was executed
Remedy: Check data. Possibly try a new starting point.
ESTIMATED COVARIANCE MATRIX IS NOT POSITIVE DEFINITE
Occurrence: RECURS
Meaning: Self-explanatory
Remedy: Check data input
EXCESSIVE R31 LOOPS
Occurrence: GRADX
Meaning: The quadratic approximation to the function indicates
deterioration,despite repeated shortening of the step-
size.
Remedy: Use analytic derivatives. Failing that, alter FDFRAC
and FDMIN by factors of 10 upwards and downwards.
EXPAND INVALID--RESET TO 0.1
Occurrence: GENALG
Meaning: EXPAND was not strictly between 0 and 1; it has
been automatically reset to 0.1
Remedy: If you do not like 0.1, correct input error
FAILURE OF GQOPT--T-RATIOS OR H MATRIX MAY BE UNRELIABLE
Occurrence: GRADX,DFP
Meaning: Optimization failed
Remedy: Analyze causes of failure.
FUNCTION CANNOT BE EVALUATED AT POINT PASSED
Occurrence: GLOB1
Meaning: The point passed to GLOB1 causes a FUNC error
Remedy: Change the point passed to GLOB1
FUNCTION ERROR AFTER CONOPT PASS
Occurrence: CONOPT
Meaning: After normal return is made from optimization,the
function is evaluated. This evaluation failed.
Remedy: Should not happen normally.
FUNCTION ERROR AFTER ILOOP SHRINKAGES
Occurrence: SSVM
Meaning: The proposed step results in function errors after
repeated shrinkages of the step size.
Remedy: Use different starting points are change algorithms.
FUNCTION ERROR AFTER RESETTING H-MATRIX
Occurrence: SSVM
Meaning: If shrinkages do not help, SSVM resets the H-matrix
and thus tries a different direction. This attempt
has failed.
Remedy: Change starting points or algorithms.
FUNCTION ERROR AT END OF CONSTRAINED OPTIMIZATION
Occurrence: CONOPT
Meaning: After CONOPT termination (normal or abnormal) the
function could not be evaluated
Remedy: Should not happen with normal termination. With abnormal
termination analyze cause of CONOPT failure.
FUNCTION ERROR IN FIRST FUNC CALL
Occurrence: GRADX, DFP, POWELL,NMSIMP,PATERN,RNSRCH,MUKAI,SSVM
Meaning: The very first call to FUNC resulted in an error return
Remedy: Attempt optimization from alternative starting points.
FUNCTION ERROR IN FIRST CALL OF FUNC IN SEQOPT
Occurrence: SEQOPT
Meaning: The very first call to FUNC caused an error return.
Remedy: Attempt optimization from alternative starting points.
FUNCTION ERROR IN NIPOP GENERATION
Occurrence: GENALG
Meaning: Some function evaluations in generating the
initial population failed.
Remedy: Check the function subroutine
FUNCTION ERROR IN FP OR SP
Occurrence: GRADX,DFP,SSVM
Meaning: The attempt to evaluate derivatives resulted in an
error return -- must be on or near the boundary of
the search space.
Remedy: Attempt optimization from alternative starting points.
If using numerically evaluated derivatives, replace
them with analytic derivatives.
FUNCTION ERROR IN SEARCH
Occurrence: GLOB1
Meaning: A FUNC error occurred in the search
Remedy: Change the bounds of the search region
FUNCTION ERROR ON FIRST CALL
Occurrence: GLOB2
Meaning: The first call to FUNC caused a function error
Remedy: Change the point passed to GLOB2
GRADIENT INACCURATE---DOES NOT POINT UPHILL
Occurrence: MUKAI
Meaning: After repeated shrinkages of step, the function does
not improve in the direction of the gradient
Remedy: Use analytic derivatives.
HIGH ORDER COEFFICIENT IS ZERO
Occurrence: PROOTS
Meaning: You are trying to find the roots of an nth order
polynomial, but the coefficient of x**n is zero
Remedy: Check you data
IF ONLY 2 CATEGORIES, USE PROBIT
Occurrence: POLYCHO
Meaning: For polychotomous response you should have at least
3 categories
Remedy: Check input or use probit
ILLEGAL INPUT FOR ALPH1 OR BET1
Occurrence: GENALG
Meaning: Must have 0<BET1<1 and 0<ALPH1<=1
Remedy: Fix input error
ILLEGAL INPUT FOR NP,NIPOP,NGOOD,NC, OR INITGEN
Occurrence: GENALG
Meaning: NP<=1 or NIPOP<=1 or NGOOD<=1 or NC<1 or
INITGEN<1 or INITGEN>4
Remedy: Correct input
ILLEGAL INPUT FOR NP,NIPOP,NGOOD
Occurrence: GENALG
Meaning: NIPOP must be > NPOP + NGOOD and NPOP must be
> NGOOD
Remedy: Fix input error
ILLEGAL INPUT FOR XL OR XH
Occurrence: GENALG
Meaning: An XL value is >= than the corresponding XH value
Remedy: Fix input error
ILLEGAL INPUT PARAMETERS TO OPTMOV
Occurrence: OPTMOV
Meaning: N must be between 0 and 7 and NSIZE must be positive
Remedy: Fix value of N or NSIZE.
ILLEGAL MUTATION RATE
Occurrrence: GENALG
Meaning: XMUTE must be <=0 and <=0.5
Remedy: Fix input error
ILLEGAL N-VALUE
Occurrence: SHPWLK, TAUK
Meaning: N<2 or N>50 for SHPWLK or N<3 or N>2000 for
TAUK
Remedy: Reset N
INITIAL SIMPLEX COULD NOT BE BUILT WITH 10 REDUCTIONS OF STEP SIZE
Occurrence: NMSIMP
Meaning: Function errors occurred in attempt to construct
initial simplex
Remedy: Attempt optimization from alternative starting points.
INPUT ERROR
Occurrence: NORMPRB
Meaning: ANSL is >= ANSH or NDIM > 20
Remedy: Correct the input
INPUT ERROR---CHECKEPCOR,ACC,ITERL,EPSVRT,IVFLIM,INVLIM
Occurrence: Numerous routines
Meaning: Invalid parameter(s) passed
Remedy: Correct erroneous parameter(s)
INSUFFICIENT DEGREES OF FREEDOM
Occurrence: ARMAPQ
Meaning: IQ+IP+1 is >= IT-IP
Remedy: Check data input
INSUFFICIENT STORAGE FOR T-RATIO. REQUEST IGNORED
Occurrence: GRADX,DFP,SSVM
Meaning: T-ratios require an extra NP*NP locations in the AINT
array
Remedy: Increase dimension of AINT and value of NQ.
INVALID H MATRIX INPUT
Occurrence: DFP
Meaning: The attempt to read in a previously saved H matrix failed
because the NP value in the previous and current runs are
not identical
Remedy: Check input file and current setting of NP.
INVALID ITERLG
Occurrence: CONOPT
Meaning: ITERLG is nonpositive
Remedy: Correct the value of ITERLG.
INVALID NC1 OR NC2
Occurrence: CONOPT
Meaning: NC1 or NC2 is nonpositive
Remedy: Correct the value of NC1 or NC2.
INVALID NP1 IN SEQOPT
Occurrence: SEQOPT
Meaning: NP1 is less than or equal to 0
Remedy: Reset NP1.
INVALID PERMUTATION IN FIRST OPTIMIZATION
Occurrence: SEQOPT
Meaning: The permutation given to SEQOPT for selecting the
first subset of variables is invalid
Remedy: Check the IPERM array.
INVALID PERMUTATION IN SECOND OPTIMIZATION
Occurrence: SEQOPT
Meaning: The permutation in the second optimization is
invalid. This is impossible if there was no
error in the permutation for the first optimiza-
tion. Program must have been overwritten.
Remedy: Check user's program.
IP AND IQ ARE BOTH = 0---USE REGR
Occurrence: ARMAPQ
Meaning: There is neither a moving average nor a autoregressive
part
Remedy: Use ordinary regression
ITERATION LIMIT EXCEEDED
Occurrence: GRADX,DFP,POWELL,NMSIMP,PATERN,RNSRCH,MUKAI,SSVM,
GENALG
Meaning: Obvious
Remedy: Reset ITERL
ITERATION LIMIT FOR SEQUENTIAL OPTIMIZATION EXCEEDED
Occurrence: SEQOPT
Meaning: The number of switches in optimization between the two
subsets of variables exceeded ITERL3
Remedy: Reset ITERL3
ITERL3 IS .LE. 0. NO OPTIMIZATION IS DONE
Occurrence: SEQOPT
Meaning: Obvious
Remedy: Set ITERL3 greater than 0.
JACOBIAN IS SINGULAR
Occurrence: NEWRAP
Meaning: Obvious
Remedy: Change the values in COMMON/BFIFIF/FDFRAC,FDMIN
JACOBIAN SINGULAR
Occurrence: SIMEQ
Meaning: Obvious
Remedy: Check the IQQ1 array in a linear system. Possibly
use a new starting point.
K1+K2+2 MUST BE .GE. NP...EXECUTION TERMINATED
Occurrence: DISEFP,DISESP
Meaning: Obvious
Remedy: Check input parameters
K1+K2+K3+3 MUST EQUAL NP...EXECUTION TERMINATED
Occurrence: DISEQ2
Meaning: Obvious
Remedy: Check input parameters
K1, K2, K3 MUST BE .GE. 1
Occurrence: DISEQ2
Meaning: Obvious
Remedy: Check input parameters
LINESEARCH FAILURE
Occurrence: SSVM, GRADX
Meaning: Function error occurred in the linesearch algorithm
Remedy: Change the values of SHRIP1 and/or SHRIP2
MATRIX APPEARS TO BE SINGULAR
Occurrence: GAJORE
Meaning: Matrix is singular or ill conditioned
Remedy: Check inpout or use a different algorithm
MATRIX X'X IS SINGULAR
Occurrence: REGR, RECURS
Meaning: The X'X matrix could not be inverted
Remedy: Check the data in X
NEGATIVE VARIANCE IN TOBIT
Occurrence: ENSCRM
Meaning: User has initialized the variance to a negative
number
Remedy: Initialize variance to a positive number
NO FEASIBLE SOLUTION EXISTS
Occurrence: LINPROFS
Meaning: LINPROFS has determined that your problem has no
feasible solution
Remedy: Examine the specification of your problem
NO FEASIBLE SOLUTION FOUND
Occurrence: LINPROA
Meaning: The problem to be solved requires a b vector
that is nonnegative, and you provided a b-vector
with some negative element(s).
Remedy: Examine the specification of your problem
No positive distances---quitting
Occurrence: CLUSHIER
Meaning: Distances between cluster are not positive
Remedy: Recompile program
NO STOPPING CRITERION ENABLED FOR GQOPT--NO OPTIMIZATION DONE
Occurrence: GRADX,DFP,POWELL,NMSIMP,PATERN,RNSRCH,MUKAI,SSVM
Meaning: All relevant ISTOP( ) elements are set to 1
Remedy: Reset ISTOP( ) to zero.
NO STOPPING CRITERION ENABLED FOR NEWRAP--EXECUTION TERMINATED
Occurrence: NEWRAP
Meaning: Both ISTOP(1) and ISTOP(2) have been set = 1
Remedy: Reset ISTOP( ) to zero.
NO STOPPING CRITERION ENABLED FOR RNSRCH--NO OPTIMIZATION DONE
Occurrence: RNSRCH
Meaning: ISTOP(1) and ISTOP(3) are both set equal to 1. (ISTOP(2)
is irrelevant for RNSRCH)
Remedy: Reset at least one of the ISTOP( ) elements to zero.
NO STOPPING CRITERION ENABLED FOR SEQOPT
Occurrence: SEQOPT
Meaning: JSTOP(1) and JSTOP(2) are both 1
Remedy: Reset at least one JSTOP( ) to zero.
NOT ENOUGH SCRATCH STORAGE
Occurrence: CONOPT,GRADX,DFP,POWELL,NMSIMP,PATERN,RNSRCH,MUKAI,
SSVM
Meaning: Working array AINT and NQ are too small
Remedy: Increase DIMENSION of AINT and value of NQ.
NP IS NOT EQUAL TO K+NCAT-1
Occurrence: POLYCHO
Meaning: The number of parameters in a polychotomous response
model must equal the number of beta coefficients +
the number of categories - 1
Remedy: Fix the data input
NP MUST NOT EXCEED 200...EXECUTION TERMINATED
Occurrence: DISEFP,DISESP
Meaning: Obvious
Remedy: Check input parameters
NPT IS NOT EVEN---QUITTING
Occurrence: BIVAR3
Meaning: Obvious
Remedy: Obvious
NUMBER OF PERMISSIBLE RESTARTS EXCEEDED
Occurrence: NMSIMP
Meaning: Stopping criterion satisfied, yet final optimality
check fails after NRST restarts.
Remedy: In COMMON/BNEL/STP1,VAR,CONVGE,NRST reset NRST.
Also attempt optimization from alternative starting
points.
OPTIMAL POINT FOUND; BUT MATRIX H IS NOT CORRECT
Occurrence: GRADX
Meaning: An apparent optimum, but eigenvalue computation did not
converge
Remedy: Increase value of variables in COMMON/BPREC/RSMALL,ABSMAL
OPTIMIZATION FAILED WITH ALL OBSERVATIONS
Occurrence: Jackknife algorithms
Meaning: Could not optimize when all observations are included
Remedy: Change parameters for optimization algorithm
OPTMOV ARRAY X NOT AVAILABLE
Occurrence: GRADX,DFP,POWELL,NMSIMP,SSVM
Meaning: OPTMOV was asked to deliver an array not compatible
with the optimization algorithm used
Remedy: Check HANDBOOK for what arrays are available.
PERSISTENT FUNCTION ERROR ON FIRST FUNCTION EVALUATION
Occurrence: GLOB1
Meaning: The first FUNC evaluation causes a FUNC error
Remedy: Change bounds of evaluation region
PERSISTENT FUNCTION ERROR ON SECOND FUNCTION EVALUATION
Occurrence: GLOB1
Meaning: The second FUNC evaluation caused a FUNC error
Remedy: Change bounds of evaluation region
PERSISTENT FUNCTION ERRORS -- MAY WISH TO RESET IERCTL
Occurrence: GLOB2
Meaning: FUNC errors are consistently encountered
Remedy: Reset bounds of search area
PRMCHK ERROR IN SMLCLN
Occurrence: SMLCLN (SIMEQ)
Meaning: An invalid variable permutation was given to SMLCLN
Remedy: Correct the permuation
PQ,DEN1 OR DEN2 ERROR
Occurrence: SSVM
Meaning: (a) The change in the gradient is orthogonal
to the proposed step (PQ)
(b) The H-matrix is not positive definite (for
minimization) (DEN1)
(c) The change in the gradient is conjugate
with the step relative to the H-matrix.
Remedy: Replace numerical derivatives with analytic ones.
Alternatively, decompose problem and use SEQOPT.
RANK ASSIGNMENT FAILURE
Occurrence: SPEAR1
Meaning: A test on the sum of the ranks has failed
Remedy: Check your assignment of ranks to the raw data
REGR REQUIRES K.LE.30
Occurrence: REGR
Meaning: The number of independent variables exceeds 30
Remedy: Either reduce the number of independent variables or
redimension SUBROUTINES REGR and GJR and recompile.
REINVERSION FAILED
Occurrence: LINPROA
Meaning: Attempt to invert the array of coefficients
for the nonbasic variables failed
Remedy: None
SCREENING OF INPUT PARAMETERS HAS DISCOVERED ERRORS
Occurrence: SIMEQ (SMLCLN)
Meaning: IQQ1 or IQQ2 or IG or NBEG or NEND are set erroneously
(see IER numbers in HANDBOOK, Section 14)
Remedy: Correct the erroneous input data
SEQOPT NOT PERMITTED IF NP EXCEEDS 200
Occurrence: SEQOPT
Meaning: NP is too large
Remedy: Increase dimensions of arrays SS1 and SS2 in SEQOPP
and statement IF(NP.LE.200) GOTO 1.
SIG MUST BE POSITIVE
Occurrence: RANDVAR
Meaning: SIG specified for the Cauchy or Rayleigh densities
was nonpositive
Remedy: Correct the input
SMALL GRADIENT WITHOUT MEETING TERMINATION CRITERIA
Occurrence: MUKAI
Meaning: The norm of the gradient is less than RSMALL (default=
1.D-14) but gradient stopping criterion is inhibited
Remedy: Set ISTOP(2)=0.
SOLUTION UNBOUNDED
Occurrence: LINPROA and LINPROFS
Meaning: The linear programming problem is unbounded
Remedy: Examine the specification of the problem
SOME ROOTS ARE INSIDE UNIT CIRCLE
Occurrence: ARMAPQ
Meaning: The moving average part has roots inside the unit
circle
Remedy: Check data input or respecify model or inhibit
root calculation
STARTING VALUE OF X IS OUT OF BOUNDS (LB AND UB)
GLOB2 IS QUITTING. RESPECIFY X SO THAT LB(I).LT.X(I).LTUB(I)
Occurrence: GLOB2
Meaning: Starting point is out of bounds
Remedy: Respecify starting point
TOBIT MAY NOT BE SELECTED WITH PROBIT OR LOGIT
Occurrence: PROBIT,TOBIT,LOGIT
Meaning: User has set IPROB=1 or 2 and ITOB=1, requesting that
tobit and either probit or logit both be computed.
Remedy: Set one of these variables=0.
SEQOPT NOT PERMITTED IF NP EXCEEDS 200
Occurrence: SEQOPT
Meaning: NP is too large
Remedy: Increase dimensions of arrays SS1 and SS2 in SEQOPP
and statement IF(NP.LE.200) GOTO 1.
SHRINK INVALID--reset to 0.9
Occurrence: GENALG
Meaning: SHRINK must be strictly between 0 and 1; it has
been automaticall reset to 0.9
Remedy: If you do not like 0.9. fix input error
SMALL GRADIENT WITHOUT MEETING TERMINATION CRITERIA
Occurrence: MUKAI
Meaning: The norm of the gradient is less than RSMALL (default=
1.D-14) but gradient stopping criterion is inhibited
Remedy: Set ISTOP(2)=0.
T-RATIO IS VALID ONLY FOR SUCCESSFUL GRADX AND DFP OPTIMIZATIONS.
REQUEST IGNORED
Occurrence: POWELL,NMSIMP,PATERN,RNSRCH,MUKAI
Meaning: T-ratios are computed only after GRADX or DFP
Remedy: Either use GRADX or DFP, or compute second derivative
matrix by calling DERIV and computing t-ratios your-
self.
T-RATIO REQUESTED FOR MAXIMIZATION WITH NOBS NOT ZERO
Occurrence: GRADX,DFP
Meaning: When NOBS is not zero, it is assumed that a sum-of-squares
minimization problem is at hand
Remedy: Reset NOBS or check if MX is correctly set.
VALUE of IHOWMAN TOO HIGH
Occurrence: GENALG
Meaning: IHOWMAN must be less than or equal to 9
Remedy: Correct the input
VARIANCE IS ZERO
Occurrence: AUTOCOV
Meaning: The time series is a constant
Remedy: Check data input
Y IS CONSTANT
Occurrence: REGR
Meaning: The dependent variables is a constant
Remedy: Check the dependent variable
Return to