Documentation/Modules/OptAlgSimplex

Aus OpenDino
Wechseln zu: Navigation, Suche

Summary

This optimization module is an implementation of the popular Nelder-Mead Simplex Algorithm (1965) (1). The SIMPLEX method is a standard direct, deterministic optimization algorithm, which is implemented in many numerical tools (e.g. as method fminsearch.m in the MATLAB(R) optimization toolbox or in GNU Octave). A good introduction is given by Wright (2).

The algorithm works best for a small number of design variables (1-10, sometimes 1-20). It fails, for example, on the Rosenbrock function, if more than 10 design variables are given.

Properties

General

Algorithm deterministic
Design Variables Written for continuous variables. Discrete or mixed variables are NOT possible.
Objectives single-objective for minimization.
Constraint handling no
Boundary handling no
Initialization -

Connections

Starting at this module Module requires exactly one connection of type optimization.
Ending at this module

Actions

Name Description
Run starts the optimization.

Options

The options are currently described as "pop-up help".

Module Description

The SIMPLEX algorithm is implemented using the paper of Wright (2). However, some extensions are made as e.g. the initialization is not given in the references.

Initialization

First, an initial simplex is generated. Here, a simplex is a body in the N-dimensional design space that has N+1 vertices. The vertices are connected by straight lines. For two (N=2) and three (N=3) design variables, a simplex is a triangle or tetrahedron, respectively.

If the optimization problem provides an initial solution, this point is taken as first vertex of the simplex. If not, the initial simplex gets a random position obeying certain rules.

We distinguish several cases, depending on the problem properties (initial solution, initial search region, bounds).

Problem Properties Given? Action
initial solution initial search region bounds
Yes No No option Initial Size of the Simplex defines the absolute length of the simplex in each design variable direction. I.e. a simplex is constructed, such that the distance between each vertex and the plane generated by the remaining points has this length.
Yes or No Yes Yes or No option Initial Size of the Simplex defines the relative length of the simplex in each design variable direction compared to the size of the initial search region (i.e. difference upper to lower limit). Bounds are ignored.
Yes or No No Yes option Initial Size of the Simplex defines the relative length of the simplex in each design variable direction compared to the size of the bounds (i.e. difference upper to lower limit).

Optimization

The SIMPLEX method follows a deterministic procedure. Except the initialization, always one new point is generated and evaluated. Thus, parallelization is not implemented.

Usage

... todo

Source Code

ToDo:Link to SVN

References

1 Nelder, J. A. and Mead, R. "A Simplex Method for Function Minimization." Comput. J. 7, 308-313, 1965. 2 M. H. Wright. "Direct search methods: once scorned, now respectable". In D. F. Griffiths and G. A. Watson, editors, Numerical Analysis 1995 (Proceedings of the 1995 Dundee Biennial Conference in Numerical Analysis), pages 191–208. Addison Wesley Longman, 1996.