GenExPo: Generation of extreme points of P(B)
by A. Galluccio, C. Gentile, P. Ventura (2007).
Here we describe the procedure used to generate the
extreme points (
βB,
y)
of the polytope
P(
B),
that are associated with inequalities (
βV\B,
βB,
β0).
As all the considered inequalities have full support on
VB,
all their possible roots must be maximal in
VB.
In this
figure we show the 24 possible configurations
for maximal solutions in
VB.
Each configuration
Ri produces a linear system of inequalities
Li on
βB
by simply considering the maximality conditions.
L1:
|
βc +
βa ≤
βh1
|
βb1 +
βh2 ≤
βh1
|
βd1 +
βh2 ≤
βh1
|
βb1 +
βa ≤
βh1
|
βd1 +
βc ≤
βh1
|
|
|
|
L3:
|
βc +
βa ≤
βh2
|
βb2 +
βh1 ≤
βh2
|
βd2 +
βh1 ≤
βh2
|
βb2 +
βa ≤
βh2
|
βd2 +
βc ≤
βh2
|
|
|
|
L5:
|
βd1 +
βd2 ≤
βa
|
βb1 +
βb2 ≤
βc
|
βb2 +
βh1 ≤
βa +
βc
|
βd2 +
βh1 ≤
βa +
βc
|
βd1 +
βh2 ≤
βa+
βc
|
βb1 +
βh2 ≤
βa+
βc
|
βb1 +
βd2 ≤
βa+
βc
|
βd1 +
βb2 ≤
βa+
βc
|
|
|
L6:
|
βd2 ≤
βa
|
βb2 ≤
βc
|
βh1 +
βb2 ≤
βa+
βc
|
βh1 +
βd2 ≤
βa +
βc
|
βh2 ≤
βa +
βc
|
|
|
L7:
|
βd1 ≤
βa
|
βb1 ≤
βc
|
βh2 +
βd1 ≤
βa+
βc
|
βh2 +
βb1 ≤
βa +
βc
|
βh1 ≤
βa +
βc
|
|
|
L8:
|
βh1 ≤
βa+
βc
|
βh2 ≤
βa +
βc
|
|
|
L9:
|
βd2 ≤
βb2
|
βd1 ≤
βh1
|
βa +
βb1 ≤
βh1
|
βa +
βc ≤
βh1 +
βb2
|
βd1 +
βh2 ≤
βh1 +
βb2
|
βb1 +
βh2 ≤
βh1 +
βb2
|
βb1 +
βd2 ≤
βh1 +
βb2
|
βc +
βd1 +
βd2 ≤
βh1 +
βb2
|
|
|
L10:
|
βd2 ≤
βb2
|
βa ≤
βh1
|
βa +
βc ≤
βh1 +
βb2
|
βc +
βd2 ≤
βh1 +
βb2
|
βh2 ≤
βh1 +
βb2
|
|
|
L11:
|
βb2 ≤
βd2
|
βb1 ≤
βh1
|
βc +
βd1 ≤
βh1
|
βa +
βc ≤
βh1 +
βd2
|
βb1 +
βh2 ≤
βh1 +
βd2
|
βd1 +
βh2 ≤
βh1 +
βd2
|
βd1 +
βb2 ≤
βh1 +
βd2
|
βa +
βb1 +
βb2 ≤
βh1 +
βd2
|
|
|
L12:
|
βb2 ≤
βd2
|
βc ≤
βh1
|
βa +
βc ≤
βh1 +
βd2
|
βa +
βb2 ≤
βh1 +
βd2
|
βh2 ≤
βh1 +
βd2
|
|
|
L13:
|
βb1 ≤
βd1
|
βb2 ≤
βh2
|
βc +
βd2 ≤
βh2
|
βa +
βc ≤
βh2 +
βd1
|
βb2 +
βh1 ≤
βh2 +
βd1
|
βd2 +
βh1 ≤
βh2 +
βd1
|
βd2 +
βb1 ≤
βh2 +
βd1
|
βa +
βb1 +
βb2 ≤
βh2 +
βd1
|
|
|
L14:
|
βb1 ≤
βd1
|
βc ≤
βh2
|
βa +
βc ≤
βh2 +
βd1
|
βa +
βb1 ≤
βh2 +
βd1
|
βh1 ≤
βh2 +
βd1
|
|
|
L15:
|
βd1 ≤
βb1
|
βd2 ≤
βh2
|
βa +
βb2 ≤
βh2
|
βa +
βc ≤
βh2 +
βb1
|
βd2 +
βh1 ≤
βh2 +
βb1
|
βb2 +
βh1 ≤
βh2 +
βb1
|
βb2 +
βd1 ≤
βh2 +
βb1
|
βc +
βd1 +
βd2 ≤
βh2 +
βb1
|
|
|
L16:
|
βd1 ≤
βb1
|
βa ≤
βh2
|
βa +
βc ≤
βh2 +
βb1
|
βc +
βd1 ≤
βh2 +
βb1
|
βh1 ≤
βh2 +
βb1
|
|
|
L17:
|
βh2 ≤
βa
|
βc ≤
βb1
|
βd1 +
βc ≤
βb1 +
βa
|
βd1 +
βh2 ≤
βb1 +
βa
|
βh1 ≤
βb1 +
βa
|
|
|
L18:
|
βh2 ≤
βc
|
βa ≤
βd1
|
βb1 +
βa ≤
βd1 +
βc
|
βb1 +
βh2 ≤
βd1 +
βc
|
βh1 ≤
βd1 +
βc
|
|
|
L19:
|
βh1 ≤
βc
|
βa ≤
βd2
|
βb2 +
βa ≤
βd2 +
βc
|
βb2 +
βh1 ≤
βd2 +
βc
|
βh2 ≤
βd2 +
βc
|
|
|
L20:
|
βh1 ≤
βa
|
βc ≤
βb2
|
βd2 +
βc ≤
βb2 +
βa
|
βd2 +
βh1 ≤
βb2 +
βa
|
βh2 ≤
βb2 +
βa
|
|
|
L21:
|
βd1 +
βc ≤
βb1
|
βh1 ≤
βb1
|
βh2 ≤
βd2
|
βb2 +
βa ≤
βd2
|
βd1 +
βb2 ≤
βd2 +
βb1
|
βd1 +
βh2 ≤
βd2 +
βb1
|
βh1 +
βb2 ≤
βd2 +
βb1
|
βa +
βc ≤
βd2 +
βb1
|
|
|
L22:
|
βd2 +
βc ≤
βb2
|
βh2 ≤
βb2
|
βh1 ≤
βd1
|
βb1 +
βa ≤
βd1
|
βd2 +
βb1 ≤
βd1 +
βb2
|
βd2 +
βh1 ≤
βd1 +
βb2
|
βh2 +
βb1 ≤
βd1 +
βb2
|
βa +
βc ≤
βd1 +
βb2
|
|
|
L23:
|
βa ≤
βd1+
βd2
|
βb2 ≤
βc +
βd2
|
βh2 ≤
βc +
βd2
|
βb1 ≤
βc +
βd1
|
βh1 ≤
βc +
βd1
|
βa +
βb1 +
βb2 ≤
βc +
βd1 +
βd2
|
βb1 +
βh2 ≤
βc +
βd1 +
βd2
|
βh1 +
βb2 ≤
βc +
βd1 +
βd2
|
|
|
L24:
|
βc ≤
βb1+
βb2
|
βd2 ≤
βa +
βb2
|
βh2 ≤
βa +
βb2
|
βd1 ≤
βa +
βb1
|
βh1 ≤
βa +
βb1
|
βc +
βd1 +
βd2 ≤
βa +
βb1 +
βb2
|
βd1 +
βh2 ≤
βa +
βb1 +
βb2
|
βh1 +
βd2 ≤
βa +
βb1 +
βb2
|
|
|
Each system Li describes a cone, in fact the solution
represents the coefficients βB
of an inequality
(βV\B,
βB,
β0), and any multiplication by
a scalar yields an equivalent inequality.
We add the following normalization condition:
An inequality (β,β0)
is facet defining if and only if it is satisfied as an equality by
|VG| affinely independent points. Therefore, we introduce
a variable yi є {0,1}
for i = 1,...,24 such that yi = 1 if and only
if a solution corresponding to configuration Ri is selected among the
|VG|
affinely independent solutions.
If yi = 1, then
βB must satisfy the system
Li, otherwise the system
Li may be violated.
Let Ai βB ≤ 0 be the system Li,
then we introduce a big-M representation of the above condition:
Ai βB ≤ Mi (1 - yi), where Mi is a vector and (Mi)j is equal to the number of
variables in the j-th inequality of system
Li having
positive coefficients in (Ai)j.
As we know that G contains a gear,
we can relax the condition that there exist |VG| affinely independent solutions for
(β,β0)
with the conditions (i)-(iv) described in Section 3.2 of the paper.
So, we define the set Y of points y
satisfying the following linear constraints:
|
for all u є VB
|
|
for all K clique of VB*
|
Σ
|
yi ≥ 1
|
|
i : hj ∉ Ri and
|
| Ri ∩ Cj |<2
|
|
for each Wj=(hj : Cj), j=1,2
|
|
|
The linear mixed integer formulation of P(B) is thus the
following:
|
Ai
βB
≤ Mi ( 1 - yi )
|
|
i = 1,...,24
|
βB ≤ 1
|
y є
Y
|
|
|
The system of inequalities (1) has been
given in input to the code PORTA. This software is able
to find the extreme points of the polyhedron described by a system of linear inequalities.
As the variables yi are constrained to be 0-1, all the mixed-integer
feasible solutions of (1) are extreme points
of the associated polyhedron.
Since PORTA takes too long to find the extreme points of (1),
we subdivided the problem in 216 subproblems by fixing yi to
zero or to one for i = 9,...,24, and then we considered the union of the
resulting solutions.
As a final step, we eliminate all the points with fractional
value of the variables yi for i = 1,...,8 or
such that rank(xRi
| yi=1) < 10. This check has been made with
the free software Octave. The resulting list of points are the extreme points of
P(B).
Here we give the detailed instructions to repeat the proof of the theorems 7 and 8:
- Install PORTA FORTE on your computer.
- Create folder ``Proof´´
- Download in folder ``Proof´´ the file proof.c
and the file cleanfrac.c
- Compile proof.c and cleanfrac.c with default options
creating executables ``proof´´ and ``cleanfrac´´, respectively.
- Run ``proof <PORTA FORTE folder> ´´ specifying the folder where
you installed PORTA FORTE.
This code perform the following actions:
- creates subfolders ``in´´, ``ieq´´, ``inf´´, ``out´´, ``poi´´;
- writes in subfolder ``ieq´´ the 216 systems of linear inequalities
obtained from system (1) by fixing the variables
yi for i = 9,...24
to zero or to one; these systems are written in format ``.ieq´´ for
PORTA FORTE; in the case the resulting system is
infeasible the associated file .ieq is moved to the subfolder
``inf´´;
the name of the files .ieq is proof_<number>.ieq, where
<number> is the decimal representation of the assignment
given to variables yi for i = 9,...,24;
- writes in subfolder ``in´´ the command files in_<number> to
execute PORTA FORTE on the corresponding feasible system in file proof_<number>.ieq;
- executes PORTA FORTE for all the feasible proof_<number>.ieq files producing files proof_<number>.poi in subfolder ``poi´´;
- writes in subfolder ``out´´ the output of
each execution of PORTA FORTE (out_<number>).
- Run ``cleanfrac´´. This code reads each file
proof_<number>.poi and performs the following operations:
- reads each point
(βB, y{1,...,8}) in the file;
- checks if yi є {0,1} for i = 1,...,8;
- if yes, then
- writes the point in a new file cleanfrac.poi;
- if βB is full support,
writes ``full support´´ at the end of the line in cleanfrac.poi;
- verifies if this y{1,...,8} was equal to a previous
written point, and if yes, it checks if
rank(xRi | yi = 1, i = 1,...,24) = 10 using
Octave; if the check is passed, a ``warning´´ is written in
file cleanfrac.poi, indicating the index of the row
with the same value for y;
- the results of Theorem 3 are then indicated by rows of
cleanfrac.poi labelled ``full support´´;
- the results of Theorem 4 are then indicated by rows of
cleanfrac.poi labelled ``warning´´.