We study the problem of computing the rank of a divisor on a finite graph, a quantity that arises in the Riemann-Roch theory on a finite graph developed by Baker and Norine (Advances of Mathematics, 215(2): 766-788, 2007). Our work consists of two parts: the first part is an algorithm whose running time is polynomial for a multigraph with a fixed number of vertices. More precisely, our algorithm has running time O(2^ n n )poly(size(G)), where n+1 is the number of vertices of the graph G. The second part consists of a new proof of the fact that testing if rank of a divisor is non-negative or not is in the complexity class NP intersection co-NP and motivated by this proof and its generalisations, we construct a new graph invariant that we call the critical automorphism group of the graph.
Abstract It is well known that a finite graph can be viewed, in many respects, as a discrete analogue of a Riemann surface. In this paper, we pursue this analogy further in the context of linear equivalence of divisors. In particular, we formulate and prove a graph-theoretic analogue of the classical Riemann–Roch theorem. We also prove several results, analogous to classical facts about Riemann surfaces, concerning the Abel–Jacobi map from a graph to its Jacobian. As an application of our results, we characterize the existence or non-existence of a winning strategy for a certain chip-firing game played on the vertices of a graph.