| Introductory/Overview papers |
 |
Modeling
with Xpress-MP
[pdf][217k] |
Presents
and discusses the various options open to the application
developer for building and solving models using the Xpress-MP
tools. It allows you to compare the features and relative
merits of the three Xpress-MP libraries that can be used as
modeling interfaces: Xpress-Mosel, Xpress-BCL and the Xpress-Optimizer. |
 |
Mosel:
An Overview
[pdf][167k]
Examples (Win)
Examples (Unix) |
An extended introduction to Xpress-Mosel presented with
the aid of examples. Language aspects covered include types,
data structures, file I/O, statements, built in functions,
and modules. Embedding a Mosel model in another application
using the Mosel callable libraries is also covered. Further
examples show how Mosel interacts with the Optimizer to
implement solution methods, including a binary fixing heuristic
and a quadratic programming (QP) example.
This new version includes a section on writing modules.
|
 |
Overview
of Stochastic Programming Applications
[pdf][199k]
|
This white paper
provides an overview of stochastic programming applications.
We start with a simple capacity-expansion planning model that
illustrates some of the key ideas of a two-stage stochastic
program with recourse and the type of analyses one can perform,
including risk-cost trade-offs. Next, we consider a small
multi-stage financial planning model and associated analyses.
These two models give a frame of reference for then discussing
a variety of applications.
|
 |
| Advanced Mosel topics |
 |
Using ODBC with Mosel
[pdf][151k]
Examples (Win)
Examples (Unix) |
ODBC is a protocol for working with databases as external data source. It can also be used
to access data in spreadsheets such as MS Excel.
The Mosel module mmodbc provides access to ODBC functionality from within Mosel models and
allows Mosel to read and write both sparse and dense data formats to/from any ODBC compatible soource.
The aim of this document is to explain the different features of the mmdocb module by means of a collection of examples.
|
 |
Embedding
optimization algorithms
[pdf][147k]
Examples (Win)
Examples (Unix) |
Three Mosel examples showing how optimization algorithms
can be implemented using a combination of the Mosel language
and the Mosel callable libraries.
The first example shows how one model can be solved with
five different data scenarios controlled from a host application
written in C. The second example implements a branch and
cut method, in which the cuts are generated in a callback
function defined in the Mosel language, with reference to
the algebraic objects defined in the model.The final example
implements a column generation algorithm to solve a cutting
stock problem. The model and method are implemented in the
Model language, but call functions defined in C and made
accessible to the Mosel model by means of a user defined
module. The whole application is controlled from a host
C application.
|
 |
Generalized file handling in Mosel
[pdf][105k]
Examples (Win)
Examples (Unix) |
This paper describes the I/O drivers of the Mosel distribution with examples of their use. With only minimal changes to his models the user may switch between data sources of different formats. The interaction and
exchange of data between a model and the application executing it can be made more immediate and as a consequence, more efficient. It is also
possible to avoid the creation of physical intermediate files by performing all operations in memory. The latter may be useful, for instance, in distributed applications.
With the help of the Mosel Native Interface (NI) the user may also implement his own drivers. We introduce some applications of this
feature: a driver for working with compressed files and an example
generating C code with a Mosel model.
|
 |
Multiple models and parallel solving with Mosel
[pdf][170k]
Examples (Win)
Examples (Unix) |
This paper describes several examples of sequential and parallel solving of multiple models with Mosel.
Without being able to give an exhaustive list of possible configurations, the examples showcase different
uses of the Mosel module mmjobs, such as concurrent execution of several instances of a model, the (sequential)
embedding of a submodel into a master, and the implementation of a decomposition algorithm.
From a more technical point of view, topics discussed in this paper include model management, synchronization
of concurrent models, and the use of the shared memory IO driver. |
 |
Hybrid MIP/CP solving
[pdf][200k]
Examples (Win)
Examples (Unix) |
Implementing solution algorithms that combine Constraint Programming (CP) with Linear or Mixed Integer
Programming using Xpress-Kalis and Xpress-Optimizer in the Xpress-Mosel environment. This paper discusses two schemes of combining CP with LP/MIP for problem solving. |
 |
| Specific modeling issues |
 |
Special
Ordered Sets
[pdf][70k] |
Special Ordered
Sets are a feature available in MIP optimization to help model
certain situations in a way that can be solved efficiently
by the MIP optimizer. They can help you model mutually exclusive
decisions and non-linear functions. This note explains what
they are, what you can use them for, and how you can specify
them in Xpress-Mosel and Xpress-BCL. |
 |
Aggregate
Production Planning Modeling
[pdf][74k] |
Introduces a mathematical
programming framework for modeling capacitated systems that
accurately captures the non-linear relationship between workload
and lead times. A simplified version of the formulation that
only handles single product systems is presented here, and
a Mosel model is given to illustrate the ideas. |
| |