Pattern Search
If mxstall consecutive search steps fail to either find a new best design or a new least infeasible point, a local pattern search is initiated. This pattern search will be centered on either the best design found so far, or on the least infeasible point.
The pattern search proceeds by perturbing each design variable in turn. Design Explorer perturbs the first design variable, x1, by the (positive) pattern increment Δx1 as follows:
-
x1+ = x1 + Δx1.
After the design variable is perturbed, Design Explorer will execute your computer analysis at the new design. If the results of this analysis indicate that the perturbed design is the new best design or the new least infeasible point, then the local pattern search is terminated, the surrogates are updated, and the search process begins again with Task 3. If the perturbed design is not the new best design or the new least infeasible point, the first design variable is then perturbed in the negative direction as follows:
-
x1- = x1 - Δx1,
and Design Explorer will execute your analysis code for this new perturbed design. If the results of the analysis indicate that the perturbed design is the new best design or the new least infeasible point, then the local pattern search is terminated as before. Otherwise, Design Explorer moves on to the next design variable and repeats the process. Note that if the design variable pertubation would cause a design variable to violate either its upper or its lower bound, then the pertubation will be skipped.
If the pattern search progresses through all of the design variables without finding a new best design or new least infeasible point, then we say that the search (or POLL) has failed to find an improved design. Note that the maximum number of times that Design Explorer will execute your code during this process is 2*n, where n is the number of design variables in your problem.
If a pattern search centered about the least infeasible point fails, Design Explorer will re-center the poll on the best design and try again. If the pattern search fails for the best design, then Design Explorer will attempt to reduce the size of the pattern increment (see ngrdmlt) and re-attempt the pattern search. If the pattern increment has already been reduced to it lowest allowable value (see mxgrd), then SEQOPT will assume that it has found the best design and will stop.
Pattern Increment
The increments for the pattern search are controlled by three related parameters: ngrdpll, mxgrd, and ngrdmlt.
ngrdpll
ngrdpll controls the initial increment for the pattern search. Because each design variable will in general have different lower and upper bounds, the initial pattern increment will be different for each design variable.
The initial pattern increment for design variable i is:
-
Δxiinitial = ( upperBoundi - lowerBoundi ) / ( ngrdpll )
Note that larger values of ngrdpll result in smaller initial pattern increments.
mxgrd
mxgrd controls the final (minimum) increment for the pattern search. As was the case for the initial increment, the final increment will in general be different for each design variable.
The final pattern increment for design variable i is:
-
Δxifinal = ( upperBoundi - lowerBoundi ) / ( mxgrd )
Note that larger values of mxgrd result in smaller final pattern increments.
ngrdmlt
ngrdmlt controls how the pattern increment is reduced (refined) when a pattern search fails.
The new pattern increment is:
-
Δxinew = Δxiold / ngrdmlt