jMetal / jMetal

jMetal: a framework for multi-objective optimization with metaheuristics
https://jmetal.readthedocs.io/en/latest/index.html
MIT License
516 stars 403 forks source link

.dat files and .pf files for WFG and DTLZ #321

Closed gadhaunaslam closed 2 years ago

gadhaunaslam commented 5 years ago

Hello!

I am currently using JMetal 5.1.

It doesn't have .pf files for DTLZ5.4D and DTLZ6.4D (For four objectives). Similarly, it doesn't have .pf files for DTLZ5.6D and DTLZ6.6D (For six objectives).

Also, there are no .pf files for WFG for 4D and 6D.

Can someone please guide me how can i have them? Because i know that Jmetal gives option to GenerateReferenceParetoFront but i am not able to do it!

matthieu-vergne commented 5 years ago

I will rely on @ajnebro for this one.

gadhaunaslam commented 5 years ago

However, with the reference pareto fronts that are already present, it gives an error in class ComputeQualityIndicators.

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.rangeCheck(Unknown Source) at java.util.ArrayList.get(Unknown Source) at org.uma.jmetal.util.experiment.component.ComputeQualityIndicators.findBestIndicatorFronts(ComputeQualityIndicators.java:191) at org.uma.jmetal.util.experiment.component.ComputeQualityIndicators.run(ComputeQualityIndicators.java:92) at org.uma.jmetal.experiment.ZDTScalabilityIStudy.main(ZDTScalabilityIStudy.java:100)

Any and all help will be appreciated.

gadhaunaslam commented 5 years ago

As in it calculates all quality indicators for the first instance DTLZ1 and makes the output folders/files and when calculating it for DTLZ2, it gives this error.

ajnebro commented 5 years ago

These fronts can be generated according to the instructions given in the papers defining them:

gadhaunaslam commented 5 years ago

Great, thanks!

Also, can you respond to the above query too?

ajnebro commented 5 years ago

Are you using an experiment like this: https://github.com/jMetal/jMetal/blob/master/jmetal-exec/src/main/java/org/uma/jmetal/experiment/DTLZStudy.java ?

ajnebro commented 5 years ago

Because i know that Jmetal gives option to GenerateReferenceParetoFront but i am not able to do it!

That program is useful to obtain a reference Pareto front from the results of the executions of a set of algorithms solving a same problem; it doesn't produce a true Pareto front.

gadhaunaslam commented 5 years ago

Are you using an experiment like this: https://github.com/jMetal/jMetal/blob/master/jmetal-exec/src/main/java/org/uma/jmetal/experiment/DTLZStudy.java ?

Yes i am. I have edited an experiment class to run instances of DTLZ on a particular algorithm.

ajnebro commented 5 years ago

I'm running it and it is working.

gadhaunaslam commented 5 years ago

It works for NSGA-II. However, as soon as i switch to MOEA-D with 24 parameters and 5 objectives (generating pareto fronts by invoking GenerateReferenceParetoFront), it doesn't run.

ajnebro commented 5 years ago

Which population size are you using with MOEA/D?. You have to take into account that if the population size is p and the number of objectives is o, there must be a weight vector file named WoD_p.dat in the MOEAD_Weights directory.

gadhaunaslam commented 5 years ago

Thanks for replying!

Yes, you're right and i made sure of that already.

I have 5 objectives, 1000 population size and am running it for DTLZ1-DTLZ7. The code runs for the first instance but gives error for the second instance while computing the quality indicators in which it gives NoSuchFileException as it fails to create the quality indicator files for the second instance.

It works perfectly for individual problem instances but when i add all problem instances to be run in one iteration it gives the same error.

matthieu-vergne commented 5 years ago

Could you please provide the stack trace of the error?

gadhaunaslam commented 5 years ago

Sure i will.

I am currently running NSGA-III for the same parameters and it is taking ages to run as it creates 1820 reference points. As soon as it gets executed, i will share it right away.