Print

Print


I am a bit confused. I haven't seen the usage of "likelihood" in setting the probability of performing crossover/mutation. The following is what I learned from the tutorials and what I continue using:

pop.subpop.0.species.pipe = ec.breed.MultiBreedingPipeline
# Koza's decision here was odd...
pop.subpop.0.species.pipe.generate-max = false
# Subsidiary pipelines:
pop.subpop.0.species.pipe.num-sources = 2
pop.subpop.0.species.pipe.source.0 = ec.gp.koza.CrossoverPipeline
pop.subpop.0.species.pipe.source.0.prob = 0.9
pop.subpop.0.species.pipe.source.1 = ec.breed.ReproductionPipeline
pop.subpop.0.species.pipe.source.1.prob = 0.1 I searched a little for the parameter "likelihood", and this is what I found in class BreedingPipeline:
public static final java.lang.String P_LIKELIHOOD
Indicates the probability that the Breeding Pipeline will perform its mutative action instead of just doing reproduction.

Not sure what this does, but I guess it is for normal EC and can be ignored in a GP process. I could be totally wrong.


On Mon, Mar 3, 2014 at 7:14 AM, Francisco Lopez de la Franca <[log in to unmask]> wrote:
Hi again.
I've used gp.koza.xover.likelihood to set the probability of performing the crossover operator and I've seen differences in my results, what it sounds good.
After checking the koza.params file, I see that like for xover, there is a gp.koza.mutate param. I've tried with gp.koza.mutate.likelihood and when printing unaccessed params, the gp.koza.mutate.likelihood appears in that list.

Please, how do I set a probability for performing the mutation operator, I mean, with probability 0.x I want the mutation operation to be performed?

Thank you very much.
My best regards.


2014-03-01 1:02 GMT+01:00 Francisco Lopez de la Franca <[log in to unmask]>:

Sorry for the troubles, but I've re-read the manual several times and it doesnīt clarify my question.
In genetic algorithms, evolution strategies, etc, it is specified a probability of doing recombination, and another one of doing mutation. And, I want to do the same for genetic programming, an I donīt see the way to do it in ECJ.
Thank you anyway.
Regards.


2014-02-28 14:35 GMT+01:00 Sean Luke <[log in to unmask]>:

I think you need to read up on parameter bases in ECJ.  See the manual's section on parameters and parameter databases.

Sean

On Feb 28, 2014, at 2:26 AM, Francisco Lopez de la Franca <[log in to unmask]> wrote:

> I want to specify the probability of performing mutation and the same for crossover. How do I specify it for each operator?
> I've seen the following parameters and I don`t know which one to use:
>
> <base>.likelihood
> pop.subpop.0.species.pipe.source.0.prob
> gp.koza.xover.prob
> pop.subpop.0.species.mutation-prob
> pop.subpop.0.species.crossover-prob
>
> Additionally, I'd like to know the type of mutation and crossover applied in the run. How do I know them?
>
> Thanks a lot.
>
>
> 2014-02-27 15:22 GMT+01:00 Sean Luke <[log in to unmask]>:
> If you want to specify the probability whether a given operator performs mutation (say) or just copies parents and returns them, the parameter you're looking for is 'likelihood'.
>
> If you want to specify the probability of doing mutation type 1 versus mutation type 2 versus crossover or whatever, the tool you want is called ec.breed.MultiBreedingPipeline.
>
> Sean
>
> On Feb 27, 2014, at 6:50 AM, Francisco Lopez de la Franca <[log in to unmask]> wrote:
>
> > Hi.
> >
> > I'd like to know how it's specified in the params file the probability of carrying out the recombination and mutation in genetic programming. (I think recombination is called in GP crossover, isn't it?).
> >
> > Thanks.
>