MPL for Windows Manual
MPL works with the world's fastest and most advanced solver optimization engines, such as CPLEX and XPRESS and many other industrial strength solvers. MPL is designed to have an open architecture and is not restricted to only one solver. This enables the model developer to choose the solver that best suits his specific project needs.
A unique feature of MPL is that it links to solvers directly through memory. As no files are involved, this seamless connection is considerably faster and more robust than the traditional use of files in other modeling systems. In the event it is necessary to change any of the algorithmic options for the solver, MPL provides easy-to-use option dialog boxes.
MPL has extensive solver support and offer advanced features such as:
MPL can work with most commercial solvers currently available on the market
today, including the following:
Solver
Supported Algorithms
CPLEX
LP, MIP, BAR
XPRESS
LP, MIP, BAR
OSL
LP, MIP, BAR
FortMP
LP, MIP, BAR, QMIP
XA
LP, MIP
OML
LP, MIP
Lindo
LP, MIP
FrontLine
LP, MIP
LPSolve
LP, MIP
PCx
BAR
CONOPT
LP, NLP
LSGRG2
LP, NLP
There are numerous other solvers on the market today that offer different features that are sometimes not supported by the market leaders; FortMP for example from OptiRisk Systems offers quadratic MIP and stochastic programming. Sunset Software Technologies offers a reasonably priced, relatively fast solver, XA. Another middle-range solver is OML from Ketron Management.
Lindo Systems product, Lindo, is popular with academic users. FrontLine is from FrontLine Systems, the same company that provides solvers for Microsoft Excel. LPSolve is a free solver with support for mixed integer programming that is downloadable from the web. Argonne National Laboratories' solver PCx is also downloadable from the web and has a very good implementation of Newton Barrier.
MPL currently supports two nonlinear solvers: CONOPT, a large-scale solver from ARKI Consulting in Denmark that is highly specialized in solving difficult nonlinear models; and the LSGRG2 solver made by Leon Lasdon at Optimal Methods that is used, for example, by Excel.
After you have edited your model in the model editor, choose Solve <solvername> from the Run menu to let MPL start optimizing. The Status Window appears, and MPL starts reading the model file.
The status window describes what the program is doing (reading, solving, writing), and provides statistics on the problem. While MPL reads the model file, the status window displays the number of lines read, the number of variables and constraints encountered, and how much memory has been used. While solving, this window shows you the number of iterations, and the value of the objective function. Figure 3.4 shows an example of a status window:
Figure 3.4: The Status Window
The top section in the status window is the message line. It tells you what MPL is doing at that moment, for example reading the model formulation, solving the model, and writing the solution file. The next section contains the name of the main model file, number of lines read so far, and how much memory has been used by MPL, and time elapsed since the start of the run.
The next section gives you various statistics of the problem, the number of variables and constraints in the model, number of nonzeros, and the number of integer variables.
The last section tells you what the status of the solver is while optimizing the model. It gives you the total number of iterations the solver has done so far. To the right it shows the current value of the objective function and while in Phase 1 the amount of infeasibilities that are left.
For integer problems the last section also reports the number of nodes in the branch and bound tree visited so far, how many improving integer solution have been found, and the best possible integer solution.
If MPL finds a mistake or an error in the formulation while reading, an error window appears. It contains the erroneous line in the model file. Following that line comes a message with a short explanation. Appendix B: Error Messages contains a list of all the error messages in MPL. Here is an example of a typical error message:
Figure 3.5: The MPL Error Message Window
The above message tells you that the index month in the variable vector Inventory, was not defined in the underlying constraint InvtBal. The mistake was located in line 44 of the model file.
Pressing the OK button or the Return key returns you to the model editor. The cursor is automatically positioned at the location of the error in the model file, with the offending word or character highlighted.
If you need more help on the error message, press the Help button. This will give you further explanation of the error, including examples.