Searching for More Efficient Dynamic Programs

2Citations
Citations of this article
50Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Computational models of human language often involve combinatorial problems. For instance, a probabilistic parser may marginalize over exponentially many trees to make predictions. Algorithms for such problems often employ dynamic programming and are not always unique. Finding one with optimal asymptotic runtime can be unintuitive, timeconsuming, and error-prone. Our work aims to automate this laborious process. Given an initial correct declarative program, we search for a sequence of semantics-preserving transformations to improve its running time as much as possible. To this end, we describe a set of program transformations, a simple metric for assessing the efficiency of a transformed program, and a heuristic search procedure to improve this metric. We show that in practice, automated search - like the mental search performed by human programmers - can find substantial improvements to the initial program. Empirically, we show that many speed-ups described in the NLP literature could have been discovered automatically by our system.

Cite

CITATION STYLE

APA

Vieira, T., Cotterell, R., & Eisner, J. (2021). Searching for More Efficient Dynamic Programs. In Findings of the Association for Computational Linguistics, Findings of ACL: EMNLP 2021 (pp. 3812–3830). Association for Computational Linguistics (ACL). https://doi.org/10.18653/v1/2021.findings-emnlp.322

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free