The Mathematical Programming System (MPS) file is a relic of the IBM MPS/360 system of the 1960s, which is an extension of the SHARE format which preceded it.
The SHARE format for linear programming (LP) problems assigned a 6 character name to each row and column and was limited to 12 characters of BCD data for each data element. The MPS format extended the row/column names to 8 characters (because 8 characters made up a double word on the 360 architecture) but otherwise was little different. They were both also column-oriented – that is the non-zero coefficients were grouped together in the matrix by column rather than by row. This was a consequence of the origin of commercial mathematical programming systems; heavily influenced by the formulation practices of the petrochemical industry, whose practitioners thought of LP columns as “activities” with coefficients representing inputs and outputs. We are obviously talking about ancient history here.
So, why is the MPS file even of interest now, never mind in wide-spread use? Several reasons:
- The format has been generalized by many software vendors. The coefficient formats, in particular, are now free format, rather than confined to particular field lengths.
- The MPS file, generalized or not, is a valuable medium of exchange, which almost every MP user, whether academic or industrial, can read and understand.
- The major repositories of LP test problems (e.g. Netlib and Mittleman) have many, many test problems in MPS format, and are likely to continue to do so.
This is not to say that more modern formats are excluded. For example, the GAMS library of examples includes a host of models written in more modern, equation-oriented model generation format, as does our own example set in FICO Xpress download package.
It is difficult to see this situation changing. There are many model generation systems, each wedded to its own modeling language and data structures, but the standard test problems seem to go on forever and they are all in MPS format.