The PATH Solver


Steven Dirkse, Michael C. Ferris (ferris@cs.wisc.edu) and Todd Munson

Overview:

This document briefly describes the availabilty of the PATH solver for download.

License:

The version that is downloadable from here (i.e. the files pathlib*.zip in this directory) are 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.

AMPL version:

Compiled versions of the pathampl code for supported architectures are provided on the ampl web site at: Ampl solvers A mirror of the "pathampl" files is also found at: ampl 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 in the section "Further Information".

The interfaces for this, and the source for the ampl installation can be found in the path*.zip archive (these are now indexed by version number and by mahine architecture i.e. _5.0.05 and _Win64). This archive contains further information on how to proceed. The files are:

The file README contains further information. This directory also contains a file The file LICENSE that details how to set up a temporary license file for the system.

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.

Julia interface:

Library files for setting up PATH.jl are downloadable from the directory julia for a selection of architectures. Currently only provided on OSX, Linux and Windows platforms. The file README in that directory contains further information. The directory also contains a file "LICENSE" that details how to set up a temporary license file for the system.

Matlab interface:

Files for setting this up without compilation are downloadable below for a selection of architectures (win64, linux64, macOSX): Also, in the pathlib*.zip archives, the matlab directory contains a zip file pathmex.zip with all the relevant files.

Files from previous versions of Matlab are provided below on an as is basis. They have not been tested extensively beyond the versions they are listed under. 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.

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.

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

Library version:

The interfaces for this, and the source for the matlab installation can be found in the This archive contains further information on how to proceed.

Further information and examples may be found at the following directories:

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.

If you have difficulties, please contact Michael Ferris by email at ferris@cs.wisc.edu