Searching for More Efficient Dynamic Programs

09/14/2021
by   Tim Vieira, et al.
0

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, time-consuming, 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 common speed-ups described in the NLP literature could have been discovered automatically by our system.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/14/2022

Program Analysis of Probabilistic Programs

Probabilistic programming is a growing area that strives to make statist...
research
03/06/2016

Composing inference algorithms as program transformations

Probabilistic inference procedures are usually coded painstakingly from ...
research
08/16/2021

Improving Readability of Scratch Programs with Search-based Refactoring

Block-based programming languages like Scratch have become increasingly ...
research
07/30/2019

Parallelization of Kmeans++ using CUDA

K-means++ is an algorithm which is invented to improve the process of fi...
research
03/04/2002

A Framework for Compiling Preferences in Logic Programs

We introduce a methodology and framework for expressing general preferen...
research
08/25/2022

Social Diversity for ATL Repair

Model transformations play an essential role in the Model-Driven Enginee...
research
02/23/2021

Blending Dynamic Programming with Monte Carlo Simulation for Bounding the Running Time of Evolutionary Algorithms

With the goal to provide absolute lower bounds for the best possible run...

Please sign up or login with your details

Forgot password? Click here to reset