The Pareto class doesn't do any calculation. I suspect that the difference is in your calculation somewhere. How do you know what the actual values should be? Are you running the individuals back through your solver to double-check their fitness values? That would be my first step. Take the individuals.csv file and pass a few of them into the solver to see if you get the same values back as their fitnesses. If you don't, then I'd check your evaluation function to make sure that you're calculating the fitness the same way as your spot-check procedure. There are not many places in the library for things to go wrong in the case you're describing.
As for the archive, it will not necessarily be the same size as your population. They are not the same. The archive only holds the non-dominated solutions found so far, in the case of NSGA, for example.
-- Aaron Garrett
--
You received this message because you are subscribed to the Google Groups "Inspyred" group.
To view this discussion on the web visit https://groups.google.com/d/msg/inspyred/-/FNya0elvZtcJ.
To post to this group, send email to insp...@googlegroups.com.
To unsubscribe from this group, send email to inspyred+u...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/inspyred?hl=en.
[-16.69693426619406 | -2.813425373271362] |
[-11.003257255844874 | 0.9273927686012078] |
[-14.478268557227548 | 3.976218759821066] |
[-13.819455573408893 | 5.977186461914271] |
[-13.084924296209268 | -2.267625811100122] |
[-10.677773337603771 | 5.095688245239632] |
[-9.821625459206496 | 2.764901808702323] |
[-10.244283083533272 | 10.078823492404464] |
[-14.170748304381114 | 12.916165790480118] |
[-8.321106190546386 | 11.503825977312356] |
[-16.69693426619406 | -2.813425373271362] |
[-13.44076450355643 | -6.845242104849904] |
[-14.850367892809949 | -3.586092030408952] |
[-13.084924296209268 | -2.267625811100122] |
[-16.11674428877094 | -0.6027572840874829] |
[-15.848295268700621 | 0.551880533330031] |
[-12.836282903055567 | -2.040089362559654] |
[-15.079665777258908 | 1.2289895951590837] |
[-12.378612739768538 | -1.2850129359004525] |
[-11.003257255844874 | 0.9273927686012078] |
--
You received this message because you are subscribed to the Google Groups "Inspyred" group.
To view this discussion on the web visit https://groups.google.com/d/msg/inspyred/-/M4O14AXiqaAJ.
OK. So you have an individual in the output file whose fitness isn't in your calculation files. I don't see how that can happen. It IS possible to have an individual in your calculation files that doesn't exist in the output file for the generations, because he may have been replaced before he ever made it into the population. (The "individuals" file is a snapshot of all of the individuals in the population at the end of a generation. Some guys might never have made it that far.) But the other way shouldn't happen. Your fellow's fitness came from somewhere. The library doesn't do any math on the fitness values. My guess would be that either you just missed it in your set of calculation files or your evaluation function isn't recording the fitness the same way your calculation files are. I'm not saying that the library is error free. (It certainly isn't.) But I have used it myself for at least two years on lots of projects, and I've never seen the error you're describing. So I'm betting that there's something in the code that uses the library that's causing the problem.
If you send your code, I'm happy to look through it to see if I can spot any issues. I can't run it because I don't have your solver program, but maybe another pair of eyes can help find the problem. And if it does turn out to be a bug in the library, I'd like to track it down and fix it.
-- Aaron Garrett
--
You received this message because you are subscribed to the Google Groups "Inspyred" group.
To view this discussion on the web visit https://groups.google.com/d/msg/inspyred/-/zIu-piVA_a8J.
I have read a book about NSGA_II, it said in the NSGA-II, an initial population P0 with size N is randomly generated, then a new population named Q0 with size N is generated from the P0 through evolution operators, the P0 and Q0 merge into a big population R0, then individuals in R0 is evaluated through the evaluator, after that the Non-dominated sorting is conducted, finally a new population P1 with size N is selected from R0. So the number of the evaluated individuals are 2*N, but in the code I found that the number of the individuals in the candidates equals to pop_size, not 2*pop_size.
--
You received this message because you are subscribed to the Google Groups "Inspyred" group.
To view this discussion on the web visit https://groups.google.com/d/msg/inspyred/-/eGE26VWt1icJ.
Hi Aaron Garrett, I just finished an optimization, and the results are fine, there is nothing wrong with your code, it's my misunderstanding. Thanks for your work.
--
You received this message because you are subscribed to the Google Groups "Inspyred" group.
To view this discussion on the web visit https://groups.google.com/d/msg/inspyred/-/G8nwgCHV85QJ.