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