MPL Modeling System


Introducing MPL for Windows 5.0

MPL (Mathematical Programming Language) is an advanced modeling system that allows the model developer to formulate complicated optimization models in a clear, concise, and efficient way. Models developed in MPL can then be solved with any of the multiple commercial optimizers available on the market today.


MPL includes an algebraic modeling language that allows the model developer to create optimization models using algebraic equations. The model is used as a basis to generate a mathematical matrix that can be relayed directly into the optimization solver. This is all done in the background so that the model developer only needs to focus on formulating the model. Algebraic modeling languages, such as MPL, have proven themselves over the years to be the most efficient method of developing and maintaining optimization models because they are easier to learn, quicker to formulate and require less programming.

MPL for Windows Screenshot

MPL offers a feature-rich model development environment that takes full advantage of the graphical user interface in Microsoft Windows, making MPL a valuable tool for developing optimization models. MPL can import data directly from databases or spreadsheets. Once the model has been solved, MPL also has the ability to export the solution back into the database. MPL models can be embedded into other Windows applications, such as databases or spreadsheets, which makes MPL ideal for creating end-user applications.

MPL Integrated Model Development Environment


The MPL Modeling System is a state-of-the-art optimization modeling software. MPL, through the use of advanced graphical user interface features, creates a flexible working environment that enables the model developer to be more efficient and productive. MPL provides in a single system all the essential components needed to formulate the model, gather and maintain the data, optimize the model, and then analyze the results.

The model developer uses the built-in model editor to formulate the MPL model statements and then selects the optimizer directly from the menus to solve the model. The solution results are automatically retrieved from the solver and displayed, providing the user with instant feedback. Each item defined in the model is also displayed in a tree window allowing the model developer to browse through them easily.

When using MPL to work on multiple models, the user can manage them effectively by utilizing project files. Project files store information about items such as, open model files and windows, the default working directory, and current option settings for both the modeling system and the solver.

The MPL Modeling System links to solvers dynamically through memory at run-time. This gives MPL the capability to integrate the solver completely into the modeling environment, resulting in the matrix being transferred between the modeling system and the solver directly through memory. As no files are involved, this seamless connection is both considerably faster and more robust than the traditional use of files in other modeling systems. In the event it is necessary to change any algorithmic options, MPL provides easy-to-use option dialog boxes for each solver. MPL fully supports context-sensitive help for option dialog boxes. A complete, printable on-line version of the manual, covering both the modeling environment and the language, is also available in the on-line help system for easy access.

MPL was designed to be portable and to be run on multiple platforms. MPL for Windows is the most popular platform but an OSF Motif version is also available for various UNIX flavors including: HP 9000, IBM RS-6000, Sun SPARC, and Silicon Graphics. MPL models are portable so a model created for one platform can always be read on any other supported platform.

MPL Modeling Language

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 very 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:

- Separation of the data from the model formulation
- Import data from different data sources
- Independence from specific solvers
- Use of macros for repetitive parts of the model
- Exclusion of parts of the model using conditional directives
- Special Ordered Sets and Semi-continuous variables
- WHERE/IF conditions to handle special cases
- Readable and helpful error messages


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 1-2MB of memory per 10,000 variables, which puts a minimal additional burden on the machine capacity needed to generate and solve the matrix.

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, we 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 matrix 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 matrix generation capabilities available in a modeling system on the market today.

Database Connection

Importing data from a variety of corporate database systems into optimization models is frequently an essential requirement for optimization projects. One of the advanced features of MPL is the database connection option that directly links MPL with relational databases and other data sources. This option enables the model developer to gather both indexes and data values from various data sources and import them directly into the model. After the model has been optimized, the solution output can be exported back into the database. This, along with the run-time features of MPL, allows the model developer to easily create customized end-user applications for optimization using the built-in data entry and reporting capabilities of the database.

The database connection in MPL has the ability to access data from many different sources, such as databases, Excel spreadsheets, external data files, and the Internet. This gives the model developer the flexibility to choose the most efficient and convenient way to incorporate the data into the model. Among the data formats that are supported by MPL are: Microsoft Access and Excel, ODBC, Paradox, FoxPro, Dbase, SQL Server, and Oracle.

This new version of MPL provides, in a single system, all the essential components needed to formulate the model, gather and maintain the data, optimize the model, and then analyze the results. With MPL, you can now achieve a quantum leap in your productivity as a model developer.