2.2 Categories of Modelling Software

Matrix generation and report writing software falls into three broad categories:

  • general-purpose software such as spreadsheets and conventional programming languages (e.g. C, Fortran, APL);
  • matrix generator languages (e.g. OMNI);
  • algebraic MP languages (e.g. AMPL, GAMS, MPL, XPRESS Mosel).

Spreadsheet Add-ins

Spreadsheets have become as ubiquitous as PCs. Given the way in which they are used to calculate derived quantities from the values in other cells, it was inevitable that they should be extended so that the values in cells could float so as to enable the value in the target cell to be maximised. In this way the spreadsheet itself has become another format for expressing an MP matrix. Leading spreadsheets such as Excel and Lotus 1-2-3 incorporate optimization add-ins which find the optimum solution to problems, albeit with relatively few decision variables (typically fewer than 100; more with the priced versions of the add-ins).

If one can do MP in a spreadsheet, isn't that the ideal solution? Well, not really. Spreadsheets are notorious for their habit of hiding errors in formulae. As they become larger they become less manageable. For all but the smallest problems, the "total cost of ownership" of tackling an MP problem is reduced by using a special-purpose MP package to extract the data from a spreadsheet, set up the matrix, optimise it and return the results to the spreadsheet for use there. The savings come in more efficient use of the practitioner's time in setting up and maintaining the model. From the user's point of view, he is still just using a spreadsheet and pressing a macro button to find the best solution. In fact, because dedicated MP software is used, the results are usually obtained faster than with the native optimization add-in.

Conventional Programming Languages

Few people now use conventional programming languages to write matrix generator programs. They are less efficient in practitioner's time than using dedicated MP software and so are unattractive during the consultancy and development phase of an MP project. They have the advantages of total flexibility, raw speed and a lack of royalties to be paid. This means that they may be used in some implementations, particularly for the most complex applications and where an application package is being produced which is to be distributed widely. They may also be met in maintenance, where a fine judgement is required as to whether to modify the existing programs or start again using dedicated MP software.

Matrix Generator Languages

Matrix generator languages were developed in the 1960s as an alternative to Fortran for writing matrix generator programs. They are marginally better for this but force the user into thinking of his problem in terms of blocks of columns and their entries in rows. They have become very well established in refinery modelling but are unlikely to appeal to new users when compared with more modern algebraic MP languages. The main packages were OMNI from Haverly Systems and GAMMA from Bonner and Moore.

Algebraic MP Languages

Algebraic MP languages mimic the way in which one naturally writes an MP formulation as algebraic relationships between decision variables. As such they are the tool of the OR practitioner and are ideal during consultancy and prototyping. They differ in the details of their language, their interfaces to data sources and their facilities. Leading packages include AMPL, GAMS, MPL and XPRESS Mosel.

previous contents next