The QLP File Format

As an input for our QMIP optimization software, a new standardized file format is required. We extended the CPLEX-LP file format to handle quantifiers and to specify an order of the variables in the so called QLP file format. The following keywords are used, where new keywords are marked with *.:

  1. Every keyword has to be written in capital letters. Abbreviations are not allowed.
  2. The BOUNDS section which follows the constraint section is mandatory. Each bound definition has to begin on a new line. The general form is l≤x≤u.
  3. The BOUNDS section is followed by typifying the variables. To specify any of the variables as general integer variables, a GENERAL section has to be added; to specify any of the variables as binary integer variables, a BINARY section has to be added. In every section the variables are separated by at least one space.
  4. Every variable is marked with one of the new keywords ALL or EXISTS. Analogously the variables in the ALL and EXISTS section are separated by at least one space.
  5. The order of the variables is specified below the keyword ORDER.

Exemplarily we will consider the following QMIP instance:

∃x1∈{0,1}  ∀x2∈{0,1}  ∃x3∈{0,1,2}:
s.t. - x2- x3-1
 - x1+ x2+ x31
x1+2x2 3

A typical QLP file (belonging to the above example) looks as follows (example):

Requirements and Restrictions:

  • Only linear constraints and objective function.
  • integer variables are allowed in all variable blocks
  • Continuous variables, i.e. variables not listed below the keywords BINARIES or GENERAL, have to be part of the final (existential) variable block.
  • First and final variable block must be existentially quantified.
  • The right-hand side of each constraint may only contain a single parameter, i.e. all variables have to be on the left-hand side.
  • Universal Constraints, defining the uncertainty set, must be named with the name starting with "U_". For more details see [this page].

Potential errors:

  • Make sure that all variables are on the left-hand side of the constraint. Variables on the right-hand side are ignored.
  • Unnamed as well as named constraints not starting with "U_" are considered existential constraints. In particular, when naming constraints only use "U_" if a universal constraint is intended.