Abstract
It is well-known that a naive algorithm can often be turned into an efficient program by applying appropriate semantics-preserving transformations. This technique has been used to derive programs to solve a variety of maximum-sum programs. One problem with this approach is that each problem variation requires a new set of transformations to be derived. An alternative approach to generation combines problem specifications with flexible algorithm theories to derive efficient algorithms. We show how this approach can be implemented in Haskell and applied to solve constraint satisfaction problems. We illustrate this technique by deriving programs for three varieties of maximum-weightsum problem. The derivations of the different programs are similar, and the resulting programs are asymptotically faster in practice than the programs created by transformation.
- R. S. Bird. Algebraic identities for program calculation. Comput. J., 32(2):122--126, 1989. Google Scholar
Digital Library
- R. S. Bird and O. De Moor. Algebra of programming. Prentice-Hall, Inc., NJ, USA, 1997. Google Scholar
Digital Library
- K.R. Baker and Z-S. Su. Sequencing with due-dates and early start times to minimize maximum tardiness. Naval Research Logistics, 21(1):171--176, 1974.Google Scholar
Cross Ref
- R Dechter. Constraint Processing. Morgan Kauffman, 2003. Google Scholar
Digital Library
- T. Ibaraki. The power of dominance relations in branch-and-bound algorithms. J. ACM, 24(2):264--279, 1977. Google Scholar
Digital Library
- D. J. T. Jeuring and T. O. Pekela. Theories for algorithm calculation. Technical report, 1993.Google Scholar
- Shin-Cheng Mu. Maximum segment sum is back: deriving algorithms for two segment problems with bounded lengths. In PEPM '08, pages 31--39. ACM, 2008. Google Scholar
Digital Library
- S. Nedunuri, W. R. Cook, and D. R. Smith. Synthesis of greedy algorithms from dominance relations. Submitted To: Intl. Conf. on Formal Engg Methods (ICFEM), 2009.Google Scholar
- S. Nedunuri, D. R. Smith, and W. R. Cook. Tactical synthesis of efficient global search algorithms. In Proc. NASA Symposium on Formal Methods, April 2009.Google Scholar
- R. Paige and S. Koenig. Finite differencing of computable expressions. ACM TOPLAS, 4(3):402--454, 1982. Google Scholar
Digital Library
- Specware. http://www.specware.org.Google Scholar
- Isao Sasano, Zhenjiang Hu, and Masato Takeichi. Make it practical: A generic linear-time algorithm for solving maximum-weightsum problems. In Proc. Intl. Conf. on Functional Prog.(ICFP), 2000. Google Scholar
Digital Library
- Isao Sasano, Zhenjiang Hu, and Masato Takeichi. Generation of efficient programs for solving maximum multi-marking problems. In Proc. 2nd Intl. SAIG Workshop, 2001. Google Scholar
Digital Library
- Douglas R. Smith. Applications of a strategy for designing divide-and-conquer algorithms. Sci. Comput. Program., 8(3):213--229, 1987. Google Scholar
Digital Library
- D. R. Smith. Structure and design of global search algorithms. Tech. Rep. Kes.U.87.12, Kestrel Institute, 1988.Google Scholar
- D. R. Smith. Kids: A semi-automatic program development system. IEEE Trans. on Soft. Eng., Spec. Issue on Formal Methods, 16(9):1024--1043, September 1990. Google Scholar
Digital Library
- Isao Sasano, Mizuhito Ogawa, and Zhenjiang Hu. Maximum marking problems with accumulative weight functions. In Proc. ICTAC. Springer-Verlag, 2005. Google Scholar
Digital Library
- D. R. Smith, E. A. Parra, and S. J. Westfold. Synthesis of high-performance transportation schedulers. Technical report, Kestrel Institute, 1995.Google Scholar
Index Terms
Synthesis of fast programs for maximum segment sum problems
Recommendations
Synthesis of fast programs for maximum segment sum problems
GPCE '09: Proceedings of the eighth international conference on Generative programming and component engineeringIt is well-known that a naive algorithm can often be turned into an efficient program by applying appropriate semantics-preserving transformations. This technique has been used to derive programs to solve a variety of maximum-sum programs. One problem ...
Efficient program synthesis using constraint satisfaction in inductive logic programming
We present NrSample, a framework for program synthesis in inductive logic programming. NrSample uses propositional logic constraints to exclude undesirable candidates from the search. This is achieved by representing constraints as propositional ...
Algorithmic program synthesis: introduction
Program synthesis is a process of producing an executable program from a specification. Algorithmic synthesis produces the program automatically, without an intervention from an expert. While classical compilation falls under the definition of ...







Comments