Differences between revisions 10 and 11
Revision 10 as of 2014-01-27 18:20:28
Size: 1829
Comment: fixed link
Revision 11 as of 2014-07-23 18:04:09
Size: 3340
Comment: preliminary documentation
Deletions are marked like this. Additions are marked like this.
Line 11: Line 11:
To enable LP support in Fast Downward, change the line To enable LP support in Fast Downward, you need OSI and (optionally but recommended) an external solver such as CPLEX installed on your system (see below). Once OSI is installed, change the line
Line 26: Line 26:
The {{{make}}} invocation will take a long time because it first builds the LP library, which is rather big. This is a one-time operation: once the library has been built, it will not be deleted, not even by {{{make clean}}} or {{{make distclean}}}. If for some reason you absolutely want to delete it, run {{{rm -r lp/coin}}} and it will be rebuilt on the next compile with {{{USE_LP=1}}}.
== Installing CPLEX ==

IBM has a [[http://www-304.ibm.com/ibm/university/academic/pub/page/ban_ilog_programming|free academic license]] that includes access to CPLEX.
Once you are registered, you can download a binary from the member area of the [[http://www-304.ibm.com/ibm/university/academic/member/page/mem_login|Academic Initiative Website]]. Execute the binary and follow the guided installation. If you want to install in a global location, you have to execute the installer as root.


== Installing the Open Solver Interface ===

OSI provides a common interface to different LP solvers. To build an interface to a solver, the solver has to be installed before compiling OSI. If you install a solver later, repeat the installation steps of OSI to use it in Fast Downward.

    CPLEX_INCDIR=/opt/ibm/ILOG/CPLEX_Studio1251/cplex/include/ilcplex
    CPLEX_LIBDIR=/opt/ibm/ILOG/CPLEX_Studio1251/cplex/lib/x86_sles10_4.1/static_pic


Download the current version of COIN/OSI from their website: http://www.coin-or.org/download/source/Osi/
In the following description we assume version 0.103.0 since this was the last version that was bundled with Fast Downward.

{{{
wget http://www.coin-or.org/download/source/Osi/Osi-0.103.0.tgz
tar xvzf Osi-0.103.0.tgz
cd Osi-0.103.0
sudo ./configure CC="gcc" CFLAGS="-m32 -pthread -Wno-long-long" \
                 CXX="g++" CXXFLAGS="-m32 -pthread -Wno-long-long" \
                 --without-lapack --enable-static=yes \
                 --with-cplex-incdir=$CPLEX_INCDIR \
                 --with-cplex-lib=$CPLEX_LIBDIR/libcplex.a \
                 --with-gurobi-incdir=$GUROBI_INCDIR \
                 --with-gurobi-lib=$GUROBI_LIBDIR/libgurobi.a
}}}

--prefix "$BASEDIR/coin"

Back to Doc/Heuristic.

LP solver support

Some configurations of the search component of Fast Downward, such as optimal cost partitioning for landmark heuristics, require an Linear Programming (LP) solver and will complain if the planner has not been built with support for such a solver.

Fast Downward uses the COIN-OR LP Solver (CLP) with the Open Solver Interface.

Instructions for building Fast Downward with LP support

To enable LP support in Fast Downward, you need OSI and (optionally but recommended) an external solver such as CPLEX installed on your system (see below). Once OSI is installed, change the line

USE_LP=0

in the Makefile to

USE_LP=1

and run

make clean
make

Installing CPLEX

IBM has a free academic license that includes access to CPLEX. Once you are registered, you can download a binary from the member area of the Academic Initiative Website. Execute the binary and follow the guided installation. If you want to install in a global location, you have to execute the installer as root.

== Installing the Open Solver Interface ===

OSI provides a common interface to different LP solvers. To build an interface to a solver, the solver has to be installed before compiling OSI. If you install a solver later, repeat the installation steps of OSI to use it in Fast Downward.

  • CPLEX_INCDIR=/opt/ibm/ILOG/CPLEX_Studio1251/cplex/include/ilcplex CPLEX_LIBDIR=/opt/ibm/ILOG/CPLEX_Studio1251/cplex/lib/x86_sles10_4.1/static_pic

Download the current version of COIN/OSI from their website: http://www.coin-or.org/download/source/Osi/ In the following description we assume version 0.103.0 since this was the last version that was bundled with Fast Downward.

wget http://www.coin-or.org/download/source/Osi/Osi-0.103.0.tgz
tar xvzf Osi-0.103.0.tgz
cd Osi-0.103.0
sudo ./configure CC="gcc"  CFLAGS="-m32 -pthread -Wno-long-long" \
                 CXX="g++" CXXFLAGS="-m32 -pthread -Wno-long-long" \
                 --without-lapack --enable-static=yes \
                 --with-cplex-incdir=$CPLEX_INCDIR \
                 --with-cplex-lib=$CPLEX_LIBDIR/libcplex.a \
                 --with-gurobi-incdir=$GUROBI_INCDIR \
                 --with-gurobi-lib=$GUROBI_LIBDIR/libgurobi.a

--prefix "$BASEDIR/coin"

If LP setup fails

The LP solver has a number of dependencies which might not be installed on your system. If for some reason the LP setup step fails, we'd appreciate if you attempt to troubleshoot it yourself. Check the contents of the setup script in the lp directory to see what it does, try to run the various steps manually, have a look at the errors generated, and consult the Osi documentation.

If after troubleshooting you can get the LP package to work, do let us know of your problem and its solution so that we can improve these instructions. If you still cannot get it to work, we may be able to provide some help, but note that the LP solver is an external package not developed by us.