Proceedings of the 22nd Annual ACM-SIAM Symposium on Discrete Algorithms, 1166–1176, 2011.
Let G be a directed graph with weighted edges, embedded on a surface of genus g with b boundaries. We describe an algorithm to compute the shortest directed cycle in G in any given Z2-homology class in 2O(g+b)n log n time; this problem is NP-hard even for undirected graphs. We also present two applications of our algorithm. The first is an algorithm to compute the shortest non-separating directed cycle in G in 2O(g+b)n log n time, improving the recent algorithm of Cabello et al. [SOCG 2010] for all g=o(log n). The second is a combinatorial algorithm to compute minimum (s,t)-cuts in undirected surface graphs in 2O(g)n log n time, improving an algorithm of Chambers et al. [SOCG 2009] for all positive g. Unlike earlier algorithms for surface graphs that construct and search finite portions of the universal cover, our algorithms use another canonical covering space, called the Z2-homology cover.