next up previous contents index
Next: Installation Up: Introduction Previous: Preface to Release 2.0

Preface to Release 1.2

ABACUS is a software system for the implementation of linear-programming based branch-and-bound \ algorithms, i.e., branch-and-cut algorithms, branch-and-price algorithms, and their combination. It applies the concepts of object oriented programming (programming language C++). An implementation of a problem specific algorithm is obtained by deriving some classes from abstract base classes of ABACUS in order to embed problem specific functions.

While the Chapters 1 to 4 of this manual are a user's guide describing the installation, design, and application of ABACUS the last chapter contains the reference manual. Chapter gif explains how ABACUS is installed on your computer system and what hardware and software environment is required. In order to simplify the user understanding ABACUS\ I describe in Chapter gif the design of the software framework. While I recommend to study in any case the basic concepts outlined in Section gif before beginning with the implementation of an application, it should be sufficient to return to Section gif only for rather advanced usage. Also Chapter gif is split into two sections. The first one, Section gif, explains the first steps that have to be performed to implement an application. This section should be studied together with the example included in the ABACUS distribution. The second one, Chapter gif, shows how default strategies of ABACUS can be modified and outlines some additional features of the system. The reference manual of Chapter gif is complemented by the index that simplifies finding a certain class or one of its members.

This manual is both available in Postscript and HTML format. The HTML form turns out to be quite useful for finding members of the reference manual.

This user's guide is not intended to teach the concepts of linear-programming based branch-and-bound , but I assume that the reader of this manual and the user of ABACUS is familiar with these algorithms. For an introduction to branch-and-cut I refer to [JRT95], for an introduction to branch-and-price\ algorithms I recommend to [BJN tex2html_wrap_inline19435 97]. Both approaches are described in [Thi95].

Moreover, I also assume that the user of ABACUS is familiar with the concepts of object oriented programming. For the reader who is unexperienced in object oriented programming I refer to [KM90] for a good brief introduction and to [Boo94] for a detailed description. There are many books about the programming language C++. The classical introduction is [Str93]. Very useful reference manuals are [ES92] and the current working paper of the C++ standardization committee [ASC95].

ABACUS originates from the dissertation of its author [Thi95] and has since then been tested, slightly modified and improved. Here, I would like to thank all initial testers, in particular Thomas Christof, Meinrad Funke, and François Margot for their bug reports and helpful comments. I am very grateful to Joachim Kupke for carefully proofreading an earlier version. I also want to thank Denis Naddef, LMC-IMAG, Grenoble, France, for his hospitality while writing the major part of this manual.

Despite these successful tests I consider ABACUS still as an experimental system. Therefore, feedback of the users is appreciated. Some parts of the user's guide were adapted from [Thi95], while the reference manual has been compiled for the first time. Therefore, I also encourage the reader to send me error reports and improvement suggestions for the user's guide and the reference manual.

I am aware that neither the software nor its documentation is perfect, but I think it is time to dare a first public release.

Grenoble, August 1996 Stefan Thienel


next up previous contents index
Next: Installation Up: Introduction Previous: Preface to Release 2.0

Stefan Thienel
Fri Sep 19 11:32:54 MET DST 1997