The QLP File Format

As an input for our 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.
  6. If the instance contains a universal constraint system specifying the uncertainty set, the keyword UNCERTAINTY SUBJECT TO is used similar to SUBJECT TO for the existential constraint system.

Exemplarily we will consider the following QIP 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.
  • 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.

Further Rules:

  • Make sure that all variables are on the left-hand side of the constraint. Variables on the right-hand side are not permitted.
  • Similarly, parameters are ignored if they appear on the left-hand side of the constraint.
  • The letter E or e, alone or followed by other valid symbols, in particular digits, should be avoided as this notation is reserved for exponential entries.
  • All Variables need to be bounded. You can use '-inf' and '+inf' to indicated vast bounds but note that they are still bounded by some large number. Hence, be careful when interpreting the solution.
  • Constraints do not need to have a name. If you decide on naming them note that constraints having a constraint names starting with "U_" are considered universal constraints, even if they appear underneath the SUBJECT TO keyword. This option is conserved in order to be able to deal with older instances that used a different file format.