The algorithmic differentiation (AD) of mathematical functions can be interpreted as a sequence of vertex eliminations in an underlying directed acyclic graph. The problem of determining a minimum-cost elimination ordering, which we call Optimal Vertex Elimination, is NP-complete, and much effort has been devoted to the design of heuristics. Many of these heuristics are widely believed to perform well in practice, but this hypothesis has so far been difficult to test due to the lack of scalable exact methods. We design and engineer new integer programming formulations for Optimal Vertex Elimination and for a related objective we call Minimum Edge Count. Our implementations scale to graphs one-to-two orders of magnitude larger than existing techniques, facilitating the assembly of a corpus of medium-sized graphs for which optimal solutions are known. We give a comprehensive evaluation of existing heuristics on this corpus. We also make several theoretical contributions, including a tight analysis of the forward and reverse modes of AD, a simple algorithm for Optimal Vertex Elimination with approximation ratio parameterized by the size of a minimum source-sink separator, and the first approximation lower bounds for both problems.
翻译:暂无翻译