We give a randomized algorithm for Directed Hamiltonian Cycle on $n$-vertex directed graphs that runs in $O^*(1.9133^n)$ time. For general directed graphs, this is the first improvement in the exponential base over the classical $O(2^n n^2)$-time algorithms of Bellman and Held--Karp (1962). To obtain this improvement, we reduce Hamiltonicity to weighted parity counting using the isolation lemma of Mulmuley, Vazirani, and Vazirani (STOC 1987). If a Hamiltonian path from $s$ to $t$ exists, assigning random polynomially bounded integer weights to the arcs gives a unique minimum-weight Hamiltonian path from $s$ to $t$ with constant probability. In particular, the path count at its total weight is odd. To compute these parities, we give a $(2-2^{-d})^n n^{O(1)}$-time algorithm for instances in which the arcs entering each vertex have at most $d$ distinct polynomially bounded integer weights. The algorithm applies the random linearization idea of Arvind and Guruswami (IPEC 2021) to the Laplacian determinant construction of Björklund, Kaski, and Koutis (ICALP 2017). To keep $d$ small, we randomly delete and duplicate arcs and partition the incoming copies at each vertex into $d$ groups, assigning a common weight to all arcs in each group. We prove that, if the input graph has a Hamiltonian path from $s$ to $t$, then with positive, albeit exponentially small, probability one can select one group at each vertex so that their union contains an odd number of such paths.
翻译:暂无翻译