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