Chapter 5. Language Overview

5.1 Structure of the MPL Model File
5.2 Basic Input Elements

The MPL modeling language offers a natural algebraic notation that enables the model developer to formulate complex optimization models in a concise, easy-to-read manner. Among modeling languages, MPL is unrivaled in its expressive power, readability, and user-friendliness. The MPL modeling language was designed to be very easy to use with a clear syntax making the process of formulating models in MPL efficient and productive. MPL is a flexible language and can be used to formulate models in many different areas of optimization ranging from production planning, scheduling, finance, and distribution, to full-scale supply-chain optimization.

MPL is a very robust and stable software whose core modules have been through extensive use and testing over more than a decade. This assures that the MPL software is both reliable and dependable and can be used in mission-critical projects. Some of the more notable features of the MPL language include:

Sparse Index and Data Handling

One of the most important features of any modeling language is how it handles large amounts of data. What makes MPL so powerful is its ability to effectively handle very large sparse index and data sets. In addition, MPL has extensive flexibility when working with subsets of indexes, functions of indexes, and compound or multi-dimensional index sets. This allows the model formulator, for example, to index only over products that are made by each machine in a specific plant instead of having to go through all the products for all the machines and all the plants, which would be considerable slower.

Scalability and Speed

MPL can easily handle very large matrices with millions of variables and constraints. This is especially important when dealing with large supply-chain optimization models over multiple time periods that can grow very quickly. MPL has its own memory manager that can dynamically store models of any size, giving it a full scalability. The only limitation the model developer faces is how much memory is available on his or her machine. Typically, MPL uses only a few megabytes of memory per 10,000 variables, which puts a minimal additional burden on the machine capacity needed to generate and solve the model.

The matrix generation in MPL is extremely fast and efficient which is important since it contributes to the overall time needed to obtain the solution of the model. Maximal has over the years invested significant R&D efforts on continuing to improve the speed of the matrix generation. As a result, MPL can now run models with millions of variables and generate a matrix for them in less than one minute. This is very important, because if the model generation takes too long it can seriously add to the time needed to reach the solution even if the fastest optimization solvers are used. MPL provides the fastest and most scalable model generation capabilities available in a modeling system on the market today.

The MPL modeling language was developed with one key goal in mind; the input must resemble the notation people use to write their problem formulations on paper as closely as possible. In order to achieve that goal, advanced compiler and language parsing techniques normally reserved for writing high-level computer languages were used. The resulting language includes many features that can be of great assistance when formulating optimization models.

The MPL modeling language was developed with one key goal in mind; the input must resemble the notation people use to write their problem formulations on paper as closely as possible. In order to achieve that goal, advanced compiler and language parsing techniques normally reserved for writing high-level computer languages were used. The resulting language includes many features that can be of great assistance when formulating optimization models

The input to MPL is a file that contains the model formulation. This file is a standard ASCII text file and can be created using the built-in model editor in MPL. Any text editor capable of working with text files can also be used.


Back To Top | Maximal Home Page | Table of Contents | Previous Page | Next Page