How to specify numerical constants?
  • Is there a method of inserting specific numerical constants (such as the speed of light or the Faraday constant) into the equations being generated?
  • There are different ways of doing this. The most straightforward and most efficient way consists of creating different UDFs, each returning a constant value.

    Another straightforward way consists of introducing the numerical constant through the Change Seed window. This obviously implies having the GEP-RNC algorithm turned on and a starting model (seed) in which the desired constant is introduced by hand. The problem with this strategy is that if the seed is not good enough, it (plus the numerical constants) might be lost in the evolutionary process; but obviously if the seed is very good and if its numerical constants play an important role, the constants will most certainly keep and other models will most probably evolve that are descendants of this seed and use the same constants.

    For those cases where only one specific constant is involved and you are sure that a good model can be created using that one constant, you can turn on the GEP-RNC algorithm and then choose the same lower and upper bounds for the random numerical constants so that the evolved models will only use the constant you are interested in.

    Another straightforward way, albeit not very efficient in terms of computational resources, consists of creating different DDFs, each returning a constant value. Contrary to UDFs which are only evaluated at the beginning of each run, DDFs are very high maintenance as they are evaluated each time they appear in the models, so you must always use UDFs for such simple functions returning constant values.

    Yet another form of introducing specific numerical constants is the popular method used in evolutionary computation of assigning different inputs to introduce the constants. This obviously means that the numerical constants must be introduced in all the datasets (training, testing, and scoring). This method is also very efficient, and although not as elegant, is in fact very similar to using UDFs for introducing the constants.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!