2016
DOI: 10.1145/3022671.2983993
|View full text |Cite
|
Sign up to set email alerts
|

Deriving divide-and-conquer dynamic programming algorithms using solver-aided transformations

Abstract: We introduce a framework allowing domain experts to manipulate computational terms in the interest of deriving better, more efficient implementations. It employs deductive reasoning to generate provably correct efficient implementations from a very high-level specification of an algorithm, and inductive constraint-based synthesis to improve automation. Semantic information is encoded into program terms through the use of refinement types.In this paper, we develop the technique in the context of a system called… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
4
0

Year Published

2019
2019
2023
2023

Publication Types

Select...
4
3
1

Relationship

1
7

Authors

Journals

citations
Cited by 11 publications
(4 citation statements)
references
References 36 publications
0
4
0
Order By: Relevance
“…Bellman and allows us to apprehend a problem in a diferent way than we could imagine at frst sight. Te basic concept is simple: an optimal solution is the sum of subproblems solved in an optimal way [30]. Terefore, a given problem must be Te particle swarm optimization (PSO) algorithm, the genetic algorithm, and a combination of these two algorithms called genetic-based PSO (gbPSO) are used as optimizers in the proposed Q-learning method.…”
Section: Dynamic Programming Method Dynamic Programming Has Been Call...mentioning
confidence: 99%
“…Bellman and allows us to apprehend a problem in a diferent way than we could imagine at frst sight. Te basic concept is simple: an optimal solution is the sum of subproblems solved in an optimal way [30]. Terefore, a given problem must be Te particle swarm optimization (PSO) algorithm, the genetic algorithm, and a combination of these two algorithms called genetic-based PSO (gbPSO) are used as optimizers in the proposed Q-learning method.…”
Section: Dynamic Programming Method Dynamic Programming Has Been Call...mentioning
confidence: 99%
“…The literature on divide-and-conquer synthesis can be divided into two categories based on the class of input computations targeted: (1) those with list homomorphisms as input, with the aim of synthesizing efficient map-reduce [7] programs [1,14,21,23], (2) those that go beyond list homomorphisms [8,9,11,15,19,22], and target code with more dependencies. In category (2), the techniques in [8,9,11] synthesize list homomorphisms through some variation of lifting, the approach in [22] uses symbolic execution at runtime and to identify and defer dependencies, and Bellmania [15] targets input programs in the style of dynamic programming and orchestrates an efficient execution schedule to accommodate the dependencies. A direct comparison with work in [1,9,11,23] with respect to the class of input programs appears in Section 8.…”
Section: Related Workmentioning
confidence: 99%
“…We defer the reasoning about the operations on the data to an SMT solver, and therefore need not rely on such rules. Techniques based on program transformation have been applied to the synthesis of special classes of recursive programs before [13,15]. For example, the work in [1] focuses on tail recursion and a lot of attention has been given to producing divide-and-conquer recursions in the way of automated parallelization [2,8,23].…”
Section: Synthesis Through Program Transformationmentioning
confidence: 99%