Page 82 - 49A Field Guide to Genetic Programming
P. 82
68 7 Linear and Graph Genetic Programming
the graph. Also, traditionally Cartesian GP has always used mutation as
its main search operation, while PDGP used both crossover and mutation.
However, recently a new crossover has been proposed for Cartesian GP that
provides faster convergence (Clegg, Walker, and Miller, 2007).
7.2.4 Evolving Parallel Programs using Indirect
Encodings
The graph-based systems discussed above use representations which directly
encode parallel programs. However, it is also possible to use non-graph-
based GP to evolve parallel programs. For example, Bennett (1996) used a
parallel virtual machine in which several standard tree-like programs (called
“agents”) would have their nodes executed in parallel. He included a two-
stage mechanism which simulated parallelism of sensing actions and simple
conflict resolution (prioritisation) for actions with side effects. Andre, Ben-
nett, and Koza (1996) used GP to discover rules for cellular automata, a
highly parallel computational architecture, which could solve large majority-
classification problems. In conjunction with an interpreter implementing a
parallel virtual machine, GP can also be used to translate sequential pro-
grams into parallel ones (Walsh and Ryan, 1996), or to develop parallel
programs.