Skip to main content

Field Report: Applying Monte Carlo Tree Search for Program Synthesis

  • Conference paper
  • First Online:
Search Based Software Engineering (SSBSE 2016)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 9962))

Included in the following conference series:

Abstract

Program synthesis aims to automatically generate an executable segment of code that satisfies a given set of criteria. Genetic programming has been widely studied for program synthesis. However, it has drawbacks such as code bloats and the difficulty in finer control over the growth of programs. This paper explores the possibility of applying Monte Carlo Tree Search (MCTS) technique to general purpose program synthesis. The exploratory study applies MCTS to synthesis of six small benchmarks using Java Bytecode instructions, and compares the results to those of genetic programming. The paper discusses the major challenges and outlines the future work.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    A brief overview of MCTS, as well as details of the experimental results, is available from http://coinse.kaist.ac.kr/projects/mctsps.

  2. 2.

    http://commons.apache.org/bcel/.

  3. 3.

    http://pyevolve.sourceforge.net.

  4. 4.

    GP should generate programs of lengths similar to \(l_p\). As most non-terminals have one or two leaves, maximum depth of 7 achieves this.

  5. 5.

    Detailed statistics, as well as the output program instructions, are available from http://coinse.kaist.ac.kr/projects/mctsps.

References

  1. Arcuri, A., Yao, X.: Co-evolutionary automatic programming for software development. Inf. Sci. 259, 412–432 (2014)

    Article  Google Scholar 

  2. Browne, C.B., Powley, E., Whitehouse, D., Lucas, S.M., Cowling, P.I., Rohlfshagen, P., Tavener, S., Perez, D., Samothrakis, S., Colton, S.: A survey of monte carlo tree search methods. IEEE Trans. Comput. Intell. AI Games 4(1), 1–43 (2012)

    Article  Google Scholar 

  3. Cazenave, T.: Monte Carlo expression discovery. Int. J. Artif. Intell. Tools 22(1) (2013)

    Google Scholar 

  4. Desai, A., Gulwani, S., Hingorani, V., Jain, N., Karkare, A., Marron, M., Sailesh, R., Roy, S.: Program synthesis using natural language. In: Proceedings of the 38th International Conference on Software Engineering, ICSE 2016, pp. 345–356. ACM, New York (2016)

    Google Scholar 

  5. Forrest, S., Nguyen, T., Weimer, W., Le Goues, C.: A genetic programming approach to automated software repair. In: Proceedings of the 11th Annual Conference on Genetic and Evolutionary Computation, pp. 947–954 (2009)

    Google Scholar 

  6. Helmuth, T., Spector, L.: General program synthesis benchmark suite. In: Proceedings of the 2015 Annual Conference on Genetic and Evolutionary Computation, GECCO 2015, pp. 1039–1046. ACM, New York (2015)

    Google Scholar 

  7. Kocsis, L., Szepesvári, C.: Bandit based Monte-Carlo planning. In: Fürnkranz, J., Scheffer, T., Spiliopoulou, M. (eds.) ECML 2006. LNCS (LNAI), vol. 4212, pp. 282–293. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  8. de Lima, E.B., Pappa, G.L., de Almeida, J.M., Gonçalves, M.A., Meira, W.: Tuning genetic programming parameters with factorial designs. In: IEEE Congress on Evolutionary Computation, pp. 1–8, July 2010

    Google Scholar 

  9. Orlov, M., Sipper, M.: Flight of the finch through the java wilderness. IEEE Trans. Evol. Comput. 15(2), 166–182 (2011)

    Article  Google Scholar 

  10. Poli, R., Langdon, W.B., McPhee, N.F.: A field guide to genetic programming. Published via http://lulu.com (2008). (With contributions by J.R. Koza)

  11. Srivastava, S., Gulwani, S., Foster, J.S.: From program verification to program synthesis. SIGPLAN Not. 45(1), 313–326 (2010)

    Article  MATH  Google Scholar 

  12. White, D.R., Yoo, S., Singer, J.: The programming game: evaluating MCTS as an alternative to GP for symbolic regression. In: Proceedings of the Companion Publication of the 2015 on Genetic and Evolutionary Computation Conference, GECCO Companion 2015, pp. 1521–1522. ACM, New York (2015)

    Google Scholar 

Download references

Acknowledgments

Authors would like to thank David White and Kee-eung Kim for many thoughtful discussions about Monte Carlo Tree Search. This research has been supported by Undergraduate Research Program (URP) at KAIST.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jinsuk Lim .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing AG

About this paper

Cite this paper

Lim, J., Yoo, S. (2016). Field Report: Applying Monte Carlo Tree Search for Program Synthesis. In: Sarro, F., Deb, K. (eds) Search Based Software Engineering. SSBSE 2016. Lecture Notes in Computer Science(), vol 9962. Springer, Cham. https://doi.org/10.1007/978-3-319-47106-8_27

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-47106-8_27

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-47105-1

  • Online ISBN: 978-3-319-47106-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics