Print

Print


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 <sean@cs.gmu.edu> wrote:
On Jan 2, 2016, at 11:20 PM, Atm Golam Bari <bari@MAIL.USF.EDU> 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