![]() |
Karva Notation and K-Expressions |
|
Karva Notation and K-Expressions
Karva notation was developed specifically for Gene Expression Programming
(GEP) and consists of a universal way of compactly representing any mathematical or logical expression that can be represented as a tree
[1]. Besides its compactness, this universal
representation is also linear, and this is a fundamental
characteristic for any system that has to breed mathematical
expressions to create new, more precise ones.
can be represented as a diagram or expression tree (ET):
The translation of the gene into the corresponding ET is straightforward: The first element in the gene (position 0) corresponds to the root of the ET; then, below that node, are attached as many nodes as there are arguments to that function (two, in this case); then these nodes are filled consecutively with the elements in the gene (in this case, positions 1 and 2), and so forth. The process is repeated until a line composed of only terminals is formed (in this case, the third line).
Usually the genes evolved by GEP are more interesting than the gene presented
above, not only with
noncoding regions at their ends but also with more diverse
branching patterns.
where "Q" represents the square root function. This gene has a head (from position 0 through 7 and shown in blue) of length 8 and a tail (from position 8 through 16) of length 9. Note that the head contains both functions (which may take 1, 2,..., n arguments) and terminals (the variables and constants in a problem), whereas the tail contains exclusively terminals (this structural organization is indeed the cornerstone of GEP as it ensures that all the programs encoded in the genes are syntactically correct). The translation of such genes is done exactly as shown for gene (1), giving:
Note that, in this case, not all the elements in the gene were used to construct the ET, as the translation ends whenever a line containing only terminals is formed. In this
particular case, the gene ends at position 16 whereas the K-expression ends at position 9.
codes for the three following sub-ETs:
Then the sub-ETs are afterwards linked by one of the available linking functions. For instance, if the linking function were addition, then the following program would be obtained (the linking function is shown in gray):
Note that the final program represented in the Figure above could be linearly encoded as
a single K-expression:
However, the use of multigenic chromosomes is more appropriate to evolve solutions to complex problems, for they permit the modular construction of complex, hierarchical structures, where each gene codes for a smaller and simpler building block. These smaller building blocks are separated from
one another and are therefore free to evolve independently, allowing
for the creation of concrete new units that might prove handy in a
new situation.
Last modified: August 27, 2007 More Tutorials | GEP Mailing List *** |
Last update: 23/July/2013
|
© Candida Ferreira All rights reserved. |