LISTSERV mailing list manager LISTSERV 16.0

Help for ECJ-INTEREST-L Archives


ECJ-INTEREST-L Archives

ECJ-INTEREST-L Archives


ECJ-INTEREST-L@LISTSERV.GMU.EDU


View:

Message:

[

First

|

Previous

|

Next

|

Last

]

By Topic:

[

First

|

Previous

|

Next

|

Last

]

By Author:

[

First

|

Previous

|

Next

|

Last

]

Font:

Proportional Font

LISTSERV Archives

LISTSERV Archives

ECJ-INTEREST-L Home

ECJ-INTEREST-L Home

ECJ-INTEREST-L  June 2016

ECJ-INTEREST-L June 2016

Subject:

Re: SteadyStateEA in two pops coevolution

From:

Sean Luke <[log in to unmask]>

Reply-To:

ECJ Evolutionary Computation Toolkit <[log in to unmask]>

Date:

Thu, 2 Jun 2016 16:58:47 +0200

Content-Type:

text/plain

Parts/Attachments:

Parts/Attachments

text/plain (49 lines)

On Jun 2, 2016, at 4:25 PM, BARI, ATM GOLAM <[log in to unmask]> wrote:

> ​- My idea was like this : send one individual to the problem, play the interaction game with other individuals from different population inside problem class.​ 

You need to provide more information here.  

1. When the evaluation of individual A with some individual B of the other population is finished, does this just effect the fitness of A?

2. Can you select individuals B from the other population totally at random, or is there some structure which dictates which individuals would get selected with which individuals A?


> I think you need to first think about what SSEA means in a coevolutionary context.  Steady State is basically this:
> ​
> Loop forever:
>         I <- breed new individual
>         F <- evaluate individual
>         G <- add individual into population, perhaps displacing an existing individual
> 
> How would you modify this loop to do SSEA in the way you're hoping?  What kind of coevolution are you trying to do?
> 
> ​- I need "Parallel 2-Population Competitive Coevolution"​ 
> ​- I don't want to modify this loop. 

If what you want to do is evaluate an individual A by testing it against random individuals from the other population, and the results of these tests only affects fitness of individual A, then I wouldn't screw with the coevolution system at all.  And GroupedProblemForm's preprocessPopulation and postprocessPopulation stuff doesn't make much sense either.  Maybe you could hack things up, just override SteadyStateEvaluator.evaluateIndividual(...) as follows:

------
MultiSimpleProblemForm msp = ((MultiSimpleProblemForm)(problem));
int otherSubpop = // the other subpopulation
int[] others = // pick individuals from other subpopulation
msp.evaluate(state, ind, others, otherSubpop, 0);

// you'll need to make queue protected rather than package/private
queue.addLast(new QueueIndividual(ind, subpop));
-----


Now it is possible that what you REALLY want to do is something different:

Given Populations P1, P2, ..., Pn
Loop forever:
        I1, I2, ..., In <- breed new individual from each pop
        F1, F2, ..., Fn <- evaluate(I1, I2, ..., In) together
        Add I1, I2, ..., In into P1, P2, ..., Pn respectively,
	    perhaps displacing existing individuals

In this case, you'll need to rewrite the Steady State system to do evaluation and breeding of each subpopulation in parallel, and also to use GroupedProblemForm. You might called it Steady State CCEA or something, I dunno. Anyway, ECJ doesn't have that built in. 

Sean

Top of Message | Previous Page | Permalink

Advanced Options