Initializing help system before first use

Xpress Kalis

Xpress Kalis, or Kalis for Mosel, provides access to the Artelys Kalis© Constraint Programming solver from a Mosel module, kalis. Through Xpress Kalis, the Constraint Programming functionality of Kalis becomes available in the Mosel environment, allowing the user to formulate and solve CP models in the Mosel language. Xpress Kalis combines a finite domain solver and a solver over continuous (floating point) variables. To aid the formulation of scheduling problems, the software defines specific aggregate modeling objects representing tasks and resources that will automatically setup certain (implicit) constraint relations and trigger the use of built-in search strategies specialized for this type of problem. Standard scheduling problems may thus be defined and solved simply by setting up the corresponding task and resource objects. Additionally, Xpress Kalis provides automatic linear relaxations of its constraints to ease the formulation and solving of a wide range of optimization problems.

All data handling facilities of the Mosel environment, including data transfer in memory (using the Mosel IO drivers) and ODBC access to databases (through the module mmodbc) can be used with kalis without any extra effort.

The Mosel language supports typical programming constructs, such as loops, subroutines, etc., that may be required to implement more complicated algorithms. Mosel can also be used as a platform for combining different solvers, in particular Xpress Kalis with Xpress Optimizer for joint CP – LP/MIP problem solving (See the Xpress Whitepaper Multiple models and parallel solving with Mosel). This manual explains the basics on modeling and programming with Mosel and, where necessary, also some more advanced features. For a complete documentation and a more thorough introduction to its use the reader is referred to the Mosel language reference manual and the Mosel user guide.

Beyond the functionality readily available from Xpress Kalis the software also provides a unique extension mechanism that opens it up to various kinds of additions of new functionality on the library level that become available within the Mosel language through the Mosel Native Interface (see the Mosel NI reference manual and the Mosel NI user guide). Such user-defined extensions principally relate to the definition of new constraints and branching schemes.

Note on product versions

Most examples in this manual have been developed using the release 2007.1.0 of Xpress Kalis with the Xpress Release 2007A beta version of Mosel (1.7.9). If they are run with other product versions the output obtained may look different. In particular, improvements to the algorithms in the CP solver or modifications to the default settings in Xpress Kalis may influence the behavior of the constraints or the search.