GeneXproTools 4.0 allows you to simplify an existing model (which could have been either generated by
GeneXproTools or by another modeling tool) either by pressing the
Simplify button on the Run Panel or by choosing a fitness function
with parsimony pressure and then press Optimize or Simplify on the
Run Panel.
For models created outside of GeneXproTools or for GeneXproTools
models modified by the user, the starting model is fed to the algorithm through the Change Seed window where both the fitness and structural soundness of the model are tested. In
this case, you will need to know how to convert the model into Karva code, as the Change Seed window only accepts Karva code.
The easiest way of translating your model into Karva
code, consists of representing your model in a tree structure and then create a linear representation of the parse tree by
writing down all the nodes in the tree from top to bottom and from left to right. You will end up with a
K-expression that you can, with only a small modification, use as seed.
For instance, the expression tree below:
can be represented linearly by the following K-expression:
/.d1./.-.Exp.Exp.Ln.d2.d2.d2
Now you only need to incorporate this K-expression into a correct gene structure, with a
head and a tail correctly
defined. A simple way of doing this, consists of considering the entire K-expression the head of your gene and then add a tail (with the correct length, of course) containing only terminals (which terminals you add is irrelevant as these terminals
will not interfere with the expression of your K-expression). For instance, the K-expression above could be correctly accommodated into the following gene:
/.d1./.-.Exp.Exp.Ln.d2.d2.d2.d0.d0.d0.d0.d0.d0.d0.d0.d0.d0.d0
Then you just have to create a new run in GeneXproTools and evolve quickly
(for one generation is enough) a proto-model with exactly the same structure
you’ll need for integrating your seed model (that is, number of genes, head size, linking function, function
set, etc.), and then replace this proto-model in the Change Seed window
by your seed.
Then, in the Run Panel, by clicking the
Simplify button, an evolutionary process starts in which all the subsequent models will be descendants of the
model you want to simplify. Keep in mind, however, that the
simplification algorithm used by GeneXproTools is an evolutionary
one and, despite parsimony pressure being applied, models continue
to be selected preferentially by fitness and sometimes their
complexity might even increase temporarily if the gain in fitness outweighs
the loss in simplicity.
For models created in the GeneXproTools 4.0 environment, you just
have to select the model you want to simplify (either the
best-of-run or an intermediate model picked up in the History
Panel)
and then click the Simplify button and let the algorithm create
better descendants not only in terms of fitness but also in terms of
size.
This can be done for as long as you wish or until
you feel the program is as parsimonious as it will get. By
monitoring the plots Avg/Best Size and Sub-Program Sizes as well
as the Heat Map in the Run Panel, you will know exactly how the
simplification process is progressing.
|