Skip to main content

Evolving Efficient List Search Algorithms

  • Conference paper
Artifical Evolution (EA 2009)

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

Abstract

We peruse the idea of algorithmic design through Darwinian evolution, focusing on the problem of evolving list search algorithms. Specifically, we employ genetic programming (GP) to evolve iterative algorithms for searching for a given key in an array of integers. Our judicious design of an evolutionary language renders the evolution of linear-time search algorithms easy. We then turn to the far more difficult problem of logarithmic-time search, and show that our evolutionary system successfully handles this case. Subsequently, because our setup might be perceived as being geared towards the emergence of binary search, we generalize our genomic representation, allowing evolution to assemble its own useful functions via the mechanism of automatically defined functions (ADFs). We show that our approach routinely and repeatedly evolves general and correct efficient algorithms.

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 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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Harel, D.: Algorithmics: The Spirit of Computing. Addison-Wesley Publishing Company, Readings (1992)

    MATH  Google Scholar 

  2. Koza, J.R.: Genetic Programming: On the Programming of Computers by Means of Natural Selection. MIT Press, Cambridge (1992)

    MATH  Google Scholar 

  3. Montana, D.J.: Strongly typed genetic programming. Evolutionary Computation 3(2), 199–230 (1995)

    Article  Google Scholar 

  4. Luke, S., Panait, L.: A Java-based evolutionary computation research system (March 2004), http://cs.gmu.edu/~eclab/projects/ecj

  5. Kinnear Jr., K.E.: Evolving a sort: Lessons in genetic programming. In: Proceedings of the 1993 International Conference on Neural Networks, San Francisco, USA, March 28-April 1, vol. 2, pp. 881–888. IEEE Press, Los Alamitos (1993)

    Chapter  Google Scholar 

  6. Koza, J.R.: Genetic Programming II: Automatic Discovery of Reusable Programms. MIT Press, Cambridge (1994)

    Google Scholar 

  7. Knuth, D.E.: Sorting and Searching. The Art of Computer Programming, vol. 3. Addison-Wesley, Reading (1975)

    Google Scholar 

  8. Kinnear Jr., K.E.: Generality and difficulty in genetic programming: Evolving a sort. In: Proceedings of the 5th International Conference on Genetic Algorithms, San Francisco, CA, USA, pp. 287–294. Morgan Kaufmann Publishers Inc., San Francisco (1993)

    Google Scholar 

  9. Withall, M.S., Hinde, C.J., Stone, R.G.: An improved representation for evolving programs. Genetic Programming and Evolvable Machines 10(1), 37–70 (2009)

    Article  Google Scholar 

  10. Agapitos, A., Lucas, S.M.: Evolving efficient recursive sorting algorithms. In: Proceedings of the 2006 IEEE Congress on Evolutionary Computation, Vancouver, July 6-21, pp. 9227–9234. IEEE Press, Los Alamitos (2006)

    Google Scholar 

  11. Agapitos, A., Lucas, S.M.: Evolving modular recursive sorting algorithms. In: Ebner, M., O’Neill, M., Ekárt, A., Vanneschi, L., Esparcia-Alcázar, A.I. (eds.) EuroGP 2007. LNCS, vol. 4445, pp. 301–310. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  12. O’Reilly, U.M., Oppacher, F.: A comparative analysis of GP. In: Angeline, P.J., Kinnear Jr., K.E. (eds.) Advances in Genetic Programming, vol. 2, pp. 23–44. MIT Press, Cambridge (1996)

    Google Scholar 

  13. Abbott, R., Guo, J., Parviz, B.: Guided genetic programming. In: The 2003 International Conference on Machine Learning; Models, Technologies and Applications (MLMTA’03), Las Vegas, June 23-26. CSREA Press (2003)

    Google Scholar 

  14. Spector, L., Klein, J., Keijzer, M.: The push3 execution stack and the evolution of control. In: GECCO ’05: Proceedings of the 2005 Conference on Genetic and Evolutionary Computation, New York, NY, USA, pp. 1689–1696. ACM, New York (2005)

    Chapter  Google Scholar 

  15. Shirakawa, S., Nagao, T.: Evolution of sorting algorithm using graph structured program evolution. In: SMC, pp. 1256–1261. IEEE, Los Alamitos (2007)

    Google Scholar 

  16. Koza, J.R., Andre, D., Bennett III, F.H., Keane, M.: Genetic Programming 3: Darwinian Invention and Problem Solving. Morgan Kaufmann, San Francisco (1999)

    Google Scholar 

  17. Kirshenbaum, E.: Iteration over vectors in genetic programming. Technical Report HPL-2001-327, HP Laboratories, December 17 (2001)

    Google Scholar 

  18. Ahluwalia, M., Bull, L.: Coevolving functions in genetic programming. Journal of Systems Architecture 47(7), 573–585 (2001)

    Article  Google Scholar 

  19. Woodward, J.: Evolving Turing complete representations. In: Sarker, R., et al. (eds.) Proceedings of the 2003 Congress on Evolutionary Computation CEC2003, Canberra, December 8-12, pp. 830–837. IEEE Press, Los Alamitos (2003)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Wolfson, K., Sipper, M. (2010). Evolving Efficient List Search Algorithms. In: Collet, P., Monmarché, N., Legrand, P., Schoenauer, M., Lutton, E. (eds) Artifical Evolution. EA 2009. Lecture Notes in Computer Science, vol 5975. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-14156-0_14

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-14156-0_14

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-14155-3

  • Online ISBN: 978-3-642-14156-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics