Elimination of the wrapper operator was deliberate: we'd spoken with
certain of the primaries for Grammatical Evolution and had gotten the
notion that it's not really used much now. It also has a problem:
with the right genome, trees can be potentially infinite in size.
You're right, it wouldn't be much to include it assuming we can get a
good method for rejecting infinite trees.
Sean
On Feb 15, 2011, at 5:54 AM, Matthew Hyde wrote:
> Hi, many thanks for the replies. I also am inclined to agree that
> this is
> not a bug with ecj. I too get much worse results for symbolic
> regression
> especially, and also when using the jGE software package, so this is
> not
> just ecj. I have looked quite deeply into the ecj code, and the only
> difference I can see is that there is no GE 'wrapping' operator,
> where the
> mapping process goes back to the first codon if there are not enough
> in the
> genome. I have written a hack for GPSpecies which includes this, and
> yet the
> results are only marginally better. Was the wrapping operator left out
> intentionally? The countNumberOfChromosomesUsed array seems ideal to
> count
> the wraps, and yet it is not fully used, and currently only has a
> size of 1.
> Just to clarify, in case anyone reads this in future, I am indeed
> using the
> Santa Fe example code, provided with ecj. I have set the number of
> steps to
> be 615 rather than 400, as I think that number appears in a future
> paper.
> The example needed some modification as the grammar and parameters
> were not
> the same as in the paper.
|