© J.C. Baltzer AG, Science Publishers
A simulated annealing code for
general integer linear programs
★
David Abramson
a
and Marcus Randall
b
a
School of Computer Science and Software Engineering,
Department of Digital Systems, Monash University,
Clayton, VIC 3168, Australia
E-mail: davida@dgs.monash.edu.au
b
School of Environmental and Applied Science, Griffith University,
QLD 4217, Australia
E-mail: m.randall@eas.gu.edu.au
This paper explores the use of simulated annealing (SA) for solving arbitrary com-
binatorial optimisation problems. It reviews an existing code called GPSIMAN for solving
0–1 problems, and evaluates it against a commercial branch-and-bound code, OSL. The
problems tested include travelling salesman, graph colouring, bin packing, quadratic assign-
ment and generalised assignment. The paper then describes a technique for representing
these problems using arbitrary integer variables, and shows how a general simulated anneal-
ing algorithm can also be applied. This new code, INTSA, outperforms GPSIMAN and
OSL on almost all of the problems tested.
Keywords: simulated annealing, combinatorial optimisation, integer linear programming
AMS subject classification: 90C05, 90C10, 90C27
1. Introduction
For many years, the holy grail of operations research has been an efficient integer
solver which can be applied to a wide range of problems with little modification. In
this model, a user specifies a problem using some mathematical notation which is
processed directly by the solver. One of the most general specification techniques
uses a linear cost function and constraints, together with variables which are restricted
to the values 0 and 1. There are a number of algorithms which attempt to find solutions
for these 0–1 problems; however, their performance is highly variable.
★
The authors would like to acknowledge the assistance of Mohan Krishnamoorthy in this work. Marcus
Randall is funded by a Griffith University Post Graduate Scholarship. The project is funded by the
Australian Research Council.
Annals of Operations Research 86(1999)3–21 3