The chromosome architecture of your
logic circuits include the
head size, the number of genes and the linking
function. You choose these parameters in the Settings Panel -> General Settings.
The Head Size determines the complexity of each term in your logic
circuit. In the
heads of genes, the GeneXproTools
learning algorithm tries out different arrangements of functions and
terminals (variables and constants) in order to model your data. The plasticity of this architecture allows the discovery of
a virtually infinite number of logic circuits of different sizes and shapes which are afterwards tested and selected during the learning process.
The heads of genes are shown in blue in the compact, linear
representation of your models in the Model Panel.
More specifically, the head size h of each gene determines the maximum width
w and maximum depth d of the sub-expression trees encoded in the gene, which are given by the formulas:
w = (n - 1) * h + 1
d = ((h + 1) / m) * ((m +
1) / 2)
where m is minimum arity and n is maximum arity.
Thus, the GeneXproTools learning algorithm selects its
logic circuits between these extreme cases, fine-tuning the ideal size and shape during the evolutionary process without human intervention.
The number of genes per chromosome is also an important parameter. It will determine the number of (complex) terms in your
logic circuits as each gene codes for a different
parse tree (sub-expression tree or sub-ET). Theoretically, one could just use a huge single gene in order to evolve very complex
circuits. But the partition of the chromosome into simpler, more manageable units gives an edge to the learning process and more efficient and elegant
circuits can be discovered using
multigenic chromosomes.
Whenever the number of genes is greater than one, you must also choose a suitable
linking function for linking the
logical expressions encoded in each gene.
GeneXproTools 4.0 allows you to choose And, Or, Nand,
Nor, Xor, Nxor, Less Than, Greater
Than, Less Or Equal, or Greater Or Equal to link the
sub-ETs. As expected, Or (and obviously And) works very well for virtually all problems but sometimes one of the other linkers could be useful for searching different solution spaces and finding a very good, albeit unexpected
circuit.
|