## Dundee solvers for MINLP/NLP/QP

#### bqpd

bqpd is a package of Fortran 77 subroutines for finding local solutions to
quadratic programming (QP) problems. A recursive form of a null-space
active set method is used, using Wolfe's method to resolve degeneracy.
The package provides a number of features which make for flexible use, and
reliable and efficient solution. These include
- indefinite Hessian allowed
- two-sided simple bounds and general constraints
- sparse or dense format for specifying the QP problem
- sparse or dense matrix algebra modules
- cold/warm/hot starts
- automatic scaling option
- steepest-edge pivoting
- efficient as a linear programming solver
- effective in both single and double precision
- new features for numerical stability.

The package includes a set of files containing bqpd and auxiliary subroutines,
suitable for both dense and sparse operation. A sample driver file and
illustrative example are also provided, along with a user information manual
(in Latex).

#### filterSQP

filterSQP is a package of Fortran 77 subroutines for finding local solutions
to nonlinear programming (NLP) problems. It must be used in conjunction with
the bqpd package. The method implemented is a sequential quadratic programming
(SQP) trust region algorithm, using a recently developed "filter" technique to
promote global convergence. This method has performed very well in
comparative numerical testing, and has the advantage that the user does not
need to supply any estimates of penalty parameters.
The NLP problem is specified by means of user subroutines, and it is necessary
to provide information about both first and second derivatives of the
nonlinear functions in the problem. However it is possible to drive filterSQP
using the CUTE system or the AMPL modelling language for specifying an NLP
problem. Use of AMPL enables derivatives to be computed automatically.
The package includes a set of files containing the filterSQP subroutine and
related auxiliary subroutines. An example set of user supplied subroutines
is provided along with an example of a driver program and an example input
file required to drive the example. There is also a detailed user manual
(in Latex). Interfaces to CUTE or AMPL are available upon request.

#### MINLPBB

MINLPBB is a package of Fortran 77 subroutines for finding solutions to
Mixed Integer NLP problems. These are NLP problems with the additional
constraint that some variables are required to take only certain discrete
values (e.g. integer values in some range). The package implements the
Branch and Bound method in a nonlinear setting. The package must be used in
conjunction with both filterSQP and bqpd.
Problems are specified in the same way as for filterSQP (i.e. either via
subroutines or CUTE or AMPL). The additional integer structure is specified
using a vector to identify the indices of integer variables. The user can
influence the choice of branching variable by providing priorities for the
integer variables.
The package comprises files containing the main branch and bound routine and
related auxiliary subroutines. An example set of user supplied subroutines
is provided along with an example of a driver program and an example input
file required to drive the example. There is also a detailed user guide
(in Latex). Interfaces to CUTE or AMPL are available upon request.
Further development of this package to include Special Ordered Sets should
soon be available.

#### MIQPBB

#### MIQPBB is a package of Fortran 77 subroutines for finding solutions to
Mixed Integer QP problems. The package implements the Branch and Bound
method with some special features such as the computation of improved
lower bounds and hot starts for the QP subproblems. MIQPBB allows the
user to influence the choice of branching variable in two ways: Firstly
by employing user supplied priorities in the branching decision and secondly
by supplying a choice of branching routines. The package is also efficient
as an MILP solver. A detailed used guide (in Latex) is provided.
The package must be used in conjunction with bqpd.

If you wish to take out a **licence** (or to discuss the matter further) please
contact us at fletcher at
maths.dundee.ac.uk
or leyffer at mcs.anl.gov.

You might also wish to sample some of our software. This can be done
using the NEOS server at
Argonne National Laboratory.

All solvers are also available in sparse and dense versions in the
TOMLAB / MINLP Matlab
interface
running on Windows, Linux, Unix and Mac operating systems.