# TEST_OPTIMIZATION Test Functions for Optimization

TEST_OPTIMIZATION is a MATLAB library which defines test problems for the scalar function optimization problem.

The scalar function optimization problem is to find a value for the M-dimensional vector X which minimizes the value of the given scalar function F(X).

A special feature of this library is that all the functions can be defined for any dimension 1 <= M.

The functions defined include:

1. The sphere model;
2. The axis-parallel hyper-ellipsoid function;
3. The rotated hyper-ellipsoid function;
4. Rosenbrock's valley;
5. Rastrigin's function;
6. Schwefel's function;
7. Griewank's function;
8. The power sum function;
9. Ackley's function;
10. Michalewicz's function;
11. The drop wave function;
12. The deceptive function;

### Languages:

TEST_OPTIMIZATION is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version and a MATLAB version.

### Related Data and Programs:

ASA047, a MATLAB library which minimizes a scalar function of several variables using the Nelder-Mead algorithm.

BRENT, a MATLAB library which contains Richard Brent's routines for finding the zero, local minimizer, or global minimizer of a scalar function of a scalar argument, without the use of derivative information.

COMPASS_SEARCH, a MATLAB library which seeks the minimizer of a scalar function of several variables using compass search, a direct search algorithm that does not use derivatives.

ENTRUST, a MATLAB program which minimizes a scalar function of several variables using trust region methods, by Jeff Borggaard and Gene Cliff.

NELDER_MEAD, a MATLAB program which minimizes a scalar function of several variables using the Nelder-Mead algorithm.

POLYNOMIALS, a MATLAB library which defines multivariate polynomials over rectangular domains, for which certain information is to be determined, such as the maximum and minimum values.

PRAXIS, a MATLAB library which minimizes a scalar function of several variables, without requiring derivative information, by Richard Brent.

TEST_OPT, a MATLAB library which defines a number of problems for the scalar optimization problem.

TEST_OPT_CON, a MATLAB library which defines test problems for the minimization of a scalar function of several variables, with the search constrained to lie within a specified hyper-rectangle.

### Reference:

1. Marcin Molga, Czeslaw Smutnicki,
Test functions for optimization needs.
2. David Ackley,
A connectionist machine for genetic hillclimbing,
Springer, 1987,
ISBN13: 978-0898382365,
LC: Q336.A25.
3. Hugues Bersini, Marco Dorigo, Stefan Langerman, Gregory Seront, Luca Gambardella,
Results of the first international contest on evolutionary optimisation,
In Proceedings of 1996 IEEE International Conference on Evolutionary Computation,
IEEE Press, pages 611-615, 1996.
4. Laurence Dixon, Gabor Szego,
The optimization problem: An introduction,
in Towards Global Optimisation,
edited by Laurence Dixon, Gabor Szego,
North-Holland, 1975,
ISBN: 0444109552,
LC: QA402.5.T7.
5. Zbigniew Michalewicz,
Genetic Algorithms + Data Structures = Evolution Programs,
Third Edition,
Springer, 1996,
ISBN: 3-540-60676-9,
LC: QA76.618.M53.
6. Leonard Rastrigin,
Extremal control systems,
in Theoretical Foundations of Engineering Cybernetics Series,
Moscow: Nauka, Russian, 1974.
7. Howard Rosenbrock,
An Automatic Method for Finding the Greatest or Least Value of a Function,
Computer Journal,
Volume 3, 1960, pages 175-184.
8. Hans-Paul Schwefel,
Numerical optimization of computer models,
Wiley, 1981,
ISBN13: 978-0471099888,
LC: QA402.5.S3813.
9. Bruno Shubert,
A sequential method seeking the global maximum of a function,
SIAM Journal on Numerical Analysis,
Volume 9, pages 379-388, 1972.
10. Aimo Toern, Antanas Zilinskas,
Global Optimization,
Lecture Notes in Computer Science, Number 350,
Springer, 1989,
ISBN13: 978-0387508719,
LC: QA402.T685

### Source Code:

• p00_ab.m, evaluates the limits of the optimization region for any problem.
• p00_compass_search.m, carries out a direct search minimization algorithm.
• p00_f.m, evaluates the objective function for any problem.
• p00_problem_num.m, returns the number of problems available.
• p00_sol.m, returns the solution for any problem.
• p00_title.m, returns a title for any problem.
• p01_ab.m, evaluates the limits of the optimization region for problem 01.
• p01_f.m, evaluates the objective function for problem 01.
• p01_sol.m, returns the solution for problem 01.
• p01_title.m, returns a title for problem 01.
• p02_ab.m, evaluates the limits of the optimization region for problem 02.
• p02_f.m, evaluates the objective function for problem 02.
• p02_sol.m, returns the solution for problem 02.
• p02_title.m, returns a title for problem 02.
• p03_ab.m, evaluates the limits of the optimization region for problem 03.
• p03_f.m, evaluates the objective function for problem 03.
• p03_sol.m, returns the solution for problem 03.
• p03_title.m, returns a title for problem 03.
• p04_ab.m, evaluates the limits of the optimization region for problem 04.
• p04_f.m, evaluates the objective function for problem 04.
• p04_sol.m, returns the solution for problem 04.
• p04_title.m, returns a title for problem 04.
• p05_ab.m, evaluates the limits of the optimization region for problem 05.
• p05_f.m, evaluates the objective function for problem 05.
• p05_sol.m, returns the solution for problem 05.
• p05_title.m, returns a title for problem 05.
• p06_ab.m, evaluates the limits of the optimization region for problem 06.
• p06_f.m, evaluates the objective function for problem 06.
• p06_sol.m, returns the solution for problem 06.
• p06_title.m, returns a title for problem 06.
• p07_ab.m, evaluates the limits of the optimization region for problem 07.
• p07_f.m, evaluates the objective function for problem 07.
• p07_sol.m, returns the solution for problem 07.
• p07_title.m, returns a title for problem 07.
• p08_ab.m, evaluates the limits of the optimization region for problem 08.
• p08_f.m, evaluates the objective function for problem 08.
• p08_sol.m, returns the solution for problem 08.
• p08_title.m, returns a title for problem 08.
• p09_ab.m, evaluates the limits of the optimization region for problem 09.
• p09_f.m, evaluates the objective function for problem 09.
• p09_sol.m, returns the solution for problem 09.
• p09_title.m, returns a title for problem 09.
• p10_ab.m, evaluates the limits of the optimization region for problem 10.
• p10_f.m, evaluates the objective function for problem 10.
• p10_sol.m, returns the solution for problem 10.
• p10_title.m, returns a title for problem 10.
• p11_ab.m, evaluates the limits of the optimization region for problem 11.
• p11_f.m, evaluates the objective function for problem 11.
• p11_sol.m, returns the solution for problem 11.
• p11_title.m, returns a title for problem 11.
• p12_ab.m, evaluates the limits of the optimization region for problem 12.
• p12_f.m, evaluates the objective function for problem 12.
• p12_sol.m, returns the solution for problem 12.
• p12_title.m, returns a title for problem 12.
• r8col_uniform.m, fills an R8COL with scaled pseudorandom numbers.
• r8vec_indicator.m, sets an R8VEC to the indicator vector.
• timestamp.m, prints the current YMDHMS date as a time stamp.

### Examples and Tests:

You can go up one level to the MATLAB source codes.

Last revised on 08 February 2012.