GEP Book

  Home
  News
  Author
  Q&A
  Tutorials
  Downloads
  GEP Biblio
  Contacts

  Visit Gepsoft

 

C. FERREIRA Invited Tutorial Presented at WSC6, 2001

Gene Expression Programming in Problem Solving

Function Finding and the Creation of Numerical Constants
 
Here I show two different approaches to the problem of constant creation: one without using ephemeral random constants, and another using ephemeral random constants. In the first approach, a special facility to handle numerical constants was implemented. In the second approach, the system creates them or finds alternative ways of representing them on its own.

Numerical constants can be easily implemented in GEP (Ferreira 2001). For that an additional domain Dc was created. Structurally, the Dc comes after the tail, has a length equal to t, and consists of the symbols used to represent the ephemeral random constants. Therefore, another region with its boundaries and its own alphabet was created in the chromosome.

For each gene the constants are randomly generated at the beginning of a run, but their circulation is guaranteed by the genetic operators. Besides, a special mutation operator was created that allows the permanent introduction of variation in the set of random constants. A domain specific IS transposition was also created in order to guarantee the effective shuffling of constants. Note that the basic genetic operators are not affected by the Dc: it is only necessary to keep the boundaries of each region and not mix different alphabets.

Consider the single-gene chromosome with an h = 11 (the Dc is shown in blue):

01234567890123456789012345678901234

*?+?/*a-*/*a????a??a??a281983874486

(3.1)

where ‘?’ represents the ephemeral random constants. The expression of this kind of chromosomes is done exactly as before, obtaining:

Then the ?’s in the ET are replaced from left to right and from top to bottom by the symbols in Dc, obtaining:

The values corresponding to these symbols are kept in an array. For simplicity, the number represented by the numeral indicates the order in the array. For instance, for the 10 element array:

A = {-2.829, 2.55, 2.399, 2.979, 2.442, 0.662, 1.797, -1.272, 2.826, 1.618}

the chromosome 3.1 above gives:

So, in this section, we will compare the two approaches searching a solution to a relatively complex problem. The test function chosen is the following ‘V’ shaped function:

y = 4.251a2 + ln(a2) + 7.243ea

(3.2)

where a is the independent variable and e is the irrational number 2.71828183. For both approaches, we will compare the results obtained for 100 independent runs of 5000 generations each (see Table 4).

Home | Contents | Previous | Next