Acessibilidade / Reportar erro

VERTEX ENUMERATION OF POLYHEDRA

ABSTRACT

The vertex enumeration problem of a polyhedron P in ℜn , given by m inequalities, is widely discussed in the literature. In this work it is introduced a new algorithm to solve it. The algorithm is based on lexicographic pivoting and the worst-case time complexity is Omm+n2×minm,n which is OmnVP for the case of non-degenerate polyhedra, where VP is the number of vertices of P. The proposed algorithm was coded in Matlab and numerical experiments performed for several randomly generated problems show its efficiency.

Keywords:
vertex enumeration; polyhedra; pivoting

1 INTRODUCTION

There are two equivalent forms to represent a polyhedron P in ℜn: as the intersection of m closed half-spaces or as the convex hull of its vertices added to the conic hull of its extreme rays. The vertex enumeration problem of a polyhedron consists of computing its vertex representation from its half-space representation.

This problem is a widely addressed issue in the literature. The formal study of polyhedra dates back to Classical Antiquity, it is already found in The Elements of Euclid, around 300 BC (Encyclopædia Britannica, 2008ENCYCLOPÆDIA BRITANNICA. 2008. Euclid (Greek Mathematician). https://www.britannica.com/biography/Euclid-Greek-mathematician (consulted on July 31, 2008).
https://www.britannica.com/biography/Euc...
), but it is only about 2000 years later, in the 1700s, that Euler published a result relating the number of vertices, faces and edges of a three-dimensional polyhedron (Matheiss and Rubin, 1980MATHEISS TH, RUBIN D. 1980. A Survey and Comparison of Methods for Finding All Vertices of Convex Polyhedral Sets. Mathematics of Operations Research, 5(2): 167-185.). Regarding the vertex enumeration problem for the case of non-degenerate polyhedra, there are algorithms that run in polynomial time (i.e., in running time bounded by a polynomial function of input and output size) (Avis and Fukuda, 1982AVIS D & FUKUDA K. 1992. A Pivoting Algorithm for Convex Hulls and Vertex Enumeration of Arrangements and Polyhedra. Discrete & Computational Geometry, 8: 295-313.; Dyer, 1983DYER ME. 1983. The Complexity of Vertex Enumeration Methods. Mathematics of Operations Research, 8(3): 381-402.).

But, a problem that remains open is the existence of an algorithm that enumerates the vertices of a bounded polyhedron (a polytope) in polynomial time (Avis et al., 1997AVIS D, BREMNER D & SEIDEL R. 1997. How.good. are.convex.hull. algorithms? Computational Geometry: Theory and Applications, 7: 265-301.; Avis and Fukuda, 1992AVIS D & FUKUDA K. 1992. A Pivoting Algorithm for Convex Hulls and Vertex Enumeration of Arrangements and Polyhedra. Discrete & Computational Geometry, 8: 295-313.). In general, since there are polyhedra where the number of vertices grows exponentially accoding to their representation, it is not possible to solve the problem in polynomial time in the number of vertices for any unbounded polyhedron (Provan, 1994PROVAN JS. 1994. Efficient enumeration of the vertices of polyhedra associated with network LP’s. Mathematical Programming, 63: 47-64.; Reimers and Stougie, 2016REIMERS A & STOUGIE L. 2016. Polynomial time vertex enumeration of convex polytopes of bounded branch-width. arXiv preprint, arXiv:1404.5584v2.).

Fundamentally, there are two algorithmic approaches to address the vertex enumeration problem of a polyhedron: those based on pivoting and those based on non-pivoting (Avis et al., 1997AVIS D, BREMNER D & SEIDEL R. 1997. How.good. are.convex.hull. algorithms? Computational Geometry: Theory and Applications, 7: 265-301.). In the first approach, generally, a first search starts from a given vertex, through simplex pivoting. There is a difficulty associated with determining whether a given vertex has already been found, so the vertices are stored in a given tree. Several implementations of polynomial complexity, in relation to the number of vertices, are found in the literature (cf. Dyer, 1983DYER ME. 1983. The Complexity of Vertex Enumeration Methods. Mathematics of Operations Research, 8(3): 381-402.). The second approach is based on the “double description” method by Motzkin et al. (1953MOTZKIN TS, RAIFFA H, THOMPSON GL, THRALL RM. 1953. The double description method. In: H. W. Kuhn and A. W. Tacker (eds). Contributions to the Theory of Games, Vol. If. Princeton University Press, Princeton, N.J., p. 51-73.), in which the polyhedron is built sequentially, adding a constraint each time, where the new vertices produced are in the hyperplane defined by the constraint which enters.

Many authors have worked on this problem. Matheiss and Rubin (1980MATHEISS TH, RUBIN D. 1980. A Survey and Comparison of Methods for Finding All Vertices of Convex Polyhedral Sets. Mathematics of Operations Research, 5(2): 167-185.) and Dyer (1983DYER ME. 1983. The Complexity of Vertex Enumeration Methods. Mathematics of Operations Research, 8(3): 381-402.) present well known surveys of it. Dyer (1983DYER ME. 1983. The Complexity of Vertex Enumeration Methods. Mathematics of Operations Research, 8(3): 381-402.) introduces an implementation of pivoting algorithms that takes Omn2VP time for simple polytopes (where VP denotes the number of vertices).

On the other hand, Chand and Kapur (1970CHAND DR & KAPUR SS. 1970. An Algorithm for Convex Polytopes. Journal of the Association for Computing Machinery, 17(1): 78-86.) discovered that the dual problem of vertex enumeration problem is the facet enumeration problem and, lately, Avis and Jordan (2018AVIS D & JORDAN C. 2018. mplrs: A scalable parallel vertex/facet enumeration code. Mathematical Programming Computation, 10(2): 267-302.) and Yang (2021YANG Y. 2021. https://arxiv.org/abs/1909.11843v2 arXiv:1909.11843v2 [math.OC].
https://arxiv.org/abs/1909.11843v2...
), working on a parallel vertex/facet enumeration code and on a facet enumeration algorithm, respectively, introduced algorithms having similar complexity. Avis and Jordan (2018AVIS D & JORDAN C. 2018. mplrs: A scalable parallel vertex/facet enumeration code. Mathematical Programming Computation, 10(2): 267-302.), as mentioned by Yang (2021YANG Y. 2021. https://arxiv.org/abs/1909.11843v2 arXiv:1909.11843v2 [math.OC].
https://arxiv.org/abs/1909.11843v2...
), is a good source to find related works. Avis and Fukuda (1982AVIS D & FUKUDA K. 1992. A Pivoting Algorithm for Convex Hulls and Vertex Enumeration of Arrangements and Polyhedra. Discrete & Computational Geometry, 8: 295-313.), however, presented a pivoting algorithm that finds all the VP vertices of a simple polytope (or the VP faces corresponding to the convex hull of m points in ℜn , where each facet contains exactly n given points) in time OmnVP. Lately, Najt (2021NAJT L. 2021. Sampling the vertices of a polytope is still hard even when the branch-width is bounded. https://lorenzonajt.github.io/Documents/Polytope\Paper\Draft.pdf (consulted on December 3, 2021).
https://lorenzonajt.github.io/Documents/...
), working on the complexity of sampling vertices of a polytope, based on Reimers and Stougie (2016REIMERS A & STOUGIE L. 2016. Polynomial time vertex enumeration of convex polytopes of bounded branch-width. arXiv preprint, arXiv:1404.5584v2.), uses a theoretical approach of the vertex enumeration problem different from the two described in the previous paragraph, taking a branch decomposition perspective to define a parameter of polytopes called branchwidth, which, when bounded, allows solving the problem in polynomial time.

The aim of this paper is to present a new algorithm that solves the vertex enumeration problem of a polyhedron, based on pivots. The main idea of the proposed algorithm is to work with an equivalent maximization problem, where, given a vertex of the polyhedron, a maximization vertex is defined and all the different directed paths from the first to the second vertex are found (composed by edges and vertices of the original polyhedron). Since the proposal may include vertex degeneration, lexicographic pivoting is used. In general, for a general polyhedron, the computational complexity of this algorithm is Omm+n2×minm,n which, in the case of non-degenerate polyhedra, as in Avis and Fukuda (1992AVIS D & FUKUDA K. 1992. A Pivoting Algorithm for Convex Hulls and Vertex Enumeration of Arrangements and Polyhedra. Discrete & Computational Geometry, 8: 295-313.), is OmnVP, polynomial in mnVP.

This paper is organized as follows: Section 2 presents the main concepts for defining the problem. Section 3 introduces a linear programming problem equivalent to the addressed problem and the generation of the paths vertices at the polyhedron is discussed. Section 4 defines a graph associated with the generated vertices. Section 5 introduces the proposed algorithm. Section 6 establishes the computational complexity of the algorithm. Section 7 illustrates the proposal with a numerical example. Section 8 presents some randomly generated numerical tests. At last, Section 9 presents the final considerations.

2 PRELIMINARIES

In this paper, a polyhedron P is defined as the solution set of a system of m.linear inequalities in n non-negative variables. Thus,

P = x R n : A x b , x 0 (1)

where ARm×n e bRm. Here, vectors are considered column matrices. For further discussion of the definitions and proves introduced in this section, the reader can consult several texts on Mathematical Programming (c.f., Blum and Oettli (1975BLUM E, OETTLI W. 1975. Mathematische Optimierung. Grundlagen und Verfahren. Okonometrie und Unternehmensforschung, 20. Springer-Verlag, Berlin-Heidelberg-New York.) and Minoux (1986MINOUX M. 1986. Mathematical Programming: Theory and Algorithms. New York: John Wiley.)).

A vertex of a polyhedron P is an element xP that satisfies, as equalities, a linearly independent set of n of the m + n inequalities that define P. The polyhedron P is said to be simple if each vertex is determined by a single set of n linearly independent inequalities. If a polyhedron is not simple, it is said degenerated. Here, it is assumed that a vertex xP is known. When the polyhedron is assumed to be bounded, it is called a polytope. For the algorithm proposed here, under the assumption that P is a polytope or simple, as will be discussed in Section 6, the time complexity is OmnVP, where VP is the number of vertices.

As known, the set of solutions of the polyhedron P can be written as

A I x s x 0 , s 0 = b , (2)

where IRm×m denotes the identity matrix. There exists an equivalence between the solutions y=xsRn×m of system (2), obtained by zeroing n components, such that the square system thus generated has a unique nonnegative solution, and the vertices xP. This way, by the selection of a set of m independent columns of [A I] to define a submatrix B, it is possible a partition of matrix [A I] as [B N], permuting the columns of [A I] properly, to have an associated vertex, given by the x variables corresponding to the solution y=yByN=B-1b0 of (2). If yB=B-1b0, matrix B is called a feasible basis and the associated vertex x a feasible vertex. The problem now is to find all the feasible vertices.

Note that, in terms of a feasible basis B and an appropriate partition of [A I], system (2) can be written as

B 11 0 N 11 I N 2 B 21 I B 2 N 21 0 x B 1 s B 2 x N 1 s N 2 x B 1 0 , x N 1 0 , s N 2 0 , s B 2 0 = b B 1 b B 2 , (3)

where B=B1 B2=B110B21IB2 with B 11 non-singular, N=N1 N2=N11IN2N210.

Thus, for yN=xN1sN2=0, the vector yB=xB1sB2=B11-1bB1bB2-B21B11-1bB1 solves the system:

B 11 0 B 21 I B 2 x B 1 s B 1 = b B 1 b B 2 , x B 1 0 , s B 2 0 . (4)

The vector yB=xB1sB2=B11-1bB1bB2-B21B11-1bB1 is called a feasible basic solution associated to basis B1B2=B110B21IB2 and the vector x=xB1xN1=B11-1bB10 is the correspondent vertex.

Other vertices of the polyhedron P can be found by finding other feasible bases of matrix [A I].

Proposition 1.Consider system (2) andB=B1B2a feasible basis of matrix [A I], whereB1is submatrix of A andB2.submatriz of I. IfxB1sB2is the feasible basic solution associated to basisB, thenx=xB1xN1=xB10is a vertex of the polyhedron P.

Proof. The proof is straightforward, from the definition of vertex of a polyhedron. □

3 VERTICES ENUMERATION

Associated to a given vertex xP and its associated basis B=B110B21IB2, relation (3) establishes that z=iN1xi+iN2si=0. For any other feasible basis of (3), B~=B~110B~21IB~2, and the respective N~=N~11IN~2N~210, it holds that z=iN~1xi+iN~2si0. Thus, all the other vertices of polyhedron P, as will be seen in Proposition 3, can be found by considering the feasible basis associated to the next linear program (5):

m a x i m i z a r z = i N 1 x i + i N 2 s i B 11 N 11 I N 2 0 B 21 N 21 0 I B 2 x B 1 x N 1 s N 2 s B 2 x B 1 0 , x N 1 0 , s N 2 0 , s B 2 0 = b B 1 b B 2 . (5)

The spirit of the algorithm to be proposed is to enumerate the vertices of P by finding alternative directed paths, composed of vertices and edges of P, from the given initial vertex x (a minimum of (5)), until a final vertex in the solution set (the set of maxima of (5)) or an extreme ray (if P were unbounded); repeating the process as many times as necessary to find all those different paths.

This way, the simplex tableau associated to basis B110B21IB2 for linear program (5) is given permuting columns conveniently, by the matrix T:

T = T i j 0 i m 0 j n + m = x B 1 s B 2 x N 1 s N 2 0 0 T 0 T - 1 - 1 - 1 - 1 B 11 - 1 b B 1 I B 1 0 B 11 - 1 N 11 B 11 - 1 b B 2 - B 21 B 11 - 1 b B 1 0 I B 2 N 21 - B 21 B 11 - 1 B 11 - B 21 B 11 - 1 = d 0 T d 1 T d m T . (6)

At the top of (6), starting at the second column, it is shown the association of the columns of T with the basic variables (xB1 and sB2) and non-basic variables (xN1 and sN2) corresponding to x and s, respectively. The first column of TTi00im corresponds to the value of the objective function of the linear program (5) (T 00 = z = 0) evaluated at the current solution xs and to the value of the basic variables Ti0iB1=xB1=B11-1bB10 and Ti0iB2=sB2=bB2-B21B11-1bB10, respectively. The entries of the first line of T , starting at the second component T0j1jn+m correspond to the reduced costs, of the basic and non-basic variables,associated with the current base of (5).

Note that tableau T is feasible, but not optimal for the linear program (5). Therefore, one can try to improve the value of the objective function by changing adequately the current basis. Since there may be degeneration in tableau T , the change of basis can be carried out by using rules that ensure the finite termination of the Simplex Method, such as, for example, the lexicographic criterion (cf. Blum and Oettli, 1975BLUM E, OETTLI W. 1975. Mathematische Optimierung. Grundlagen und Verfahren. Okonometrie und Unternehmensforschung, 20. Springer-Verlag, Berlin-Heidelberg-New York., Chapter 2) or the Bland’s Rule (Bland, 1977BLAND RG. 1977. New finite pivoting rules for the simplex method. Mathematics of Operations Research, 2: 103-107.). Thus, the generation of new feasible bases, starting from the T matrix, will determine new feasible vertices of polyhedron P.

Both rules cited for the finite termination of the Simplex Method (lexicographic criteria and the Bland rule) are used in the literature to treat degeneration, with advantages and disadvantages: “Bland’s Rule . . . drawback is that your choice of incoming column may not be a very good one”(Dantzig and Thapa, 1997DANTZIG GB & THAPA MN. 1997. Linear Programming 1: Introduction. Springer-Verlag, Berlin., p. 160); “The first and widely used such tool [to ensure finite termination of simplex methods] is lexicographic simplex rule” (Terlaky, 2001TERLAKY T. 2001. Lexicographic Pivoting Rules. In: Floudas C.A., Pardalos P.M. (eds) Encyclopedia of Optimization. Springer, Boston, MA.); “Although [Bland’s Rule] is much simpler than the lexicographic rule, it also usually takes a lot longer for the Simplex algorithm to converge using this rule” (Lewis, 2008LEWIS C. 2008. Linear Programming: Theory and Applications. Whitman College Mathematics Department., p. 37). In this work the lexicographic method will be used. For further discussion of the definitions and proofs set forth here, the reader may search for Blum and Oettli, 1975BLUM E, OETTLI W. 1975. Mathematische Optimierung. Grundlagen und Verfahren. Okonometrie und Unternehmensforschung, 20. Springer-Verlag, Berlin-Heidelberg-New York. (Chapter 2).

Definition 1.Given d,fRn, it is said that

  • (i) d is lexicographically positive, denoted by d ≻ 0, if d ≠ 0 and its first component not zero is positive.

  • (ii) d 0 , i f d 0 d = 0 .

  • (iii) d f , i f d - f 0 .

Since Rn, is a totally ordered set, any finite set diiJRn, with all its elements different, has a single element dio, such that diodi,iJ;dio is called lexicographic minimum of diiJ, and it is denoted by dio=minlexdi,iJ.

Note that rows of matrix T , from the second onwards, are lexicographically positive (i.e., diT0,1im).

Given the current basic variables, xB1 and sB2, which in matrix T correspond to the vector Ti01im, and the reduced costs of non-basic variables, xN1 and sN2, which in matrix T correspond to the vector T0jm+1jn+m=-1,,-1,-1,,-1, the lexicographically pivoting is given by:

(PivLex1) (Rule to determine the non-basic variable that enters the basis) Consider as non-basic variable that enters the basis anyone corresponding to an index p, such that T0p0,m+1pn+m.

(PivLex2) (Rule to determine the basic variable that leaves the basis) Leaves the basis the variable corresponding to index q defined by the lexicographically pivoting, given by

d q T T q p = m i n l e x d i T T i p : T i p > 0 , 1 i m . (7)

If the leaving variable q, (7), cannot be defined (because T i p 0 , i ), then an extreme ray of the feasible set was found.

Thus, a new matrix T is generated, which differs only in a single basic variable of the matrix T. Denoting the set of basic indices associated with matrix T by B, we have that B=B1B2=Bpq, where B1 corresponds to columns of A and B2 to columns of I at the basis.

The simplex method by applying, successively, the rules of lexicographic pivoting is finite (even in the case of degeneration) (Blum and Oettli, 1975BLUM E, OETTLI W. 1975. Mathematische Optimierung. Grundlagen und Verfahren. Okonometrie und Unternehmensforschung, 20. Springer-Verlag, Berlin-Heidelberg-New York., Chapter 2).

The tableau

T = T i j 0 i m 0 j n + m = d 0 T d 1 T d m T , (8)

obtained from tableau T , has the following format:

d i T = d i T - T i p T q p d q T , i q d q T = 1 T q p d q T . (9)

Note that, as in matrix T, diT0,1im; i.e., T is also a feasible tableau for linear program (5) and the associated vertex of polyhedron P is x=xB1xN1=Ti0iB10, with z=d000.

Note that after applied (9), a suitable reordering of the columns of T must be done to keep the first m columns basic, as in (6). From here on, it is assumed that the tables obtained from relation (9) are reordered in the sense indicated.

4 THE VERTICES OF THE LINEAR PROGRAM (5) FEASIBLE SET AND AN ASSOCIATED DIRECTED GRAPH

Consider a directed graph whose vertices are feasible solutions associated with feasible bases of the linear program (5), where two vertices are adjacent if the corresponding bases differ only in a single index and the direction of the edges is determined in the sense that the objective function is not decreasing. Thus, if the bases ℋ and ℱ differ in a single index, the associated vertices are adjacent. If the values of the objective function at the bases ℋ and ℱ are z and z , respectively, and z < z , the edge is directed from the corresponding vertex of ℋ to that of ℱ. Similarly, if z = z , the edge is undirected (or bidirectional).

Remark 1.If Ω and Ω denote the sets of vertices obtained by changing of basis with a non-decreasing objective function, from basesand, it is clear that Ω ⊃ Ω .

Consider a feasible tableau T (r;k,s) , where (r; k, s) means that degeneration will occur by a change of basis, where the non-basic variable r enters and it is removed either basic variable k or s. Matrix (10) shows the format of T (r;k,s) , where basic columns k and s and non-basic column r are stand out.

k r s T r ; k , s = T 00 r ; k , s 0 T 0 r r ; k , s 0 T 0 k r ; k , s 1 T k r r ; k , s 0 T 0 s r ; k , s 0 T s r r ; k , s 1 (10)

If Tkrr;k,s>0 and Tsrr;k,s>0, simple computations show that by introducing the non-basic variable r into the basis and removing variables k and s from the basis, respectively, in table T (r;k,s) , the degenerate feasible tableaus T (k;r,s) and T (s;k,r) are generated. In addition, it is possible to generate, from T (k;r,s) , the tableau T (s;k,r) .and vice versa. Therefore, any of the three tableaus can be obtained from any other. Note that in all cases the value of the objective function is the same.

As consequence, the vertex sets of the polyhedron P, obtained from the tableaux T (k;r,s) and T (s;k,r) are the same. Therefore, to determine the vertices of the polyhedron P, it is sufficient to consider, in the associated graph, only one of the sequences T (r;k,s) and T (k;r,s) or T (r;k,s) and T (s;k,r) .

The following proposition establishes that if a vertex is obtained from another one by lexicographical change of basis associated to linear program (5), then, analogously, that vertex can be obtained from this one by considering minimization instead of maximization in (5).

Proposition 2.If tableau T , given in (6), generates tableauT, from the linear maximization program (5), by the lexicographic pivot rules and by the relations (8) and (9), then T can be generated fromT, from the linear program (5), substituting the maximization process by the minimization process, by lexicographic pivot rules and by relations (8) and (9).

Proof. Consider that T is obtained from T by changing the entering non-basic variable s by the leaving basic variable r. Thus, T is generated from T by replacing the respective columns corresponding to variables s and r by the respective transformed columns defined by lexicographic pivot rules and by relations (8) and (9); i.e.,

T i r 0 i m = T 0 r T 1 r T r r T m r = 0 0 1 0 a n d T i s 0 i m = T 0 s T 1 s T r s T m s = - T 0 s / T r s - T 1 s / T r s 1 / T r s - T m s / T r s . (11)

Note that, by the transformations rules T0s0,drTTrs=minlexdiTTis:Tis>0,1im,drT=1TrsdrT e diT=diT-TisTrsdrT,ir. Additionally, note that column Tir0im corresponds to the the basic variable s and that column Tis0im corresponds to the non-basic variable r.

Consider, now, the linear program (5) as a minimization problem. Note that tableau T is not optimal for this program, because T0s=-T0s/Trs0. Thus, the non-basic variable r, corresponding to the column Tis0im can enter the basis, eventually reducing the value of the objective function.

On the other hand, once the variable that enters the basis is defined, the variable that leaves the basis must be determined by the lexicographic pivot rules; i.e., the variable that leaves the basis corresponds to the one given by minlexdiTTis:Tis>0,1im.

Thus, for ir and Tis=-Tis/Trs>0,diTTis=1-Tis/TrsdiT-TisTrsdrT, we have diTTis=-TrsTisdiT+drT.

Then, since -TrsTis>0, results that diTTisdrT. On the other hand, since drTTrs=1TrsdrT1/Trs=drT we have drTTrs=minlexdiTTis:>0,1im.

Therefore, the variable that leaves the basis is variable r and the new basis corresponds to tableau T . □

Remark 2.Proposition 2 establishes that if vertexvT, (corresponding to tableauT, in the maximization process) is obtained from the vertex vT(corresponding to the table T), by changing the non-basic variable s for the basic variable r, then, reciprocally, the vertex vTcan be obtained from the vertexvT, changing the maximization by minimization, considering (in tableT) as non-basic variable that enters the variable r and using the lexicographic pivot rules. In this sense, Proposition 2 establishes that a vertex, different from the initial one, belongs to the graph if, and only if, it has a predecessor that belongs to the graph.

5 PROPOSED ALGORITHM FOR VERTEX ENUMERATION

The proposed algorithm for vertex enumeration of a polyhedron P=xRn:Axb,x0 is described in this section. It is considered the linear program (5) and it is assumed to be known an initial vertex x=xB1xN1=B11-1bB10, where B110B21IB2 is an associated basis of matrix [A I] and xs, with s=sN2sB2=0bB2-B21B11-1bB1, is a feasible solution of (5). In the following, matrix T is given by (6).

Algorithm 1. Algorithm for vertex enumeration of a polyhedron P.

Step 0. Set

k: = 1 (Current number of found vertices); xk: = x (Current vertex); Vertices: = {xk} (Current set of found vertices);

B :=B1B2 :={Initial basic indexes associated to variables x an s, respectively};

:=N1N2 :={Initial non-basic indexes associated to variables x an s, respectively};

T:= Tableau associated to vertex xk, given by (6);

B^1 :=B1, B^2 := B2, B := B^1B^2 (Current basic indexes); ^^ := ; Bases := B^ (Current set of found bases);

EntraBase: = 0; M := (list to control the found vertices which may possess undiscovered neighbours in the graph); MEntraBase=.

Step 1. (Determination of the non-basic variable p that enters the basis)

If ^^=, STOP. Otherwise, choose p^^ as the index that enters the basis. Set k :=k+1 and ^^ :=^^ \p. Continue.

Step 2. (Determination of the basic variable q that leaves the basis - Determination of a new vertex or an extreme ray as edge of P)

Apply the lexicographic pivot rules (PivLex2) to find the variable q that leaves the basis. If q cannot be found (because Tip0; iB^), go to Step 3 (an extreme ray was found as edge of P).

Otherwise, set B^ :=B^p qand actualizeB^1andB^2, set of basic indexes corresponding to x an s, respectively, so thatB^ :=B^1B^2. If basis B^ Bases, go to Step 3. Otherwise, set Bases :=BasesB^, compute tableau T and vertex y associated to basis B^.

If yVértices, set k :=k+1, xk :=y and Vertices :=Verticesxk. Generate ^ (non-basic indexes associated to basis B^) and ^_ := j^ : T¯0j0. If ^_2, set EntraBase :=EntraBase+1, MEntraBase :=B^; ^; ^_, M :=MMEntraBase and continue.

Step 3. If M=, go to Step 4. Otherwise, for MEntraBase :=B^; ^; ^_, if ^_=, set MEntraBase := and EntraBase :=EntraBase-1. Otherwise, choose p^_, set ^_ :=^_p and MEntraBase :=B^, ^, ^_. Go to Step 2.

Step 4. If k = 2, find, if they exist, all the corresponding optimal vertices of the linear program (5) and save them in the set Vertices. Otherwise, go to Step 1.

Proposition 3. Algorithm 1 is finite and find all the vertices of polyhedron P.

Proof.Algorithm 1 determines for each non-basic variable that enters the basis, at Step 1, a sequence of feasible vertices that ends in a solution of (5), a vertex already found in a previous sequence of vertices or an extreme ray as an edge of P. Thus, since :=N1N2, the initial set of non-basic indexes, at Step 0, is finite, we have that Algorithm 1 is finite.

On the other hand, to prove that all the vertices of polyhedron P are found, suppose that there exists one vertex v0 of polyhedron which was not found by Algorithm 1. Then, because of the Proposition 2 and the Remark 2, there exists a sequence of vertices initiating at v0 and ending at the initial vertex, which is not found by the Algorithm 1. This is a contradiction with the fact that, from the initial vertex, it is possible only to exit through vertices that Algorithm 1 finds. Therefore, all the vertices of polyhedron P are found. □

Algorithm 1, as illustrated in Fig. 2, finds a set of paths from the initial vertex to a final vertex, running through all the vertices of the polyhedron P.

Figure 1
Illustration of polyhedra P0 and P00 , defined from (12) (P00 includes the pyramid EFIJK, but P0 does not).

Figure 2
Illustration of polyhedron P0, showing the known initial vertex I and the sequence of vertices found by the Algorithm 1 (in order: red, blue, green).

6 COMPLEXITY

Here it is discussed the complexity of Algorithm 1. It is considered a polyhedron as given by P=xRn:Axb,x0, where ARm×n and bRm. It is not assumed that P is bounded. To begin, note that Algorithm 1 does not work with the ordinary simplex tableau, but a simplex tableau ordered by format T, given in (6). It is possible to get format T, from an ordinary simplex tableau, in O(m 2) complexity time. Later tables with format T.are obtained, after lexicographic pivoting, with two simple attributions.

It is convenient to begin by estimating the complexicity associated to the set Bases, the bases found by the algorithm. This set is composed by not repited m-vectors, which requires saving them as ordered and compared m-vectors. In that sense, it is only necessary to sort the first basis, because the following ones are obtained by changing one single index (they are, basically, sorted). Thus, the comparison of two basis is obtained in O(m). Since, the cardinality of the Bases is |Bases|, the total number of comparisons is obtained in O(m|Bases| 2)

To compute the complexity associated with the other steps of Algorithm 1, note that it consists of the (main) loop, starting at Step 1 and ending at Step 4 (Step 1-Step 4 loop), in which all the vertices of the polyhedron P are found. At Step 2, lexicographic pivots are performed to compute tableau T from tableau T , under the following considerations:

  • (i) Determination of index pN, which enters the basis. Since |N| = n, the complexity of the determination of all these indices is O(n).

  • (ii) Given pN, it is defined index q ∈ ℬ, which leaves the basis, according to (9), dqTTqp=minlexdiTTip:Tip>0,1im. In the worst case, when all T ip > 0, it should be computed all the vectors diTTip, to find the lexicographic minimum. In this case m comparisons (T ip > 0 are necessary, each one involving the computation of the vector diTTip, which involves (n + 1) operations. Thus, this computation involves m(n + 1) operations. Additionally, since the final computation of minlex could involve, in the worst case, the lexicographic comparison of pairs of vectors in the set diTTipi=1m up to (m - 1) times, and each comparison can take 2n operations, that final computation can demand up to 2n(m - 1) operations. Thus, the maximum number of operations to perform a lexicographic pivoting results:

m n + 1 c o m p u t a t i o n o f d j T / T j p , 1 j m + 2 n m - 1 c o m p a r i s o n s O m n .

This way, each time a lexicographic pivoting is performed, it takes a computational complexity O(mn).

The Step 1-Step 4 loop, in addition to the lexicographic pivot carried out in Step 2, involves, on the one hand, assignments and updates of sets with changes of two indices and, on the other hand, comparisons of sets. Note that comparisons are dominant, in terms of the number of operations, in relation to assignments and updates. So that, the complexity associated with these operations is determined by the comparisons made in Step2: “If basis BBases, go to Step 3”, “If xkVértices, set Vertices:=Verticesxk

Thus, denoting the set of vertices of polyhedron P by V(P), we have VPBasesm+nm, where Bases, defined at Step 0 of Algorithm 1, is the set of feasible basis of linear program (5) found by the algorithm. Note that |V(P)| may be much less than |Bases| and |Bases| much less than m+nm (in the non-degenarate case VP=Bases).

Therefore, the number of bases found by Step 1-Step 4 loop is at most a multiple of |Bases| and each basis found involves a lexicographic pivoting, totaling around mnBasesOmnm+nm operations, where Bases=VP for the non-degenerate case.

Finally, the number of operations associated with Algorithm 1 corresponds to the number of operations associated with lexicographic pivotings plus the complexity associated to the set Bases ( m|Bases| 2). This way, the number of operations associated with Algorithm 1 can be estimated by

m n B a s e s + m B a s e s 2 m n m + n m + m m + n m 2 .

Since m+nm=m+n!m!n!Om+n, then

m n m + n m + m m + n m 2 O m m + n 2 × m i n m , n .

This way, the computational complexity associated with Algorithm 1 for a polyhedron P is Omm+n2×minm,n.

Note, on the other hand, that for the case of non-degenerate polytope P, the number of comparisons to define the set Bases is O(|V(P)|), because if the Algorithm 1 generates L different directed paths initiating at initial vertex.x1, each one of cardinality K i , i = 1, . . .L, then i=1LKLVP, thus, for the first sequence, no comparisons are needed; and, for each one of the other sequences are needed VP-K1++Ki-1,i=2,,L, comparisons. Therefore, the total number of comparisons is i=1L-1VP-j=1iKjOVP and, since each vector is ordered in m comparisons, Bases is generated in O(m|V(P)|). Thus, in the case of non-degenerate polytope P, the computational complexity associated with Algorithm 1 is O(mn|V(P)|).

7 NUMERICAL EXAMPLES

As illustration, in this section, Algorithm 1 is applied to two polyhedra, P0R3 and P00R3 (adapted from Campêlo and Scheimberg, 2005CAMPÊLO M & SCHEIMBERG S. 2005. A Simplex Approach for Finding Local Solutions of a Linear Bilevel Program by Equilibrium Points. Annals of Operations Research, 138(1): 143-157.). The original example constraints are given by the first eight inequalities of relation (12). P0 is given by relations (12) and P00 is given by relations (12) without the ninth constraint x1-2x2+20x38. Figure 1 illustrates the polyhedra P0 and P00. Figure 2 shows the sequence of vertices found by the algorithm for P0, starting from the known vertex I = (1, 1, 0.45).

x 1 + x 2 + x 3 3 B C G F x 1 + x 2 - x 3 1 A D H K - x 1 + x 2 + x 3 1 A B F K x 1 - x 2 + x 3 1 D C G H 16 x 1 - 6 x 2 + 60 x 3 37 F I G 6 x 1 - 16 x 2 + 60 x 3 17 K I H 6 x 1 - 6 x 2 + 60 x 3 27 K I F 16 x 1 - 16 x 2 + 60 x 3 27 G I H x 1 - 2 x 2 + 20 x 3 8 E F I J x 1 0 , x 2 0 , x 3 0 (12)

To apply Algorithm 1 to P0, consider (12) as a set of equalities with nonnegative variables (adding the respective slack variables). This way, P0 is given by a set of 9 equations and 12 nonnegative variables, where the first 3 variables are x 1, x 2 and x 3 and the last 9 ones are the slack variables associated to the respective inequalities (s 1 , . . ., s 9), corresponding to x 4 , . . ., x 12.

To illustrate how Algorithm 1 travels the vertices of the polyhedron, from vertex I, Figure 3 shows non-basic variables, the vertices of P0 which corresponds to the respective bases and the value of the objective function of linear program (5) at the considered vertex. For example, I 0:{9, 11, 12} means that, in the non-basic variables {9, 11, 12} (which define the basic variables {1, 2, 3, 4, 5, 6, 7, 8, 10}), the corresponding vertex is I and that z=iN1xi+iN2si=0. From now on, I 0:{9, 11, 12} and the others analogous notation will be called, indistinctly, as the defined vertex I and the respective defined vertices.

Figure 3
The sequences of vertices found by Algorithm 1 are shown, starting at vertex I. Red, blue and green show the sequences generated when the non-basic variables 9, 11 and 12 enter the basis, respectively. The new vertices found in each sequence are shown in bold. The underlined correspond to the final vertices of the respective sequences (because they are a maximum of (5) or correspond to bases already found).

From the non-basic variables, the lexicographic simplex algorithm is applied to perform basis changes, changing the vertex (or not, if it is degenerate).

Figure 3 shows the mapping performed by the algorithm. The first vertex is the known vertex I (I 0:{9, 11, 12}). Since any one of the 3 non-basic variables can enter the basis, there are 3 different paths: the first one, when variable 9 enters the basis (shown in red in Figure 3); the second one, when variable 11 enters the basis (shown in blue in Figure 3); and the third one, when variable 12 enters the basis (shown in green in Figure 3). A path eventually complements the vertices found by the other paths, as shown in Figure 3.

Algorithm 1 identifies the changes of basis, performing the respective pivotings. Note that the top rectangle in Figure 3 corresponds to I 0:{9, 11, 12}, considering that non-basic variable 9 enter the basis, the red path is initiated, going sequentially to vertex I 0:{8, 11, 12}, F 10:{4, 6, 12}, F 10:{4, 8, 12} and B 97:{3, 4, 6} (the optimal point of linear program (5)). The blue and green paths are generated when, from the initial vertex I 0:{9, 11, 12}, enters the basis the non-basic variables 11 and 12, respectively.

The found vertices, in the order they were found, are: I = (1, 1, 0.45), F = (1, 1.5, 0.5), B = (1, 2, 0), G = (1.75, 1, 0.25), C = (2, 1, 0), J = (0.5833, 0.8750, 0, 4583), E = (0.4762, 1, 0.4762), A = (0, 1, 0), H = (1, 0.25, 0.25), D = (1, 0, 0) (results are shown at Table 1, corresponding to Problem P00).

Table 1
Results of computational tests corresponding to randomly generated polyhedra: m, number of linear inequalities; n, number of non-negative variables; density of matrix A≅1.

As already mentioned, eliminating the ninth constraint at (12), (x 1 2x 2 + 20x 3 8), it is obtained the polyhedron P00 (see Figure 1). The application of Algorithm 1 to polyhedron P00 generates the sequence of vertices: I = (1, 1, 0.45), K = (0.5, 1, 0.5), A = (0, 1, 0), H = (1, 0.25, 0.25), D = (1, 0, 0) , F = (1, 1.5, 0.5), G = (1.75, 1, 0.25), C = (2, 1, 0), B = (1, 2, 0) (results are shown in Table 1, corresponding to Problem P00).

8 COMPUTATIONAL TESTS

Algorithm 1 was coded in Matlab and run for different examples on a desktop with an i5-2400 CPU@3.10GHz processor, 4.00GB RAM (using a single core). Table 1 shows the results corresponding to computational tests run with 55 polyhedra of different sizes, where the number of constraints, m, varies between 8 and 80 and the number of variables, n, between 3 and 30. Except for the first two polyhedra, P0 and P00, which correspond to polyhedron (12) and a modification of it, respectively (see Section 7), for the other 53 polyhedra the coefficient matrices, ARm×n, and the right side vectors, bRm, were randomly generated, with integer coefficients between 1 and 100, in such a way that 0Rm is always a vertex of the generated polyhedron. In all those tests, the density of matrix A is near 1. As expected, Table 1 shows that the number of vertices increases as m and n increase.

Table 2 shows the results corresponding to computational tests run with 45 polyhedra of equal sizes (m = 50, n = 10), randomly generated, where the density (δ) of matrix A varies between 0 and 1. The data corresponds to 5 polyhedra for each one of the indicated density. Note that, except for δ = 1, the mean of bases do not appear to be correlated with the density of the matrix A. For all these cases, the number of bases found ranges between 216 and 736, for δ = 0.40 and δ = 0.70, respectively, with a large standard deviation.

Table 2
Means and standard deviations (std) results of computational tests corresponding to randomly generated polyhedra: m = 50, number of linear inequalities; n = 10, number of non-negative variables; δ , density of matrix A.

The authors tested some popular algorithms to generate a polyhedron from a set of vertices, in different dimensions. Unfortunately, rounding errors and/or processing time did not allow using them for the tests in Table 1. Anyway, all the generated vertices of Table 1 and Table 2 were tested to be vertices of the respective given polyhedron, resulting true.

9 CONCLUSIONS

In this paper it is introduced an algorithm to enumeration of the vertices of a polyhedron P=xRn:Axb,x0, with ARm×n and bRm. The proposed algorithm is based on pivoting and works in any polyhedron, but the polynomial time complexity with respect to the number of vertices is only guaranteed for polytopes. The time complexity for the case of a simple polyhedron is O (mn|V(P)|), where |V(P)| is the number of vertices, and for the case of a general polyhedron the time complexity is Omm+n2×minm,n. The proposed algorithm was coded in Matlab and tested for several different size random examples (see Table 1), showing good performance.

Acknowledgements

The authors thank anonymous reviewers for their valuable comments and for many corrections.

References

  • AVIS D, BREMNER D & SEIDEL R. 1997. How.good. are.convex.hull. algorithms? Computational Geometry: Theory and Applications, 7: 265-301.
  • AVIS D & FUKUDA K. 1992. A Pivoting Algorithm for Convex Hulls and Vertex Enumeration of Arrangements and Polyhedra. Discrete & Computational Geometry, 8: 295-313.
  • AVIS D & JORDAN C. 2018. mplrs: A scalable parallel vertex/facet enumeration code. Mathematical Programming Computation, 10(2): 267-302.
  • BLAND RG. 1977. New finite pivoting rules for the simplex method. Mathematics of Operations Research, 2: 103-107.
  • BLUM E, OETTLI W. 1975. Mathematische Optimierung. Grundlagen und Verfahren. Okonometrie und Unternehmensforschung, 20. Springer-Verlag, Berlin-Heidelberg-New York.
  • CAMPÊLO M & SCHEIMBERG S. 2005. A Simplex Approach for Finding Local Solutions of a Linear Bilevel Program by Equilibrium Points. Annals of Operations Research, 138(1): 143-157.
  • CHAND DR & KAPUR SS. 1970. An Algorithm for Convex Polytopes. Journal of the Association for Computing Machinery, 17(1): 78-86.
  • DANTZIG GB & THAPA MN. 1997. Linear Programming 1: Introduction. Springer-Verlag, Berlin.
  • DYER ME. 1983. The Complexity of Vertex Enumeration Methods. Mathematics of Operations Research, 8(3): 381-402.
  • ENCYCLOPÆDIA BRITANNICA. 2008. Euclid (Greek Mathematician). https://www.britannica.com/biography/Euclid-Greek-mathematician (consulted on July 31, 2008).
    » https://www.britannica.com/biography/Euclid-Greek-mathematician
  • LEWIS C. 2008. Linear Programming: Theory and Applications. Whitman College Mathematics Department.
  • MATHEISS TH, RUBIN D. 1980. A Survey and Comparison of Methods for Finding All Vertices of Convex Polyhedral Sets. Mathematics of Operations Research, 5(2): 167-185.
  • MINOUX M. 1986. Mathematical Programming: Theory and Algorithms. New York: John Wiley.
  • MOTZKIN TS, RAIFFA H, THOMPSON GL, THRALL RM. 1953. The double description method. In: H. W. Kuhn and A. W. Tacker (eds). Contributions to the Theory of Games, Vol. If. Princeton University Press, Princeton, N.J., p. 51-73.
  • NAJT L. 2021. Sampling the vertices of a polytope is still hard even when the branch-width is bounded. https://lorenzonajt.github.io/Documents/Polytope\Paper\Draft.pdf (consulted on December 3, 2021).
    » https://lorenzonajt.github.io/Documents/Polytope\Paper\Draft.pdf
  • PROVAN JS. 1994. Efficient enumeration of the vertices of polyhedra associated with network LP’s. Mathematical Programming, 63: 47-64.
  • REIMERS A & STOUGIE L. 2016. Polynomial time vertex enumeration of convex polytopes of bounded branch-width. arXiv preprint, arXiv:1404.5584v2.
  • TERLAKY T. 2001. Lexicographic Pivoting Rules. In: Floudas C.A., Pardalos P.M. (eds) Encyclopedia of Optimization. Springer, Boston, MA.
  • YANG Y. 2021. https://arxiv.org/abs/1909.11843v2 arXiv:1909.11843v2 [math.OC].
    » https://arxiv.org/abs/1909.11843v2

Publication Dates

  • Publication in this collection
    26 Aug 2022
  • Date of issue
    2022

History

  • Received
    23 July 2021
  • Accepted
    26 May 2022
Sociedade Brasileira de Pesquisa Operacional Rua Mayrink Veiga, 32 - sala 601 - Centro, 20090-050 Rio de Janeiro RJ - Brasil, Tel.: +55 21 2263-0499, Fax: +55 21 2263-0501 - Rio de Janeiro - RJ - Brazil
E-mail: sobrapo@sobrapo.org.br