Home About Us Contact Search >>
Karva Notation  
Products Buy Now Downloads Support
 
 

Karva Notation: The Native Language of GeneXproTools

Karva notation is used internally by GeneXproTools as it allows the compact encoding and rapid expression of complex models. And although very simple to understand, you don't actually have to know it in order to model with GeneXproTools, as all the code generated by GeneXproTools is automatically converted into the most commonly used programming languages (a total of 16 in GeneXproTools 4.0). But since it is so simple and so handy, we encourage you to learn about this representation so that you can benefit from some of the most advanced features of GeneXproTools.

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. 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.

The linear structures of GEP are called chromosomes and each chromosome contains one or more genes. And each gene is associated with its own K-expression ("K" or "Kappa" is for Karva notation). Genes and K-expressions are very easy to decode. For example, the gene:

0123456
+/*abcd

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).

More formally, both the gene and ET above can be represented by the mathematical expression:

 

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 structures. For example, consider the gene:

01234567890123456
Q/a*+b-cbabaccbac

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 in the previous example, 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.

Furthermore, GEP chromosomes are usually multigenic, and each gene codes for a sub-ET or sub-program. After translation, the sub-ETs are linked by a particular linking function: addition, subtraction, multiplication, or division for all kinds of mathematical models in GeneXproTools 4.0 and And, Or, Nand, Nor, Xor, Nxor, Less Than, Greater Than, Less Or Equal, and Greater Or Equal for logical expressions.

For example, the following chromosome composed of three genes (position 0 indicates the beginning of each gene):

012345678012345678012345678
*aQ+abbaa/Q*/aababa*+Qaabba

encodes the 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 ET above can be easily linearized into a single K-expression:

01234567890123456
++a*/aQQ*+/aaabba

These manipulations are important in order to fully explore all the features of GeneXproTools, especially the Change Seed method, which allows you to take an existing model, tinker (or not) with it a bit, and then use it to breed even better models.


But unless you want to use extraneous models, you don't have to be fluent in Karva as all the models evolved by GeneXproTools in its native Karva code are automatically converted not only into a wide range of programming languages (Ada, C, C++, C#, Fortran, Java, Java Script, Matlab, Pascal, Perl, PHP, Python, Visual Basic, VB.Net, Verilog, and VHDL) but also into diagram representations or expression trees for an immediate visualization of the model structure.











Last modified: September 1, 2007


Cite this as:

Ferreira, C. "Karva Notation: The Native Language of GeneXproTools." From GeneXproTools Tutorials – A Gepsoft Web Resource. http://www.gepsoft.com/tutorial003.htm

   

Download GeneXproTools for Windows Buy GeneXproTools Upgrade GeneXproTools
 
GeneXproTools  


   


GeneXproServer  



Other Tutorials



Quick Tour Videos





Gene Expression Programming


   Subscribe to the GEP-list
Enter 2 + 32 =
Signup Now

“Finally, a world class user interface in the field of genetic programming and evolutionary computation !! GeneXproTools is simply unrivaled in its marvelous user interface, the breadth of its Fitness Functions, the choice and flexibility in Math and Logic functions, the clarity of its final Model Presentation, and a built in panel for Scoring new data, right inside the interface. This kind of functionality and ease of use has never been seen before in the field of Genetic Programming. Additionally, Dr Ferreira’s specific methodology of Gene Expression Programming makes important contributions to the field of evolutionary computation, and the various algorithms she has developed and deployed inside of GeneXproTools are brilliantly conceived, and her methodologies evolve highly predictive models that solve real business problems. GeneXproTools is an extraordinary structural tour de force.“

Brian C. Watt, CRM
Chief Risk Officer
Chief Financial Officer
GECC Inc, USA
   
 

More

 
 
 
 

 
Home | What's New | Products | Buy Now | Upgrade | Downloads | Quick Tour | Support | Contact Us | About Gepsoft | Sign Up
Tutorials | Videos | FAQ | Knowledge Base | Logistic Regression KB | Terms of Use | Privacy & Cookies
 
 

Copyright (c) 2000-2013 Gepsoft Ltd. All rights reserved.