examples/cplex/README
changeset 1 c445c931472f
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/examples/cplex/README	Mon Dec 06 13:09:21 2010 +0100
     1.3 @@ -0,0 +1,44 @@
     1.4 +The program module in this subdirectory is a crude implementation of
     1.5 +CPLEX-like interface to GLPK API. It consists of two files: cplex.c and
     1.6 +cplex.h.
     1.7 +
     1.8 +NOTE that this module is NOT a clean room implementation of the CPLEX
     1.9 +callable library. It only implements a CPLEX-like interface to the GLPK
    1.10 +API routines, and its main purpose is to provide possibility to build
    1.11 +and run applications which normally use the CPLEX callable library.
    1.12 +
    1.13 +This module approximately corresponds to CPLEX 9.0.
    1.14 +
    1.15 +Currently this module can be used as a linear programming solver for
    1.16 +Concorde, the state-of-the-art computer code for solving the symmetric
    1.17 +traveling salesman problem (TSP) developed by David Applegate, Robert
    1.18 +Bixby, Vasek Chvatal, and William Cook. For details about Concorde see
    1.19 +its web page at http://www.tsp.gatech.edu/concorde.html.
    1.20 +
    1.21 +To build Concorde along with GLPK you need to do the following:
    1.22 +
    1.23 +1. Configure, build, and install GLPK.
    1.24 +
    1.25 +2. Download the Concorde tarball co031219.tgz (version Dec 19, 2003),
    1.26 +   unpack and unarchive it.
    1.27 +
    1.28 +3. Copy files cplex.h and cplex.c to subdirectory concorde/LP/.
    1.29 +
    1.30 +4. Create file named lpglpk.c in subdirectory concorde/LP/. This file
    1.31 +   must contain the following two lines:
    1.32 +
    1.33 +      #include "cplex.c"
    1.34 +      #include "lpcplex8.c"
    1.35 +
    1.36 +5. Configure Concorde in usual way (./configure) and then build it with
    1.37 +   the following command:
    1.38 +
    1.39 +      make CPPFLAGS=-I. LPSOLVER_INTERFACE=lpglpk.c LPSOLVER_LIB=-lglpk
    1.40 +
    1.41 +   The Concorde executable can be found in subdirectory concorde/TSP/.
    1.42 +
    1.43 +Please note that currently this GLPK interface module does not support
    1.44 +some important features (namely, CPXgetijdiv, CPXmdleave, CPXpivotin,
    1.45 +CPXpivotout, and CPXstrongbranch), so large (more than 1000 nodes) TSP
    1.46 +instances cannot be solved in a reasonable time, and some instances may
    1.47 +cause abnormal termination of Concorde (if CPXgetijdiv is called).