An MPS file contains a sequence of sections that define an LP or MIP problem. Some sections are optional and others must appear in each MPS format file. This and the restrictions on the ordering of sections is explained in MPS format sections.

The ROWS, COLUMNS, RHS, and RANGES sections define the objective and constraint expressions, the sense of the constraints, and the right-hand-sides values.

In the optional BOUNDS section, a variable's range may be defined to differ from the default as defined in Default variable bounds .

Variables are declared to be integral as a side effect of some bounds definitions in the BOUNDS section. Alternatively "'MARKER'" lines may be used within the COLUMNS section to declare variables to be integral, see MPS format integer variables.

The QSopt parser assumes by default that a program's goal is to minimize the objective function. This goal may be stated explicitly or overwritten in the OBJSENSE section.

The OBJNAME section picks one of the problem's rows as the objective.

QSopt uses "unnamed" as the problem's default name if no name is chosen in the optional NAME section

Each section starts with the corresponding keyword at the beginning of a line, and, with the exception of the NAME section, the keyword is the only item on the line. Each section must contain at least one data line, again with the exception of the NAME section. The data lines are interpreted according to the section to which they belong, see MPS format data lines .

All MPS-format files end with the keyword "ENDATA" at the beginning of a line.

Lines that start with the "*" character are comment lines. Also, if field 3 (or field 5, field 7, etc.) of a line starts with the "$" character, it is skipped along with the rest of the line. Empty lines are ignored.

MPS format small example defines a small LP problem in MPS format.