Abstract
Although Breadth-First Search (BFS) has several advantages over Depth-First Search (DFS) its prohibitive space requirements have meant that algorithm designers often pass it over in favor of DFS. To address this shortcoming, we introduce a theory of efficient BFS (EBFS), along with a simple recursive program schema for carrying out the search. The theory is based on dominance relations, a long standing technique from the field of search algorithms. We also show that greedy and greedy-like algorithms form a very useful and important sub-category of EBFS. Finally, we show how the EBFS class can be used for semi-automated program synthesis by introducing some techniques for demonstrating that a given problem is solvable by EBFS. We illustrate our approach on several examples.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Bird, R.S., De Moor, O.: From Dynamic Programming to Greedy Algorithms. In: Möller, B., Schuman, S., Partsch, H. (eds.) Formal Program Development. LNCS, vol. 755, pp. 43–61. Springer, Heidelberg (1993)
Björner, A., Ziegler, G.M.: Introduction to greedoids. In: White, N. (ed.) Matroid Applications. Cambridge University Press (1992)
Cormen, T., Leiserson, C., Rivest, R., Stein, C.: Introduction to Algorithms, 2nd edn. MIT Press (2001)
Curtis, S.A.: The classification of greedy algorithms. Sci. Comput. Program. 49(1-3), 125–157 (2003)
Dechter, R.: Constraint Processing. Morgan Kauffman (2003)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design patterns: elements of reusable object-oriented software. Addison-Wesley Professional (1995)
Gulwani, S., Jha, S., Tiwari, A., Venkatesan, R.: Synthesis of loop-free programs. In: PLDI, pp. 62–73 (2011)
Ibaraki, T.: The power of dominance relations in branch-and-bound algorithms. J. ACM 24(2), 264–279 (1977)
Itzhaky, S., Gulwani, S., Immerman, N., Sagiv, M.: A simple inductive synthesis methodology and its applications. In: OOPSLA, pp. 36–46 (2010)
Kreitz, C.: Program synthesis. In: Bibel, W., Schmitt, P. (eds.) Automated Deduction – A Basis for Applications, vol. III, ch. III.2.5, pp. 105–134. Kluwer (1998)
Leino, K.R.M.: Dafny: An Automatic Program Verifier for Functional Correctness. In: Clarke, E.M., Voronkov, A. (eds.) LPAR-16 2010. LNCS, vol. 6355, pp. 348–370. Springer, Heidelberg (2010)
Nedunuri, S., Cook, W.R.: Synthesis of fast programs for maximum segment sum problems. In: Intl. Conf. on Generative Prog. and Component Engineering (GPCE) (October 2009)
Nedunuri, S.: Theory and Techniques for Synthesizing Efficient Breadth-First Search Algorithms. PhD thesis, Univ. of Texas at Austin (2012)
Nedunuri, S., Smith, D.R., Cook, W.R.: A Class of Greedy Algorithms and Its Relation to Greedoids. In: Cavalcanti, A., Deharbe, D., Gaudel, M.-C., Woodcock, J. (eds.) ICTAC 2010. LNCS, vol. 6255, pp. 352–366. Springer, Heidelberg (2010)
Nedunuri, S., Smith, D.R., Cook, W.R.: Theory and techniques for synthesizing graph algorithms using breadth-first search. In: 1st Workshop on Synthesis (SYNT) in Computer Aided Verification, CAV (to appear, 2012)
Pu, Y., Bodík, R., Srivastava, S.: Synthesis of first-order dynamic programming algorithms. In: OOPSLA, pp. 83–98 (2011)
Pavlovic, D., Pepper, P., Smith, D.R.: Formal Derivation of Concurrent Garbage Collectors. In: Bolduc, C., Desharnais, J., Ktari, B. (eds.) MPC 2010. LNCS, vol. 6120, pp. 353–376. Springer, Heidelberg (2010)
Specware, http://www.specware.org
Srivastava, S., Gulwani, S., Foster, J.S.: From program verification to program synthesis. In: POPL, pp. 313–326 (2010)
Sasano, I., Hu, Z., Takeichi, M.: Make it practical: A generic linear-time algorithm for solving maximum-weightsum problems. In: Intl. Conf. Functional Prog. (ICFP) (2000)
Sasano, I., Hu, Z.: Generation of Efficient Programs for Solving Maximum Multi-marking Problems. In: Taha, W. (ed.) SAIG 2001. LNCS, vol. 2196, pp. 72–91. Springer, Heidelberg (2001)
Solar-Lezama, A., Tancau, L., Bodik, R., Seshia, S., Saraswat, V.: Combinatorial sketching for finite programs. In: Proc. of the 12th Intl. Conf. on Architectural Support for Prog. Lang. and Operating Systems (ASPLOS), pp. 404–415 (2006)
Smith, D.R.: Structure and design of global search algorithms. Tech. Rep. Kes. U.87.12, Kestrel Institute (1988)
Smith, D.R.: Kids: A semi-automatic program development system. IEEE Trans. on Soft. Eng., Spec. Issue on Formal Methods 16(9), 1024–1043 (1990)
Smith, D.R.: Global search theory revisited. Unpublished (December 2010)
Sasano, I., Ogawa, M., Hu, Z.: Maximum Marking Problems with Accumulative Weight Functions. In: Van Hung, D., Wirsing, M. (eds.) ICTAC 2005. LNCS, vol. 3722, pp. 562–578. Springer, Heidelberg (2005)
Smith, D.R., Parra, E.A., Westfold, S.J.: Synthesis of high-performance transportation schedulers. Technical report, Kestrel Institute (1995)
Smith, D.R., Westfold, S.: Synthesis of propositional satisfiability solvers. Final proj. report, Kestrel Institute (2008)
Vechev, M., Yahav, E.: Deriving linearizable fine-grained concurrent objects. In: PLDI 2008, pp. 125–135 (2008)
Vechev, M., Yahav, E., Yorsh, G.: Abstraction-guided synthesis of synchronization. In: POPL 2010, pp. 327–338 (2010)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Nedunuri, S., Smith, D.R., Cook, W.R. (2012). Theory and Techniques for Synthesizing Efficient Breadth-First Search Algorithms. In: Giannakopoulou, D., Méry, D. (eds) FM 2012: Formal Methods. FM 2012. Lecture Notes in Computer Science, vol 7436. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-32759-9_27
Download citation
DOI: https://doi.org/10.1007/978-3-642-32759-9_27
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-32758-2
Online ISBN: 978-3-642-32759-9
eBook Packages: Computer ScienceComputer Science (R0)