TEST_OPT_CON\
Test Functions for Scalar Optimization\
Constrained to a Hyper-Rectangle {#test_opt_con-test-functions-for-scalar-optimization-constrained-to-a-hyper-rectangle align=”center”}
=======================================
TEST_OPT_CON is a C++ 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:
- NM1: Niederreiter-McCurley function #1, M = 4;
- NM2: Niederreiter-McCurley function #2, M = 4;
- NM3: Niederreiter-McCurley function #3, M = 4;
- NM4: Niederreiter-McCurley function #4, M = 4;
- NM5: Niederreiter-McCurley function #5, M = 4;
- NM6: Niederreiter-McCurley function #6, M = 4;
- L02: Langerman function, M = 2;
- 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:
- P03_AB returns bounds for problem 3.
- P03_F returns the objective function value for problem 3.
- P03_M returns the spatial dimension for problem 3.
- P03_SOL returns known solutions for problem 3.
- P03_TITLE returns a title for problem 3.
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:
- P00_AB returns bounds for a problem specified by index.
- P00_F returns the objective function value for a problem
specified by index.
- P00_M returns the spatial dimension for a problem specified by
index.
- P00_SOL returns known solutions for a problem specified by
index.
- P00_TITLE returns a title for a problem specified by index.
Licensing: {#licensing align=”center”}
The computer code and data files described and made available on this
web page are distributed under the GNU LGPL
license.
Languages: {#languages align=”center”}
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.
ASA047, a C++ library which
minimizes a scalar function of several variables using the Nelder-Mead
algorithm.
BRENT, a C++ 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
C++ program which minimizes a scalar function of several variables using
the compass search algorithm.
PRAXIS, a C++ library which
implements the principal axis method of Richard Brent for minimization
of a function without the use of derivatives.
TEST_OPTIMIZATION,
a C++ library which defines test problems for the minimization of a
scalar function of several variables, as described by Molga and
Smutnicki.
TOMS178, a C++ library which
optimizes a scalar functional of multiple variables using the
Hooke-Jeeves method.
Reference: {#reference align=”center”}
- Harald Niederreiter, Kevin McCurley,\
Optimization of functions by quasi-random search methods,\
Computing,\
Volume 22, Number 2, 1979, pages 119-123.
Source Code: {#source-code align=”center”}
Examples and Tests: {#examples-and-tests align=”center”}
List of Routines: {#list-of-routines align=”center”}
- P00_AB returns bounds for a problem specified by index.
- P00_F returns the objective function value for a problem
specified by index.
- P00_M returns the spatial dimension for a problem specified by
index.
- P00_PROBLEM_NUM returns the number of problems.
- P00_SOL returns known solutions for a problem specified by
index.
- P00_TITLE returns a title for a problem specified by index.
- P01_AB returns bounds for problem 1.
- P01_F returns the objective function value for problem 1.
- P01_M returns the spatial dimension for problem 1.
- P01_SOL returns known solutions for problem 1.
- P01_TITLE returns a title for problem 1.
- P02_AB returns bounds for problem 2.
- P02_F returns the objective function value for problem 2.
- P02_M returns the spatial dimension for problem 2.
- P02_SOL returns known solutions for problem 2.
- P02_TITLE returns a title for problem 2.
- P03_AB returns bounds for problem 3.
- P03_F returns the objective function value for problem 3.
- P03_M returns the spatial dimension for problem 3.
- P03_SOL returns known solutions for problem 3.
- P03_TITLE returns a title for problem 3.
- P04_AB returns bounds for problem 4.
- P04_F returns the objective function value for problem 4.
- P04_M returns the spatial dimension for problem 4.
- P04_SOL returns known solutions for problem 4.
- P04_TITLE returns a title for problem 4.
- P05_AB returns bounds for problem 5.
- P05_F returns the objective function value for problem 5.
- P05_M returns the spatial dimension for problem 5.
- P05_SOL returns known solutions for problem 5.
- P05_TITLE returns a title for problem 5.
- P06_AB returns bounds for problem 6.
- P06_F returns the objective function value for problem 6.
- P06_M returns the spatial dimension for problem 6.
- P06_SOL returns known solutions for problem 6.
- P06_TITLE returns a title for problem 6.
- P07_AB returns bounds for problem 7.
- P07_F returns the objective function value for problem 5.
- P07_M returns the spatial dimension for problem 7.
- P07_SOL returns known solutions for problem 7.
- P07_TITLE returns a title for problem 7.
- P08_AB returns bounds for problem 8.
- P08_F returns the objective function value for problem 8.
- P08_M returns the spatial dimension for problem 8.
- P08_SOL returns known solutions for problem 8.
- P08_TITLE returns a title for problem 8.
- R8COL_UNIFORM_NEW fills an R8COL with scaled pseudorandom
numbers.
- TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to the C++ source codes.
Last revised on 16 February 2012.