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