Information Technology Reference
In-Depth Information
6
Automatically Defined
Functions in Problem Solving
Automatically defined functions were for the first time introduced by Koza
as a way of reusing code in genetic programming (Koza 1992). These ADFs
obey a rigid syntax in which an S-expression, with a LIST- n function on the
root, lists n -1 function-defining branches and one value-returning branch
(Figure 6.1). The function-defining branches are used to create ADFs that
may or may not be called upon by the value-returning branch. Such rigid
structure imposes great constraints on the genetic operators as the different
branches of the LIST function are not allowed to exchange genetic material
amongst themselves. Furthermore, the ADFs of genetic programming are
further constrained by the number of arguments each takes, as the number of
arguments must be a priori defined and cannot be changed during evolution.
LIST3
Function-Defining
Branch ADF 0
Function-Defining
Branch ADF 1
Value-Returning
Branch
Figure 6.1. The overall structure of an S-expression with two function-defining
branches and the value-returning branch used in genetic programming to create
automatically defined functions.
We have already seen in section 2.3, Cells and the Evolution of Linking
Functions, that in the multigenic system of gene expression programming,
the implementation of ADFs can be done elegantly and without any kind of
constraints as n different genes are used to encode n different ADFs. The
way these ADFs interact with one another and how often they are called
upon is encoded in special genes - homeotic genes - that control the overall
Search WWH ::




Custom Search