alpar@9: The program module in this subdirectory is a crude implementation of
alpar@9: CPLEX-like interface to GLPK API. It consists of two files: cplex.c and
alpar@9: cplex.h.
alpar@9: 
alpar@9: NOTE that this module is NOT a clean room implementation of the CPLEX
alpar@9: callable library. It only implements a CPLEX-like interface to the GLPK
alpar@9: API routines, and its main purpose is to provide possibility to build
alpar@9: and run applications which normally use the CPLEX callable library.
alpar@9: 
alpar@9: This module approximately corresponds to CPLEX 9.0.
alpar@9: 
alpar@9: Currently this module can be used as a linear programming solver for
alpar@9: Concorde, the state-of-the-art computer code for solving the symmetric
alpar@9: traveling salesman problem (TSP) developed by David Applegate, Robert
alpar@9: Bixby, Vasek Chvatal, and William Cook. For details about Concorde see
alpar@9: its web page at http://www.tsp.gatech.edu/concorde.html.
alpar@9: 
alpar@9: To build Concorde along with GLPK you need to do the following:
alpar@9: 
alpar@9: 1. Configure, build, and install GLPK.
alpar@9: 
alpar@9: 2. Download the Concorde tarball co031219.tgz (version Dec 19, 2003),
alpar@9:    unpack and unarchive it.
alpar@9: 
alpar@9: 3. Copy files cplex.h and cplex.c to subdirectory concorde/LP/.
alpar@9: 
alpar@9: 4. Create file named lpglpk.c in subdirectory concorde/LP/. This file
alpar@9:    must contain the following two lines:
alpar@9: 
alpar@9:       #include "cplex.c"
alpar@9:       #include "lpcplex8.c"
alpar@9: 
alpar@9: 5. Configure Concorde in usual way (./configure) and then build it with
alpar@9:    the following command:
alpar@9: 
alpar@9:       make CPPFLAGS=-I. LPSOLVER_INTERFACE=lpglpk.c LPSOLVER_LIB=-lglpk
alpar@9: 
alpar@9:    The Concorde executable can be found in subdirectory concorde/TSP/.
alpar@9: 
alpar@9: Please note that currently this GLPK interface module does not support
alpar@9: some important features (namely, CPXgetijdiv, CPXmdleave, CPXpivotin,
alpar@9: CPXpivotout, and CPXstrongbranch), so large (more than 1000 nodes) TSP
alpar@9: instances cannot be solved in a reasonable time, and some instances may
alpar@9: cause abnormal termination of Concorde (if CPXgetijdiv is called).