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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Harel, D.: Algorithmics: The Spirit of Computing. Addison-Wesley Publishing Company, Readings (1992)
Koza, J.R.: Genetic Programming: On the Programming of Computers by Means of Natural Selection. MIT Press, Cambridge (1992)
Montana, D.J.: Strongly typed genetic programming. Evolutionary Computation 3(2), 199–230 (1995)
Luke, S., Panait, L.: A Java-based evolutionary computation research system (March 2004), http://cs.gmu.edu/~eclab/projects/ecj
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)
Koza, J.R.: Genetic Programming II: Automatic Discovery of Reusable Programms. MIT Press, Cambridge (1994)
Knuth, D.E.: Sorting and Searching. The Art of Computer Programming, vol. 3. Addison-Wesley, Reading (1975)
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)
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)
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)
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)
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)
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)
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)
Shirakawa, S., Nagao, T.: Evolution of sorting algorithm using graph structured program evolution. In: SMC, pp. 1256–1261. IEEE, Los Alamitos (2007)
Koza, J.R., Andre, D., Bennett III, F.H., Keane, M.: Genetic Programming 3: Darwinian Invention and Problem Solving. Morgan Kaufmann, San Francisco (1999)
Kirshenbaum, E.: Iteration over vectors in genetic programming. Technical Report HPL-2001-327, HP Laboratories, December 17 (2001)
Ahluwalia, M., Bull, L.: Coevolving functions in genetic programming. Journal of Systems Architecture 47(7), 573–585 (2001)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)