Loops and recursions are important structures in human written computer programs. While various loops have been successfully evolved with genetic programming (GP), automatic generation of programs with recursions has not been achieved. To fill this gap, this paper develops three new methods at different levels of generality to evolve programs with recursive structures using GP. These new methods are examined and compared with two GP methods with loops and a standard GP method on three mathematic/symbolic regression problems including repeating characteristics and three artificial Ant problems. The results show that the new methods outperform the two GP methods with loops and standard GP on all these problems in terms of the correctness of the evolved solutions and evolutionary training time. While the more specifically designed method achieves the best results, the more general methods can still find perfect solutions and can be applied to different problems.
Fahmi AbdulhamidKourosh NeshatianJun Zhang