4.1 Division Rule: Coordinate-Wise Bisection
In this study, we describe a polytope $p=\{V,E,F,m\}$ as a set of vertices, edges, facets and its dimension, respectively. By performing a bisection, we generate two polytopes, one at left ${p^{\ell }}=\{{V^{\ell }},{E^{\ell }},{F^{\ell }},m\}$, and one at right ${p^{r}}=\{{V^{r}},{E^{r}},{F^{r}},m\}$ of the midpoint of the widest coordinate of $\square p$. One of the tasks to perform is to determine the cutting facet ${f^{c}}$. Determining the vertices of ${f^{c}}$ is not difficult, but to determine its edges can be a challenge, because a pair of vertices in ${f^{c}}$ might not be connected by an edge. We first show the difficult case and later on the easier ones in determining ${f^{c}}$.

Fig. 3
Division of a cube. Notice that we can rotate the cube to have a component-wise division. Cutting facet ${f^{c}}$ in red is a 2-facet. Having three vertices at c implies three edges of ${f^{c}}$. Having four vertices at c, some combinations of two of them do not correspond to an edge of ${f^{c}}$, i.e. an edge in the convex hull of vertices.
As illustration, Fig.
3 shows some cases of the cutting facet
${f^{c}}$ in red for a cube bisection. The cubes may be rotated to illustrate a component-wise division where internal division is not in the middle of the widest component. Notice that in general we divide edges, but there are cases where we do not, see left-down graph of Fig.
3.
Table 2
Definitions and initial sets for a bisection.
| $p=\{V,E,F,m\}$ |
polytopal subset defined by sets of vertices V, edges E, facets F and dimension m. |
|
$e=(u,v)$, $u,v\in V$, $e\in E$
|
edge of p. |
|
${f_{j}}=\{{V_{j}},{E_{j}}\}$, ${f_{j}}\in F$
|
$(m-1)$-facet j of p determined by edges $e\in {E_{j}}\subset E$. |
| $c=\operatorname{mid}(\square {p_{i}})$ |
middle point of $\square {p_{i}}$, i is the widest coordinate of $\square p$. |
| ${V^{c}}=\{v\in V:{v_{i}}=c\}$ |
set of vertices at c. |
| ${V^{\ell }}=\{v\in V:{v_{i}}\lt c\}$ |
set of vertices of p at left of c. |
| ${V^{r}}=\{v\in V:{v_{i}}\gt c\}$ |
set of vertices of p at right of c. |
| ${E^{c}}=\{e=(u,v)\in E:u,v\in {V^{c}}\}$ |
edges at c. |
| ${E^{\ell }}=\{e\in E:u\in {V^{\ell }},v\in {V^{\ell }}\cup {V^{c}}\}$ |
edges at left of c. |
| ${E^{r}}=\{e\in E:u\in {V^{r}}\cup {V^{c}},v\in {V^{r}}\}$ |
edges at right of c. |
| ${E^{d}}=\{e\in E:u\in {V^{\ell }},v\in {V^{r}}\}$ |
edges to be divided. |
| ${F^{\ell }}=\{f\in F:\forall e\in f,\hspace{2.5pt}e\in \{{E^{c}}\cup {E^{\ell }}\}\}$ |
set of facets at left of c, do not have to be divided. |
| ${F^{r}}=\{f\in F:\forall e\in f,\hspace{2.5pt}e\in \{{E^{c}}\cup {E^{r}}\}\}$ |
set of facets at right of c, do not have to be divided. |
| ${F^{d}}=\{f\in F:\exists \hspace{2.5pt}e\in f,\hspace{2.5pt}e\in {E^{d}}\hspace{0.1667em}\textbf{or}\hspace{0.1667em}$ |
set of facets to be divided. |
|
$\exists \hspace{0.1667em}{e_{i}},{e_{j}}\in f,\hspace{2.5pt}{e_{i}}\in {E^{\ell }},\hspace{2.5pt}{e_{j}}\in {E^{r}}\}$. |
Table
2 shows the notation for the used elements and the sets to be determined as starting step before performing a bisection. Facets of a facet
${f_{j}}$ of a polytope
p have to be determined only if
${f_{j}}$ is treated as a polytope, which will occur only after a reduction to it, see Section
4.5. Therefore, we do not need to identify the facets of a facet in the division of
p, but only the set of vertices and edges a facet has.
The difficulty is illustrated by the labelling provided in Table
2. After the identification of the sets, the aim is to divide edges at
${E^{d}}$ generating new vertices at
c that are added to
${V^{c}}$. For each divided edge, we generate a new vertex at
c and two new edges that are stored at new sets:
-
• ${E^{d\ell }}$: set of edges at left of c, as left result of division of edges in ${E^{d}}$.
-
• ${E^{dr}}$: set of edges at right of c, as right result of a division of edges in ${E^{d}}$.
An edge
$e\in {E^{d}}$ belongs to one or more facets in
${F^{d}}$. We generate two new sets:
-
• ${F^{d\ell }}$: contains facets generated from a facet f in ${F^{d}}$ by copying the edges on the left of c and the left part of divided edges of f.
-
• ${F^{dr}}$: similarly taking the edges at right of c and the right part of divided edges.
In the case where the facet to be divided has no edges to divide (see top and bottom facets of the cube at left-down graph of Fig.
3), we have to separate edges generating two facets; one with edges at left and store them in
${F^{d\ell }}$ and one with edges at right and store them in
${F^{dr}}$. At this point, we have open facets sets at the left
${F^{d\ell }}$ and right
${F^{dr}}$. Figure
4 shows an example of sets
${F^{d\ell }}$ and
${F^{dr}}$ of a cube bisection.

Fig. 4
Example of a cube division to show the facet sets during the process.

Fig. 5
Division of 3-polytopes. Notice that we can rotate the polytope to have a component-wise division. Cutting facet ${f^{c}}$ in red is a 2-facet. The left graph shows a Longest Edge Division which divides an edge. Having three vertices at c all are connected in ${f^{c}}$. There are neither divided facets, nor edges of p in the bipyramid example at the right. So, ${F^{d\ell }}={F^{dr}}=\{\varnothing \}$.
What remains to identify are edges
${E^{c}}$ of
${f^{c}}$ after construction of the complete vertex set
${V^{c}}$. The difficult part of a bisection algorithm based on only vertices is that it requires checking, whether a pair of vertices
$(u,v)$ is an edge of a polytope, in our case for
${f^{c}}$. In López and Duval (
2012), one can find algorithms to compute edges from a vertex set. They are based on finding supporting hyperplanes using linear programming (LP). A simple procedure is to check by LP (
4) whether the midpoint
$c=\frac{{v_{\ell }}+{v_{k}}}{2}$ of two vertices
${v_{\ell }}$ and
${v_{k}}$ is on a facet of
p. Such procedures require running an LP routine. This does not seem attractive in an iterative process for each pair of vertices of
${f^{c}}$ in a spatial B&B search. Moreover, in our experience, LP routines are getting sensitive to numerical errors when the subsets are getting small.

Algorithm 2
Update ${E^{c}}$, $f\in \{{F^{dr}}\cup {F^{d\ell }}\}$, ${F^{\ell }}$, ${F^{r}}$ and generate ${f^{c}}=\{{V^{c}},{E^{c}}\}$
We use a different approach in Algorithm
2 to determine the edges of
k-facet
${f^{c}}$, for the most complicated cases,
$|{V^{c}}|\gt 3$,
$k\gt 1$. Easier cases will be described later in this section, see graphs of Fig.
5. Algorithm
2 uses a set
${F^{dr}}$ to determine all edges
$e\in {E^{c}}$. This could be
${F^{d\ell }}$ as well, because both need the same edges of facet
${f^{c}}$. It starts to determine the set of vertices at
c for each facet
${f_{j}}\in {F^{dr}}$. We also need to keep track of the indices of the facets the vertices are in. Thus, we use a set
R with elements
$r=(U,I)\in R$ having two components:
U, the set of vertices at
c and
I, the set of indices of the facets the vertices at
U belong to. In line 2 of Algorithm
2, we store the vertices at
c and the index of the facet for each
${f_{j}^{dr}}\in {F^{dr}}$ in
R. The main computational burden of the procedure is in the while in line 6 of Algorithm
2. This computational burden increases with the dimension of
${f^{c}}$. It is based on the iterative intersection of vertices
U and the union of the corresponding indices of the facets
I for elements in
R, while at least two vertices are in
U for each
$r\in R$. Intersections with less than two vertices are not considered (they can not generate an edge) and we also have to take care to avoid duplicates in the process. This process can be seen as the traversal of the face-graph of
${f^{c}}$, having
${f^{c}}$ at the top level, and its facets (determined by their vertices) in the next lower level. The process moves down, level by level, until the level with edges is reached. Notice that the while loop will not be executed in the illustrative example in Fig.
4, because each
${U_{j}}$ has exactly two elements, so we find all edges right away. Finally, Algorithm
2 adds new edges to the corresponding open facets at
${F^{d\ell }}$ and
${F^{dr}}$ to close them. Then,
${F^{d\ell }}$ is added to
${F^{\ell }}\subset {p^{\ell }}$ and
${F^{dr}}$ to
${F^{r}}\subset {p^{r}}$. Facet
${f^{c}}$ completes both
${F^{\ell }}$ and
${F^{r}}$. The bottom graphs of Fig.
4 show an example of resulting sets
${p^{\ell }}$ and
${p^{r}}$.
As mentioned above, there exist easier cases to determine cutting facet
${f^{c}}$. If the set of facets to be divided
${F^{d}}$ is empty (see right graph of Fig.
5), vertices in
${V^{c}}$ and edges in
${E^{c}}$ of
${f^{c}}$ are identified. In this case, the set of facets in
${p^{\ell }}$ is
${F^{\ell }}\cup {f^{c}}$ and the set of facets in
${p^{r}}$ is
${F^{r}}\cup {f^{c}}$. When the number of vertices in
${V^{c}}$ after dividing edges is three, they must be all connected in
${f^{c}}$, see left graph of Fig.
5. So, Algorithm
2 is not needed.
For 2-polytopes, it is easy to determine cutting facet
${f^{c}}$, because
${f^{c}}$ is a segment connecting two vertices, which can be new or not. Figure
6 shows some examples.

Fig. 6
Division of a 2-Polytope. Notice that we can rotate the polytope to have a component-wise division. The two vertices at c are new on the left, existing ones on the right, and mixed in the middle. They define the cutting interior 1-facet ${f^{c}}$ in red.
Finally, if p is 1-polytope (segment) the cutting 0-facet is the new vertex.
4.5 Rejection and Reduction Rules
The theoretical results give rise to concrete tests that can be used to reject subsets from further consideration or to reduce them to lower dimensional subsets. First of all, the
RangeUp test rejects a subset
p if
$\underline{\boldsymbol{h}}(\square p)\gt \overline{\boldsymbol{h}}$, see Section
4.4. If the test fails, we can evaluate the centred form to test
$\underline{{\boldsymbol{h}_{c}}}(\square p)\gt \overline{\boldsymbol{h}}$. The application of the RangeUp test to already evaluated subsets at Λ is the so-called
CutOff test.

Fig. 7
Blue arrows correspond to positive directional derivative ${\boldsymbol{d}\boldsymbol{d}_{v}^{+}}$ and red to negative ${\boldsymbol{d}\boldsymbol{d}_{v}^{-}}$. The example can be a partial view of vertices and edges of a larger polytope.
We now focus on exploiting the theoretical monotonicity properties discussed in Section
3.2 to decide on rejection and reduction. A necessary condition to reject or reduce a polytope
p based on monotonicity is
$0\notin \boldsymbol{g}(\square p)$. It is important to differentiate if the
m-polytope
p is full dimensional (
$m=n$) or not (
$m\lt n$), and if it has border facets or not. For
m-polytopes,
$m\lt n$, condition
$0\notin \boldsymbol{g}(\square p)$ is not sufficient and we need to find a directional derivative
$0\notin \boldsymbol{d}\boldsymbol{d}={d^{T}}\boldsymbol{g}(\square p)$ in
p, see (
5). We will use the notation
${\boldsymbol{d}\boldsymbol{d}^{+}}$ for
$\underline{\boldsymbol{d}\boldsymbol{d}}\gt 0$ as positive directional derivative and
${\boldsymbol{d}\boldsymbol{d}^{-}}$ for
$\overline{\boldsymbol{d}\boldsymbol{d}}\lt 0$. In this study, we limit the search to directions from vertices of
p,
${\boldsymbol{d}\boldsymbol{d}_{v}}$,
$v\in p$ to the centre and to other vertices of
p. Figure
7 shows a hypothetical example where both
${\boldsymbol{d}\boldsymbol{d}_{v}^{-}}$ and
${\boldsymbol{d}\boldsymbol{d}_{v}^{+}}$ exist in
v. We are interested mainly in
${\boldsymbol{d}\boldsymbol{d}_{v}^{-}}$, see Corollary
4. Hence, negative directional derivative
${\boldsymbol{d}\boldsymbol{d}_{v}^{-}}$ could replace the information about monotonic directional derivative in
v when it is
${\boldsymbol{d}\boldsymbol{d}_{v}^{+}}$. Notice that a positive directional derivative
${\boldsymbol{d}\boldsymbol{d}_{v}^{+}}$ from
v to vertex
u implies having a negative
${\boldsymbol{d}\boldsymbol{d}_{u}^{-}}$.
The rejection and reduction cases when $0\notin \boldsymbol{g}(\square p)$ are as follows.
In case
2(b)iiB, we can stop after one negative direction
${\boldsymbol{d}\boldsymbol{d}_{v}^{-}}$ is found or look for all of them and apply Corollary
4 using the vertex that removes more border facets. If all border facets are removed,
p is not reduced but rejected. If
p is a 1-polytope (segment), it can only be reduced to a vertex of the initial feasible set
q, which is a border 0-facet of
p.
Consider reduction of subset
m-polytope
$p=\{V,E,F,m\}$ to a border facet
${f_{j}}\in F$. Then,
${f_{j}}$ is evaluated, see Section
4.3. Before storing
${f_{j}}$ in Λ, the RangeUp test is checked. If it passes the test, we have to store
${f_{j}}$ as a polytope,
${f_{j}}=\{{V_{j}},{E_{j}},{F_{j}},m-1\}$. This requires to determine the set of
$(m-2)$-facets
${f_{i}^{{f_{j}}}}\in {F_{j}}$ of
${f_{j}}$. Each
${f_{i}^{{f_{j}}}}$ is obtained by a nonempty intersection of polytopes
${f_{j}}\cap {f_{i}}$,
$j\ne i$,
${f_{j}},{f_{i}}\in F\in p$.
We observed in the experiments that when selecting the next reduced-evaluated-RangeUp
p from Λ, it is worth to try to reduce
p again with the new derivative bounds, instead of directly dividing it. We do not apply more than one reduction-evaluation-RangeUp before to store
p in Λ, because this would affect the selection rule (see Section
4.4), which might increase the computational burden of the algorithm. However, by storing
p after a reduction-evaluation-RangeUp, the CutOff could remove
p from Λ in a next iteration.
4.6 Updating the Border Level and Setting the Border Status After Reduction
The determination of the border level of facets and edges after a polytope division was discussed in Section
4.2. Lemma
1 determines the border status (border level) of a facet. Facets generated by successive division of a facet
f maintain the border status of
f. All facets of feasible set
q are border. A first non-border cutting facet
${f^{c}}$ is generated by the bisection of the widest component of
$\square q$. The algorithm will never reduce to a cutting facet, or facets generated by a successive division of a cutting facet, because they are not border and are labelled as non-border after a division.
Consider an
m-polytope
$p=\{V,E,F,m\}$ to be reduced to a border
$(m-1)$-facet
${f_{j}}=\{{V_{j}},{E_{j}},{F_{j}},m-1\}$. As Section
4.5 discussed, each
$(m-2)$-facet
${f_{i}^{{f_{j}}}}$ of
${f_{j}}$ is obtained by the non empty intersection
${f_{j}}\cap {f_{i}}$,
$j\ne i$,
${f_{j}},{f_{i}}\subset F\subset p$. To determine the border status of the facets
${f_{i}^{{f_{j}}}}$ of
${f_{j}}$, Proposition
2 states that if both
${f_{i}}$ and
${f_{j}}$ are border, then
${f_{i}^{{f_{j}}}}$ is border.
The next question concerns the border status of the facets
${f_{i}^{{f_{j}}}}={f_{j}}\cap {f_{i}}$ after reduction of
p to
${f_{j}}$ and
${f_{i}}$ is not border due to being a cutting facet or a division of it. The problem is that face
${f_{i}^{{f_{j}}}}\subset p$ is a facet of both
${f_{j}}$ and
${f_{i}}$, and it can be border. Examples are provided at the bottom left graph of Fig.
3 and right graph of Fig.
5, where there exist border edges in
${f^{c}}$. In general,
${f_{i}}$ can have a border face. So we need some tools to determine its border status. Proposition
5 characterizes a non-border facet without border faces.
Proposition 5.
Given m-polytope $p=\{V,E,F,m\}$ and a cutting $(m-1)$-facet ${f^{c}}$. If all vertices v of ${f^{c}}$ are new $(v\notin V)$, ${f^{c}}$ has no border faces.
Proof.
If all vertices of ${f^{c}}$ are new, all its edges are new ($e\notin E$) as well. Thus, all faces built from the new edges are new. New faces with all new sub-faces are in the relative interior of p, i.e. every k-face of ${f^{c}}$ is in the relative interior of a $(k+1)$-face of p. So, they constitute ${f^{c}}$ by construction. □
Proposition
5 also shows that facet
${f^{c}}$ under this conditions does not contain a face of
p. If
${E^{c}}=\varnothing $ in the input of Algorithm
2 and
${f^{c}}$ has no vertex of
q, then
${f^{c}}$ has no border faces. Therefore,
${f_{i}^{{f_{j}}}}$ and any of its subsets generated by division are not border, as well.
Corollary 5.
Given face ${f_{i}^{{f_{j}}}}={f_{j}}\cap {f_{i}}$ after a reduction of p to a border facet ${f_{j}}$. If non-border facet ${f_{i}}$ of p has no border faces, then face ${f_{i}^{{f_{j}}}}$ is not border.
However, if
${f^{c}}$ contains faces of
p, the problem is to identify them and to determine they are not border and if they are also in another border facet. In our algorithm, we try to simplify this task using the condition of Proposition
6.
Proposition 6.
Given an m-polytope p with $m\geqslant 2$ and $(m-1)$-facet f of p, which has not yet been labelled as border or not. If f is border, then it must have a vertex $v\in f$ in at least k edges $e\in f$ with $\boldsymbol{b}\boldsymbol{l}(e)\leqslant (m-1)$.
Proof.
Each vertex v of an m-facet is at least in m edges in order to have a facet with dimension k. For $m=1$, if the $\boldsymbol{b}\boldsymbol{l}(e)=1$, e is one edge of q or was generated by its division, so it is border. For $m=2$, we need at least two edges ${e_{1}}$ and ${e_{2}}$ sharing a vertex with $\boldsymbol{b}\boldsymbol{l}({e_{i}})\leqslant 2$ in order to have an area in a 2-face of q. This can be extended to any k in the same way. □
Proposition
6 is only relevant for a face
${f_{i}^{{f_{j}}}}$ after a reduction, because all facets were already labelled in a division. It provides a necessary, but not sufficient test for facet
${f_{i}^{{f_{j}}}}$ to be border. If the condition is not fulfilled, the facet is not border.
Moreover, Proposition
2 says that
${f_{i}^{{f_{j}}}}$ is border if both
${f_{i}}$ and
${f_{j}}$ are border. In the algorithm, we test the condition of Proposition
6 on
${f_{i}^{{f_{j}}}}$ only when
${f_{i}^{{f_{j}}}}$ was not labelled as border by Proposition
2 and it could not be labelled as non-border by Corollary
5.
Proposition
6 requires to keep track of the edge border levels after reducing to a border facet
${f_{j}}$. Rules in Section
4.2 show that the border level of an edge can be inherited from a divided edge or from the facet it is generated in. By reducing an
m-polytope
p to a border
$(m-1)$-facet
${f_{j}}$, we diminish the dimension by one. This implies that, when
$m\gt 3$, we also have to decrease the border level of edges of
p with
$\boldsymbol{b}\boldsymbol{l}(e)\geqslant (m-1)$, before they are inherited by the border facet
${f_{j}}$. Figure
8 shows an illustrative example.

Fig. 8
Consider feasible set q to be a 4-cube polytope at the left graph. This means its facets are 3-cubes. We divide q by the middle of coordinate ${x_{1}}$. The interior cutting 3-cube facet ${f^{c}}$ in red has border level 4 like q because ${f^{c}}$ is in the relative interior of q. So, it is not border in the generated ${q^{\ell }}$ and ${q^{r}}$ polytopes. The border level of an edge of ${f^{c}}$ is the smallest border level of the facets it belongs to. In this case, they all have a level of 3. Let 4-polytope ${q^{\ell }}$ in the middle graph be reduced to its border 3-facets with border level 3, due to a negative directional derivative ${\boldsymbol{d}\boldsymbol{d}_{v}^{-}}$ in direction $-{x_{4}}$. Consider one of them to be the 3-polytope p at the right graph. Edges that were generated at 3-facets of q are now in 2-facets of p. So, we have to decrease their border level by one.
Figure
8 provides an example of Proposition
5 in the red cube
${f^{c}}$. Figure
8 also aids to observe that Proposition
6 provides a necessary, but not sufficient condition to label a facet
${f_{i}^{{f_{j}}}}$ of the border facet
${f_{j}}$ to which we reduce. All 2-faces of
${f^{c}}$ are not border. They are in the relative interior of the corresponding 3-facet of
q. Consider the 4-cube
${q^{\ell }}$ in the middle graph. It has eight 3-cube facets. One of them is the cutting facet of
q in red. If we reduce
${q^{\ell }}$ to the 3-cube facet
${f_{j}}$ at the left, we have to determine its facets
${f_{i}^{{f_{j}}}}$ by intersecting
${f_{j}}$ with the other 3-cube facets of
${q^{\ell }}$. All facets of
${q^{\ell }}$ are border apart from the red 3-cube facet
${f_{i}}$. So, all but one
${f_{i}^{{f_{j}}}}$ are border and we have to determine the border status of
${f_{i}^{{f_{j}}}}={f_{j}}\cap {f_{i}}$, which is the red square in the right graph. Face
${f_{i}^{{f_{j}}}}$ is in the relative interior of
q and satisfies the condition of Corollary
5. So, it is labelled as non-border in pBB because
${f^{c}}$ has no border faces. Although, Proposition
6 will not be checked by pBB, it is satisfied, i.e. there exists one vertex in two edges with border level 2. So, Proposition
6 does not provide a test to guarantee the facet is border.
In case the condition of Proposition
6 is not satisfied, we label
${f_{i}^{{f_{j}}}}$ as border. The open question is whether a non-border
${f_{i}^{{f_{j}}}}$ exists not satisfying Corollary
5 and satisfying Proposition
6. In such case, we are labelling
${f_{i}^{{f_{j}}}}$ as border incorrectly and the algorithm may reduce to it. However, pBB still converges to the global minimum, because reduction is only to border facets and facets that might contain a global minimum are not discarded in the search. But pBB may evaluate polytopes that do not need to be tested.