Scilab Home Page | Wiki | Bug Tracker | Forge | Mailing List Archives | Scilab Online Help | File Exchange
ATOMS : Unconstrained Optimization details
Login with GitLab

Unconstrained Optimization

Provide 35 unconstrained optimization problems
(1453 downloads for this version - 21615 downloads for all versions)
Details
Version
0.2
A more recent valid version exists: 0.2.3
Authors
Michael Baudin
Benoit Hamelin
Jean-Pierre Dussault
Chaya Gurwitz
Livia Klein
Madhu Lamba
John Burkardt
Jorge More
Burton Garbow
Kenneth Hillstrom
Owner Organization
DIGITEO
Maintainers
Allan CORNET
Michael BAUDIN
Category
License
Dependency
Creation Date
August 9, 2011
Source created on
Scilab 5.2.x
Binaries available on
Scilab 5.2.x:
Windows 64-bit Windows 32-bit Linux 64-bit Linux 32-bit macOS
Install command
--> atomsInstall("uncprb")
Description
            Purpose

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 is widely used
in testing unconstrained optimization software.  The code for these problems
is available in Fortran from the netlib software archives.

The port from Fortran to Matlab was done 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 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.

 * Provides 35 unconstrained optimization problems.
 * Provides the function value, the gradient, the function vector, the
Jacobian.
 * Provides 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.
 * Provides 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.


Features
--------

 * uncprb_overview — An overview of the Unconstrained Optimization Problems
toolbox.
 * uncprb_getclass — Returns the name.
 * uncprb_getfunc — Returns the function vector, the Jacobian and, if
available, the Hessian.
 * uncprb_getgrdfcn — Returns the gradient.
 * uncprb_getgrdfd — Compute the gradient by finite differences.
 * uncprb_gethesfcn — Returns the function value.
 * uncprb_gethesfd — Compute the Hessian by finite differences.
 * uncprb_getinitf — Returns the starting point.
 * uncprb_getinitpt — Returns the starting point.
 * uncprb_getname — Returns the name.
 * uncprb_getobjfcn — Returns the function value.
 * uncprb_getopt — Returns the name.
 * uncprb_getproblems — Lists the problems.
 * uncprb_getvecfcn — Returns the function vector and the Jacobian.
 * uncprb_getvecjac — Returns the Jacobian.
 * uncprb_getvecjacfd — Compute the Jacobian by finite differences
 * Benchmark
   * uncprb_computestatus — Computes the status of an optimization.
   * uncprb_leastsqfun — Returns the residual vector for the leastsq
function.
   * uncprb_leastsqget — Get the fields of the internal data for
uncprb_leastsqfun.
   * uncprb_leastsqinit — Initialize the internal data for uncprb_leastsqfun
   * uncprb_leastsqjac — Returns the Jacobian matrix for the leastsq
function.
   * uncprb_lsqrsolvefun — Returns the residual vector for the lsqrsolve
function.
   * uncprb_lsqrsolveget — Get the fields of the internal data for
uncprb_lsqrsolve.
   * uncprb_lsqrsolveinit — Initialize the internal data for uncprb_lsqrsolve
   * uncprb_lsqrsolvejac — Returns the Jacobian matrix for the lsqrsolve
function.
   * uncprb_optimfun — Returns f and g for the optim function.
   * uncprb_optimget — Get the fields of the internal data for
uncprb_optimfun.
   * uncprb_optiminit — Initialize the internal data for uncprb_optimfun
   * uncprb_printsummary — rtolF, atolF, rtolX, atolX, fmt)

Demos
-----

 * checkAlgo566_UNC : compare the output of uncprb against Algo 566 on UNC
problems
 * checkAlgo566_NLEQ : compare the output of uncprb against Algo 566 on NLEQ
problems
 * bench_problems : Compare performances of the functions of the test problems
 * bench_optim : Test the optim function on this benchmark.
 * bench_lsqrsolve : Test the lsqrsolve function on this benchmark.
 * bench_leastsq : Test the leastsq function on this benchmark.
 * bench_ntrust : Test the ntrust function (from optkelley) on this benchmark.
 * bench_fminsearch : Test the fminsearch function on this benchmark.
 * bench_bfgswopt : Test the bfgswopt function (from optkelley) on this
benchmark.

References
----------

"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

Authors
-------

Scilab v5 port and update: 2010, Michael Baudin
Scilab port: 2000-2004, Benoit Hamelin, Jean-Pierre Dussault
Matlab port: Chaya Gurwitz, Livia Klein, and Madhu Lamba
2000 - John Burkardt (optimum points for problem #20)
Fortran 77: Jorge More, Burton Garbow and Kenneth Hillstrom

            
Files (2)
[193.59 kB]
Source code archive

[376.54 kB]
OS-independent binary for Scilab 5.2.x
Binary version
Automatically generated by the ATOMS compilation chain

News (0)
Comments (2)     Leave a comment 
Comment -- September 1, 2011, 08:30:31 AM    
Here are the changes for the version 0.2

uncprb (0.2)
    * Increased portability of unit tests.
	* Added optimfun function to benchmark optim.
	* Removed auto-generated demos.
	* Added printsummary function to support benchmarks.
	* Added computestatus function to support benchmarks.
	* Updated toolbox to new assert module.
    * Added a benchmark for fminsearch
	* Added lsqrsolvefun and lsqrsolvejac to benchmark lsqrsolve.
    * Added leastsqfun and leastsqjac to benchmark leastsq.
Comment -- September 1, 2011, 08:35:56 AM    
Packaging of the v0.2 checked on Windows 32 bits with Scilab 5.3.2:

-->atomsGetInstalled()
 ans  =
!assert       1.3-1  allusers  SCI\contrib\assert\1.3-1       A  !
!                                                                !
!uncprb       0.2-1  allusers  SCI\contrib\uncprb\0.2-1       I  !
...

All tests pass, with minor numerical changes in the .ref files (for the "all" and

"printsummary" tests).
Leave a comment
You must register and log in before leaving a comment.
Login with GitLab
Email notifications
Send me email when this toolbox has changes, new files or a new release.
You must register and log in before setting up notifications.