On the complexity of counting homomorphisms under surjectivity constraints

Given two graphs G and H, a function h that maps the vertices of G to vertices of H is a (graph) homomorphism if h preserves the edges of G, i.e., whenever two vertices u, v of G share an edge then h(u) and h(v) must share an edge in H. For different H, such homomorphisms represent different structures in G, thereby providing a framework that captures some of the most fundamental combinatorial problems studied in computer science and mathematics. One prominent example is the fact that homomorphisms from a graph G to a triangle (three vertices pairwise connected by edges) correspond to proper 3-colourings of G.
Furthermore, counting homomorphisms has close ties to statistical physics and the computation of partition functions. The complexity of computing and approximating homomorphism counts has therefore drawn a lot of attention over the last four decades. One of the most intriguing open problems in this line of research is determining, for every graph H, the complexity of approximately counting homomorphisms to H. In this thesis, we investigate the complexity of several closely related problems.
Our main objective is to establish complete complexity classifications for large classes of graph homomorphism counting problems. The focus is on counting homomorphisms that satisfy additional properties related to surjectivity. Apart from (unrestricted) homomorphisms, we mainly concentrate on:
- (vertex-)surjective homomorphisms,
- compactions (vertex- and non-loop-edge-surjective homomorphisms),
- retractions (also known as pre-colouring extensions or one-or-all list homomorphisms).
The main contributions of this thesis are as follows:
- We give a complete complexity dichotomy for exactly counting surjective homomorphisms. This dichotomy is the same classification that also holds for exactly counting homomorphisms, list homomorphisms and retractions.
- We give a complete complexity dichotomy for exactly counting compactions. Notably, this dichotomy is different from the dichotomy for surjective homomorphisms and shows that exactly counting compactions is actually the hardest'' of the aforementioned exact counting problems.
- We present a collection of approximation-preserving reductions between different homomorphism counting problems. This includes reductions that establish that approximately counting retractions is at least as hard as approximately counting surjective homomorphisms and also at least as hard as approximately counting compactions. In these reductions we use a Monte Carlo sampling algorithm and this appears to be the first time such an approach has been used to obtain approximation-preserving reductions.
- We formalise a framework that can be used to generate #BIS-easiness results for approximately counting homomorphisms and retractions. This framework is based on reduction techniques introduced by Dyer, Goldberg, Greenhill and Jerrum.
- We give a complete complexity trichotomy for approximately counting retractions to all square-free graphs. As a consequence, we present separations between the problem of approximately counting homomorphisms and that of approximately counting retractions, as well as between the problem of approximately counting retractions and that of approximately counting list homomorphisms.
- We present new #BIS-easiness results for approximately counting homomorphisms and thereby settle the complexity of this problem for a rich class of graphs for which it was previously unresolved.
- We give a complete complexity dichotomy for counting homomorphisms modulo 2 to all K4-minor-free graphs. This confirms a conjecture by Faben and Jerrum for this class of graphs. We use novel global hardness gadgets, which can be used to subsume all previously known classifications. We strengthen the hardness results by ruling out subexponential-time algorithms, assuming rETH.

Keywords: Graph homomorphism
Retraction
Counting complexity
Surjective homomorphism
Compaction
Approximate counting
Modular counting
Advisor: Zivny, S
Goldberg, L