Counting list matrix partitions of graphs (1306.5176v3)
Abstract: Given a symmetric D*D matrix M over {0,1,*}, a list M-partition of a graph G is a partition of G's vertices into D parts associated with the rows of M. The part of each vertex is chosen from a given list so that no edge of G maps to a 0 in M and no non-edge of G maps to a 1 in M. Many important graph-theoretic structures can be represented as list M-partitions, such as graph colourings, split graphs and homogeneous sets and pairs, which arise in the proofs of the weak and strong perfect graph conjectures. There has been quite a bit of work on determining for which matrices M computations involving list M-partitions are tractable. We focus on counting list M-partitions, given a graph G and a list for each vertex of G. We identify a set of "tractable" matrices and give an algorithm that counts list M-partitions in polynomial time for every (fixed) matrix M in this set. The algorithm uses data structures such as sparse-dense partitions and subcube decompositions to reduce each instance to a sequence of instances in which the lists restrict access to portions of M in which the interaction of 0s and 1s is controlled. We solve the resulting restricted instances by converting them into counting constraint satisfaction problems (#CSPs) which we solve using arc-consistency. For every matrix M for which our algorithm fails, we show that counting list M-partitions is #P-complete. Further, we give an explicit characterisation of the dichotomy theorem: counting list M-partitions is in FP if M has a structure called a derectangularising sequence; otherwise, counting list M-partitions is #P-hard. We show that the meta-problem of determining whether a given matrix has a derectangularising sequence is NP-complete. Finally, we show that lists can be used to encode cardinality restrictions in M-partitions problems and use this to give a polynomial-time algorithm for counting homogeneous pairs in graphs.