TEST_OPT_CON
Test Functions for Scalar Optimization
Constrained to a Hyper-Rectangle


TEST_OPT_CON is a MATLAB library which defines a set of constrained global optimization problems.

A typical constrained global optimization problem presents an M-dimensional hyper-rectangle bounded by A(1:M) <= X(1:M) <= B(1:M), and a scalar-valued function F(X). The task is to find a point X within the hyper-rectangle at which the function takes its minimum value.

This task is impossible, mathematically and in general. However, the problems that can be solved mathematically are often not the ones encountered in real life. Thus, it is useful to try to solve an impossible problem, since an approximate answer to such a problem can be all we can hope for or need.

The functions defined include:

  1. NM1: Niederreiter-McCurley function #1, M = 4;
  2. NM2: Niederreiter-McCurley function #2, M = 4;
  3. NM3: Niederreiter-McCurley function #3, M = 4;
  4. NM4: Niederreiter-McCurley function #4, M = 4;
  5. NM5: Niederreiter-McCurley function #5, M = 4;
  6. NM6: Niederreiter-McCurley function #6, M = 4;
  7. L02: Langerman function, M = 2;
  8. L10: Langerman function, M = 10;

For each function, the library includes a routine to evaluate the function, but also routines to return the limits of the hyper-rectangle, the spatial dimension, the solution, if known, and a title for the problem. These routines have a standard set of names based on the function index. For instance, for function #3, we have the routines:

Since the same interface is used for each function, if you wish to work with problem 6 instead, you simply change the "03" to "06" in your routine calls.

If you wish to call all of the functions, you can write a concise program to do so by using the generic interface, in which the function names use the prefix P00_, and require the specific problem index to be supplied as an extra input argument:

Licensing:

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

Languages:

TEST_OPT_CON 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 program which minimizes a scalar function of several variables using the compass search algorithm.

ENTRUST, a MATLAB program which minimizes a scalar function of several variables using trust-region methods.

FMINCON, a MATLAB library which demonstrates the use of the fmincon() function to seek the minimizer of a function f(x) subject to a constraint.

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

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 test problems requiring the minimization of a scalar function of several variables.

TEST_OPTIMIZATION, a MATLAB library which defines test problems for the minimization of a scalar function of several variables, as described by Molga and Smutnicki.

TOMS178, a MATLAB library which optimizes a scalar functional of multiple variables using the Hooke-Jeeves method.

Reference:

  1. Harald Niederreiter, Kevin McCurley,
    Optimization of functions by quasi-random search methods,
    Computing,
    Volume 22, Number 2, 1979, pages 119-123.

Source Code:

Examples and Tests:

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


Last revised on 16 February 2012.