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