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 *.:
MAXIMIZE / MINIMIZE, SUBJECT TO, BOUNDS, GENERALS,
BINARIES, UNCERTAINTY SUBJECT TO*, ALL*, EXISTS*, ORDER*,
END
-
Every keyword has to be written in capital letters.
Abbreviations are not allowed.
-
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.
-
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.
-
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.
-
The order of the variables is specified below the
keyword ORDER.
-
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}:
min - x1 - 2
x2 - 2 x3
s.t. - x2 - x3
≤ -1
- x1 + x2 +
x3 ≤ 1
x1 + 2 x2
≤ 3
A typical QLP file (belonging to the above example) looks
as follows (example):
MINIMIZE
- x1 - 2 x2 - 2 x3
SUBJECT TO
- x2 - x3 <= -1
- x1 + x2 + x3 <= 1
2 x1 + 2 x2 <= 3
BOUNDS
0 <= x1 <= 1
0 <= x2 <= 1
0 <= x3 <= 2
BINARIES
x1 x2
GENERALS
x3
EXISTS
x1 x3
ALL
x2
ORDER
x1 x2 x3
END
|
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.
|
|
Downloads
Yasol for Mac OS
Yasol for Linux
Yasol for Windows
Instances
|