SECTION 1.11 SEQUENTIAL OPTIMIZATION

In certain optimization problems it may be desirable to break
up the optimization into an iterative sequence of two steps:in
STEP1 the function is optimized with respect to a subset
consisting of NP1 (.LT. NP) variables, holding the remaining NP -
NP1 con- stant, and in STEP2 the function is optimized with
respect to a second subset of NP2 variables, holding the first
subset of NP - NP1 variables constant. NP1 + NP2 may be less than
NP or equal to NP. In the former case, the variables designated
by the last NP-NP1-NP2 entries in the IPRM array (see below) are
not altered in either optimization. After the initial STEP1, the
values of the variables to be held constant in any step are set
to their values obtained by optimizing with respect to them in
the previous step. In order to be able to take advantage of this
method, the user should be familiar with Section
1.9. Warning: In general, convergence
cannot be guaranteed in algorithms of this type. See
M.J.D. Powell, On Search Directions for Minimization Algorithms, *Mathematical
Programming*, 11 (1973), 193-201.

1. In the MAIN program, the user should include the following statements:

EXTERNAL PERM COMMON/BPRM/IPRM(np) COMMON/BPRM2/XPRM(np) NP1 = Number of variables in STEP1 NP2 = Number of variables in STEP2 IPRM(1) = . . . IPRM(NP) = C IPRM must contain the permutation of the original variables such that the C first NP1 elements of IPRM represent the indices of variables C for STEP1 optimization the next NP2 the variables for STEP2, with the C last NP-NP1-NP2 to remain unaltered.If NP=5,NP1=3,NP2=2, and IPRM contains C 1,5,4,2, 3, STEP1 will optimize with respect to X(1), X(5), and X(4) and C STEP2 with respect to X(2) and X(3). X(1) = . . . X(NP) = CALL LABEL(ALABEL,NP) C or some other labelling CALL SEQOPT(X,NP,NP1,NP2,F,METH1,METH2,ITERL1,ITERL2,ITERL3,MAX, 1 IER,ACC1,ACC2,ACC3,ALABEL,FUNC)

Notes: Unlike the case discussed in Section 1.9, the subroutine PRMCHK must not be called before calling SEQOPT. SEQOPT itself calls PRMCHK when needed. For explanation of the arguments of SEQOPT see 4 below.

2. STORAGE REQUIREMENTS

SEQOPT permits the user to specify different algorithms for STEP1 and STEP2. Let S1 and S2 denote the storage requirements of the two algorithms referenced in the CALL SEQOPT statement. Then the storage requirement for using SEQOPT is NQ=i2 = 4*NP+MAX(S1,S2)

3. The user must include the subroutine PERM (See Section 1.9.2).

4. Arguments of SEQOPT

X = vector of variables

NP = number of variables

NP1 = number of variables in STEP1

NP2 = number of variables in STEP2

F = function value

METH1 = algorithm to be used in STEP1

METH2 = algorithm to be used in STEP2

ITERL1 = iteration limit in STEP1

ITERL2 = iteration limit in STEP2

ITERL3 = iteration limit for SEQOPT itself; i.e. the maximum
number of times that the sequence "STEP1 followed by
STEP2" will be executed

MAX = See Section 1

ACC1 = Accuracy desired in STEP1

ACC2 = Accuracy desired in STEP2

ACC3 = Accuracy desired for terminating sequential optimi- zation

IER = Termination flag. If provided within STEP1 or STEP2, see
section for relevant algorithm. If provided by SEQOPT,then

IER = -17 Invalid permutation in STEP2

IER = -18 Invalid permutation in STEP1

IER = -19 Iteration limit for sequential optimization exceeded

IER = -20 Invalid ITERL3

IER = -21 No stopping criterion enabled for SEQOPT

IER = -22 Invalid NP1

FUNC = Function name

5. The use of the NVAR1 option (See Section 1.1) is unlikely to be sensible in SEQOPT. If the user sets NVAR1, convergence will be tested only on the first NVAR1 variables in both STEP1 and STEP2.

6. Additional options

COMMON/BSTOP1/JSTOP(2)

JSTOP(1) = 0 to enable SEQOPT to stop when the step size from
the previous STEP2 to the current STEP2 is less than ACC3
(relatively) for each variable.

JSTOP(1) = 1 to disable stopping criterion 1. Default = 0.

JSTOP(2) = 0 to enable SEQOPT to stop when the relative function
improvement from the previous STEP2 to the current STEP2 is less
than ACC3.

JSTOP(2) = 1 to disable stopping criterion 2. Default = 0. Thus
SEQOPT itself may have a stopping criterion different from that
used by the algorithms in STEP1 and STEP2.

Return to

|Sect. 13.2|Sect.
13.3|Beginning|