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.
License
The version that is downloadable from here (i.e. the file pathlib.zip 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.
- MATLAB version 7.13 (R2011b)
- Linux (64 bit): lcppath.mexa64, mcppath.mexa64, or a complete archive in pathmexa64.zip
- MacOSX (64 bit): lcppath.mexmaci64, mcppath.mexmaci64, or a complete archive in pathmexmaci64.zip
- Windows (64 bit): lcppath.mexw64, mcppath.mexw64, or a complete archive in pathmexw64.zip
- Windows (32 bit): lcppath.mexw32, mcppath.mexw32, or a complete archive in pathmexw32.zip
- MATLAB version 7.5 (R2007b) Files for setting this up without compilation are found in the matlab directory. Specifically, you need to download 4 files, two that are machine independent
and two that depend on your MATLAB version (try the one that is most recent version before the one you have) and machine architecture:
-
- Linux (32 bit): lcppath.mexglx, mcppath.mexglx
- MATLAB version 7.4 (R2007a)
- Linux (64 bit): lcppath.mexa64, mcppath.mexa64
- Solaris (64 bit): lcppath.mexs64, mcppath.mexs64
- MATLAB version 6.5
- PC (32 bit), MATLAB versions 6.5 to 7.2: lcppath.dll, mcppath.dll
- Solaris (32 bit): lcppath.mexsol, mcppath.mexsol
- Linux (32 bit), Matlab versions 6.5 to 7.2: lcppath.mexglx, mcppath.mexglx
-
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 pathlib.zip 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 pathlib.zip 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; solve;
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:
- Ferris & Munson (1999) “Interfaces to PATH 3.0: Design, Implementation and Usage”
- Kim et al. (2018) “A structure-preserving pivotal method for affine variational inequalities”
Steven Dirkse, Michael C. Ferris and Todd Munson
If you have difficulties, please contact Michael Ferris.