The PATH solver for mixed complementarity problems (MCPs) was introduced in 1995 and has since become the standard against which new MCP solvers are compared.


The version that is downloadable from here (i.e. the file in this directory) is free, but is limited to problems with no more than 300 variables and 2,000 nonzeros.

The file LICENSE details how to set up a temporary license that removes the size restriction for a year. A new license string will be provided in December of each year.

MATLAB Interface

Files for setting this up without compilation are downloadable below for a selection of architectures. From version 7.13 onwards, you can either download the specific compiled mex utilities, or a zip archive containing all the mex files and the “.m” files needed. You will need to set up a license as well as detailed above.

Save the mex interface (above 4 files) to a place on your MATLAB path e.g. on a PC: c:\matlabXXXX\toolbox\local\* or to your current working directory. For small problems you should be ready to go. To solve large problems, the LICENSE string needs to be set up annually as indicated above.

The file README gives more information.

Currently only provided on MacOSX, Linux and Windows platforms.

Source for the matlab link, complete with makefiles, etc can be found in the archive (see below).

GAMS Interface

You can download the complete student version of GAMS for a number of different computing platforms. Each one includes a version of PATH.

Library Version

The interfaces for this, and the source for the MATLAB installation can be found in the archive. This archive contains further information on how to proceed. Additional information and examples may be found at the following ftp directories:

AMPL Version

The “pathampl” executable is provided at this ftp site for a variety of machine architectures (windows (win), linux (lnx), mac (osx)). To use this solver within ampl, you need to install AMPL (!) and put the appropriate pathampl executable in a directory on your path. To run on a model (that is contained for example in example.mod), you should do the following:

option solver pathampl;
option path_options "logfile = path.log optfile=path.opt";
option presolve 0;
model example.mod;

The PATH options above are entirely optional. The AMPL presolve should be turned off “option presolve 0;” since the pathampl presolver understands complementarity presolving better. The file path.opt contains further options for the path solver, some details of which are given below.

Further Information

The files here are documented in the paper Interfaces to PATH 3.0: Design, Implementation and Usage by Michael C. Ferris and Todd S. Munson. Some Options for PATH are described in this pdf file.

For further in-depth information, see the following original research papers:

Steven Dirkse, Michael C. Ferris and Todd Munson

If you have difficulties, please contact Michael Ferris.