Print

Print


Bari, NSGA2 has a very specific selection mechanism which involves pareto ranking.  The multiobjective fitness of an individual is only part of it.

Your questions are really regarding NSGA2 as an algorithm rather than ECJ's implementation (which is pretty standard).  In general, I am hesitant to discuss or explain EC algorithms on this mailing list: it is really meant for ECJ-specific stuff.  

Sean

On Jan 3, 2016, at 2:07 PM, BARI, ATM GOLAM <[log in to unmask]> wrote:

> Got it : that means, whatever concept I use, it works as  fitness for selection algorithm?
> Thanks a lot.
> 
> 
> On Sun, Jan 3, 2016 at 2:02 PM, Sean Luke <[log in to unmask]> wrote:
> Ranking is an nsga2 concept.  I suggest you read up on it in Essentials of Metaheuristics.
> 
> On Jan 3, 2016 12:35 PM, "BARI, ATM GOLAM" <[log in to unmask]> wrote:
> Thanks Sean.
> I forgot to change fitness class name in the parameter. It works by changing the appropriate name. I am subclassing MultiobjectiveFitness.java and xyz is the child class. Thanks again.
> 
> BTW, I had a second asking on ranking vs fitness also. Would you please clarify the concept.
> 
> -Bari
> 
> On Sun, Jan 3, 2016 at 12:34 AM, Sean Luke <[log in to unmask]> wrote:
> On Jan 2, 2016, at 11:20 PM, Atm Golam Bari <[log in to unmask]> wrote:
> 
> >>> I am using MultiobjectiveFitness.java  and NSGA2MultiobjectiveFitness.java in my own evaluator as is but renaming  NSGA2MultiobjectiveFitness to xyz. When I call assignFrontRanks(Subpopulation subpop) inside the evluator (same as NSGA2Evaluator calls this method), I get ClassCastException Error on the line ((xyz)(((Individual)(front.get(ind))).fitness)).rank = rank; I can't find the reason. Any clue?
> 
> Sound like your fitness object can't be cast to an xyz.  This implies that it's probably still an NSGA2MultiobjectiveFitness.  Did you change what the fitness class was in your parameter file?
> 
> Why are you renaming MultiobjectiveFitness.java?  This is highly nonstandard and seems like something that's going to cause a whole heap of problems.  Why not just subclass it?
> 
> Sean
> 
>