|
Mosel language
The Mosel language is easy to learn
and use, reducing the cost of developing optimization models
from scratch, understanding and auditing models that other
people have written, and modifying and maintaining models
over time. The visual development environment IVE
makes the process even easier.
Full support for arbitrary
ranges, index sets, and sparse objects means even the largest
and most sophisticated problem can be expressed clearly and
concisely, and completely independently of a particular data
instance.
Model development in the Mosel language is aided by the Mosel debugger that supports all typical debug functionality for tracing and analyzing the execution of a model.
Solver modules and data handling
Mosel is completely open and user extensible. The Mosel distribution includes
extension libraries (so-called modules), one of which provides direct control
of the Xpress-Optimizer, through optimization statements in
the Mosel program. Other solver modules give access to
Xpress-SLP for formulating and solving non-linear problems, and the Constraint
Programming software Xpress-Kalis.
Mosel has database ( ODBC, Excel, Oracle ) connectivity, text file I/O and in-memory data exchange abilities. Furthemore, Mosel is extensible. There are several third party modules available which extend the language and a published interface for creating your own. Consultants will find the ability to create plugin modules to interface to legacy systems or exotic data formats particularily appealing.
Click here to download the paper Generalized file handling
Libraries for embedding
For its deployment a model usually needs to be embedded into the company information system. A model developed using the Mosel language may be executed and accessed from a programming language environment (e.g. C, Java, or C#) through the Mosel libraries. This flexible interface provides means, for instance, to exchange data and solution values between
a model and a larger application.
In addition to Mosel's own functionality, certain modules also provide direct access to their functions from a programming language environment.
Click here to download the paper Embedding optimization algorithms
User-written libraries for Mosel
By implementing their own libraries for Mosel users can add new functionality to the Mosel language and make it evolve according to their needs.
User-written libraries may take the form of packages or modules.
Packages are libraries written directly in the Mosel language with a similar structure as Mosel models. They are ideally suited to give access to model parts (e.g., reformulations) or algorithms written in Mosel
that you wish to distribute without disclosing their contents, for the development of your personal Mosel 'tool box', or even to implement add-ons to Mosel modules.
Via Mosel's Native Interface users may define their own modules that are
treated just like the software components of the Mosel
distribution. Typical uses for modules include the implementation of problem-specific data handling, or connections to external solvers or solution algorithms.
|