FUNCTIONS OF SEVERAL VARIABLES
Rule 3 Termination Criterion
2. The algorithm is slow, since it does not use past information to generate acceleration moves
3. There is no simple way of expanding the simplex without recalculating the entire pattern. Thus, once ␣ is reduced (because, e.g., a region of narrow contours is encountered), the search must continue with this reduced step size.
To partially eliminate some of these disadvantages, a modified simplex pro-cedure has been developed by Nelder and Mead [8]. They observed that although it is convenient to use the formula for a regular simplex when gen-erating the initial pattern, there is no real incentive for maintaining the reg-ularity of the simplex as the search proceeds. Consequently, they allow both expansion and contraction in the course of the reflection calculation. Their modifications require consideration of the point with highest current function value, x(h); the next highest point, x( g); the point with the lowest current
func-Figure 3.6. Expansion and contraction of a simplex.
(h) (h)
x ⫽x ⫹ (1 ⫹)(xc⫺ x ) (3.23)
If we let ⫽1, we get the normal simplex reflection, such that xnewis located a distance 㛳xc⫺ x( j)㛳 from xc. When ⫺1 ⭐ ⬍ 1, we produce a shortened reflection, or a contraction, while the choice ⬎1 will generate a lengthened reflection step, or an expansion of the simplex. The situations are depicted in Figure 3.6. The three values ofused for normal reflection, contraction, and expansion are denoted respectively ␣, , and ␥. The method proceeds from the initial simplex by determination of x(h), x( g), x(l), and xc. A normal reflec-tion of the simplex funcreflec-tion values is checked to see if terminareflec-tion is appro-priate. If not, a normal reflection, expansion, or contraction is taken using the tests outlined in Figure 3.6. The iterations continue until the simplex function values do not vary significantly. Nelder and Mead recommend that the values
␣ ⫽1,  ⫽0.5, and␥ ⫽2 be employed.
Some limited numerical comparisons indicate that the Nelder–Mead vari-ant is very reliable in the presence of noise or error in the objective and is
reasonably efficient. In 1969, Box and Draper [9] stated that this algorithm is the ‘‘most efficient of all current sequential techniques.’’ A 1972 study by Parkinson and Hutchinson [10] investigated the effects of the choice of␣,,
␥, and the manner of construction of the initial simplex. They determined that the shape of the initial simplex was not important but its orientation was. The best overall choice of parameters was (␣, , ␥) ⫽ (2, 0.25, 2.5) and this choice worked well if repeated successive expansions were allowed.
3.2.2 Hooke–Jeeves Pattern Search Method
The preceding search techniques were based on the systematic disposition and manipulation of a pattern of trial points. Yet despite our preoccupation with the geometric configuration in which the trial points are located, it is apparent that the main role of the set of points is to generate a direction of search. The exact placement of the points really only influences how sensitive the generated search direction is to local variations in the function topology.
In particular, the equation for the reflection step,
( j) ( j)
xnew ⫽ x ⫹ (xc⫺x )
clearly reveals that the entire set of points is condensed into a single vector difference that defines a direction. The remaining search logic is merely con-cerned with adjusting the step size so that reasonable improvement is at-tained. If the generation of search directions is the primary motivation for manipulating the pattern of trial points, then a reasonable improvement over the simplex strategy might be to operate directly with a set of direction vectors using them to guide the search. In the simplest approach, a fixed arbitrary set of directions could be selected and searched recursively for improvement.
Alternatively, one could devise strategies for modifying one or more of the search directions with each iteration so as to better align them with the gross topology of the function. In either case, to ensure that the complete domain of the function is searched, it is reasonable to insist that the set of search directions be independent and span the entire domain of ƒ(x). For example, it clearly would be inadequate to search for the optimum of a three-variable function by alternating use of two search directions. Hence, all the direct-search methods discussed here will require at least N independent direct-search directions, where N is the dimension of x.
An elementary example of a method that recursively uses a fixed set of search directions is the ‘‘one-variable-at-a-time,’’ or sectioning, technique. In this approach the set of directions is chosen to be the coordinate directions in the space of the problem variables. Each of the coordinate directions is sequentially searched using a single-variable optimization scheme until no further improvement is possible. If the objective function is spherically sym-metrical, then this search will succeed admirably. However, if the function contours are distorted or elongated, as is usually the case, then the iteration
periodically searching in the direction d(i)⫽ x(i) ⫺ x(i⫺N). This simple obser-vation forms the basis of a modified sectioning method devised by Hooke and Jeeves [12], one of the first algorithms to incorporate the past history of a sequence of iterations into the generation of a new search direction. Basi-cally, the Hooke–Jeeves (HJ) procedure is a combination of ‘‘exploratory’’
moves of the one-variable-at-a-time kind with ‘‘pattern’’ or acceleration moves regulated by some heuristic rules. The exploratory moves examine the local behavior of the function and seek to locate the direction of any sloping valleys that might be present. The pattern moves utilize the information gen-erated in the exploration to step rapidly along the valleys.
Exploratory Moves. Given a specified step size, which may be different for each coordinate direction and change during the search, the exploration pro-ceeds from an initial point by the specified step size in each coordinate di-rection. If the function value does not increase, the step is considered successful. Otherwise, the step is retracted and replaced by a step in the opposite direction, which in turn is retained depending upon whether it suc-ceeds or fails. When all N coordinates have been investigated, the exploratory move is completed. The resulting point is termed a base point.
Pattern Move. A pattern move consists of a single step from the present base point along the line from the previous to the current base point. Thus, a new pattern point is calculated as
(k⫹1) (k) (k) (k⫺1)
xp ⫽ x ⫹ (x ⫺ x ) (3.24)
Now, recognizing that this move may not result in an improvement, the point is accepted only temporarily. It becomes the temporary base point for
(k⫹1)
xp
a new exploratory move. If the result of this exploratory move is a better point than the previous base point x(k), then this point is accepted as the new base point x(k⫹1). On the other hand, if the exploratory move does not produce improvement, then the pattern move is discarded and the search returns to x(k), where an exploratory search is undertaken to find a new pattern. Eventually a situation is reached when even this exploratory search fails. In this case the step sizes are reduced by some factor and the exploration resumed. The search is terminated when the step size becomes sufficiently small. To summarize the logic of the method, we employ the following notation:
x(k) Current base point
x Next (or new) base point
Using this notation, we outline the pattern search method of Hooke and Jeeves.
Pattern Search Method of Hooke and Jeeves Step 1. Define:
The starting point x(0)
The increments⌬ifor k ⫽ 1, 2, 3, . . . , N The step reduction factor␣ ⬎1
A termination parameter ⬎0 Step 2. Perform exploratory search.