Sven Leyffer's Software

From Svenleyffer
Jump to navigation Jump to search

MINOTAUR

MINOTAUR is a toolkit for solving mixed-integer nonlinear optimization problems. It is available under an open-source license, see the MINOTAUR wiki.

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.

All solvers are also available in sparse and dense versions in the [http://tomopt.com/tomlab/products/minlp/ TOMLAB / MINLP Matlab interface] running on Windows, Linux, Unix and Mac operating systems.