The Riemann-Roch Theorem is a powerful tool in complex analysis and algebraic geometry for determining the dimension of the space of meromorphic functions with prescribed zeroes and allowed poles. It relates the notions of rank and degree of divisors with the topological genus of the corresponding surface.
Baker and Norine have recently proven an analogue result for graphs using purely combinatorial ideas. Their proof has been also extended to tropical curves. The aim of this master thesis is to first investigate the computational complexity of the problem of calculating the rank of a given graph. Secondly we are working on generalising the Baker-Norine's theorem to other contexts. As the number of spanning trees of a given graph is the order of the Picard group, we are also interested in computing the canonical factorization of the latter as its group structure could provide information about the topology of the graph. Applications are related to chip-firing games and harmonic analysis on graphs and tropical curves.