Skip to main content

SKGP: The Way of the Combinator

  • Chapter
  • First Online:
Genetic Programming Theory and Practice XII

Part of the book series: Genetic and Evolutionary Computation ((GEVO))

Abstract

Genetic Programming (GP) is a machine learning technique that evolves programs using natural selection and populations dynamics. Much of the functionality of GP depends on the representation of programs in the population and how to handle illegal or type incoherent expressions that arise from crossover and mutation within a population of programs. The SKGP is a GP system that uses graphs of combinators to represent functions and a strong type system to inform the crossover and mutation operations during evolution. This produces a powerful, flexible system that has many benefits over more conventional systems. This paper describes the implementation of this system, gives some examples of successful applications constructed using the SKGP and describes future directions that may offer a more powerful GP system capable of producing more complex programs.

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
Hardcover Book
USD 54.99
Price excludes VAT (USA)
  • Durable hardcover 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

References

  • Aho V, Sethi R, Ullman J (1986) Compilers principles, techniques, and tools. Addison-Wesley, Reading

    Google Scholar 

  • Almal AA, Mitra AP, Datar RH, Lenehan PF, Fry DW, Cote RJ, Worzel WP (2006) Using genetic programming to classify node positive patients in bladder cancer. In: Keijzer M, Cattolico M, Arnold D, Babovic V, Blum C, Bosman P, Butz MV, Coello Coello C, Dasgupta D, Ficici SG, Foster J, Hernandez-Aguirre A, Hornby G, Lipson H, McMinn P, Moore J, Raidl G, Rothlauf F, Ryan C, Thierens D (eds) GECCO 2006: Proceedings of the 8th annual conference on Genetic and evolutionary computation, vol 1. ACM Press, Seattle, pp 239–246. doi:10.1145/1143997.1144040. http://www.cs.bham.ac.uk/wbl/biblio/gecco2006/docs/p239.pdf

    Google Scholar 

  • Blickle T, Thiele L (1996) A comparison of selection schemes used in evolutionary algorithms. Evolut Comput 4(4):361–394. doi:10.1162/evco.1996.4.4.361. http://www.handshake.de/ user/blickle/publications/ECfinal.ps

    Article  Google Scholar 

  • Briggs F, O’Neill M (2006) Functional genetic programming with combinators. In: Pham TL, Le HK, Nguyen XH (eds) Proceedings of the Third Asian-Pacific workshop on genetic programming. Military Technical Academy, Hanoi, pp 110–127. http://sc.snu.ac.kr/courses/2006/fall/pg/aai/GP/forrest/fsb-meo-combs.pdf

    Google Scholar 

  • Briggs F, O’Neill M (2008) Functional genetic programming and exhaustive program search with combinator expressions. Int J Knowl-Based Intell Eng Syst 12(1):47–68. http://iospress.metapress.com/content/u6l4j13p67w66370/

    Google Scholar 

  • Church A, Rosser JB (1936) Some properties of conversion. Trans Am Math Soc p 39(3): 472–482

    Article  MathSciNet  Google Scholar 

  • Clack C, Yu T (1997) Performance enhanced genetic programming. In: Angeline PJ, Reynolds RG, McDonnell JR, Eberhart R (eds) Proceedings of the Sixth Conference on Evolutionary Programming, Springer-Verlag, Indianapolis, Lecture Notes in Computer Science, vol 1213, pp 87–100. doi:10.1007/BFb0014803

    Google Scholar 

  • Curry H (1929) An analysis of logical substitution. Am J Math 51:363–384

    Article  MATH  MathSciNet  Google Scholar 

  • Daida JM, Li H, Tang R, Hilss AM (2003) What makes a problem GP-hard? validating a hypothesis of structural causes. In: Cantú-Paz E, Foster JA, Deb K, Davis D, Roy R, O’Reilly UM, Beyer HG, Standish R, Kendall G, Wilson S, Harman M, Wegener J, Dasgupta D, Potter MA, Schultz AC, Dowsland K, Jonoska N, Miller J (eds) Genetic and Evolutionary Computation – GECCO-2003. Springer-Verlag, Chicago, LNCS, vol 2724, pp 1665–1677. doi:10.1007/3-540-45110-2-60

    Google Scholar 

  • Hindley J (1997) Basic simple type theory. Cambridge University Press, Cambridge

    Book  MATH  Google Scholar 

  • Jones SP (1987) The implementation of functional programming languages. Prentice-Hall International, UK

    MATH  Google Scholar 

  • Koza JR (1992) Genetic programming: on the programming of computers by means of natural selection. MIT Press, Cambridge. http://mitpress.mit.edu/books/genetic-programming

    MATH  Google Scholar 

  • Koza JR (1994) Genetic programming II: automatic discovery of reusable programs. MIT Press, Cambridge

    MATH  Google Scholar 

  • Koza JR, Jones LW, Keane MA, Streeter MJ (2004) Towards industrial strength automated design of analog electrical circuits by means of genetic programming. In: O’Reilly UM, Yu T, Riolo RL, Worzel B (eds) Genetic programming theory and practice II, Springer, Ann Arbor, pp 121–142. doi:10.1007/0-387-23254-0-8. http://www.genetic-programming.com/gptp2004.pdf, pages missing?

    Google Scholar 

  • Lenehan F, Fry D, Heyman E, Walters R, Worzel W (2009) Generation and validation of a primary tumor derived 4-gene prognostic signature for recurrence of stages i/ii colorectal cancer following potentially curative resection. J Clin Oncol (Meeting Abstracts), 27:15–s

    Article  Google Scholar 

  • McPhee N, Hopper N (1999) Analysis of genetic diversity through population history. In: W B et al. (ed) Proceedings genetic evolutionary computation conferences. pp 1112–1120

    Google Scholar 

  • Milner R (1978) A theory of type polymorphism in programming. J Comput Syst Sci 17(3):348–375

    Article  MATH  MathSciNet  Google Scholar 

  • Mitra AP, Almal AA, George B, Fry DW, Lenehan PF, Pagliarulo V, Cote RJ, Datar RH, Worzel WP (2006) The use of genetic programming in the analysis of quantitative gene expression profiles for identification of nodal status in bladder cancer. BMC Cancer 6:159. http://www.biomedcentral.com/1471-2407/6/159

  • Montana DJ (1975) Strongly typed genetic programming. BBN Technical Report #7866, Bolt Beranek and Newman, Inc.

    Google Scholar 

  • Robinson JA (1965) A machine-oriented logic based on the resolution principle. J ACM 12 (1): 23–41

    Article  MATH  Google Scholar 

  • Ryan C, O’Neill M (1998) Grammatical evolution: A steady state approach. In: Koza JR (ed) Late breaking papers at the genetic programming 1998 conference, stanford University Bookstore, University of Wisconsin, Madison, Wisconsin, USA, pp 180–185. http://citeseer.ist.psu.edu/cache/papers/cs/12751/http:zSzzS zscare.csis.ul.iezSzmichaelzSzpaperszSzgp98.pdf/ryan98grammatical.pdf

  • Schönfinkel M (1967) From Frege to Gödel: a source book in mathematical logic, Harv, chap Ãœber die Bausteine der mathematischen Logik, pp 1879–1931

    Google Scholar 

  • Spector L (2001) Autoconstructive evolution: Push, pushGP, and pushpop. In: Spector L, Goodman ED, Wu A, Langdon WB, Voigt HM, Gen M, Sen S, Dorigo M, Pezeshk S, Garzon MH, Burke E (eds) Proceedings of the Genetic and Evolutionary Computation Conference (GECCO-2001). Morgan Kaufmann, San Francisco, pp 137–146. http://hampshire.edu/lspector/pubs/ace.pdf

    Google Scholar 

  • Spector L, Klein J, Keijzer M (2005) The push3 execution stack and the evolution of control. In: Beyer HG, O’Reilly UM, Arnold DV, Banzhaf W, Blum C, Bonabeau EW, Cantu-Paz E, Dasgupta D, Deb K, Foster JA, de Jong ED, Lipson H, Llora X, Mancoridis S, Pelikan M, Raidl GR, Soule T, Tyrrell AM, Watson JP, Zitzler E (eds) GECCO 2005: Proceedings of the 2005 conference on Genetic and evolutionary computation, vol 2. ACM Press, Washington DC, pp 1689–1696. doi:10.1145/1068009.1068292. http://www.cs.bham.ac.uk/ wbl/biblio/gecco2005/docs/p1689.pdf

  • Turner D (1979) A new implementation technique for applicative languages. Software Pract Exper 9: 31–49

    Google Scholar 

  • Yu T (2000) Polymorphism and genetic programming. In: Whitley D (ed) Late breaking papers at the 2000 genetic and evolutionary computation conference. Las Vegas, pp 437–444

    Google Scholar 

  • Yu T, Clack C (1998) Recursion, lambda abstractions and genetic programming. In: Koza JR, Banzhaf W, Chellapilla K, Deb K, Dorigo M, Fogel DB, Garzon MH, Goldberg DE, Iba H, Riolo R (eds) Genetic programming 1998: proceedings of the third annual conference. Morgan Kaufmann, University of Wisconsin, Madison, pp 422–431

    Google Scholar 

  • Yu J, Yu J, Almal AA, Dhanasekaran SM, Ghosh D, Worzel WP, Chinnaiyan AM (2007) Feature selection and molecular classification of cancer using genetic programming. Neoplasia 9(4):292–303. doi:10.1593/neo.07121

    Article  Google Scholar 

  • Yzerman E, den Boer J, Caspers M, Almal A, Worzel B, van der Meer W, Montijn R, Schuren F (2010) Comparative genome analysis of a large dutch legionella pneumophila strain collection identifies five markers highly correlated with clinical strains. BMC Genomics 11:433. doi:10.1186/1471-2164-11-433. http://www.biomedcentral.com/1471-2164/11/433

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to William P. Worzel .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this chapter

Cite this chapter

Worzel, W., MacLean, D. (2015). SKGP: The Way of the Combinator. In: Riolo, R., Worzel, W., Kotanchek, M. (eds) Genetic Programming Theory and Practice XII. Genetic and Evolutionary Computation. Springer, Cham. https://doi.org/10.1007/978-3-319-16030-6_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-16030-6_4

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-16029-0

  • Online ISBN: 978-3-319-16030-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics