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). |
---|