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).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 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.
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
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
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
Brady, E.: Idris, a general-purpose dependently typed programming language: design and implementation. J. Funct. Program. 23(05), 552–593 (2013)
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)
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
Christiansen, H.: A survey of adaptable grammars. ACM SIGPLAN Notices 25(11), 35–44 (1990)
Elmas, T., Tasiran, S., Qadeer, S.: Vyrd: verifying concurrent programs by runtime refinement-violation detection. ACM SIGPLAN Notices 40(6), 27–37 (2005)
Gissurarson, M.P.: Suggesting Valid Hole Fits for Typed-Holes in Haskell. Master’s thesis (2018)
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
Haynes, T.D., Schoenefeld, D.A., Wainwright, R.L.: Type inheritance in strongly typed genetic programming. Adv. Genetic Program. 2(2), 359–376 (1996)
Helmuth, T., Mcphee, N., Spector, L.: Lexicase selection for program synthesis: a diversity analysis, pp. 151–167 (2016)
Korel, B.: Automated software test data generation. IEEE Trans. Software Eng. 16(8), 870–879 (1990)
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)
Koza, J.R.: Genetic Programming: On The Programming of Computers by Means Of Natural Selection, vol. 1. MIT press (1992)
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
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)
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
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)
Loveard, T., Ciesielski, V.: Representing classification problems in genetic programming. In: Evolutionary Computation, vol. 2, pp. 1070–1077. IEEE (2001)
Matsakis, N.D., Klock, F.S.: The rust language. ACM SIGAda Ada Letters 34(3), 103–104 (2014)
Mckay, R.I., Hoai, N.X., et al.: Grammar-based genetic programming: a survey. Genetic Program. Evol. Mach. 11(3), 365–396 (2010)
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)
Meyer, B.: Eiffel: programming for reusability and extendibility. ACM Sigplan Notices 22(2), 85–94 (1987)
Montana, D.J.: Strongly typed genetic programming. Evol. Comput. 3(2), 199–230 (1995)
Omar, C., Voysey, I., Chugh, R., Hammer, M.A.: Live functional programming with typed holes. Proc. ACM Program. Lang. 3(POPL), 1–32 (2019)
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)
Ortega, A., De La Cruz, M., Alfonseca, M.: Christiansen grammar evolution: grammatical evolution with semantics. IEEE Trans. Evol. Comput. 11(1), 77–90 (2007)
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)
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)
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)
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
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)
Shutt, J.N.: Recursive adaptable grammars (1999)
Solar-Lezama, A.: Program synthesis by sketching. University of California, Berkeley (2008)
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)
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)
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
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
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)