DAKOTA Coliny Pattern Search (PS)
Description
Coliny Pattern Search is an extension of the traditional Hooke-Jeeves Pattern Search. It uses a set of offsets as a search pattern and has several options to control the search patterns. This is a non-gradient based optimization that may be suited for noisy functions. A simple penalty function is used to handle constraint violations.
More Information
Pattern search technique is a nongradient-based optimization methods which use a set of offsets from the current iterate to locate improved points in the design space. The Coliny pattern search technique includes a variety of specification components. Traditional pattern search methods search with a fixed pattern of search directions to try to find improvements to the current iterate. The Coliny Pattern Search methods generalize this simple algorithmic strategy to enable control of how the search pattern is adapted, as well as how each search pattern is evaluated. Additional search pattern includes simplex with N+1 points.
References
DAKOTA Version 5.0 Reference Manual
Control Parameters
ConstantPenalty: ConstantPenalty if set to true would implement simple weighted penalty function otherwise ConstraintPenalty is used.
ConstraintPenalty: The ConstraintPenalty is adapted to the value ConstraintPenalty/L
, where L
is the smallest step length used so far. Thus this option must have a value greater than 0.
InitialDelta: Pattern Search algorithm uses a set of offsets from the current iterate to locate improved points in the design space. Initial Delta provides the value for the initial step length. For any dimension that has both upper and lower bounds, this step length will be internally rescaled to provide search steps of length (InitialDelta/10) * range. This option thus should have a positive real value. If a value greater than 10 is specified, in case of bounded variables the initial step length will for sure be beyond variable bounds and could lead to optimization failure. If the problem definition has unbounded variables the InitialDelta value is not scaled and it is in fact equal to initial step length.
Seed: Random seed for stochastic pattern search, changing this value ensures different path being traversed by the algorithm. Keeping the Seed value same through different runs of the optimization guarantees that the algorithm will move along the same path provided all other options remain the same. Thus if kept constant Seed is the way to make a stochastic pattern search deterministic. This option accepts any integer values.
Stochastic: Used to consider the trial points in a random order. This search methodology in conjunction with Seed value can guarantee complete random selection of search path by the algorithm.
ThresholdDelta: This is the threshold size of the step length at which the algorithm can terminate. Reducing the value of this option may lead to better answers but could increase the function evaluations and optimization effort. ThresholdDelta is not scaled like InitialDelta and must have a positive value.
ContractionFactor: In general, pattern search methods can expand and contract their step lengths. Coliny Pattern Search algorithm contracts the step length by the value ContractionFactor, and expands the step length by the value (1/ContractionFactor). This depends on ExpandAfterSuccess option for the number of successful improvements before expansion of step length. In case of unsuccessful improvements the step length would have to be contracted immediately. This option accepts real values strictly between 0 and 1.
ExpandAfterSuccess: Specifies how many successful objective function improvements must occur with a specific step length prior to expansion of the step length. Thus the algorithm ensures that it is on an improvement path before increasing step length immediately. The option accepts positive integer values.
ExploratoryMoves: Controls how the search pattern is adapted. (The search pattern can be adapted after an improving trial point is found, or after all trial points in a search pattern have been found to be unimproving points.) The following ExploratoryMoves selections are supported by Coliny Pattern Search algorithm:
BasicPattern
is the simple pattern search approach, which uses same pattern in each iteration.MultiStep
examines each trial step in the pattern in turn. If a successful step is found, the pattern search continues examining trial steps about this new point. In this manner, the effects of multiple successful steps are cumulative within a single iteration.AdaptivePattern
invokes a pattern search technique that adaptively rescales the different search directions to maximize the number of redundant function evaluations. In preliminary experiments, this method had more robust performance than the standardBasicPattern
case in serial tests. After successful iterations (where the step length is not contracted), a parallel search will be performed. After unsuccessful iterations (where the step length is contracted), only a single evaluation is performed.
PatternBasis: The particular form of the search pattern is controlled by the PatternBasis specification. If this specification is Coordinate
, then the pattern search uses a plus and minus offset in each coordinate direction, for a total of 2n function evaluations in the pattern. If selected PatternBasis is Simplex
, then Pattern Search algorithm uses a minimal positive basis simplex for the parameter space, for a total of N+1 function evaluations in the pattern. Note that the simplex pattern basis can be used for unbounded problems only.
TotalPatternSize: Can be used to augment the Coordinate
and Simplex
patterns with additional function evaluations. For example, if some function evaluations in the pattern are dropped due to duplication or bound constraint interaction, then the TotalPatternSize specification instructs the algorithm to generate new offsets to bring the total number of evaluations up to this consistent total.If selected PatternBasis is Simplex
, then this value should be greater than number of design variables by at least 2 because for Simplex
the pattern size is already = (number of design variables + 1). If selected PatternBasis is Coordinate
, then TotalPatternSize value cannot be greater than twice the number of design variables. This option should have a positive integer value.
ConvergenceTolerance: The convergence tolerance specification provides a real value for controlling the termination of iteration. This option defines the threshold value on relative change in the objective function that indicates convergence for the problem. Value must be greater than zero for all cases.
MaxFunctionEvaluations: Function evaluation is the call to Analyzer to evaluate the objective function at the specified points. The maximum number of function evaluations is an integer limit for evaluations that the algorithm can attain. Algorithm can terminate with this criterion if no other criteria are satisfied. A single iteration can contain multiple function evaluations. MaxFunctionEvaluations must be a positive integer value.
MaxIterations: A single iteration will have multiple offset evaluations. This is the integer limit on number of iterations the algorithm can actually run. Option must have a positive integer value.
Output: This option controls the level of verbosity of messages user can receive from DAKOTA. The options go from Silent
to Debug
with increasing amount of messages returned from the infrastructure. View Output > Details should show the messages from DAKOTA infrastructure.
IntermediateFilesPath: User can specify the location where the intermediate files of optimization should be generated. By default files are written to the user's temporary directory.
TabularGraphicsData: Turning this option to true generates a file named dakota_tabular in IntermediateFilesPath directory. This file has the values of design variables, constraints and objective function for each evaluation stored in a tabular format.