Synthesis Of First-Order Dynamic Programming Algorithmsbodik/ucb/Files/2011/...Yewen (Evan) Pu...
Transcript of Synthesis Of First-Order Dynamic Programming Algorithmsbodik/ucb/Files/2011/...Yewen (Evan) Pu...
![Page 1: Synthesis Of First-Order Dynamic Programming Algorithmsbodik/ucb/Files/2011/...Yewen (Evan) Pu Rastislav Bodik University of California, Berkeley Saurabh Srivastava Do you feel lucky?](https://reader035.fdocuments.in/reader035/viewer/2022071301/60a307b463a87b2e3225b952/html5/thumbnails/1.jpg)
_Synthesis__________________ __Of_______________________ ___First-Order_____Dynamic___ _____________Programming___ _______________Algorithms___
Yewen (Evan) Pu Rastislav Bodik Saurabh Srivastava University of California, Berkeley
![Page 2: Synthesis Of First-Order Dynamic Programming Algorithmsbodik/ucb/Files/2011/...Yewen (Evan) Pu Rastislav Bodik University of California, Berkeley Saurabh Srivastava Do you feel lucky?](https://reader035.fdocuments.in/reader035/viewer/2022071301/60a307b463a87b2e3225b952/html5/thumbnails/2.jpg)
Do you feel lucky?
![Page 3: Synthesis Of First-Order Dynamic Programming Algorithmsbodik/ucb/Files/2011/...Yewen (Evan) Pu Rastislav Bodik University of California, Berkeley Saurabh Srivastava Do you feel lucky?](https://reader035.fdocuments.in/reader035/viewer/2022071301/60a307b463a87b2e3225b952/html5/thumbnails/3.jpg)
A new way to build an island?
Conventional Domain Specific Compiler: • Require deep domain theories
• Takes a long time to implement
Constraint Based Synthesizer: • Write a template for desired algorithm
• Constraint solver fills in the template
![Page 4: Synthesis Of First-Order Dynamic Programming Algorithmsbodik/ucb/Files/2011/...Yewen (Evan) Pu Rastislav Bodik University of California, Berkeley Saurabh Srivastava Do you feel lucky?](https://reader035.fdocuments.in/reader035/viewer/2022071301/60a307b463a87b2e3225b952/html5/thumbnails/4.jpg)
Make Templates not Theories
Suppose we want to optimize x+x+x+x
With domain-specific rewrite rules:
With a template in SKETCH [Solar-Lezama]: spec(x): return x+x+x+x sketch(x): return x << ??
program equivalence found using bounded model checking
![Page 5: Synthesis Of First-Order Dynamic Programming Algorithmsbodik/ucb/Files/2011/...Yewen (Evan) Pu Rastislav Bodik University of California, Berkeley Saurabh Srivastava Do you feel lucky?](https://reader035.fdocuments.in/reader035/viewer/2022071301/60a307b463a87b2e3225b952/html5/thumbnails/5.jpg)
A Search for a Correct Program
Synthesizer finds in a space of candidate programs a correct one (it matches the specification)
![Page 6: Synthesis Of First-Order Dynamic Programming Algorithmsbodik/ucb/Files/2011/...Yewen (Evan) Pu Rastislav Bodik University of California, Berkeley Saurabh Srivastava Do you feel lucky?](https://reader035.fdocuments.in/reader035/viewer/2022071301/60a307b463a87b2e3225b952/html5/thumbnails/6.jpg)
Research Question in This Talk
Can we write a synthesizer for an entire problem domain using a single template (sketch)?
![Page 7: Synthesis Of First-Order Dynamic Programming Algorithmsbodik/ucb/Files/2011/...Yewen (Evan) Pu Rastislav Bodik University of California, Berkeley Saurabh Srivastava Do you feel lucky?](https://reader035.fdocuments.in/reader035/viewer/2022071301/60a307b463a87b2e3225b952/html5/thumbnails/7.jpg)
The Challenge
How do we write a template that covers all of our domain, yet the constraints it induces can be efficiently solved?
![Page 8: Synthesis Of First-Order Dynamic Programming Algorithmsbodik/ucb/Files/2011/...Yewen (Evan) Pu Rastislav Bodik University of California, Berkeley Saurabh Srivastava Do you feel lucky?](https://reader035.fdocuments.in/reader035/viewer/2022071301/60a307b463a87b2e3225b952/html5/thumbnails/8.jpg)
Our Approach
Define a general template that contains the entire domain
Optimize the search by reducing the search space
![Page 9: Synthesis Of First-Order Dynamic Programming Algorithmsbodik/ucb/Files/2011/...Yewen (Evan) Pu Rastislav Bodik University of California, Berkeley Saurabh Srivastava Do you feel lucky?](https://reader035.fdocuments.in/reader035/viewer/2022071301/60a307b463a87b2e3225b952/html5/thumbnails/9.jpg)
Dynamic Programming Algorithms
A well-defined domain We have no “DSL compiler” for it (taught as an art) Difficulties: • inventing sub-problems • inventing recurrences
We focus on a first-order sub-class, FORDP, which captures many O(n) DP algorithms
![Page 10: Synthesis Of First-Order Dynamic Programming Algorithmsbodik/ucb/Files/2011/...Yewen (Evan) Pu Rastislav Bodik University of California, Berkeley Saurabh Srivastava Do you feel lucky?](https://reader035.fdocuments.in/reader035/viewer/2022071301/60a307b463a87b2e3225b952/html5/thumbnails/10.jpg)
An Easy Problem
Fibonacci Sequence: fib(n) = fib(n-1) + fib(n-2)
![Page 11: Synthesis Of First-Order Dynamic Programming Algorithmsbodik/ucb/Files/2011/...Yewen (Evan) Pu Rastislav Bodik University of California, Berkeley Saurabh Srivastava Do you feel lucky?](https://reader035.fdocuments.in/reader035/viewer/2022071301/60a307b463a87b2e3225b952/html5/thumbnails/11.jpg)
A Harder Problem
Maximal Independent Sum (MIS) Input: Array of positive integers Output: Maximum sum of a non-consecutive selections of its elements.
![Page 12: Synthesis Of First-Order Dynamic Programming Algorithmsbodik/ucb/Files/2011/...Yewen (Evan) Pu Rastislav Bodik University of California, Berkeley Saurabh Srivastava Do you feel lucky?](https://reader035.fdocuments.in/reader035/viewer/2022071301/60a307b463a87b2e3225b952/html5/thumbnails/12.jpg)
What does the user do?
mis(A): best = 0 forall selections: if non_consec(selection): best = max(best, value(A[selection])) return best
![Page 13: Synthesis Of First-Order Dynamic Programming Algorithmsbodik/ucb/Files/2011/...Yewen (Evan) Pu Rastislav Bodik University of California, Berkeley Saurabh Srivastava Do you feel lucky?](https://reader035.fdocuments.in/reader035/viewer/2022071301/60a307b463a87b2e3225b952/html5/thumbnails/13.jpg)
What does the template do?
• Define a general template that contains the entire domain
![Page 14: Synthesis Of First-Order Dynamic Programming Algorithmsbodik/ucb/Files/2011/...Yewen (Evan) Pu Rastislav Bodik University of California, Berkeley Saurabh Srivastava Do you feel lucky?](https://reader035.fdocuments.in/reader035/viewer/2022071301/60a307b463a87b2e3225b952/html5/thumbnails/14.jpg)
A General Template
Covers every FORDP algorithm
![Page 15: Synthesis Of First-Order Dynamic Programming Algorithmsbodik/ucb/Files/2011/...Yewen (Evan) Pu Rastislav Bodik University of California, Berkeley Saurabh Srivastava Do you feel lucky?](https://reader035.fdocuments.in/reader035/viewer/2022071301/60a307b463a87b2e3225b952/html5/thumbnails/15.jpg)
General Template for update
All possible compositions of user provided operators
![Page 16: Synthesis Of First-Order Dynamic Programming Algorithmsbodik/ucb/Files/2011/...Yewen (Evan) Pu Rastislav Bodik University of California, Berkeley Saurabh Srivastava Do you feel lucky?](https://reader035.fdocuments.in/reader035/viewer/2022071301/60a307b463a87b2e3225b952/html5/thumbnails/16.jpg)
Space Reduction: Optimality
All FORDP recurrences have this syntactic form
![Page 17: Synthesis Of First-Order Dynamic Programming Algorithmsbodik/ucb/Files/2011/...Yewen (Evan) Pu Rastislav Bodik University of California, Berkeley Saurabh Srivastava Do you feel lucky?](https://reader035.fdocuments.in/reader035/viewer/2022071301/60a307b463a87b2e3225b952/html5/thumbnails/17.jpg)
Space Reduction: Optimality
Recurrence for MIS:
![Page 18: Synthesis Of First-Order Dynamic Programming Algorithmsbodik/ucb/Files/2011/...Yewen (Evan) Pu Rastislav Bodik University of California, Berkeley Saurabh Srivastava Do you feel lucky?](https://reader035.fdocuments.in/reader035/viewer/2022071301/60a307b463a87b2e3225b952/html5/thumbnails/18.jpg)
Space Reduction: Symmetry
Many operators are commutative
Pick a canonical representative syntactically
![Page 19: Synthesis Of First-Order Dynamic Programming Algorithmsbodik/ucb/Files/2011/...Yewen (Evan) Pu Rastislav Bodik University of California, Berkeley Saurabh Srivastava Do you feel lucky?](https://reader035.fdocuments.in/reader035/viewer/2022071301/60a307b463a87b2e3225b952/html5/thumbnails/19.jpg)
Space Reduction: Recap
All possible compositions
Syntactically Reduced
![Page 20: Synthesis Of First-Order Dynamic Programming Algorithmsbodik/ucb/Files/2011/...Yewen (Evan) Pu Rastislav Bodik University of California, Berkeley Saurabh Srivastava Do you feel lucky?](https://reader035.fdocuments.in/reader035/viewer/2022071301/60a307b463a87b2e3225b952/html5/thumbnails/20.jpg)
DEMO
![Page 21: Synthesis Of First-Order Dynamic Programming Algorithmsbodik/ucb/Files/2011/...Yewen (Evan) Pu Rastislav Bodik University of California, Berkeley Saurabh Srivastava Do you feel lucky?](https://reader035.fdocuments.in/reader035/viewer/2022071301/60a307b463a87b2e3225b952/html5/thumbnails/21.jpg)
Benchmarks
Here are some synthesized recurrences
![Page 22: Synthesis Of First-Order Dynamic Programming Algorithmsbodik/ucb/Files/2011/...Yewen (Evan) Pu Rastislav Bodik University of California, Berkeley Saurabh Srivastava Do you feel lucky?](https://reader035.fdocuments.in/reader035/viewer/2022071301/60a307b463a87b2e3225b952/html5/thumbnails/22.jpg)
Experiments
1
10
100
1000
comp
symm
opti
Synthesizer solving time, in seconds
out of memory
![Page 23: Synthesis Of First-Order Dynamic Programming Algorithmsbodik/ucb/Files/2011/...Yewen (Evan) Pu Rastislav Bodik University of California, Berkeley Saurabh Srivastava Do you feel lucky?](https://reader035.fdocuments.in/reader035/viewer/2022071301/60a307b463a87b2e3225b952/html5/thumbnails/23.jpg)
Conclusion
It is possible to build a domain-specific synthesizer for FORDPA Synthesizer developer only find a syntactic domain structure The lessons learned in building the synthesizer may be general If so, we can build more islands with constraint-based synthesis