Graph Structured Program Evolution: Evolution of Loop Structures

  • Shinichi Shirakawa
  • Tomoharu Nagao
Part of the Genetic and Evolutionary Computation book series (GEVO)


Recently, numerous automatic programming techniques have been developed and applied in various fields. A typical example is genetic programming (GP), and various extensions and representations of GP have been proposed thus far. Complex programs and hand-written programs, however, may contain several loops and handle multiple data types. In this chapter, we propose a new method called Graph Structured Program Evolution (GRAPE). The representation of GRAPE is a graph structure; therefore, it can represent branches and loops using this structure. Each programis constructed as an arbitrary directed graph of nodes and a data set. The GRAPE program handles multiple data types using the data set for each type, and the genotype of GRAPE takes the form of a linear string of integers. We apply GRAPE to three test problems, factorial, exponentiation, and list sorting, and demonstrate that the optimum solution in each problem is obtained by the GRAPE system.


automatic programming genetic programming graph-based genetic programming genetic algorithm factorial exponentiation list sorting 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Agapitos, Alexandros and Lucas, Simon M. (2006a). Evolving efficient recursive sorting algorithms. In Proceedings of the 2006 IEEE Congress on Evolutionary Computation, pages 9227-9234, Vancouver. IEEE Press.Google Scholar
  2. Agapitos, Alexandros and Lucas, Simon M. (2006b). Learning recursive functions with object oriented genetic programming. In Collet, Pierre, Tomassini, Marco,Ebner, Marc, Gustafson, Steven, and Ekrt, Anikó, editors, Proceedings of the 9th European Conference on Genetic Programming, volume 3905 of Lecture Notes in Computer Science, pages 166-177, Budapest, Hungary. Springer.Google Scholar
  3. Angeline, Peter J. and Pollack, Jordan (1993). Evolutionary module acquisition. In Fogel, D. and Atmar, W., editors, Proceedings of the Second Annual Conference on Evolutionary Programming, pages 154-163, La Jolla, CA, USA.Google Scholar
  4. Brameier, Markus and Banzhaf, Wolfgang (2001). A comparison of linear genetic programming and neural networks in medical data mining. IEEE Transactions on Evolutionary Computation, 5(1):17-26.CrossRefGoogle Scholar
  5. Deb, Kalyanmoy, Anand, Ashish, and Joshi, Dhiraj (2002). A computationally efficient evolutionary algorithm for real-parameter optimization. Evolutionary Computation, 10(4):371-395.CrossRefGoogle Scholar
  6. Fogel, David B., Angeline, Peter J., and Fogel, David B. (1995). An evolutionary programming approach to self-adaptation on finite state machines. In Proceedings of the Fourth Annual Conference on Evolutionary Programming, pages 355-365. MIT Press.Google Scholar
  7. Gruau, Frederic, Whitley, Darrell, and Pyeatt, Larry (1996). A comparison between cellular encoding and direct encoding for genetic neural networks. In Koza, John R., Goldberg, David E., Fogel, David B., and Riolo, Rick L., editors, Genetic Programming 1996: Proceedings of the First Annual Conference, pages 81-89, Stanford University, CA, USA. MIT Press.Google Scholar
  8. Harvey, Inman and Thompson, Adrian (1996). Through the labyrinth evolution finds a way: A silicon ridge. In Proceedings of the First International Conference on Evolvable Systems: From Biology to Hardware (ICES 96), volume 1259 of LNCS, pages 406-422. Springer-Verlag.Google Scholar
  9. Huelsbergen, Lorenz (1997). Learning recursive sequences via evolution of machine-language programs. In Koza, John R., Deb, Kalyanmoy, Dorigo, Marco, Fogel, David B., Garzon, Max, Iba, Hitoshi, and Riolo, Rick L., editors, Genetic Programming 1997: Proceedings of the Second Annual Conference, pages 186-194, Stanford University, CA, USA. Morgan Kaufmann.Google Scholar
  10. Kantschik, Wolfgang and Banzhaf, Wolfgang (2002). Linear-graph GPA new GP structure. In Foster, James A., Lutton, Evelyne, Miller, Julian, Ryan, Conor, and Tettamanzi, Andrea G. B., editors, Genetic Programming, Proceedings of the 5th European Conference, EuroGP 2002, volume 2278 of LNCS, pages 83-92, Kinsale, Ireland. Springer-Verlag.Google Scholar
  11. Katagiri, Hironobu, Hirasawa, Kotaro, Hu, Jinglu, and Murata, Junichi (2001). Network structure oriented evolutionary model - genetic network programming-and its comparison with. In Spector, Lee, Goodman, Erik D., Wu, Annie, Langdon, W. B., Voigt, Hans-Michael, Gen, Mitsuo, Sen, Sandip, Dorigo, Marco, Pezeshk, Shahram, Garzon, Max H., and Burke, Edmund, editors, Proceedings of the Genetic and Evolutionary Computation Conference (GECCO-2001), page 179, San Francisco, California, USA. Morgan Kaufmann.Google Scholar
  12. Kinnear, Jr., Kenneth E. (1993a). Evolving a sort: Lessons in genetic programming. In Proceedings of the 1993 International Conference on Neural Networks, volume 2, pages 881-888, San Francisco, USA. IEEE Press.CrossRefGoogle Scholar
  13. Kinnear, Jr., Kenneth E. (1993b). Generality and difficulty in genetic programming: Evolving a sort. In Forrest, Stephanie, editor, Proceedings of the 5th International Conference on Genetic Algorithms, ICGA-93, pages 287-294, University of Illinois at Urbana-Champaign. Morgan Kaufmann.Google Scholar
  14. Koza, John R. (1992). Genetic Programming: On the Programming of Computers by Means of Natural Selection. MIT Press, Cambridge, MA, USA.zbMATHGoogle Scholar
  15. Koza, John R. (1994). Genetic Programming II: Automatic Discovery of Reusable Programs. MIT Press, Cambridge Massachusetts.zbMATHGoogle Scholar
  16. Koza, John R., Andre, David, Bennett III, Forrest H, and Keane, Martin (1999). Genetic Programming 3: Darwinian Invention and Problem Solving. Morgan Kaufman.Google Scholar
  17. Mattiussi, Claudio and Floreano, Dario (2007). Analog genetic encoding for the evolution of circuits and networks. IEEE Transactions on Evolutionary Computation, 11(5):596-607.CrossRefGoogle Scholar
  18. Miller, Julian F. and Smith, Stephen L. (2006). Redundancy and computational efficiency in cartesian genetic programming. IEEE Transactions on Evolutionary Computation, 10(2):167-174.CrossRefGoogle Scholar
  19. Miller, Julian F. and Thomson, Peter (2000). Cartesian genetic programming. In Poli, Riccardo, Banzhaf, Wolfgang, Langdon, William B., Miller, Julian F., Nordin, Peter, and Fogarty, Terence C., editors, Genetic Programming, Proceedings of EuroGP, volume 1802 of LNCS, pages 121-132, Edinburgh. Springer-Verlag.Google Scholar
  20. Montana, David J. (1995). Strongly typed genetic programming. Evolutionary Computation, 3(2):199-230.CrossRefGoogle Scholar
  21. O Neill, Michael and Ryan, Conor (2003). Grammatical Evolution: Evolutionary Automatic Programming in a Arbitrary Language, volume 4 of Genetic programming. Kluwer Academic Publishers.Google Scholar
  22. Poli, Riccardo (1997). Evolution of graph-like programs with parallel distributed genetic programming. In Back, Thomas, editor, Genetic Algorithms: Proceedings of the Seventh International Conference, pages 346-353, Michigan State University, East Lansing, MI, USA. Morgan Kaufmann.Google Scholar
  23. Satoh, Hiroshi, Yamamura, Masayuki, and Kobayashi, Shigenobu (1996). Minimal generation gap model for considering both exploration and exploitations. In Proceedings of the IIZUKA 96, pages 494-497.Google Scholar
  24. Shirakawa, Shinichi and Nagao, Tomoharu (2007). Evolution of sorting algorithm using graph structured program evolution. In Proceedings of the 2007 IEEE International Conference on Systems, Man and Cybernetics (SMC 2007), pages 1256-1261, Montreal, Canada. IEEE.Google Scholar
  25. Shirakawa, Shinichi and Nagao, Tomoharu (2009). Evolution of search algorithms using graph structured program evolution. In Vanneschi, Leonardo, Gustafson, Steven, Moraglio, Alberto, De Falco, Ivanoe, and Ebner, Marc, editors, Proceedings of the 12th European Conference on Genetic Programming, EuroGP 2009, volume 5481 of LNCS, pages 109-120, Tuebingen. Springer.Google Scholar
  26. Shirakawa, Shinichi, Ogino, Shintaro, and Nagao, Tomoharu (2007). Graph structured program evolution. In Thierens, Dirk, Beyer, Hans-Georg, Bongard, Josh, Branke, Jurgen, Clark, John Andrew, Cliff, Dave, Congdon, Clare Bates, Deb, Kalyanmoy, Doerr, Benjamin, Kovacs, Tim, Kumar, Sanjeev, Miller, Julian F., Moore, Jason, Neumann, Frank, Pelikan, Martin, Poli, Riccardo, Sastry, Kumara, Stanley, Kenneth Owen, Stutzle, Thomas, Watson, Richard A, and Wegener, Ingo, editors, GECCO 07: Proceedings of the 9th annual conference on Genetic and evolutionary computation, volume 2, pages 1686-1693, London. ACM Press.CrossRefGoogle Scholar
  27. Spector, Lee, Klein, Jon, and Keijzer, Maarten (2005). The push3 execution stack and the evolution of control. In Beyer, Hans-Georg, O Reilly, Una-May, Arnold, Dirk V., Banzhaf, Wolfgang, Blum, Christian, Bonabeau, Eric W., Cantu-Paz, Erick, Dasgupta, Dipankar, Deb, Kalyanmoy, Foster, James A., de Jong, Edwin D., Lipson, Hod, Llora, Xavier, Mancoridis, Spiros, Pelikan, Martin, Raidl, Guenther R., Soule, Terence, Tyrrell, Andy M., Watson, Jean-Paul, and Zitzler, Eckart, editors, GECCO 2005: Proceedings of the 2005 conference on Genetic and evolutionary computation, volume 2, pages 1689-1696, Washington DC, USA. ACM Press.CrossRefGoogle Scholar
  28. Spector, Lee and Robinson, Alan (2002). Genetic programming and autoconstructive evolution with the push programming language. Genetic Programming and Evolvable Machines, 3(1):7-40.zbMATHCrossRefGoogle Scholar
  29. Teller, Astro (1994). Turing completeness in the language of genetic programming with indexed memory. In Proceedings of the 1994 IEEE World Congress on Computational Intelligence, volume 1, pages 136-141, Orlando, Florida, USA. IEEE Press.Google Scholar
  30. Teller, Astro and Veloso, Manuela (1996). PADO: A new learning architecture for object recognition. In Ikeuchi, Katsushi and Veloso, Manuela, editors, Symbolic Visual Learning, pages 81-116. Oxford University Press.Google Scholar
  31. Tsutsui, Shigeyoshi, Yamamura, Masayuki, and Higuchi, Takahide (1999). Multi-parent re-combination with simplex crossover in real coded genetic algorithms. In Proceedings of the Genetic and Evolutionary Computation Conference 1999 (GECCO 99), pages 657-664.Google Scholar
  32. Yu, Tina and Clack, Chris (1998). Recursion, lambda-abstractions and genetic programming. In Poli, Riccardo, Langdon, W.B., Schoenauer, Marc, Fogarty, Terry, and Banzhaf, Wolfgang, editors, Late Breaking Papers at EuroGP'98: the First European Workshop on Genetic Programming, pages 26-30, Paris, France. CSRP-98-10, The University of Birmingham, UK.Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2010

Authors and Affiliations

  • Shinichi Shirakawa
    • 1
  • Tomoharu Nagao
    • 1
  1. 1.Graduate School of Environment and Information SciencesYokohama National UniversityKanagawaJapan

Personalised recommendations