Introduction



Why you need Mosel

`Mosel' is not an acronym. It is pronounced like the German river, mo-zul. It is an advanced modeling and solving language and environment, where optimization problems can be specified and solved with the utmost precision and clarity.

Here are some of the features of Mosel

The modeling component of Mosel provides you with an easy to use yet powerful language for describing your problem. It enables you to gather the problem data from text files and a range of popular spreadsheets and databases, and gives you access to a variety of solvers, which can find optimal or near-optimal solutions to your model.

What you need to know before using Mosel

Before using Mosel you should be comfortable with the use of symbols such as x or y to represent unknown quantities, and the use of this sort of variable in simple linear equations and inequalities, for example:

x+y Maths/leq.png 6

Experience of a basic course in Mathematical or Linear Programming is worthwhile, but is not essential. Similarly some familiarity with the use of computers would be helpful.

For all but the simplest models you should also be familiar with the idea of summing over a range of variables. For example, if producej is used to represent the number of cars produced on production line j then the total number of cars produced on all N production lines can be written as:

N
Maths/sum.png
j=1
producej

This says `sum the output from each production line producej over all production lines j from j=1 to j=N'.

If our target is to produce at least 1000 cars in total then we would write the inequality:

N
Maths/sum.png
j=1
producej Maths/geq.png 1000

We often also use a set notation for the sums. Assuming that LINES is the set of production lines {1,..,N}, we may write equivalently:

Maths/sum.png
j Maths/insm.png LINES
producej Maths/geq.png 1000

This may be read `sum the output from each production line producej over all production lines j in the set LINES'.

Other common mathematical symbols that are used in the text are Maths/IIN.png (the set of non-negative integer numbers {0,1,2,...}), Maths/intersec.png and Maths/union.png (intersection and union of sets), Maths/and.png and Maths/or.png (logical `and' and `or'), the all-quantifier Maths/forall.png (read `for all'), and Maths/exists.png (read `exists').

Mosel closely mimics the mathematical notation an analyst uses to describe a problem. So provided you are happy using the above mathematical notation the step to using a modeling language will be straightforward.

Symbols and conventions

We have used the following conventions within this guide:

The structure of this guide

This user guide is structured into these main parts

This user guide is deliberately informal and is not complete. It must be read in conjunction with the Mosel reference manual, where features are described precisely and completely.



If you have any comments or suggestions about these pages, please send mail to docs@dashoptimization.com.