Skip to main content

The Usability Argument for Refinement Typed Genetic Programming

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 12270))

Abstract

The performance of Evolutionary Algorithms is frequently hindered by arbitrarily large search spaces. In order to overcome this challenge, domain-specific knowledge is often used to restrict the representation or evaluation of candidate solutions to the problem at hand. Due to the diversity of problems and the unpredictable performance impact, the encoding of domain-specific knowledge is a frequent problem in the implementation of evolutionary algorithms.

We propose the use of Refinement Typed Genetic Programming, an enhanced hybrid of Strongly Typed Genetic Programming (STGP) and Grammar-Guided Genetic Programming (GGGP) that features an advanced type system with polymorphism and dependent and refined types.

We argue that this approach is more usable for describing common problems in machine learning, optimisation and program synthesis, due to the familiarity of the language (when compared to GGGP) and the use of a unifying language to express the representation, the phenotype translation, the evaluation function and the context in which programs are executed.

This work was supported by LASIGE (UIDB/00408/2020) and the CMU|Portugal project CAMELOT (POCI-01-0247-FEDER-045915).

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   109.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

Learn about institutional subscriptions

Notes

  1. 1.

    We have developed a compiler from Æon to Java and an Æon interpreter in Python. In each case, the function would have to be defined in Java and Python.

  2. 2.

    Replacing the hole by a crash-inducing expression allows the program to compile or be interpreted. While this is out of scope, the reader may find more in [25].

References

  1. Ball, T., Cook, B., Levin, V., Rajamani, S.K.: SLAM and static driver verifier: technology transfer of formal methods inside microsoft. In: Boiten, E.A., Derrick, J., Smith, G. (eds.) IFM 2004. LNCS, vol. 2999, pp. 1–20. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-24756-2_1

    Chapter  Google Scholar 

  2. Bove, A., Dybjer, P., Norell, U.: A brief overview of agda – a functional language with dependent types. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) TPHOLs 2009. LNCS, vol. 5674, pp. 73–78. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-03359-9_6

    Chapter  Google Scholar 

  3. Brady, E.: Idris, a general-purpose dependently typed programming language: design and implementation. J. Funct. Program. 23(05), 552–593 (2013)

    Article  MathSciNet  Google Scholar 

  4. Brink, K., van Katwijk, J., Toetenel, W.: Ada 95 as implementation vehicle for formal specifications. In: Proceedings of 3rd International Workshop on Real-Time Computing Systems and Applications, pp. 98–105. IEEE (1996)

    Google Scholar 

  5. Brink, K., Holdermans, S., Löh, A.: Dependently typed grammars. In: Bolduc, C., Desharnais, J., Ktari, B. (eds.) MPC 2010. LNCS, vol. 6120, pp. 58–79. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-13321-3_6

    Chapter  Google Scholar 

  6. Christiansen, H.: A survey of adaptable grammars. ACM SIGPLAN Notices 25(11), 35–44 (1990)

    Article  Google Scholar 

  7. Elmas, T., Tasiran, S., Qadeer, S.: Vyrd: verifying concurrent programs by runtime refinement-violation detection. ACM SIGPLAN Notices 40(6), 27–37 (2005)

    Article  Google Scholar 

  8. Gissurarson, M.P.: Suggesting Valid Hole Fits for Typed-Holes in Haskell. Master’s thesis (2018)

    Google Scholar 

  9. Gonçalves, I., Silva, S., Melo, J.B., Carreiras, J.M.B.: Random Sampling Technique for Overfitting Control in Genetic Programming. In: Moraglio, A., Silva, S., Krawiec, K., Machado, P., Cotta, C. (eds.) EuroGP 2012. LNCS, vol. 7244, pp. 218–229. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-29139-5_19

    Chapter  Google Scholar 

  10. Haynes, T.D., Schoenefeld, D.A., Wainwright, R.L.: Type inheritance in strongly typed genetic programming. Adv. Genetic Program. 2(2), 359–376 (1996)

    Google Scholar 

  11. Helmuth, T., Mcphee, N., Spector, L.: Lexicase selection for program synthesis: a diversity analysis, pp. 151–167 (2016)

    Google Scholar 

  12. Korel, B.: Automated software test data generation. IEEE Trans. Software Eng. 16(8), 870–879 (1990)

    Article  Google Scholar 

  13. Kosakovsky Pond, S.L., Posada, D., Gravenor, M.B., Woelk, C.H., Frost, S.D.: Gard: a genetic algorithm for recombination detection. Bioinformatics 22(24), 3096–3098 (2006)

    Article  Google Scholar 

  14. Koza, J.R.: Genetic Programming: On The Programming of Computers by Means Of Natural Selection, vol. 1. MIT press (1992)

    Google Scholar 

  15. Krawiec, K.: Program synthesis. Behavioral Program Synthesis with Genetic Programming. SCI, vol. 618, pp. 1–19. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-27565-9_1

    Chapter  Google Scholar 

  16. Kruchten, P., Thompson, C.J.: An object-oriented, distributed architecture for large-scale ADA systems. In: Proceedings of the Conference on TRI-ADA 1994, pp. 262–271 (1994)

    Google Scholar 

  17. La Cava, W., Helmuth, T., Spector, L., Moore, J.H.: A probabilistic and multi-objective analysis of lexicase selection and e-lexicase selection. Evol. Comput. 27(3), 377–402 (2019). https://doi.org/10.1162/evco_a_00224

    Article  Google Scholar 

  18. Leavens, G.T., Baker, A.L., Ruby, C.: JML: a Java modeling language. In: Formal Underpinnings of Java Workshop (at OOPSLA), pp. 404–420 (1998)

    Google Scholar 

  19. Loveard, T., Ciesielski, V.: Representing classification problems in genetic programming. In: Evolutionary Computation, vol. 2, pp. 1070–1077. IEEE (2001)

    Google Scholar 

  20. Matsakis, N.D., Klock, F.S.: The rust language. ACM SIGAda Ada Letters 34(3), 103–104 (2014)

    Article  Google Scholar 

  21. Mckay, R.I., Hoai, N.X., et al.: Grammar-based genetic programming: a survey. Genetic Program. Evol. Mach. 11(3), 365–396 (2010)

    Article  Google Scholar 

  22. McPhee, N.F., Hopper, N.J., Reierson, M.L.: Impact of types on essentially typeless problems in GP. In: Genetic Programming, pp. 232–240 (1998)

    Google Scholar 

  23. Meyer, B.: Eiffel: programming for reusability and extendibility. ACM Sigplan Notices 22(2), 85–94 (1987)

    Article  Google Scholar 

  24. Montana, D.J.: Strongly typed genetic programming. Evol. Comput. 3(2), 199–230 (1995)

    Article  Google Scholar 

  25. Omar, C., Voysey, I., Chugh, R., Hammer, M.A.: Live functional programming with typed holes. Proc. ACM Program. Lang. 3(POPL), 1–32 (2019)

    Google Scholar 

  26. O’Neill, M., Ryan, C.: Grammar based function definition in grammatical evolution. In: Proceedings of the 2nd Annual Conference on Genetic and Evolutionary Computation, pp. 485–490 (2000)

    Google Scholar 

  27. Ortega, A., De La Cruz, M., Alfonseca, M.: Christiansen grammar evolution: grammatical evolution with semantics. IEEE Trans. Evol. Comput. 11(1), 77–90 (2007)

    Article  Google Scholar 

  28. Poli, R., Langdon, W.B., McPhee, N.F.: A field guide to genetic programming. Published via http://lulu.com and freely available at http://www.gp-field-guide.org.uk (2008), (With contributions by J. R. Koza)

  29. Polikarpova, N., Kuraj, I., Solar-Lezama, A.: Program synthesis from polymorphic refinement types. In: Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 522–538. ACM (2016)

    Google Scholar 

  30. Rondon, P.M., Kawaguci, M., Jhala, R.: Liquid types. In: Proceedings of the 29th ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 159–169 (2008)

    Google Scholar 

  31. Ryan, C., Nicolau, M., O’Neill, M.: Genetic Algorithms Using Grammatical Evolution. In: Foster, J.A., Lutton, E., Miller, J., Ryan, C., Tettamanzi, A. (eds.) EuroGP 2002. LNCS, vol. 2278, pp. 278–287. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-45984-7_27

    Chapter  MATH  Google Scholar 

  32. Shaker, N., Nicolau, M., Yannakakis, G.N., Togelius, J., O’neill, M.: Evolving levels for super mario bros using grammatical evolution. In: 2012 IEEE Conference on Computational Intelligence and Games (CIG). pp. 304–311. IEEE (2012)

    Google Scholar 

  33. Shutt, J.N.: Recursive adaptable grammars (1999)

    Google Scholar 

  34. Solar-Lezama, A.: Program synthesis by sketching. University of California, Berkeley (2008)

    Google Scholar 

  35. Spector, L., Barnum, H., Bernstein, H.J., Swamy, N.: Finding a better-than-classical quantum and/or algorithm using genetic programming. In: Evolutionary Computation. vol. 3, pp. 2239–2246. IEEE (1999)

    Google Scholar 

  36. Vazou, N., Seidel, E.L., Jhala, R., Vytiniotis, D., Peyton-Jones, S.: Refinement types for haskell. In: ACM SIGPLAN Notices. vol. 49, pp. 269–282. ACM (2014)

    Google Scholar 

  37. Yu, T.: Polymorphism and Genetic Programming. In: Miller, J., Tomassini, M., Lanzi, P.L., Ryan, C., Tettamanzi, A.G.B., Langdon, W.B. (eds.) EuroGP 2001. LNCS, vol. 2038, pp. 218–233. Springer, Heidelberg (2001). https://doi.org/10.1007/3-540-45355-5_17

    Chapter  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Alcides Fonseca .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Fonseca, A., Santos, P., Silva, S. (2020). The Usability Argument for Refinement Typed Genetic Programming. In: Bäck, T., et al. Parallel Problem Solving from Nature – PPSN XVI. PPSN 2020. Lecture Notes in Computer Science(), vol 12270. Springer, Cham. https://doi.org/10.1007/978-3-030-58115-2_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-58115-2_2

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-58114-5

  • Online ISBN: 978-3-030-58115-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics