NEOS Server Home

NEOS Interfaces to BLMVM

WWW Form & Sample Submissions
E-mail
XML-RPC

BLMVM



The NEOS Server offers BLMVM for the solution of nonlinear optimization problems with simple bounds on the variables.

This solver is a limited memory, variable metric method. It assumes that the variable bounds are fixed and the gradient of the objective function can be computed. This solver creates a quadratic model function in the full space of variables using projected gradients. This gradient information is stored in such a way that the storage required is linear in number of variables. Since the algorithm does not require second derivatives, the method can be applied when the Hessian is not available or not practical to compute.

If it is desired, BLMVM can solve the minimization problem without requiring the user to provide any gradient evaluations. This is accomplished through the automatic differentiation tool ADIFOR.

To use BLMVM with AMPL files, try the BLMVM (AMPL input) page.

BLMVM was developed by Steve Benson and Jorge Moré. The algorithm can be found in the Toolkit for Advanced Optimization.


Using the NEOS Server for BLMVM

To solve a bound constrained minimization problem, the user must submit to the server:

How many variables are in your problem
Number of dimensions:


Are you providing a subroutine that calculates both function and gradient evaluations, a subroutine that only provides function evaluations, or a subroutine that evaluates the objective function in partially separable form. The second and third choices will invoke Automatic Differentiation using ADIFOR.
Derivative Method:


If your function is in partially separable form, then enter the number of function elements
Number of function elements:


In what file is the function to evaluate function and gradient? If you are using the function/gradient option, then your function must be called 'fcn' and have this prototype:

subroutine fcn(ndim,x,f,g)

If you are using the function/automatic differentiation option, then your function must be called 'fcn' and have this prototype and the variables names must be 'x' and 'f' to allow the ADIFOR package to work:

C:
void fcn(int *ndim, double x[], double *f)

Fortran:
subroutine fcn(ndim,x,f)

If you are using the partially separable option, then your function must be called 'fcn' and have the following prototype. The function will return an array of function values, where the intended function result is the sum over the array. Also, your variables names must be 'x' and 'fvec' to allow the ADIFOR package to work:

subroutine fcn(ndim,x,nf,fvec)


Evaluate function/gradient(local file):


In what file is the function to set the variable bounds? The default values are +,- infinity, insert only the boundary values that are not at infinity. If you do not want any variable bounds, then you can leave this entry blank. Otherwise, the function must be called 'xbound' and have this prototype:

subroutine xbound(ndim,l,u)


Set variable bounds (local file):


In what file is the function to set the initial vector? The function must be called 'initpt' and have this prototype:

subroutine initpt(ndim,x)


Initial Value Function:


Enter optional command-line arguments. Below are selected options. See TAO User Manual for details and a complete listing.
Enter any (optional) TAO options:



Comments:


Put in priority queue
e-mail address:

Please do not click the 'Submit to NEOS' button more than once.


NEOS Server Home
Submit comments and questions


DOE disclaimer
DOE Web privacy policy