Information Technology Reference
In-Depth Information
that, a special terminal named “ephemeral random constant” was introduced.
For each ephemeral random constant used in the parse trees of the initial
population, a random number of a special data type in a specified range is
generated. Then these random numerical constants are moved around from
tree to tree by the crossover operator.
Gene expression programming solves the problem of constants' creation
differently (Ferreira 2001). This technique uses an extra terminal “?” and an
extra domain Dc composed of the symbols chosen to represent the random
numerical constants. For each gene, the RNCs are generated during the in-
ception of the initial population and kept in an array. The values of each
random constant are only assigned during gene expression. Furthermore, a
special operator is used to introduce genetic variation in the available pool
of random constants by mutating the random constants directly. In addition,
the usual GEP operators (mutation, inversion, transposition, and recombina-
tion) plus a Dc-specific inversion and a Dc-specific transposition guarantee
the effective circulation of the random constants in the population. Indeed,
with this scheme of constants' manipulation, the appropriate diversity of ran-
dom constants can be generated in the beginning of a run and maintained
easily afterwards by the genetic operators.
But numerical constants can be created rather more simply. We have al-
ready seen in section 3.4, Solving a Simple Problem with GEP, how the basic
gene expression algorithm creates integer constants by performing simple
mathematical operations, such as x / x to create one or ( x - x ) to create zero.
Indeed, the simple problem of section 3.4 required the discovery of con-
stants 2 and 3 in order to design a perfect solution and, as you would recall,
the basic GEA had no problems in finding a perfect match for the target
function (3.19). In fact, most problems can be solved similarly by creating
numerical constants from scratch. But there are problems, however, for which
the required numerical constants are not that easily created, and special fa-
cilities for handling them are absolutely necessary. We will analyze one such
problem later in this chapter, the analog circuit design problem, where nu-
merical constants play a crucial role in the design of good solutions.
Yet another simple and very popular - albeit not very efficient - form of
creating numerical constants consists of adding a small number of numerical
constants to the terminal set and then deal with them as extra terminals. For
instance, the simple problem of section 3.4 could also be solved by using the
terminal set T = {a, 0, 1, 2, 3} so that numerical constants could be directly
integrated in the evolving solutions. Let's now analyze how this method
Search WWH ::




Custom Search