Synthesizing Efficient Dynamic Programming Algorithms
Dynamic programming is an important optimization technique, but designing efficient dynamic programming algorithms can be difficult even for professional programmers. Motivated by this point, we propose a synthesizer namely MetHyl, which automatically synthesizes efficient dynamic programming algorithms from a possibly inefficient program in the form of relational hylomorphism. MetHyl consists of a transformation system and efficient synthesis algorithms, where the former transforms a hylomorphism to an efficient dynamic programming algorithm via four synthesis tasks, and the latter solves these tasks efficiently. We evaluate MetHyl on 37 tasks related to 16 optimization problems collected from Introduction to Algorithm. The results show that MetHyl achieves exponential speed-ups on 97.3 solutions on 70.3
READ FULL TEXT