Print

Print


Dear Sean,

> But don't lose hope!  I *believe* that UNIFORM does not have this
> restriction.  If you change your tree builder to UNIFORM, then just go
> into GPTreeConstraints and change state.output.error(...) to
> state.output.warning(...) and you should be good to go (knocks on
> wood).

I have done just as you said. I have also added the following lines
to my params file:

gp.build.uniform.min-size = 2
gp.build.uniform.max-size = 5

But when I try to run it again, I get the following error:

-------------------------------------------------------------------------------------------------------------
Setting up
Processing GP Types
Processing GP Node Constraints
Processing GP Function Sets
Processing GP Tree Constraints
Determining Tree Sizes
Set: 0 Type: 0 Size: 1 num: 0
Set: 0 Type: 0 Size: 2 num: 0
Set: 0 Type: 0 Size: 3 num: 1
Set: 0 Type: 0 Size: 4 num: 0
Set: 0 Type: 0 Size: 5 num: 0
Set: 0 Type: 1 Size: 1 num: 1
Set: 0 Type: 1 Size: 2 num: 0
Set: 0 Type: 1 Size: 3 num: 0
Set: 0 Type: 1 Size: 4 num: 0
Set: 0 Type: 1 Size: 5 num: 0
Compiling Distributions
WARNING:
In function set f0 for the GPTreeConstraints tc0, no terminals are
given with the return type edge which is required by other functions
in the function set.
PARAMETER: gp.tc.0
WARNING:
In function set f0 for the GPTreeConstraints tc0, no *nonterminals*
are given with the return type real which is required by other
functions in the function set.  This may or may not be a problem for
you.
PARAMETER: gp.tc.0
Initializing Generation 0
Determining Tree Sizes
Set: 0 Type: 0 Size: 1 num: 0
Set: 0 Type: 0 Size: 2 num: 0
Set: 0 Type: 0 Size: 3 num: 1
Set: 0 Type: 0 Size: 4 num: 0
Set: 0 Type: 0 Size: 5 num: 0
Set: 0 Type: 1 Size: 1 num: 1
Set: 0 Type: 1 Size: 2 num: 0
Set: 0 Type: 1 Size: 3 num: 0
Set: 0 Type: 1 Size: 4 num: 0
Set: 0 Type: 1 Size: 5 num: 0
Compiling Distributions
FATAL ERROR:
ec.gp.build.Uniform was asked to build a tree with functionset f0
rooted with type edge, but cannot because for some reason there are no
trees of any valid size (within the specified size range) which exist
for this function set and type.
--------------------------------------------------------------------------------------------------------------------

To be honest, I am not sure if this is due to any limitations in
Uniform, or if there is any error in my parameter files. I have tried
to change min-size and max-size, but I get the same results. Do you
have any idea what the problem could be? I have checked the javadocs
for Uniform, but the algorithm is a little bit difficult to follow.

Best regards,

Artur Matos.