GALAHAD is a thread-safe library of modern Fortran packages for solving nonlinear optimization problems. Many of the packages have C, Python, Julia and Matlab interfaces. At present, the areas covered by the library are unconstrained and bound-constrained optimization, linear and quadratic programming, nonlinear programming, systems of nonlinear equations and inequalities, nonlinear least squares problems and global optimization. GALAHAD contains the following major packages:
LANCELOT B

is the latest release of LANCELOT, and is designed to solve large-scale optimization problems involving the minimization of a nonlinear objective, subject (perhaps) to linear or nonlinear equality and box constraints. All functions involved are assumed to be group partially separable, and the minimization is based on a Sequential Augmented Lagrangian algorithm. The new release is coded in modern Fortran, allows for a non-monotone descent strategy, Moré and Toraldo-type projections, use of Lin and Moré's ICFS and other optional preconditioners, structured trust regions, and more.

LANCELOT_SIMPLE

is a simple-minded interface to LANCELOT for small, dense problems.

FILTRANE

is a package for finding a feasible point for a set of linear and/or nonlinear equations and inequalities using a multi-dimensional filter trust-region approach. In the event that the system is inconsistent, a local measure of infeasibility is minimized. Core linear algebraic requirements are handled by an adaptive preconditioned CG/Lanczos iteration.

NLS

is a package for minimizing an objective function that is expressed as a sum of squares. Advantage can be taken of second derivatives to produce more accurate local models. Both direct and iterative procedures are used to solve core algebraic subproblems.

TRU

solves the unconstrained optimization problem using a trust-region method. Both direct and iterative solution of core subproblems is possible, and there are many other "bells and whistles".

ARC

solves the same problem using an adaptive cubic regularization method. Most of the features available with TRU are also present here.

TRB

solves the bound-constrained optimization problem using a projected trust-region method. Both direct and iterative solution of core subproblems is possible, and again there are many other helpful features".

QP

provides a unified interface to all the GALAHAD quadratic programs packages and enables optional automatic problem scaling and pre/post-solution.

QPB

solves quadratic programs using a primal-dual interior-point method globalized by means of a trust region. The method works in two phases, the first finding a feasible point for the set of constraints, while the second maintaining feasibility while iterating towards optimality. Once again, core linear algebraic requirements are handled by an adaptive preconditioned CG/Lanczos iteration.

QPA

is an active-set quadratic programming solver which can also treat l_1 quadratic programs. At each iteration, a step is computed along a direction which solves an equality-constrained quadratic program whose constraints are defined by a working subset of the currently active constraints. Although, in general, QPB is to be preferred, QPA is most useful when warm-starting a perturbation of a previously-solved problem.

QPC

is a crossover quadratic programming solver which applies successively QPB and QPA. The former is used to obtain a good estimate of the solution at low cost, while the latter refines the solution. Of particular note, the optimal active set given by QPC is more reliable than that from QPB.

LSQP

uses a primal-dual interior-point method to solve a linear or separable convex quadratic program. Alternatively, it may also be used to compute the analytic center of the feasible set, if it exists.

WCP

uses a primal-dual interior-point method to find a well-centered interior point for a region defined by a finite number of linear equality and inequality constraints. If the region is feasible but has no interior, inequality constraints which must always be active are identified.

CQP

solves convex quadratic programs using a high-order primal-dual extrapolation method. The main design feature is to allow fast convergence even when the problem is degenerate using Puiseux rather than Taylor expansions.

DQP

solves strictly-convex quadratic programs using a dual gradient-projection method. The simplicity of the dual feasible region allows for fast iterative solution.

PRESOLVE

is a quadratic program preprocessor. It aims to apply inexpensive transformations to a given quadratic program, so as to simplify it before passing it to one of the other GALAHAD solvers. Once the solver has completed its task, a post-processing stage may be used to recover the original problem and its solution.

LPB

solves linear programs using a high-order primal-dual extrapolation methd, and is a simplification of QPB.

LPA

solves linear programs using the simplex method, but in reality is simply a convenient wrapper to the HSL code LA04 that must be obtained separately.

SCALE

provides a variety of quadratic program scaling schemes that try to remove the effects of poor problem scaling.

TRS

solves the problem of minimizing a quadratic subject to an ellipsoidal trust-region constraint, by sparse-matrix factorizaion. The algorithm may also be used to minimize the quadratic over the boundary of the trust region, and allows additional linear equality constraints

RQS

solves the problem of minimizing a quadratic subject plus a regularisation term penalising a weighted two-norm of the variables, by sparse-matrix factorization. Again, the algorithm permits additional linear equality constraints

DPS

finds a norm so that the minimizer of the trust-region and regularized quadratic subproblems require a single factorization, and solves the resulting problems

GLTR

solves the problem of minimizing a quadratic subject to an ellipsoidal trust-region constraint, using a Krylov method. The algorithm does not require any factorization of the Hessian and may also be used to minimize the quadratic over the boundary of the trust region.

GLRT

solves the problem of minimizing a quadratic subject plus a regularisation term penalising a weighted two-norm of the variables, using a Krylov method. Again, the algorithm does not require any factorization of the Hessian.

LSTR

solves the problem of minimizing the two-norn of the deviation Ax-b subject to an ellipsoidal trust-region constraint, using a Krylov method. The algorithm does not require any factorization of A.

LSRT

solves the problem of minimizing the square of the two-norn of the deviation Ax-b plus a regularisation term penalising the two-norm of the variables, using a Krylov method. Again, the algorithm does not require any factorization of A.

L2RT

solves the problem of minimizing the two-norn of the deviation Ax-b plus a regularisation term penalising the two-norm of the variables, using a Krylov method. Once again, the algorithm does not require any factorization of A.

BLLS

solves the problem of minimizing the two-norn of the deviation Ax-b subject to lower and upper bounds on the variables, using a projected Krylov method. The algorithm does not require any factorization of A.

EQP

solves quadratic programming problems for which all the constraints are equations.

FDC

determines whether a system of linear equations is of full rank, and identifies a maximal subset which may be removed without changing the rank

UGO

find the global minimizer of a smooth function of one variable over a specified finite interval.

BGO

find an approximation to the global minimizer of a smooth function of several bounded variables using a combination of stochastic, deterministic and local optimization techniques.

DGO

find an approximation to the global minimizer of a smooth function of several bounded variables using an enhanced partition-and-bound method.

SBLS

provides a variety of preconditioners which may be applied when solving saddle point (alternatively augmented, KKT) systems of linear equations.

PSLS

provides a variety of preconditioners for sparse, unstructured symmetric matrices.

SLS

provides a generic interface to a variety of external symmetric linear equation solvers (HSL, SPRAL, PARDISO, WSMP), some of which are designed for fast solution on shared-memory multiprocressing system. Out-of-core solution is also supported.

ULS

provides a generic interface to a variety of external unsymmetric linear equation solvers from HSL. Future support for other solvers is planned.