Counting Vertices of Integral Polytopes Defined by Facets

We present a number of complexity results concerning the problem of counting vertices of an integral polytope defined by a system of linear inequalities. The focus is on polytopes with small integer vertices, particularly 0/1 polytopes and half-integral polytopes.


Introduction
We are interested in counting (or uniformly sampling) vertices of a polytope defined by linear inequalities Ax ≤ b.In particular we concentrate on the sort of polytopes that arise in the study of computational optimisation problems: integral polytopes (convex hulls of finite subsets of N n ) and especially 0/1 polytopes (convex hulls of subsets of {0, 1} n ).We assume that instances are presented as systems of linear inequalities.
Instance: An m × n integer matrix A ∈ Z m×n and a vector b ∈ Z m .
Promise: The inequalities Ax ≤ b define a 0/1 polytope P .
Output: The number of vertices of P .
It is not clear whether it is possible to decide, in polynomial time, if a given system of linear inequalities defines a 0/1 polytope.Papadimitriou and Yannakakis [16] have proved that deciding integrality of general polytopes is co-NP-complete, but the restiction to the 0/1 case may be easier.By combining several technically involved results, Ding et al. [6] show that integrality of the polytope {x ∈ R n : Ax ≤ b, x ≥ 0} can be decided in polynomial time, in the case where A is a 0/1 matrix and b = 1.Given the uncertainty surrounding this question, it seems reasonable to add the promise that P is a 0/1 polytope.Note that checking that a polytope P is 0/1 essentially reduces to checking that P is integral, as containment of P in the cube [0, 1] n can be tested efficiently by linear programming.
In cases of interest, the matrix A and vector b will not be arbitrary, but will have been introduced with a certain goal in mind.The insights that led to their construction can almost certainly be used to provide an elementary proof of integrality of P .Furthermore, except in Section 5, the matrix A will be 'totally unimodular', and hence will necessarily define an integral polytope.Total unimodularity is decidable in polynomial time using Seymour's decomposition theorem for regular matroids [19]: see Truemper [21].
Our first observation is that #Vertices of a 0/1 Polytope is hard to solve exactly.This follows easily by encoding perfect matchings in bipartite graphs as vertices of a 0/1 polytope.A proof of this easy result can be found at the end of this section.Proposition 1. #Vertices of a 0/1 Polytope is #P-complete.
In light of this strong negative result, we naturally turn our attention to approximate counting.Before presenting our results, we briefly review the main definitions and concepts used in the study of approximation algorithms for counting problems.The reader is directed to Dyer, Goldberg, Greenhill and Jerrum [7] for precise definitions and a survey of the wider context.
The standard notion of efficient approximation algorithm in the context of counting problems is the Fully Polynomial Randomised Approximation Scheme, or FPRAS.This is a randomised algorithm that is required to produce a solution within relative error 1 ± ε,1 with probability at least 34 ,2 in time polynomial in the instance size and ε −1 .A deterministic algorithm that achieves the same end without error is called a Fully Polynomial Time Approximation Scheme or FP-TAS.The computational complexity of approximate counting problems can be compared through Approximation-Preserving (or AP-) reductions.These are polynomial-time Turing reductions that preserve (closely enough) the error tolerance. 3The set of problems that have an FPRAS is closed under AP-reducibility.
Stockmeyer [20] was the first to produce evidence that approximate counting is of lower computational complexity than exact counting.This key insight was refined by Valiant and Vazirani [23,Cor. 3.6], who showed that every function in #P can be approximated (in the FPRAS sense) by a polynomial-time Turing machine with an oracle for an NP-complete problem.Therefore the strongest negative result we can have for approximate counting is one of NP-hardness.An example of such a maximally hard problem is #IS, which asks for the number of independent sets of all sizes in a general graph.It follows that the existence of an FPRAS for #IS would imply RP = NP, and the existence of an FPTAS would imply P = NP.An NP-hard problem concerning polytopes is given in the next section.
Many counting problems are known to have an FPRAS and many others to be NP-hard to approximate.An interesting empirical observation is that many of the rest are interreducible via approximation-preserving reductions.One member of this equivalence class is #BIS, which asks for the number of independent sets of all sizes in a bipartite graph.
Output: The number of independent sets (of all sizes) in B.
After two decades of fairly intensive study, no FPRAS for #BIS has been discovered, but neither has #BIS been shown to be NP-hard to approximate.So showing that a counting problem Π is approximation-preserving interreducible with #BIS can be interpreted as evidence that Π does not admit an FPRAS, though the evidence falls short of a demonstration of NP-hardness.An example involving 0/1 polytopes is presented in Section 3.
Khachiyan [11] showed that approximately counting vertices of general polytopes presented as linear inequalities is NP-hard, a result rediscovered by Najt [15].As we just saw, this is the strongest possible demonstration of intractability.However, the vertices of the polytopes employed in the proof have rational coordinates, which, if rescaled to integers, would be exponential in the dimension of the ambient space.Our aim in this work is to find hard examples in small integers.
Ultimately, we would like to characterise the complexity of computing approximate solutions to #Vertices of a 0/1 Polytope.We have not been able to establish the strongest intractability result, which would be a demonstration of NP-hardness.The typical approach of showing NPhardness for an approximate counting problem is to reduce from a combinatorial optimisation problem.However, the combinatorial optimisation problem related to a 0/1 polytope is often tractable, which makes showing NP-hardness difficult.
Instead, we are able to obtain an NP-hardness result by relaxing the allowed problem instances from 0/1 polytopes to 'half-integral' polytopes whose vertices are elements of {0, 1, 2} n .(More conventionally, these polytopes are scaled by a factor 2, so as to have vertices in {0, 1  2 , 1} n .)This negative result relates to a natural family of 'perfect 2-matching polytopes' associated with graphs.See Proposition 2.
What can be said about the complexity of #Vertices of a 0/1 Polytope itself?The most prominent class of matrices defining integral polytopes are the totally unimodular matrices.These are matrices A that have the property that every square submatrix of A has determinant −1, 0 or 1.(In particular, the elements of A take values in {−1, 0, 1}.)Many 0/1 polytopes arising in combinatorial optimisation arise from totally unimodular matrices.Network matrices and transposes of network matrices are natural subclasses of totally unimodular matrices that will be defined in Section 3. In some sense, these matrix classes are universal in that every totally unimodular matrix can be built from network matrices, transposes of network matrices, and a certain 5 × 5 matrix.
In Section 3, we show (Theorem 7) that #Vertices of a 0/1 Polytope, when restricted to transposes of network matrices, is interreducible with #BIS with respect to approximationpreserving reductions.This locates this special case of the problem as accurately as possible, given the current state of knowledge of the complexity landscape.When restricted to network matrices, #Vertices of a 0/1 Polytope appears to be become easier, and we identify a subclass of polytopes (Proposition 9) for which the vertex counting problem is solvable in the FPRAS sense.We leave it as an open question whether there is an FPRAS for #Vertices of a 0/1 Polytope when restricted to network matrices more generally.
In the final section we go beyond totally unimodular matrices.Here, there are fewer examples in the literature, but we do note that at least one naturally occurring class of polytopes, arising from 'stable matchings', has been shown to give rise to a vertex counting problem that is interreducible with #BIS.This raises the intriguing possibility that #Vertices of a 0/1 Polytope itself is actually equivalent in complexity to #BIS.
The complexity of approximate counting and (almost) uniform sampling are usually closely related, and this is indeed the case here.For simplicity we concentrate throughout on approximate counting, but the corresponding uniform sampling problems have essentially the same complexity.This follows by general considerations [10] from the fact that #Vertices of a 0/1 Polytope and all the restrictions of it considered here are self-reducible.We expand on this remark at the end of Section 3.
Mihail and Vazirani [14] conjectured that the simple random walk on the graph of a 0/1 polytope is rapidly mixing.This conjecture remains open, though it has been shown to hold in important special cases, for example, the polytope defined by the bases of a matroid [1].Note that this conjecture, if true, does not directly imply an FPRAS for #Vertices of a 0/1 Polytope, because the degree of the vertices can be exponentially large in the dimension of the ambient space.The stationary distribution of the random walk over graphs of 0/1 polytopes can be very different from the uniform distribution.
Although we restrict attention to complexity-theoretic results in this work, it should be noted that several authors have studied heuristic approaches, including Avis and Devroye [2] and Salomone, Vaisman and Kroese [17].We round off the section with the deferred proof.
Proof of Proposition 1. Membership in #P is clear.
To demonstrate hardness, we simply show that #Vertices of a 0/1 Polytope includes counting perfect matchings in a bipartite graph as a special case.Suppose G is a bipartite graph, and denote the vertex and edge sets of G by V (G) and E(G).Introduce variables {x uv : uv ∈ E(G)} in 1-1 correspondence with the m edges of G. Consider the m-dimensional perfect matching polytope P PM (G) of G, whose vertices are in bijection with the perfect matchings of G. Specifically, for each perfect matching M ⊆ E(G) of G there corresponds a vertex of P PM (G) given by for all uv ∈ E(G).In the case that G is bipartite, the polytope P PM (G) is defined by the following inequalities [18,Thm 18.1]: x uv = 1, for all u ∈ V (G).
Thus, counting perfect matchings in a bipartite graph can be reduced to counting vertices of an easily computable and easily described polytope.The result follows from Valiant's classical result that counting perfect matchings in a bipartite graph is #P-complete [22].

The perfect 2-matching polytope
In this section we see that by going a little beyond 0/1 polytopes we can find counting problems that are NP-hard to approximate.Given a graph G, the perfect 2-matching polytope (P2M polytope) is defined by the system of linear inequalities Let Z P2M (G) be the number of vertices of the P2M polytope associated with G.We will show that approximating Z P2M (G) is NP-hard.
Recall that an edge cover of a graph is a set C of edges such that any vertex is incident to some edge e ∈ C. Balinski [3] observed the following characterisation of the vertices of the P2M polytope.(See also Schrijver [18,Cor. 30.2b] together with the observation at the end of [18, §30.3].)Proposition 2. The vertices of the P2M polytope correspond to edge covers consisting of a matching M , with x e = 2 for e ∈ M , and vertex-disjoint odd cycles that are also vertex-disjoint from M , with x e = 1 for each edge e in any of the odd cycles.Theorem 3. The problem of estimating Z P2M (G) with constant relative error is hard for NP with respect to polynomial-time reducibility.Thus, there is no FPRAS for Z P2M (G) unless RP = NP and no FPTAS unless P = NP.
Proof.We call edge covers corresponding to the vertices of the P2M polytope, as in Proposition 2, P2M covers, and call edge covers of G consisting of vertex-disjoint odd cycles without a matching odd cycle covers.We denote the number of odd cycle covers of G by Z OC (G).By definition, the number of P2M covers is Z P2M (G).
First we reduce deciding the existence of a Hamiltonian path between two given vertices in a bipartite graph to deciding the existence of an odd cycle cover in a general graph.The former problem is known to be NP-complete [13].(The given reference treats the Hamilton cycle problem, but essentially the same reduction deals with paths.)Let G be a bipartite graph with two distinguished vertices s and t on opposite sides of the bipartition.We introduce a new vertex w, and add two edges sw and wt.Call the resulting graph G ′ .Any odd cycle in G ′ must include the new vertex w, as G ′ − w is bipartite.It follows that any odd cycle cover of G ′ must consist of a Hamiltonian path in G from s to t, together with the two edges incident at w. Conversely, any Hamiltonian path in G from s to t can be extended to an odd cycle cover of G ′ by adding edges sw and wt.Thus, deciding the existence of an odd cycle cover of a graph is NP-complete.
Next we reduce deciding the existence of an odd cycle cover to approximating the number of P2M covers.For the reduction, we use the gadget in Figure 1 to reduce the contribution from the matching (isolated edges).Note that the parameter ℓ will be tuned later.Let G be an instance for odd cycle covers.Replace each edge uv ∈ E(G) with a copy of the gadget, and consider any P2M cover in the resulting graph G ′ .The possible configurations induced by this cover on the gadget with end points u and v can be partitioned into three types (see Figure 2): There is a path from u to v together with some isolated edges.Note that there are two choices for the path in each hexagon.

• Type M[atched]
. There is no path from u to v, but u and v are both covered (by isolated edges).Note that there are two choices in every other hexagon, starting from the first hexagon (counting from u).

• Type U[nmatched]
. There is no path from u to v, and u and v are both uncovered.Note that there are two choices in every other hexagon, starting from the second hexagon (counting from u).
Note that this list is exhaustive, since it is impossible to match exactly one of u, v.If there are 2ℓ hexagons in the gadget then there are 4 ℓ configurations of Type P, 2 ℓ of type M and 2 ℓ of type U.
Let's return to the P2M cover of G ′ .The edges in G corresponding to Type P configurations in G ′ form a collection of disjoint odd cycles in G. (Note that the path in a Type P configuration is of odd length.)Moreover the edges of G corresponding to Type M configurations form a collection of isolated edges, which are disjoint from the odd cycles.Finally, the collection of all odd cycles and isolated edges described above cover all the vertices of G, and hence form a P2M cover of G. Conversely, any P2M cover in G can be lifted to a P2M cover of G ′ by choosing a Type P configuration in G ′ for every cycle edge of G, a Type M configuration in G ′ for every isolated edge in G, and a Type U configuration for every other edge of G. Suppose the P2M cover of G has k cycle edges, and hence m − k other edges, where m = |E(G)|.Then the number of P2M covers in G ′ that correspond to this particular P2M cover in G is 4 ℓk 2 ℓ(m−k) = 2 ℓm 2 ℓk .Thus, for sufficiently large ℓ, we expect Z P2M (G ′ ) 2 ℓm 2 ℓn to be a good approximation to Z OC (G), where n = |V (G)|.To be more specific, we will choose ℓ ≥ m + 2. The discussion above implies that Z P2M,n (G ′ ) = 2 ℓm 2 ℓn Z OC (G), where Z P2M,k (G ′ ) denotes the number of P2M covers of G ′ with k edges of the Type P. Note that Suppose we want to decide whether Z OC (G) is zero or non-zero, and that we have available an approximation There are two cases.
Thus we have the desired reduction from an NP-complete decision problem (Hamiltonian path) to the problem of approximating the number of P2M covers in a graph within relative error 2. It follows immediately that the existence of a FPTAS for Z P2M (G) would imply P = NP.Under the weaker assumption that an FPRAS exists, we could, with probability at least 3  4 , correctly decide an NP-complete problem.Thus, any problem in NP could be solved in polynomial time by a randomised algorithm with two-sided error or, formally, NP ⊆ BPP.It is a standard fact that this last inclusion implies RP = NP.
The 'powering' construction (Figure 1) used here is similar to those used in a similar context by Khachiyan [11] and Najt [15], and more generally by Jerrum, Valiant and Vazirani [10].

Transposes of network matrices
As we noted, one way to specify a 0/1 polytope is by giving a system of linear inequalities Ax ≤ b where the matrix A is totally unimodular.Network matrices and their transposes are interesting subclasses of totally unimodular matrices.In some sense, network matrices and their transposes, together with a certain 5 × 5 matrix, generate all totally unimodular matrices [21].We begin by defining the class of network matrices.
Suppose we have a directed graph (V, E) and a directed tree (V, T ) on the same vertex set.(The orientations of the arcs of the tree are arbitrary, and do not necessarily point towards a specific root vertex.It is convenient to allow parallel arcs in the graph (V, E).)Given an arc e = uv ∈ E and an arc t ∈ T , let Π be the path from u to v in T .Then define the |T | × |E| matrix A by +1, if t occurs in a forward direction in Π; −1, if t occurs in a backward direction in Π; 0, otherwise.
The matrix A is the network matrix generated by (V, E) and (V, T ).An integer matrix is said to be a network matrix if it is generated in this way.
Proposition 4. Any network matrix is totally unimodular.
See [18,Thm 13.20] for a proof.Of course the transpose of a network matrix is also totally unimodular.The following easy lemma will be useful.Amongst other things, it tells us that if we have a system of inequalities defined by network matrix, or the transpose of a network matrix, then we can freely add additional bounds such as 0 ≤ x ≤ 1. Lemma 5.The property of being a network matrix is preserved under the following operations: (a) duplicating a row or a column; (b) negating a row or a column; (c) extending the matrix with a unit row or column (one which has a 1 in a single location and zeros elsewhere).
Proof.Let A be a network matrix defined by the directed graph (V, E) and directed tree (V, T ).Recall that rows of A correspond to tree arcs t ∈ T and columns to graph arcs e ∈ E. It is easy to check that these actions have the desired effect on the matrix A.
So now consider a 0/1 polytope P defined by inequalities Ax ≤ b where A is the transpose of a network matrix.Let us consider the defining equations of the facets of P in terms of (V, E) and (V, T ).The arcs in T correspond to variables and those in E to (left-hand sides of) inequalities.Let uv ∈ E be an arc in the graph.The variables that occur in the corresponding inequality are the ones encountered when tracing out the unique path from u to v in (V, T ).The coefficient of a variable is +1 or −1 depending on whether the arc in the tree is aligned with or against the direction of the path.
Example 6 (independent sets in a bipartite graph).Let B = (U • ∪ U ′ , F ) be a bipartite (undirected) graph, where U = {u 1 , . . ., u n } and U ′ = {u ′ 1 , . . ., u ′ m } are the parts of the bipartition of the vertex set.We encode the independent sets in B as vertices of a polytope defined by the transpose of a network matrix.As above, we specify this matrix by giving the graph (V, E) and tree (V, T ).
Introduce a new vertex r, and let V = U ∪ {r} ∪ U ′ and T = {u i r : 1 ≤ i ≤ n} ∪ {ru ′ j : 1 ≤ j ≤ m}.Let the arc set E be obtained from F by simply orienting all edges in F from U to U ′ .Each arc u i r ∈ T (respectively, ru ′ j ∈ T ) corresponds to a variable x i (respectively, y j ).Consider the network matrix A defined by (V, E) and (V, T ).Each inequality in T (x 1 , . . ., x n , y 1 , . . ., y m ) T ≤ 1 is of the form x i + y j ≤ 1 for some u i u ′ j ∈ F .Then we add the inequalities 0 ≤ x i , y j ≤ 1 for every i ∈ [n] and j ∈ [m], which can be done while maintaining the defining matrix to be the transpose of a network matrix, by Lemma 5(c).These inequalities define the independent (or stable) set polytope of the bipartite graph B [18,Thm. 19.7].This fact also follows easily from total modularity of the system of inequalities, which itself follows from Proposition 4.
Our goal in this section is to precisely locate the complexity of #Vertices of a 0/1 Polytope, when the matrix A is the transpose of a network matrix.For the upper bound (which is the non-trivial direction) we use an approximation-preserving reduction to the following problem.

Problem. #1p1nSAT.
Instance.A CNF Boolean formula ϕ in which each clause contains at most one positive literal and at most one negative literal.
Output.The number of satisfying assignments of ϕ.
In the following theorem we may assume, by Lemma 5 that the matrix A incorporates the constraints 0 ≤ x ≤ 1.In light of Proposition 4, this provides the promise demanded by #Vertices of a 0/1 Polytope.Theorem 7. When A is restricted to be the transpose of a network matrix, the problem #Vertices of a 0/1 Polytope is equivalent under polynomial-time approximation-preserving reductions to #BIS.
Proof.We have just seen in Example 6 that #BIS is essentially a special case of #Vertices of a 0/1 Polytope, so we just need to describe a polynomial-time approximation-preserving reduction from #Vertices of a 0/1 Polytope to #1p1nSAT in the case that A is the transpose of a network matrix.The reduction exploits a construction from Chen, Dyer, Goldberg, Jerrum, Lu, McQuillan and Richerby [5,Lem. 46].
Let the polytope P be an instance of #Vertices of a 0/1 Polytope defined by a matrix A and vector b, where A is the transpose of a network matrix.Suppose in turn that A is specified by the directed tree (V, T ) and directed graph (V, E) on the common vertex set V .Recall that variables are associated with arcs in T , thus: {x t : t ∈ T }.Choose an arbitrary root r ∈ V as reference point.The first step is to make a change of variables.Introduce a new set of variables {z v : v ∈ V }, and define z r = 0 and z v − z u = x t for all t = uv ∈ T .Thus where (r = v 0 , v 1 , . . ., v ℓ = v) is the path from r to v in the tree, and the coefficient ε v i−1 v i associated with the ith term is +1 if arc v i−1 v i is traversed in the forward direction and −1 otherwise.Note that the variables {x t : t ∈ T } determine the variables {z v : v ∈ V } and vice versa.We now observe that the inequality L e (x) ≤ b e defined by an arc e = uv ∈ E takes the simple form z v − z u ≤ b e , when transformed to the new variables.By definition, where (r = u 0 , u 1 , . . .u k = u) is the path from r to u in T , and the signs are determined by the directions of the arcs.Suppose u h = v h is the lowest common ancestor of u and v in T .Subtracting (3) from ( 2), where the second equality results from cancellation along the common segment of the paths (u 0 , . . ., u h ) = (v 0 , . . ., v h ), and the third from reversing the arcs along the subpath (u h , . . ., u k ).
(We view the variable x uv as being associated with the undirected edge uv, so x uv and x vu denote the same variable.)But the final line above is just the left-hand side L e (x) of the linear inequality defined by the arc e = uv ∈ E. Thus, in the new variables, the inequality reads as clauses within an instance ϕ of #1p1nSAT.
To do this, introduce Boolean variables {ζ i v : v ∈ V and − n < i ≤ n} and start to build an instance ϕ on this variable set by introducing clauses , so has the correct syntactic form.Also note that for each v ∈ V there are 2n + 1 consistent assignments to the variables (0, 0, 0, . . ., 0, 0), (1, 0, 0, . . ., 0, 0), (1, 1, 0, . . ., 0, 0), . . .where we associate false with 0 and true with 1.We use these Boolean assignments to encode integer assignments in the range {−n, . . ., +n} to z v via the correspondence Note that, by construction, for all v ∈ V , This completes the construction of the instance ϕ of #1p1nSAT.We see that the number of satisfying assignments to ϕ is equal to the number of feasible solutions to the z-inequalities, which in turn is equal to the number of vertices of the polytope P .The reduction is parsimonious (i.e., preserves the number of solutions) and hence is certainly approximation preserving.
We finish section by noting that counting problems associated with 0/1 polytopes are selfreducible, in the sense that the set of vertices of a 0/1 polytope P can be expressed as the union of the vertices of two lower-dimensional polytopes P 0 and P 1 obtained by intersection with planes of the form x n = 0 and x n = 1.For all the counting problems considered here, the polytopes P 0 and P 1 come from the same class of polytopes as P .This is an easy observation for general 0/1 polytopes, and follows from Lemma 5 for polytopes defined by (transposes of) network matrices.For self-reducible problems, approximate counting and (almost) uniform sampling are related by polynomial-time reductions, as observed by Jerrum, Valiant and Vazirani [10].

Network matrices
Now consider the defining equations Ax ≤ b of a polytope P when A is a network matrix.Relative to the previous section, the roles of variables and equations are reversed.Variables now correspond to arcs in E and equations to arcs in T .Fix a tree arc t ∈ T and define t = e = uv ∈ E : the path from u to v passes through t is the forward direction , F − t = e = uv ∈ E : the path from u to v passes through t is the backward direction , where the paths in question are paths in the tree (V, T ).Then the inequality defined by the arc t is We are interested in the polytope defined by the system {L t ≤ b t : t ∈ T }.
Example 8 (The matching polytope for a bipartite graph).Given a bipartite graph B = (U • ∪U ′ , F ) where |U | = |U ′ | = n, we set up the same directed graph (V, E) and tree (V, T ) as in Example 6 for #BIS.For each edge u i u ′ j ∈ F of B we introduce a variable x ij and associate it with the arc u i u ′ j ∈ E. Now, the inequality associated with arc u i r ∈ T (respectively, ru ′ j ∈ T ) of the directed tree has the form j:ij∈F x ij ≤ c (respectively, i:ij∈F x ij ≤ c).The defining inequalities the matching polytope of B are obtained by setting c = 1 for all edges u i u j ∈ F , and adding the inequalities x ij ≥ 0 for all i, j ∈ [n].To obtain the perfect matchings polytope, we simply include an inequality j:ij∈F x ij ≥ 1 (respectively i:ij∈F x ij ≥ 1) complementary to each inequality j:ij∈F x ij ≤ 1 (respectively i:ij∈F x ij ≤ 1).By Lemma 5, the matrix A defining this augmented set of inequalities is still a network matrix.The polytope defined by these inequalities is the (perfect) matching polytope of the graph B [18, Cor.18.1b]; its vertices correspond to (perfect) matchings in B. This fact also follows easily from total unimodularity of the matrix A. Now imagine that, for each arc e = uv ∈ E, we route f e units of flow from u to v in the tree T .The total flow through tree arc t ∈ T is then So we can think of the vertex counting problem in terms of integer flows in a network defined on (V, ← − E ∪ T ).Arcs in E are reversed (denoted ← − E ) and have a lower bound of 0 and an upper bound of 1. Arcs in T have upper bounds defined by the right-hand sides of the inequalities; thus arc t ∈ T has an upper bound of b t .An integer flow in the network is an assignment of integers (flows) to the arcs ← − E ∪ T that satisfies conservation of flow at the each of the vertices in V , and that respects the bounds on each edge.
We claim that integer flows in the above network are in bijection with 0/1 points in the polytope P = {x : 0 ≤ Ax ≤ b}.So if P is known to be a 0/1 polytope then the integer flows are in bijection with the vertices of P .Given a 0/1 assignment to the variables {x uv : uv ∈ E} we construct a flow by forcing x uv units of flow through the arc vu ∈ ← − E .This causes L t (x) units of fluid to flow through tree arc t ∈ T .The resulting flow is legal if and only if x ∈ P .Also, the above construction clearly gives a bijection between 0/1 points x and legal integer flows in the network.Unfortunately, we don't know an FPRAS for integer flows at this level of generality.However, we do have a positive result for a special case.Proposition 9.There is an FPRAS for the following problem: Given a network matrix A, together with a promise that P = {x : 0 ≤ Ax ≤ 1} is a 0/1 polytope, return the number of vertices of P .
As before, in light of Lemma 5 we may discharge the promise by adding extra constraints 0 ≤ x ≤ 1 to the system Ax ≤ b.
Proof of Proposition 9. Observe that applying the above construction yields a network in which each arc has capacity 1.In the case of arcs in ← − E , this is by construction.Arcs in T have lower bound 0 arising from the inequality Ax ≥ 0, and upper bound 1 from the inequality Ax ≤ 1.
In directed graphs where all arcs have capacity 1, Jerrum, Sinclair and Vigoda [9,Cor. 8.2] show that the number of integral flows can be obtained by reduction to counting perfect matchings in a bipartite graph, for which there is an FPRAS.Note that since P is a 0/1 polytope, all 0/1 points in P are actually vertices of P .
There seems to be no strong reason to doubt that counting flows in networks with more general bounds admits an FPRAS.However, it appears that this extension of the known FPRAS for counting perfect matchings would require new ideas.Note that using network matrices we can encode problems such as b-matchings and b-edge covers in bipartite graphs.A b-matching (respectively, b-edge cover ) of a graph is an edge subset that covers each vertex at most (respectively, at least) b times.For these problems, we have efficient approximation algorithms for some b but not in general: see Huang, Lu and Zhang [8].
Problem 10.Is there an FPRAS for #Vertices of a 0/1 Polytope, subject only to the restriction that A is a network matrix?

Beyond totally unimodular matrices
Many integral polytopes arising in combinatorial optimisation arise from totally unimodular matrices.In fact, unimodular matrices are the only ones with the property that the polyhedron defined by Ax ≤ b is integral for all choices of the integral vector b.However, if we consider A and b together, it can happen that the pair (A, b) defines an integral polytope even when A is not totally unimodular.Since we have not so far discovered any family of 0/1 polytopes whose vertex-counting problem is harder than #BIS, it is tempting to look beyond totally unimodular.
A known class of integral polytopes arise from 'Totally Dual Integral' (TDI) pairs (A, b) [18, §5.17].A fascinating example is provided by the stable matching polytope of a bipartite graph, which is defined by a natural system of polynomially many inequalities [24].The defining matrix A is apparently not totally unimodular, but the linear system (A, b) was shown to be TDI by Király and Pap [12].Intriguingly, Chebolu, Goldberg and Martin [4] have shown that the problem of counting stable matchings (and hence the vertices of the stable matching polytope) is interreducible with #BIS via approximation-preserving reductions.So, again, we do not manage to get beyond #BIS.This raises the question of whether the vertex counting problem considered here is #BIS-easy.
Problem 11.Is #Vertices of a 0/1 Polytope approximation-preserving reducible to #BIS in general?

Figure 1 :
Figure 1: The hexagon gadget, with 2ℓ hexagons in the middle.

Figure 2 :
Figure 2: Three types of covers (coloured in red) for the gadget.

( a )
To duplicate a row indexed by arc t = uv ∈ T , introduce a new vertex w and set T := T ∪ {uw, wv} \ {uv}.To duplicate a column indexed by arc e ∈ E, introduce a new arc e ′ parallel to e.(b) To negate a row indexed by t, reverse the direction of arc t ∈ T .To negate a column indexed by e, reverse the direction of arc e ∈ E. (c) To introduce a new row with a 1 in the column indexed by e = uv ∈ E, introduce a new vertex w and set E := E ∪ {uw} \ {uv} and T := T ∪ {vw}.To introduce a new column with a 1 in the row indexed by t = uv ∈ T , introduce a new arc uv to E.
integer solutions to the system of equations {z v − z u ≤ b e : uv = e ∈ E} are in bijection with integer (and hence 0/1) solutions to {L e (x) ≤ b e : e ∈ E}, which in turn are in bijection with the vertices of polytope P .(Note that 0/1 points lying in P are necessarily vertices of P .)So it just remains to encode the inequalities z r = 0 and z v − z u ≤ b e , for e = uv ∈ E