coliny_direct

DIviding RECTangles method

Topics

package_scolib, package_coliny, global_optimization_methods

Specification

  • Alias: None

  • Arguments: None

Child Keywords:

Required/Optional

Description of Group

Dakota Keyword

Dakota Keyword Description

Optional

division

Determine how rectangles are subdivided

Optional

global_balance_parameter

Tolerance for whether a subregion is worth dividing

Optional

local_balance_parameter

Tolerance for whether a subregion is worth dividing

Optional

max_boxsize_limit

Stopping Criterion based on longest edge of hyperrectangle

Optional

min_boxsize_limit

Stopping Criterion based on shortest edge of hyperrectangle

Optional

constraint_penalty

Multiplier for the penalty function

Optional

solution_target

Stopping criteria based on objective function value

Optional

seed

Seed of the random number generator

Optional

show_misc_options

Show algorithm parameters not exposed in Dakota input

Optional

misc_options

Set method options not available through Dakota spec

Optional

max_iterations

Number of iterations allowed for optimizers and adaptive UQ methods

Optional

convergence_tolerance

Stopping criterion based on objective function or statistics convergence

Optional

max_function_evaluations

Number of function evaluations allowed for optimizers

Optional

scaling

Turn on scaling for variables, responses, and constraints

Optional

model_pointer

Identifier for model block to be used by a method

Description

The DIviding RECTangles (DIRECT) optimization algorithm is a derivative free global optimization method that balances local search in promising regions of the design space with global search in unexplored regions. As shown in Figure 5.1, DIRECT adaptively subdivides the space of feasible design points so as to guarantee that iterates are generated in the neighborhood of a global minimum in finitely many iterations.

image html direct1.jpg “Figure 5.1 Design space partitioning with DIRECT” image latex direct1.eps “Design space partitioning with DIRECT” width=10cm

In practice, DIRECT has proven an effective heuristic for engineering design applications, for which it is able to quickly identify candidate solutions that can be further refined with fast local optimizers.

See the page :ref:`topic-package_scolib<topic-package_scolib>` for important information regarding all SCOLIB methods

The DIRECT algorithm supports concurrency up to twice the number of variables being optimized.

DIRECT uses the solution_target, constraint_penalty and show_misc_options specifications that are described in topic-package_scolib. Note, however, that DIRECT uses a fixed penalty value for constraint violations (i.e. it is not dynamically adapted as is done in coliny_pattern_search).

Search Parameters

The global_balance_parameter controls how much global search is performed by only allowing a subregion to be subdivided if the size of the subregion divided by the size of the largest subregion is at least global_balance_parameter. Intuitively, this forces large subregions to be subdivided before the smallest subregions are refined. The local_balance_parameter provides a tolerance for estimating whether the smallest subregion can provide a sufficient decrease to be worth subdividing; the default value is a small value that is suitable for most applications.

Stopping Critieria

DIRECT can be terminated with:

li method-coliny_direct-max_function_evaluations li method-coliny_direct-max_iterations li method-coliny_direct-convergence_tolerance li method-coliny_direct-solution_target li method-coliny_direct-max_boxsize_limit li method-coliny_direct-min_boxsize_limit - most effective in practice

Expected HDF5 Output

If Dakota was built with HDF5 support and run with the environment-results_output-hdf5 keyword, this method writes the following results to HDF5: