An overview of the Unconstrained Optimization Problems toolbox.
The goal of this toolbox is to provide unconstrained optimization problems in order to test optimization algorithms.
The More, Garbow and Hillstrom collection of test functions (1981) is widely used in testing unconstrained optimization software. The code for these problems is available in Fortran from the netlib software archives.
In 1993, Victoria Z. Averbukh, Samuel A. Figueroa, Tamar Schlick implemented a Fortran routine to compute the Hessian matrix for 18 test functions.
The port from Fortran to Matlab was done in 1994 by two undergraduate students at Brooklyn College, Livia Klein and Madhu Lamba, under the supervision of Chaya Gurwitz.
Benoit Hamelin did the port from Matlab to Scilab v4 in 2000-2004 with m2sci and did some manual tuning of the result.
Michael Baudin did the port from Scilab v4 to Scilab v5. I renamed the functions to avoid naming conflicts. I formatted the help pages to generate automatically the xml from the sources. I added Brown Almost-Linear function. I fixed gradient of problem #31 : Broyden Banded. I created the getopt function to retrieve fopt and xopt when available. I created the getclass function to retrieve collections of problems for least squares, nonlinear equations or unconstrained optimization. I vectorized several functions to improve performance. I created the gethesfcn function to retrieve the hessian and translated from Fortran to Scilab the HESFCN routine. I created finite difference functions getgrdfd, getjacfd and gethesfd in order to compare with exact derivatives. Exact gradients and exact Hessians, when available, are checked by finite differences.
Most users should focus on the uncprb_get* functions. Given a problem number, these functions allows to get or compute all the necessary informations. The following table presents the available problems.
1 : Rosenbrock
2 : Freudenstein And Roth
3 : Powell Badly Scaled
4 : Brown Badly Scaled
5 : Beale
6 : Jenrich And Sampson
7 : Helical Valley
8 : Bard
9 : Gaussian
10: Meyer
11: Gulf Research And Development
12: Box 3- Dimensional
13: Powell Singular
14: Wood
15: Kowalik And Osbome
16: Brown And Dennis
17: Osborne 1
18: Biggs
19: Osborne 2
20: Watson
21: Extended Resenbrock
22: Extended Powell Singular
23: Penalty 1
24: Penalty 2
25: Variably Dimensional
26: Trigonometric
27: Brown Almost Linear
28: Discrete Boundary Value
29: Discrete Integral Equation
30: Broyden Tridiagonal
31: Broyden Banded
32: Linear - Full Rank
33: Linear - Rank 1
34: Linear - Rank 1 W/0 Col and Rows
35: Chebyquad
The current component has the following features :
Provides 35 unconstrained optimization problems.
Provide the function value, the gradient, the function vector, the Jacobian.
Provide the Hessian matrix for 18 problems.
Provides the starting point for each problem.
Provides the optimum function value and the optimum point x for many problems.
Provide finite difference routines for the gradient, the Jacobian and the Hessian matrix.
Macro based functions : no compiler required.
All function values, gradients, Jacobians and Hessians are tested.
renamed to avoid name conflicts
created module architecture
formatted comments for auto-generation
created unit tests for uncprb_get* functions
fixed problem #27 : almost.sci is missing
fixed gradient of problem #31 : Broyden Banded
launched optim and fminsearch on these benchmarks
fixed ambuguity of problem 35: -->uncprb_getname(35) = rosex but getproblems indicates chebyquad
suppressed the fvec = fvec'
suppressed the %sum
suppressed the zero = 0, one = 1, two = 2, etc...
checked conditions on n and m where appropriate
provided function value at optimum
provided optimum x when available
provided a classification: class 1 : Systems of Nonlinear Equations, class 2 : Non Linear Least Squares, class 3 : Unconstrained Minimization, class 4 : The Hessian is provided.
created the overview in xml and generate the help: check against XXE
run the fortran Algo 566 and compared the data
update implementation and vectorize when possible
"Algorithm 566: FORTRAN Subroutines for Testing Unconstrained Optimization Software" ACM Transactions on Mathematical Software (TOMS), Volume 7 , Issue 1, March 1981, Pages: 136 - 140, J. J. Moré, Burton S. Garbow, Kenneth E. Hillstrom
"HESFCN - A Fortran Package Of Hessian Subroutines For Testing Nonlinear Optimization Software", Victoria Averbukh, Samuel Figueroa and Tamar Schlick, Courant Institue Of Mathematical Sciences
http://www.dmi.usherb.ca/~hamelin/autodiff/html/sciad_en.html