Modeling and Optimization Systems

MPL Extended Name Mathematical Programming Language
Authors Maximal Software, Inc.
2111 Wilson Boulevard
Suite 700
Arlington, VA 22201
Tel: (703) 522-7900 Fax: (703) 525-7902
Maximal Software, Ltd.
Klapparas 11
IS-110 Reykjavik
Tel: (+354) 587 7700 Fax: (+354) 588 9728

MPL (Mathematical Programming Language) is an advanced modeling system that allows you to set up complicated models, involving thousands of constraints, in a clear, concise, and efficient way and is extremely user-friendly and powerful.

MPL offers a feature rich model development environment that takes full advantage of the graphical user interface in MS Windows, making MPL a valuable tool for developing LP models. MPL has features that allow you import data directly from a database and then after solving the problem export the solution back into the database. This along with the ability to be called directly from other Windows applications, such as databases and spreadsheets, make MPL ideal for creating end-user applications.

Models developed in MPL can be used with nearly all LP-solvers on the market today as MPL supports a number of industrial strength solvers that have recently been ported to Windows as DLL libraries as well as traditional DOS/386 solvers.


MPL is supported on several different platforms:

  • MS Windows: Windows 3.1, Windows 95 and Windows NT
  • Macintosh: PowerMac and standard Macintosh
  • OSF Motif: HP 9000, IBM RS-6000, Sun Sparc, and Silicon Graphics
    With the new releases of Windows 95 and Windows NT, software for Windows can now take full advantage of the 32-bit architecture of 486 and Pentium machines. MPL is therefore being offered in two different releases:
  • Release 4.0 which is the new 32-bit version of MPL. This release, which offers the highest performance, can only be run on Windows 95 or Windows NT release 3.51 or later.
  • Release 3.1 which contains the 16-bit version of MPL. This release, which can be run under all versions of Windows after 3.1, is not as fast as the 32-bit version, but offers greater compatibility regarding solvers and databases to the previous release 3.0 of MPL.
  • The Key Features of MPL

    Graphical User Interface. MPL is an integrated model development system that offers full support for all standard Windows features, including dialog boxes, mouse support, pull-down menus, graphics, toolbar, and on-line help. Furthermore, the new 32-bit version of MPL, supports advanced Windows 95 features such as tree windows, long filenames for models, illustrative icons for each type of window, and context sensitive help.

    Direct link to Windows DLL solvers. MPL can set up the matrix and then send it to the solver directly through memory. Solvers that are supported in MPL as Windows DLL include, CPLEX, XA, and FrontLine. MPL can also handle DOS/386 solvers through a DOS window.

    Database Connection. MPL can import both indexes and data directly from a database. After the model has been solved MPL can also export the solution back to the database. Furthermore, MPL can easily be called directly from other Windows applications, including databases. Supported databases include Access, ODBC, Paradox, FoxPro, and Dbase for the Windows version and Oracle for the Motif version.

    Manage models through projects. If you are using MPL to work on multiple models, that use different files and option settings, you can use projects to manage the models. Projects are used to store information about items such as, open model files and windows, the default working directory, and current option settings.

    Model Definitions window. MPL allows you to view defined items from the model formulation in an easy to browse tree window. You can expand and collapse each branch to show only the elements you are interested in. You can display the contents for each item, such as elements for an index or solution values for a variable, simply by selecting it in the tree.

    Message window. While MPL is running it can send various progress information to a message window. What is displayed is selected by the user and can include status window messages, MPL input lines, performance statistics, warning messages, SQL statements, and iteration log information from the solver.

    Context sensitive help. The 32-bit version of MPL offers the new Windows 95 context sensitive help for dialog boxes. To display the help, simply select the question mark button in the upper right corner of the dialog box and then click on the item you want help for. A small window will popup with a short explanation of the item you selected.

    Multiple input formats. MPL, in addition to the modeling language, supports multiple input formats, including MPS, CPLEX, and Turbo-Simplex. MPL will auto-matically detect the format, when reading the input, and switch to the correct parser.

    Generate input files. MPL can be used to generate up to six different input formats. This ensures that models created in MPL can be solved with nearly all industrial strength LP packages available on the market today.

    Helpful error messages. MPL makes it easy to correct mistakes in your formula-tion. An error window pops up containing the erroneous line in the model file with the error is described in plain English. After you have read the message, the program automatically locates the line in the model file and moves the cursor to it.

    Meaningful names. You can use meaningful names of any length for variables and constraints, so the formulation is easy to read and understand. You can also, for additional clarity, use explanations and general comments throughout the model file.

    Free format constraints. With MPL you can write variables and constants on both sides of the equation constraint. This means that you do not have to convert the constraints to a standard format before entering them.

    Arithmetic in the input. You can use fractions, products, percentages, and mathematical functions in the model file. This flexibility not only allows clearer formulation, but also automatically results in the highest possible accuracy. Full use of parentheses is also allowed.

    Separation of data from the model. With MPL you do not have to store the data coefficients inside the model. Both sparse and dense data can be read in from external data files. The data files can be created either using the text editor in MPL or be exported from other programs such as spreadsheets and databases. For example, to read in a price list generated in Lotus 1-2-3 you would simply enter:

    price[product] := datafile(price.prn);

    Data entered at run-time. Named data constants can be given a value interactively at run-time. You are prompted for the value when the model file is read. This feature can be very useful when you want to run the same model several times with different data values.

    References MPL On-Line Tutorial
    MPL for Windows Manual
    MPL Quick-Guide
    MPL Product Brochure (multiple screenshots)