From ffe63a3b14dfadfe09f4611d08fedd0d0f58a809 Mon Sep 17 00:00:00 2001 From: ajnebro Date: Thu, 19 Mar 2020 09:43:26 +0100 Subject: [PATCH] Refresh contents from local project jMetalAuto --- .../multiobjective/dmopso/DMOPSOMeasures.java | 2 +- .../algorithm/multiobjective/ibea/mIBEA.java | 3 +- .../algorithm/multiobjective/moead/MOEAD.java | 6 +- .../multiobjective/moead/MOEADDE.java | 7 +- .../moead/MOEADDEWithArchive.java | 82 -- .../moead/MOEADWithArchive.java | 74 -- .../multiobjective/nsgaii/NSGAII.java | 11 +- .../nsgaii/NSGAIIWithArchive.java | 87 -- .../nsgaii/jmetal5version/NSGAIIMeasures.java | 2 +- .../algorithm/multiobjective/smpso/SMPSO.java | 2 +- .../multiobjective/smsemoa/SMSEMOA.java | 4 +- .../smsemoa/SMSEMOAWithArchive.java | 4 +- .../smsemoa/jmetal5version/SMSEMOA.java | 2 +- .../jmetal5version/SMSEMOABuilder.java | 4 +- .../smsemoa/util/SMSEMOAReplacement.java | 4 +- .../abyss/ABYSSConstrainedProblemIT.java | 4 +- .../multiobjective/abyss/ABYSSIT.java | 4 +- .../multiobjective/dmopso/DMOPSOIT.java | 4 +- .../ensemble/AlgorithmEnsembleIT.java | 2 +- .../algorithm/multiobjective/fame/FAMEIT.java | 4 +- .../multiobjective/gde3/GDE3TestIT.java | 4 +- .../multiobjective/mocell/MOCellIT.java | 4 +- .../multiobjective/moead/MOEADDEIT.java | 6 +- .../jmetal5version/ConstraintMOEADIT.java | 4 +- .../moead/jmetal5version/MOEADDRAIT.java | 4 +- .../moead/jmetal5version/MOEADIT.java | 6 +- .../multiobjective/mombi2/MOMBI2IT.java | 4 +- .../multiobjective/nsgaii/NSGAIIIT.java | 4 +- .../nsgaii/jmetal5version/NSGAIIIT.java | 4 +- .../multiobjective/omopso/OMOPSOIT.java | 4 +- .../multiobjective/pesa2/PESA2IT.java | 4 +- .../multiobjective/smpso/SMPSOIT.java | 6 +- .../multiobjective/smpso/SMPSOhv2IT.java | 6 +- .../multiobjective/smpso/SMPSOhvIT.java | 4 +- .../multiobjective/smsemoa/SMSEMOAIT.java | 6 +- .../multiobjective/wasfga/WASFGAIT.java | 4 +- .../auto/algorithm/EvolutionaryAlgorithm.java | 12 +- .../auto/algorithm/nsgaii/AutoNSGAII.java | 26 +- .../auto/algorithm/nsgaii/AutoNSGAIIv2.java | 216 ++++ .../jmetal/auto/algorithm/nsgaii/NSGAII.java | 33 +- .../nsgaii/NSGAIIWithParameters.java | 12 +- .../auto/algorithm/nsgaii/NSGAIIv2.java | 128 +++ .../nsgaii/NSGAIIv2WithParameters.java | 69 ++ .../jmetal/auto/algorithm/spea2/SPEA2.java | 26 +- .../auto/component/evaluation/Evaluation.java | 10 - .../impl/MultithreadedEvaluation.java | 37 - .../evaluation/impl/SequentialEvaluation.java | 41 - .../InitialSolutionsCreation.java | 10 - ...tinHypercubeSamplingSolutionsCreation.java | 74 -- .../impl/RandomSolutionsCreation.java | 40 - .../impl/ScatterSearchSolutionsCreation.java | 98 -- .../component/replacement/Replacement.java | 11 - .../replacement/impl/PairwiseReplacement.java | 57 - ...RankingAndDensityEstimatorReplacement.java | 104 -- ...ingleObjectiveGenerationalReplacement.java | 28 - .../selection/MatingPoolSelection.java | 10 - ...ferentialEvolutionMatingPoolSelection.java | 35 - .../selection/impl/MOEADSelection.java | 85 -- .../NaryTournamentMatingPoolSelection.java | 50 - .../impl/RandomMatingPoolSelection.java | 31 - ...ndDensityEstimatorMatingPoolSelection.java | 75 -- .../component/termination/Termination.java | 13 - .../impl/TerminationByComputingTime.java | 39 - .../impl/TerminationByEvaluations.java | 26 - .../impl/TerminationByKeyboard.java | 57 - .../auto/component/variation/Variation.java | 12 - .../impl/CrossoverAndMutationVariation.java | 89 -- .../impl/DifferentialCrossoverVariation.java | 65 -- .../jmetal/auto/irace/AutoNSGAIIirace.java | 99 +- .../CreateInitialSolutionsParameter.java | 8 +- .../catalogue/ReplacementParameter.java | 5 +- .../catalogue/SelectionParameter.java | 11 +- .../catalogue/VariationParameter.java | 12 +- .../uma/jmetal/auto/util/fitness/Fitness.java | 10 - .../auto/util/fitness/impl/SPEA2Fitness.java | 33 - .../auto/util/preference/Preference.java | 75 -- .../resources/irace/parameters-NSGAII.txt | 25 +- .../src/main/resources/irace/target-runner | 2 +- ...ingAndDensityEstimatorReplacementTest.java | 202 ---- .../util/fitness/impl/SPEA2FitnessTest.java | 89 -- jmetal-core/jMetal.log.1 | 16 + jmetal-core/pom.xml | 8 + .../ComponentBasedEvolutionaryAlgorithm.java | 34 +- ...pervolumeContributionDensityEstimator.java | 4 +- .../component/evaluation/Evaluation.java | 2 +- .../evaluation/impl/AbstractEvaluation.java | 6 +- .../impl/MultithreadedEvaluation.java | 5 +- .../evaluation/impl/SequentialEvaluation.java | 10 +- ...RankingAndDensityEstimatorReplacement.java | 52 +- .../NaryTournamentMatingPoolSelection.java | 24 +- .../impl/RelativeHypervolume.java | 70 ++ .../jmetal/qualityindicator/impl/Spread.java | 1 + .../impl/{ => hypervolume}/Hypervolume.java | 3 +- .../{ => impl}/PISAHypervolume.java | 4 +- .../{ => impl}/WFGHypervolume.java | 4 +- .../jmetal/util/AbstractAlgorithmRunner.java | 6 +- .../java/org/uma/jmetal/util/Preference.java | 87 ++ .../archive/impl/AbstractBoundedArchive.java | 4 +- .../util/archive/impl/HypervolumeArchive.java | 2 +- .../HypervolumeArchiveWithReferencePoint.java | 4 +- .../util/chartcontainer/ChartContainer.java | 439 ++++---- .../chartcontainer/GenericChartContainer.java | 482 +++++---- .../jmetal/util/front/impl/ArrayFront.java | 3 +- ...AccordingToTheHypervolumeContribution.java | 2 +- .../CommandLineQualityIndicatorTool.java | 5 +- .../evaluation/impl/EvaluationTestCases.java | 8 +- .../impl/MultithreadedEvaluationTest.java | 2 +- .../impl/SequentialEvaluationTest.java | 2 +- .../crossover/BLXAlphaCrossoverTest.java | 2 +- .../crossover/CompositeCrossoverTest.java | 2 +- .../DifferentialEvolutionCrossoverTest.java | 2 +- .../crossover/HUXCrossoverTest.java | 2 +- .../crossover/IntegerSBXCrossoverTest.java | 2 +- .../crossover/NullCrossoverTest.java | 2 +- .../crossover/PMXCrossoverTest.java | 2 +- .../crossover/SBXCrossoverTest.java | 2 +- .../crossover/SinglePointCrossoverTest.java | 2 +- .../localsearch/BasicLocalSearchTest.java | 2 +- .../mutation/BitFlipMutationTest.java | 2 +- .../mutation/CompositeMutationTest.java | 2 +- .../IntegerPolynomialMutationTest.java | 2 +- .../mutation/NonUniformMutationTest.java | 2 +- .../mutation/PermutationSwapMutationTest.java | 2 +- .../mutation/PolynomialMutationTest.java | 2 +- .../mutation/SimpleRandomMutationTest.java | 2 +- .../mutation/UniformMutationTest.java | 2 +- .../BinaryTournamentSelectionTest.java | 2 +- .../DifferentialEvolutionSelectionTest.java | 2 +- .../selection/NaryRandomSelectionTest.java | 2 +- .../NaryTournamentSelectionTest.java | 2 +- .../selection/RandomSelectionTest.java | 2 +- .../RankingAndCrowdingSelectionTest.java | 2 +- .../selection/TournamentSelectionTest.java | 2 +- .../{impl => }/EpsilonTest.java | 4 +- .../{impl => }/ErrorRatioTest.java | 4 +- .../{impl => }/GenerationalDistanceTest.java | 3 +- .../{impl => }/HypervolumeTest.java | 5 +- .../InvertedGenerationalDistancePlusTest.java | 3 +- .../qualityindicator/{impl => }/R2Test.java | 3 +- .../RelativeHypervolumeTest.java | 92 ++ .../{impl => }/SetCoverageTest.java | 3 +- .../impl/hypervolume/PISAHypervolumeTest.java | 67 +- .../impl/hypervolume/WFGHypervolumeTest.java | 3 +- .../util/front/impl/ArrayFrontTest.java | 32 +- .../multiobjective/MOCellHVRunner.java | 2 +- .../ensemble/Ensemble2DNSGAIISMPSOMOEAD.java | 46 +- .../ensemble/Ensemble3DNSGAIISMPSOMOEAD.java | 52 +- ...DDEComponentBasedConfigurationExample.java | 3 +- ...thUnboundedNonDominatedArchiveExample.java | 31 +- ...EADWithCrowdingDistanceArchiveExample.java | 31 +- ...thUnboundedNonDominatedArchiveExample.java | 35 +- ...AIIComponentBasedConfigurationExample.java | 12 +- .../NSGAIIDefaultConfigurationExample.java | 2 +- ...AIIWithCrowdingDistanceArchiveExample.java | 24 +- ...thUnboundedNonDominatedArchiveExample.java | 46 +- .../nsgaii/ParallelNSGAIIExample.java | 2 +- ...AIIMeasuresWithQualityIndicatorRunner.java | 4 +- .../smpso/SMPSOStandardSettingsExample.java | 2 +- .../smpso/SMPSOStoppingByKeyboardExample.java | 2 +- .../smpso/SMPSOWithPlotliChartExample.java | 2 +- .../smpso/SMPSOWithRealTimeChartExample.java | 2 +- ...thUnboundedNonDominatedArchiveExample.java | 2 +- .../smpso/jmetal5version/SMPSOHv2Runner.java | 2 +- .../smpso/jmetal5version/SMPSOHvRunner.java | 2 +- .../smsemoa/jmetal5version/SMSEMOARunner.java | 4 +- .../component/ComputeQualityIndicators.java | 2 +- .../lab/studies/BinaryProblemsStudy.java | 2 +- .../lab/studies/ConstraintProblemsStudy.java | 2 +- .../org/uma/jmetal/lab/studies/DTLZStudy.java | 2 +- .../uma/jmetal/lab/studies/NSGAIIStudy.java | 2 +- .../uma/jmetal/lab/studies/NSGAIIStudy2.java | 2 +- .../org/uma/jmetal/lab/studies/WFGStudy.java | 2 +- .../lab/studies/ZDTScalabilityIStudy.java | 2 +- .../lab/studies/ZDTScalabilityIStudy2.java | 2 +- .../org/uma/jmetal/lab/studies/ZDTStudy.java | 2 +- .../org/uma/jmetal/lab/studies/ZDTStudy2.java | 2 +- jmetal.properties | 2 + pom.xml | 37 +- resources/referenceFrontsCSV/ConstrEx.pf | 679 ++++++++++++ resources/referenceFrontsCSV/LZ09_F1.pf | 500 +++++++++ resources/referenceFrontsCSV/LZ09_F2.pf | 500 +++++++++ resources/referenceFrontsCSV/LZ09_F3.pf | 500 +++++++++ resources/referenceFrontsCSV/LZ09_F4.pf | 500 +++++++++ resources/referenceFrontsCSV/LZ09_F5.pf | 500 +++++++++ resources/referenceFrontsCSV/LZ09_F6.pf | 990 ++++++++++++++++++ resources/referenceFrontsCSV/LZ09_F7.pf | 500 +++++++++ resources/referenceFrontsCSV/LZ09_F8.pf | 500 +++++++++ resources/referenceFrontsCSV/LZ09_F9.pf | 500 +++++++++ resources/referenceFrontsCSV/Tanaka.pf | 152 +++ .../arrayFront/fileWithFourPoints.dat | 8 +- .../arrayFront/fileWithMissingData.dat | 4 +- .../arrayFront/fileWithOnePoint.dat | 2 +- .../arrayFront/fileWithWrongData.dat | 2 +- 193 files changed, 7589 insertions(+), 2751 deletions(-) delete mode 100644 jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/moead/MOEADDEWithArchive.java delete mode 100644 jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/moead/MOEADWithArchive.java delete mode 100644 jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/nsgaii/NSGAIIWithArchive.java create mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/nsgaii/AutoNSGAIIv2.java create mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/nsgaii/NSGAIIv2.java create mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/nsgaii/NSGAIIv2WithParameters.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/component/evaluation/Evaluation.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/component/evaluation/impl/MultithreadedEvaluation.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/component/evaluation/impl/SequentialEvaluation.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/component/initialsolutionscreation/InitialSolutionsCreation.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/component/initialsolutionscreation/impl/LatinHypercubeSamplingSolutionsCreation.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/component/initialsolutionscreation/impl/RandomSolutionsCreation.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/component/initialsolutionscreation/impl/ScatterSearchSolutionsCreation.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/component/replacement/Replacement.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/component/replacement/impl/PairwiseReplacement.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/component/replacement/impl/RankingAndDensityEstimatorReplacement.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/component/replacement/impl/SingleObjectiveGenerationalReplacement.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/component/selection/MatingPoolSelection.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/component/selection/impl/DifferentialEvolutionMatingPoolSelection.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/component/selection/impl/MOEADSelection.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/component/selection/impl/NaryTournamentMatingPoolSelection.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/component/selection/impl/RandomMatingPoolSelection.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/component/selection/impl/RankingAndDensityEstimatorMatingPoolSelection.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/component/termination/Termination.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/component/termination/impl/TerminationByComputingTime.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/component/termination/impl/TerminationByEvaluations.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/component/termination/impl/TerminationByKeyboard.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/component/variation/Variation.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/component/variation/impl/CrossoverAndMutationVariation.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/component/variation/impl/DifferentialCrossoverVariation.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/util/fitness/Fitness.java delete mode 100644 jmetal-auto/src/main/java/org/uma/jmetal/auto/util/fitness/impl/SPEA2Fitness.java delete mode 100755 jmetal-auto/src/main/java/org/uma/jmetal/auto/util/preference/Preference.java delete mode 100644 jmetal-auto/src/test/org/uma/jmetal/auto/component/replacement/impl/RankingAndDensityEstimatorReplacementTest.java delete mode 100644 jmetal-auto/src/test/org/uma/jmetal/auto/util/fitness/impl/SPEA2FitnessTest.java create mode 100644 jmetal-core/jMetal.log.1 create mode 100755 jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/RelativeHypervolume.java rename jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/{ => hypervolume}/Hypervolume.java (94%) rename jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/hypervolume/{ => impl}/PISAHypervolume.java (98%) rename jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/hypervolume/{ => impl}/WFGHypervolume.java (99%) create mode 100755 jmetal-core/src/main/java/org/uma/jmetal/util/Preference.java rename jmetal-core/src/test/java/org/uma/jmetal/operator/{impl => }/crossover/BLXAlphaCrossoverTest.java (99%) rename jmetal-core/src/test/java/org/uma/jmetal/operator/{impl => }/crossover/CompositeCrossoverTest.java (99%) rename jmetal-core/src/test/java/org/uma/jmetal/operator/{impl => }/crossover/DifferentialEvolutionCrossoverTest.java (97%) rename jmetal-core/src/test/java/org/uma/jmetal/operator/{impl => }/crossover/HUXCrossoverTest.java (94%) rename jmetal-core/src/test/java/org/uma/jmetal/operator/{impl => }/crossover/IntegerSBXCrossoverTest.java (94%) rename jmetal-core/src/test/java/org/uma/jmetal/operator/{impl => }/crossover/NullCrossoverTest.java (98%) rename jmetal-core/src/test/java/org/uma/jmetal/operator/{impl => }/crossover/PMXCrossoverTest.java (95%) rename jmetal-core/src/test/java/org/uma/jmetal/operator/{impl => }/crossover/SBXCrossoverTest.java (99%) rename jmetal-core/src/test/java/org/uma/jmetal/operator/{impl => }/crossover/SinglePointCrossoverTest.java (99%) rename jmetal-core/src/test/java/org/uma/jmetal/operator/{impl => }/localsearch/BasicLocalSearchTest.java (93%) rename jmetal-core/src/test/java/org/uma/jmetal/operator/{impl => }/mutation/BitFlipMutationTest.java (99%) rename jmetal-core/src/test/java/org/uma/jmetal/operator/{impl => }/mutation/CompositeMutationTest.java (98%) rename jmetal-core/src/test/java/org/uma/jmetal/operator/{impl => }/mutation/IntegerPolynomialMutationTest.java (99%) rename jmetal-core/src/test/java/org/uma/jmetal/operator/{impl => }/mutation/NonUniformMutationTest.java (94%) rename jmetal-core/src/test/java/org/uma/jmetal/operator/{impl => }/mutation/PermutationSwapMutationTest.java (95%) rename jmetal-core/src/test/java/org/uma/jmetal/operator/{impl => }/mutation/PolynomialMutationTest.java (99%) rename jmetal-core/src/test/java/org/uma/jmetal/operator/{impl => }/mutation/SimpleRandomMutationTest.java (94%) rename jmetal-core/src/test/java/org/uma/jmetal/operator/{impl => }/mutation/UniformMutationTest.java (95%) rename jmetal-core/src/test/java/org/uma/jmetal/operator/{impl => }/selection/BinaryTournamentSelectionTest.java (98%) rename jmetal-core/src/test/java/org/uma/jmetal/operator/{impl => }/selection/DifferentialEvolutionSelectionTest.java (99%) rename jmetal-core/src/test/java/org/uma/jmetal/operator/{impl => }/selection/NaryRandomSelectionTest.java (99%) rename jmetal-core/src/test/java/org/uma/jmetal/operator/{impl => }/selection/NaryTournamentSelectionTest.java (98%) rename jmetal-core/src/test/java/org/uma/jmetal/operator/{impl => }/selection/RandomSelectionTest.java (62%) rename jmetal-core/src/test/java/org/uma/jmetal/operator/{impl => }/selection/RankingAndCrowdingSelectionTest.java (97%) rename jmetal-core/src/test/java/org/uma/jmetal/operator/{impl => }/selection/TournamentSelectionTest.java (98%) rename jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/{impl => }/EpsilonTest.java (98%) rename jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/{impl => }/ErrorRatioTest.java (98%) rename jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/{impl => }/GenerationalDistanceTest.java (97%) rename jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/{impl => }/HypervolumeTest.java (84%) rename jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/{impl => }/InvertedGenerationalDistancePlusTest.java (98%) rename jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/{impl => }/R2Test.java (95%) create mode 100644 jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/RelativeHypervolumeTest.java rename jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/{impl => }/SetCoverageTest.java (99%) create mode 100644 jmetal.properties create mode 100644 resources/referenceFrontsCSV/ConstrEx.pf create mode 100644 resources/referenceFrontsCSV/LZ09_F1.pf create mode 100644 resources/referenceFrontsCSV/LZ09_F2.pf create mode 100644 resources/referenceFrontsCSV/LZ09_F3.pf create mode 100644 resources/referenceFrontsCSV/LZ09_F4.pf create mode 100644 resources/referenceFrontsCSV/LZ09_F5.pf create mode 100644 resources/referenceFrontsCSV/LZ09_F6.pf create mode 100644 resources/referenceFrontsCSV/LZ09_F7.pf create mode 100644 resources/referenceFrontsCSV/LZ09_F8.pf create mode 100644 resources/referenceFrontsCSV/LZ09_F9.pf create mode 100644 resources/referenceFrontsCSV/Tanaka.pf diff --git a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/dmopso/DMOPSOMeasures.java b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/dmopso/DMOPSOMeasures.java index 4fd3d8d403..50f0158cf7 100644 --- a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/dmopso/DMOPSOMeasures.java +++ b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/dmopso/DMOPSOMeasures.java @@ -2,7 +2,7 @@ import org.uma.jmetal.problem.doubleproblem.DoubleProblem; import org.uma.jmetal.qualityindicator.impl.Epsilon; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.front.Front; import org.uma.jmetal.util.front.impl.ArrayFront; diff --git a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/ibea/mIBEA.java b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/ibea/mIBEA.java index 89f3f317a9..c8670f4225 100644 --- a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/ibea/mIBEA.java +++ b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/ibea/mIBEA.java @@ -5,11 +5,10 @@ import org.uma.jmetal.operator.selection.SelectionOperator; import org.uma.jmetal.problem.Problem; import org.uma.jmetal.solution.Solution; +import org.uma.jmetal.util.SolutionListUtils; import java.util.ArrayList; import java.util.List; -import org.uma.jmetal.algorithm.multiobjective.ibea.IBEA; -import org.uma.jmetal.util.SolutionListUtils; /** This class implements the IBEA algorithm */ @SuppressWarnings("serial") diff --git a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/moead/MOEAD.java b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/moead/MOEAD.java index 6e02024faa..2cd515ee42 100644 --- a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/moead/MOEAD.java +++ b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/moead/MOEAD.java @@ -32,7 +32,6 @@ public class MOEAD> extends ComponentBasedEvolutionaryAlgo /** Constructor */ public MOEAD( - Problem problem, Evaluation evaluation, InitialSolutionsCreation initialPopulationCreation, Termination termination, @@ -41,7 +40,6 @@ public MOEAD( MOEADReplacement replacement) { super( "MOEAD", - problem, evaluation, initialPopulationCreation, termination, @@ -125,6 +123,8 @@ public MOEAD( this.termination = termination; - this.evaluation = new SequentialEvaluation<>(); + this.evaluation = new SequentialEvaluation<>(problem); + + this.archive = null ; } } diff --git a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/moead/MOEADDE.java b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/moead/MOEADDE.java index b71c4d2f39..1eb83e2e25 100644 --- a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/moead/MOEADDE.java +++ b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/moead/MOEADDE.java @@ -31,7 +31,6 @@ public class MOEADDE extends ComponentBasedEvolutionaryAlgorithm /** Constructor */ public MOEADDE( - Problem problem, Evaluation evaluation, InitialSolutionsCreation initialPopulationCreation, Termination termination, @@ -40,7 +39,6 @@ public MOEADDE( MOEADReplacement replacement) { super( "MOEAD-DE", - problem, evaluation, initialPopulationCreation, termination, @@ -78,7 +76,6 @@ public MOEADDE( this.observable = new DefaultObservable<>(name); this.attributes = new HashMap<>(); - SequenceGenerator subProblemIdGenerator = new IntegerPermutationGenerator(populationSize); @@ -134,6 +131,8 @@ public MOEADDE( this.termination = termination ; - this.evaluation = new SequentialEvaluation<>() ; + this.evaluation = new SequentialEvaluation<>(problem) ; + + this.archive = null ; } } diff --git a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/moead/MOEADDEWithArchive.java b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/moead/MOEADDEWithArchive.java deleted file mode 100644 index cc52f413f3..0000000000 --- a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/moead/MOEADDEWithArchive.java +++ /dev/null @@ -1,82 +0,0 @@ -package org.uma.jmetal.algorithm.multiobjective.moead; - -import org.uma.jmetal.component.termination.Termination; -import org.uma.jmetal.problem.Problem; -import org.uma.jmetal.solution.doublesolution.DoubleSolution; -import org.uma.jmetal.util.aggregativefunction.AggregativeFunction; -import org.uma.jmetal.util.archive.Archive; - -import java.util.List; - -/** - * This class is intended to provide an implementation of the MOEA/D-DE algorithm using an external - * archive. The archive is updated * with the evaluated solutions and the a subset of solution list - * it contains is returned as * algorithm result. * - * - * @author Antonio J. Nebro - */ -public class MOEADDEWithArchive extends MOEADDE { - private Archive archive; - - /** - * Constructor with the parameters used in the paper describing MOEA/D-DE. - * - * @param problem - * @param populationSize - * @param f - * @param cr - * @param neighborhoodSelectionProbability - * @param maximumNumberOfReplacedSolutions - * @param neighborhoodSize - * @param termination - */ - public MOEADDEWithArchive( - Problem problem, - int populationSize, - double cr, - double f, - AggregativeFunction aggregativeFunction, - double neighborhoodSelectionProbability, - int maximumNumberOfReplacedSolutions, - int neighborhoodSize, - String weightVectorDirectory, - Termination termination, - Archive archive) { - super( - problem, - populationSize, - cr, - f, - aggregativeFunction, - neighborhoodSelectionProbability, - maximumNumberOfReplacedSolutions, - neighborhoodSize, - weightVectorDirectory, - termination); - - this.archive = archive; - } - - @Override - protected List evaluatePopulation(List population) { - List evaluatedSolutionList = super.evaluatePopulation(population); - for (DoubleSolution solution : evaluatedSolutionList) { - archive.add(solution); - } - - return evaluatedSolutionList; - } - - @Override - public List getResult() { - return archive.getSolutionList(); - } - - public Archive getArchive() { - return archive; - } - - public List getPopulation() { - return population; - } -} diff --git a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/moead/MOEADWithArchive.java b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/moead/MOEADWithArchive.java deleted file mode 100644 index d73e6bbdf8..0000000000 --- a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/moead/MOEADWithArchive.java +++ /dev/null @@ -1,74 +0,0 @@ -package org.uma.jmetal.algorithm.multiobjective.moead; - -import org.uma.jmetal.component.termination.Termination; -import org.uma.jmetal.operator.crossover.CrossoverOperator; -import org.uma.jmetal.operator.mutation.MutationOperator; -import org.uma.jmetal.problem.Problem; -import org.uma.jmetal.solution.Solution; -import org.uma.jmetal.util.aggregativefunction.AggregativeFunction; -import org.uma.jmetal.util.archive.Archive; - -import java.util.List; - -/** - * Class implementing a generic MOEA/D algorithm using an external archive. The archive is updated - * with the evaluated solutions and the a subset of solution list it contains is returned as - * algorithm result. - * - * @author Antonio J. Nebro - */ -public class MOEADWithArchive> extends MOEAD { - private Archive archive; - - /** Constructor */ - public MOEADWithArchive( - Problem problem, - int populationSize, - MutationOperator mutationOperator, - CrossoverOperator crossoverOperator, - AggregativeFunction aggregativeFunction, - double neighborhoodSelectionProbability, - int maximumNumberOfReplacedSolutions, - int neighborhoodSize, - String weightVectorDirectory, - Termination termination, - Archive archive) { - - super( - problem, - populationSize, - mutationOperator, - crossoverOperator, - aggregativeFunction, - neighborhoodSelectionProbability, - maximumNumberOfReplacedSolutions, - neighborhoodSize, - weightVectorDirectory, - termination); - - this.archive = archive; - } - - @Override - protected List evaluatePopulation(List population) { - List evaluatedSolutionList = super.evaluatePopulation(population); - for (S solution : evaluatedSolutionList) { - archive.add(solution); - } - - return evaluatedSolutionList; - } - - @Override - public List getResult() { - return archive.getSolutionList(); - } - - public Archive getArchive() { - return archive; - } - - public List getPopulation() { - return population; - } -} diff --git a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/nsgaii/NSGAII.java b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/nsgaii/NSGAII.java index 19df7c2c9f..03d27f9546 100644 --- a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/nsgaii/NSGAII.java +++ b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/nsgaii/NSGAII.java @@ -31,7 +31,6 @@ public class NSGAII> extends ComponentBasedEvolutionaryAlg /** * Constructor * - * @param problem * @param evaluation * @param initialPopulationCreation * @param termination @@ -40,7 +39,6 @@ public class NSGAII> extends ComponentBasedEvolutionaryAlg * @param replacement */ public NSGAII( - Problem problem, Evaluation evaluation, InitialSolutionsCreation initialPopulationCreation, Termination termination, @@ -49,7 +47,6 @@ public NSGAII( RankingAndDensityEstimatorReplacement replacement) { super( "NSGA-II", - problem, evaluation, initialPopulationCreation, termination, @@ -67,8 +64,8 @@ public NSGAII( MutationOperator mutationOperator, Termination termination, Ranking ranking) { - this.name = "NSGA-II" ; - this.problem = problem ; + this.name = "NSGA-II"; + this.problem = problem; this.observable = new DefaultObservable<>(name); this.attributes = new HashMap<>(); @@ -94,7 +91,9 @@ public NSGAII( this.termination = termination; - this.evaluation = new SequentialEvaluation<>(); + this.evaluation = new SequentialEvaluation<>(problem); + + this.archive = null; } /** Constructor */ diff --git a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/nsgaii/NSGAIIWithArchive.java b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/nsgaii/NSGAIIWithArchive.java deleted file mode 100644 index ba57bf4edf..0000000000 --- a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/nsgaii/NSGAIIWithArchive.java +++ /dev/null @@ -1,87 +0,0 @@ -package org.uma.jmetal.algorithm.multiobjective.nsgaii; - -import org.uma.jmetal.component.ranking.Ranking; -import org.uma.jmetal.component.ranking.impl.MergeNonDominatedSortRanking; -import org.uma.jmetal.component.termination.Termination; -import org.uma.jmetal.operator.crossover.CrossoverOperator; -import org.uma.jmetal.operator.mutation.MutationOperator; -import org.uma.jmetal.problem.Problem; -import org.uma.jmetal.solution.Solution; -import org.uma.jmetal.util.archive.Archive; - -import java.util.List; - -/** - * Variant of NSGA-II using an external archive. The archive is updated with the evaluated solutions - * and a subset of the solution list it contains is returned as algorithm result. - * - * @author Antonio J. Nebro - */ -public class NSGAIIWithArchive> extends NSGAII { - private Archive archive; - - /** Constructor */ - public NSGAIIWithArchive( - Problem problem, - int populationSize, - int offspringPopulationSize, - CrossoverOperator crossoverOperator, - MutationOperator mutationOperator, - Termination termination, - Ranking ranking, - Archive archive) { - super( - problem, - populationSize, - offspringPopulationSize, - crossoverOperator, - mutationOperator, - termination, - ranking); - - this.archive = archive; - } - - /** Constructor */ - public NSGAIIWithArchive( - Problem problem, - int populationSize, - int offspringPopulationSize, - CrossoverOperator crossoverOperator, - MutationOperator mutationOperator, - Termination termination, - Archive archive) { - this( - problem, - populationSize, - offspringPopulationSize, - crossoverOperator, - mutationOperator, - termination, - new MergeNonDominatedSortRanking<>(), - archive); - } - - @Override - protected List evaluatePopulation(List solutionList) { - List evaluatedSolutionList = super.evaluatePopulation(solutionList); - for (S solution : evaluatedSolutionList) { - archive.add(solution); - } - - return evaluatedSolutionList; - } - - @Override - public List getResult() { - return archive.getSolutionList() ; - } - - public Archive getArchive() { - return archive; - } - - public List getPopulation() { - return population ; - } -} diff --git a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/nsgaii/jmetal5version/NSGAIIMeasures.java b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/nsgaii/jmetal5version/NSGAIIMeasures.java index d3bedbdcaf..d6484200aa 100644 --- a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/nsgaii/jmetal5version/NSGAIIMeasures.java +++ b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/nsgaii/jmetal5version/NSGAIIMeasures.java @@ -4,7 +4,7 @@ import org.uma.jmetal.operator.mutation.MutationOperator; import org.uma.jmetal.operator.selection.SelectionOperator; import org.uma.jmetal.problem.Problem; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.Solution; import org.uma.jmetal.util.SolutionListUtils; import org.uma.jmetal.util.evaluator.SolutionListEvaluator; diff --git a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/smpso/SMPSO.java b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/smpso/SMPSO.java index 8463c5171e..c151ae92ec 100644 --- a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/smpso/SMPSO.java +++ b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/smpso/SMPSO.java @@ -210,7 +210,7 @@ protected List createInitialSwarm() { @Override protected List evaluateSwarm(List swarm) { - return evaluation.evaluate(swarm, problem); + return evaluation.evaluate(swarm); } @Override diff --git a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/smsemoa/SMSEMOA.java b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/smsemoa/SMSEMOA.java index 0fa1d49124..379bdfa01c 100644 --- a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/smsemoa/SMSEMOA.java +++ b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/smsemoa/SMSEMOA.java @@ -9,8 +9,8 @@ import org.uma.jmetal.operator.crossover.CrossoverOperator; import org.uma.jmetal.operator.mutation.MutationOperator; import org.uma.jmetal.problem.Problem; -import org.uma.jmetal.qualityindicator.impl.Hypervolume; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.Hypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.Solution; /** @author Antonio J. Nebro */ diff --git a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/smsemoa/SMSEMOAWithArchive.java b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/smsemoa/SMSEMOAWithArchive.java index cc4f919d81..2f96e2718d 100644 --- a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/smsemoa/SMSEMOAWithArchive.java +++ b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/smsemoa/SMSEMOAWithArchive.java @@ -6,8 +6,8 @@ import org.uma.jmetal.operator.crossover.CrossoverOperator; import org.uma.jmetal.operator.mutation.MutationOperator; import org.uma.jmetal.problem.Problem; -import org.uma.jmetal.qualityindicator.impl.Hypervolume; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.Hypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.Solution; import org.uma.jmetal.util.archive.Archive; diff --git a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/smsemoa/jmetal5version/SMSEMOA.java b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/smsemoa/jmetal5version/SMSEMOA.java index 6f23ad939c..b3a95eee9c 100644 --- a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/smsemoa/jmetal5version/SMSEMOA.java +++ b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/smsemoa/jmetal5version/SMSEMOA.java @@ -5,7 +5,7 @@ import org.uma.jmetal.operator.mutation.MutationOperator; import org.uma.jmetal.operator.selection.SelectionOperator; import org.uma.jmetal.problem.Problem; -import org.uma.jmetal.qualityindicator.impl.Hypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.Hypervolume; import org.uma.jmetal.solution.Solution; import org.uma.jmetal.util.solutionattribute.Ranking; import org.uma.jmetal.util.solutionattribute.impl.DominanceRanking; diff --git a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/smsemoa/jmetal5version/SMSEMOABuilder.java b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/smsemoa/jmetal5version/SMSEMOABuilder.java index 6e66df57f6..79dc12869d 100644 --- a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/smsemoa/jmetal5version/SMSEMOABuilder.java +++ b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/smsemoa/jmetal5version/SMSEMOABuilder.java @@ -6,8 +6,8 @@ import org.uma.jmetal.operator.selection.SelectionOperator; import org.uma.jmetal.operator.selection.impl.RandomSelection; import org.uma.jmetal.problem.Problem; -import org.uma.jmetal.qualityindicator.impl.Hypervolume; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.Hypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.Solution; import org.uma.jmetal.util.JMetalException; import org.uma.jmetal.util.comparator.DominanceComparator; diff --git a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/smsemoa/util/SMSEMOAReplacement.java b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/smsemoa/util/SMSEMOAReplacement.java index 648d83dd59..5bd4315742 100644 --- a/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/smsemoa/util/SMSEMOAReplacement.java +++ b/jmetal-algorithm/src/main/java/org/uma/jmetal/algorithm/multiobjective/smsemoa/util/SMSEMOAReplacement.java @@ -2,8 +2,8 @@ import org.uma.jmetal.component.ranking.Ranking; import org.uma.jmetal.component.replacement.Replacement; -import org.uma.jmetal.qualityindicator.impl.Hypervolume; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.Hypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.Solution; import java.util.ArrayList; diff --git a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/abyss/ABYSSConstrainedProblemIT.java b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/abyss/ABYSSConstrainedProblemIT.java index b336a87aa5..acf319788e 100644 --- a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/abyss/ABYSSConstrainedProblemIT.java +++ b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/abyss/ABYSSConstrainedProblemIT.java @@ -12,7 +12,7 @@ import org.uma.jmetal.problem.doubleproblem.DoubleProblem; import org.uma.jmetal.problem.multiobjective.Tanaka; import org.uma.jmetal.qualityindicator.QualityIndicator; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.archive.Archive; import org.uma.jmetal.util.archive.impl.CrowdingDistanceArchive; @@ -113,7 +113,7 @@ public void shouldTheHypervolumeHaveAMinimumValue() throws Exception { List population = algorithm.getResult(); QualityIndicator, Double> hypervolume = - new PISAHypervolume<>("../resources/referenceFronts/ZDT1.pf"); + new PISAHypervolume<>("../resources/referenceFrontsCSV/ZDT1.pf"); // Rationale: the default problem is Tanaka, and AbYSS, configured with standard settings, // should return find a front with a hypervolume value higher than 0.22 diff --git a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/abyss/ABYSSIT.java b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/abyss/ABYSSIT.java index f2165b5afa..344341b324 100644 --- a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/abyss/ABYSSIT.java +++ b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/abyss/ABYSSIT.java @@ -12,7 +12,7 @@ import org.uma.jmetal.problem.doubleproblem.DoubleProblem; import org.uma.jmetal.problem.multiobjective.zdt.ZDT1; import org.uma.jmetal.qualityindicator.QualityIndicator; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.archive.Archive; import org.uma.jmetal.util.archive.impl.CrowdingDistanceArchive; @@ -107,7 +107,7 @@ public void shouldTheHypervolumeHaveAMinimumValue() throws Exception { List population = algorithm.getResult(); QualityIndicator, Double> hypervolume = - new PISAHypervolume<>("../resources/referenceFronts/ZDT1.pf"); + new PISAHypervolume<>("../resources/referenceFrontsCSV/ZDT1.pf"); // Rationale: the default problem is ZDT1, and AbYSS, configured with standard settings, should // return find a front with a hypervolume value higher than 0.65 diff --git a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/dmopso/DMOPSOIT.java b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/dmopso/DMOPSOIT.java index 3a83055cec..a283b5e885 100644 --- a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/dmopso/DMOPSOIT.java +++ b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/dmopso/DMOPSOIT.java @@ -5,7 +5,7 @@ import org.uma.jmetal.problem.doubleproblem.DoubleProblem; import org.uma.jmetal.problem.multiobjective.zdt.ZDT1; import org.uma.jmetal.qualityindicator.QualityIndicator; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import java.util.List; @@ -87,7 +87,7 @@ public void shouldTheHypervolumeHaveAMininumValue() throws Exception { List population = algorithm.getResult(); QualityIndicator, Double> hypervolume = - new PISAHypervolume<>("../resources/referenceFronts/ZDT4.pf"); + new PISAHypervolume<>("../resources/referenceFrontsCSV/ZDT4.pf"); // Rationale: the default problem is ZDT1, and OMOPSO, configured with standard settings, should // return find a front with a hypervolume value higher than 0.64 diff --git a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/ensemble/AlgorithmEnsembleIT.java b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/ensemble/AlgorithmEnsembleIT.java index 81c5cf1816..1cfbac1a17 100644 --- a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/ensemble/AlgorithmEnsembleIT.java +++ b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/ensemble/AlgorithmEnsembleIT.java @@ -143,7 +143,7 @@ public void shouldEnsembleWithTwoAlgorithmsReturnAValidResult() { BoundedArchive leadersArchive = new CrowdingDistanceArchive(swarmSize); - Evaluation evaluation = new SequentialEvaluation<>(); + Evaluation evaluation = new SequentialEvaluation<>(problem); Algorithm> smpso = new SMPSO( diff --git a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/fame/FAMEIT.java b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/fame/FAMEIT.java index 3962dd9840..9a500e1e27 100644 --- a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/fame/FAMEIT.java +++ b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/fame/FAMEIT.java @@ -7,7 +7,7 @@ import org.uma.jmetal.problem.Problem; import org.uma.jmetal.problem.multiobjective.zdt.ZDT1; import org.uma.jmetal.qualityindicator.QualityIndicator; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.evaluator.impl.SequentialSolutionListEvaluator; import org.uma.jmetal.util.pseudorandom.JMetalRandom; @@ -75,7 +75,7 @@ public void shouldTheHypervolumeHaveAMininumValue() throws Exception { algorithm.run(); QualityIndicator, Double> hypervolume = - new PISAHypervolume<>("../resources/referenceFronts/ZDT1.pf"); + new PISAHypervolume<>("../resources/referenceFrontsCSV/ZDT1.pf"); // Rationale: the default problem is ZDT1, and GDE3, configured with standard settings, should // return find a front with a hypervolume value higher than 0.66 diff --git a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/gde3/GDE3TestIT.java b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/gde3/GDE3TestIT.java index f61df36536..5e4f17aa0e 100644 --- a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/gde3/GDE3TestIT.java +++ b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/gde3/GDE3TestIT.java @@ -5,7 +5,7 @@ import org.uma.jmetal.problem.doubleproblem.DoubleProblem; import org.uma.jmetal.problem.multiobjective.zdt.ZDT1; import org.uma.jmetal.qualityindicator.QualityIndicator; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.pseudorandom.JMetalRandom; @@ -47,7 +47,7 @@ public void shouldTheHypervolumeHaveAMininumValue() throws Exception { List population = algorithm.getResult(); QualityIndicator, Double> hypervolume = - new PISAHypervolume<>("../resources/referenceFronts/ZDT4.pf"); + new PISAHypervolume<>("../resources/referenceFrontsCSV/ZDT4.pf"); // Rationale: the default problem is ZDT1, and GDE3, configured with standard settings, should // return find a front with a hypervolume value higher than 0.66 diff --git a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/mocell/MOCellIT.java b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/mocell/MOCellIT.java index 13e49fd9a9..35231123a9 100644 --- a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/mocell/MOCellIT.java +++ b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/mocell/MOCellIT.java @@ -10,7 +10,7 @@ import org.uma.jmetal.problem.doubleproblem.DoubleProblem; import org.uma.jmetal.problem.multiobjective.zdt.ZDT4; import org.uma.jmetal.qualityindicator.QualityIndicator; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.archive.impl.CrowdingDistanceArchive; @@ -68,7 +68,7 @@ public void shouldTheHypervolumeHaveAMininumValue() throws Exception { List population = algorithm.getResult(); QualityIndicator, Double> hypervolume = - new PISAHypervolume<>("../resources/referenceFronts/ZDT4.pf"); + new PISAHypervolume<>("../resources/referenceFrontsCSV/ZDT4.pf"); // Rationale: the default problem is ZDT4, and MOCell, configured with standard settings, should // return find a front with a hypervolume value higher than 0.65 diff --git a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/moead/MOEADDEIT.java b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/moead/MOEADDEIT.java index a02cfd20bd..0ce28d362c 100644 --- a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/moead/MOEADDEIT.java +++ b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/moead/MOEADDEIT.java @@ -6,7 +6,7 @@ import org.uma.jmetal.problem.multiobjective.lz09.LZ09F2; import org.uma.jmetal.problem.multiobjective.lz09.LZ09F6; import org.uma.jmetal.qualityindicator.QualityIndicator; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.aggregativefunction.AggregativeFunction; import org.uma.jmetal.util.aggregativefunction.impl.Tschebyscheff; @@ -92,7 +92,7 @@ public void shouldTheHypervolumeHaveAMinimumValueWhenSolvingTheLZ09F2Instance() List population = algorithm.getResult(); QualityIndicator, Double> hypervolume = - new PISAHypervolume<>("../resources/referenceFronts/LZ09_F2.pf"); + new PISAHypervolume<>("../resources/referenceFrontsCSV/LZ09_F2.pf"); // Rationale: the default problem is LZ09F2", and MOEA/D-DE, configured with standard settings, // should return find a front with a hypervolume value higher than 0.95 @@ -135,7 +135,7 @@ public void shouldTheHypervolumeHaveAMinimumValueWhenSolvingTheLZ09F6Instance() List population = algorithm.getResult(); QualityIndicator, Double> hypervolume = - new PISAHypervolume<>("../resources/referenceFronts/LZ09_F6.pf"); + new PISAHypervolume<>("../resources/referenceFrontsCSV/LZ09_F6.pf"); // Rationale: the default problem is LZ09F6", and MOEA/D, configured with standard settings, // should diff --git a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/moead/jmetal5version/ConstraintMOEADIT.java b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/moead/jmetal5version/ConstraintMOEADIT.java index 147b682bfb..eff4f28d4b 100644 --- a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/moead/jmetal5version/ConstraintMOEADIT.java +++ b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/moead/jmetal5version/ConstraintMOEADIT.java @@ -11,7 +11,7 @@ import org.uma.jmetal.problem.multiobjective.Srinivas; import org.uma.jmetal.problem.multiobjective.Tanaka; import org.uma.jmetal.qualityindicator.QualityIndicator; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import java.util.List; @@ -88,7 +88,7 @@ public void shouldTheHypervolumeHaveAMininumValue() throws Exception { List population = algorithm.getResult(); QualityIndicator, Double> hypervolume = - new PISAHypervolume<>("../resources/referenceFronts/Tanaka.pf"); + new PISAHypervolume<>("../resources/referenceFrontsCSV/Tanaka.pf"); // Rationale: the default problem is Tanaka", and the constraint MOEA/D algoritm, // configured with standard settings, should return find a front with a hypervolume value higher diff --git a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/moead/jmetal5version/MOEADDRAIT.java b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/moead/jmetal5version/MOEADDRAIT.java index 225a733d8f..0f670da290 100644 --- a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/moead/jmetal5version/MOEADDRAIT.java +++ b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/moead/jmetal5version/MOEADDRAIT.java @@ -9,7 +9,7 @@ import org.uma.jmetal.operator.mutation.impl.PolynomialMutation; import org.uma.jmetal.problem.multiobjective.lz09.LZ09F3; import org.uma.jmetal.qualityindicator.QualityIndicator; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import java.util.List; @@ -87,7 +87,7 @@ public void shouldTheHypervolumeHaveAMininumValue() throws Exception { List population = algorithm.getResult(); QualityIndicator, Double> hypervolume = - new PISAHypervolume<>("../resources/referenceFronts/LZ09_F3.pf"); + new PISAHypervolume<>("../resources/referenceFrontsCSV/LZ09_F3.pf"); // Rationale: the default problem is LZ09F", and MOEA/D, configured with standard settings, should // return find a front with a hypervolume value higher than 0.96 diff --git a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/moead/jmetal5version/MOEADIT.java b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/moead/jmetal5version/MOEADIT.java index 5a00ba418e..f5f1c98cea 100644 --- a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/moead/jmetal5version/MOEADIT.java +++ b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/moead/jmetal5version/MOEADIT.java @@ -9,7 +9,7 @@ import org.uma.jmetal.problem.multiobjective.lz09.LZ09F2; import org.uma.jmetal.problem.multiobjective.lz09.LZ09F6; import org.uma.jmetal.qualityindicator.QualityIndicator; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.pseudorandom.JMetalRandom; @@ -87,7 +87,7 @@ public void shouldTheHypervolumeHaveAMinimumValueWhenSolvingTheLZ09F2Instance() List population = algorithm.getResult(); QualityIndicator, Double> hypervolume = - new PISAHypervolume<>("../resources/referenceFronts/LZ09_F2.pf"); + new PISAHypervolume<>("../resources/referenceFrontsCSV/LZ09_F2.pf"); // Rationale: the default problem is LZ09F2", and MOEA/D-DRA, configured with standard settings, should // return find a front with a hypervolume value higher than 0.96 @@ -130,7 +130,7 @@ public void shouldTheHypervolumeHaveAMinimumValueWhenSolvingTheLZ09F6Instance() List population = algorithm.getResult(); QualityIndicator, Double> hypervolume = - new PISAHypervolume<>("../resources/referenceFronts/LZ09_F6.pf"); + new PISAHypervolume<>("../resources/referenceFrontsCSV/LZ09_F6.pf"); // Rationale: the default problem is LZ09F6", and MOEA/D, configured with standard settings, should // return find a front with a hypervolume value higher than 0.35 diff --git a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/mombi2/MOMBI2IT.java b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/mombi2/MOMBI2IT.java index 5b66f306cd..e09a47713a 100644 --- a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/mombi2/MOMBI2IT.java +++ b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/mombi2/MOMBI2IT.java @@ -11,7 +11,7 @@ import org.uma.jmetal.operator.selection.impl.BinaryTournamentSelection; import org.uma.jmetal.problem.multiobjective.dtlz.DTLZ1; import org.uma.jmetal.qualityindicator.QualityIndicator; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.comparator.RankingAndCrowdingDistanceComparator; import org.uma.jmetal.util.evaluator.impl.SequentialSolutionListEvaluator; @@ -90,7 +90,7 @@ public void shouldTheHypervolumeHaveAMininumValue() throws Exception { settings, should return 100 solutions */ QualityIndicator, Double> hypervolume = - new PISAHypervolume<>("../resources/referenceFronts/DTLZ1.3D.pf") ; + new PISAHypervolume<>("../resources/referenceFrontsCSV/DTLZ1.3D.pf") ; // Rationale: the default problem is ZDT4, and SMPSO, configured with standard settings, should // return find a front with a hypervolume value higher than 0.96 diff --git a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/nsgaii/NSGAIIIT.java b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/nsgaii/NSGAIIIT.java index b5e6ed4750..2dd851dd7e 100644 --- a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/nsgaii/NSGAIIIT.java +++ b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/nsgaii/NSGAIIIT.java @@ -11,7 +11,7 @@ import org.uma.jmetal.problem.doubleproblem.DoubleProblem; import org.uma.jmetal.problem.multiobjective.ConstrEx; import org.uma.jmetal.problem.multiobjective.Kursawe; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.front.Front; import org.uma.jmetal.util.front.impl.ArrayFront; @@ -97,7 +97,7 @@ public void shouldTheAlgorithmReturnAGoodQualityFrontWhenSolvingAConstrainedProb List population = algorithm.getResult() ; - String referenceFrontFileName = "../resources/referenceFronts/ConstrEx.pf" ; + String referenceFrontFileName = "../resources/referenceFrontsCSV/ConstrEx.pf" ; Front referenceFront = new ArrayFront(referenceFrontFileName); FrontNormalizer frontNormalizer = new FrontNormalizer(referenceFront) ; diff --git a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/nsgaii/jmetal5version/NSGAIIIT.java b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/nsgaii/jmetal5version/NSGAIIIT.java index 830e6d4d73..970be02219 100644 --- a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/nsgaii/jmetal5version/NSGAIIIT.java +++ b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/nsgaii/jmetal5version/NSGAIIIT.java @@ -9,7 +9,7 @@ import org.uma.jmetal.problem.doubleproblem.DoubleProblem; import org.uma.jmetal.problem.multiobjective.ConstrEx; import org.uma.jmetal.problem.multiobjective.Kursawe; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.front.Front; import org.uma.jmetal.util.front.impl.ArrayFront; @@ -73,7 +73,7 @@ public void shouldTheAlgorithmReturnAGoodQualityFrontWhenSolvingAConstrainedProb List population = algorithm.getResult() ; - String referenceFrontFileName = "../resources/referenceFronts/ConstrEx.pf" ; + String referenceFrontFileName = "../resources/referenceFrontsCSV/ConstrEx.pf" ; Front referenceFront = new ArrayFront(referenceFrontFileName); FrontNormalizer frontNormalizer = new FrontNormalizer(referenceFront) ; diff --git a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/omopso/OMOPSOIT.java b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/omopso/OMOPSOIT.java index e353f71eaf..9321d9447c 100644 --- a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/omopso/OMOPSOIT.java +++ b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/omopso/OMOPSOIT.java @@ -7,7 +7,7 @@ import org.uma.jmetal.problem.doubleproblem.DoubleProblem; import org.uma.jmetal.problem.multiobjective.zdt.ZDT1; import org.uma.jmetal.qualityindicator.QualityIndicator; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.evaluator.impl.SequentialSolutionListEvaluator; @@ -68,7 +68,7 @@ public void shouldTheHypervolumeHaveAMininumValue() throws Exception { List population = algorithm.getResult(); QualityIndicator, Double> hypervolume = - new PISAHypervolume<>("../resources/referenceFronts/ZDT4.pf"); + new PISAHypervolume<>("../resources/referenceFrontsCSV/ZDT4.pf"); // Rationale: the default problem is ZDT1, and OMOPSO, configured with standard settings, should // return find a front with a hypervolume value higher than 0.64 diff --git a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/pesa2/PESA2IT.java b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/pesa2/PESA2IT.java index b8e012c1f0..38516b8726 100644 --- a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/pesa2/PESA2IT.java +++ b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/pesa2/PESA2IT.java @@ -8,7 +8,7 @@ import org.uma.jmetal.operator.mutation.impl.PolynomialMutation; import org.uma.jmetal.problem.multiobjective.ConstrEx; import org.uma.jmetal.problem.multiobjective.Kursawe; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.front.Front; import org.uma.jmetal.util.front.impl.ArrayFront; @@ -72,7 +72,7 @@ public void shouldTheAlgorithmReturnAGoodQualityFrontWhenSolvingAConstrainedProb List population = algorithm.getResult(); - String referenceFrontFileName = "../resources/referenceFronts/ConstrEx.pf"; + String referenceFrontFileName = "../resources/referenceFrontsCSV/ConstrEx.pf"; Front referenceFront = new ArrayFront(referenceFrontFileName); FrontNormalizer frontNormalizer = new FrontNormalizer(referenceFront); diff --git a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/smpso/SMPSOIT.java b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/smpso/SMPSOIT.java index 7553b9cac5..40817b94ea 100644 --- a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/smpso/SMPSOIT.java +++ b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/smpso/SMPSOIT.java @@ -7,7 +7,7 @@ import org.uma.jmetal.problem.multiobjective.ConstrEx; import org.uma.jmetal.problem.multiobjective.zdt.ZDT4; import org.uma.jmetal.qualityindicator.QualityIndicator; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.archive.impl.CrowdingDistanceArchive; import org.uma.jmetal.util.front.Front; @@ -54,7 +54,7 @@ public void shouldTheHypervolumeHaveAMininumValue() throws Exception { List population = algorithm.getResult(); QualityIndicator, Double> hypervolume = - new PISAHypervolume<>("../resources/referenceFronts/ZDT4.pf"); + new PISAHypervolume<>("../resources/referenceFrontsCSV/ZDT4.pf"); // Rationale: the default problem is ZDT4, and SMPSO, configured with standard settings, should // return find a front with a hypervolume value higher than 0.64 @@ -75,7 +75,7 @@ public void shouldTheAlgorithmReturnAGoodQualityFrontWhenSolvingAConstrainedProb List population = algorithm.getResult(); - String referenceFrontFileName = "../resources/referenceFronts/ConstrEx.pf"; + String referenceFrontFileName = "../resources/referenceFrontsCSV/ConstrEx.pf"; Front referenceFront = new ArrayFront(referenceFrontFileName); FrontNormalizer frontNormalizer = new FrontNormalizer(referenceFront); diff --git a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/smpso/SMPSOhv2IT.java b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/smpso/SMPSOhv2IT.java index d202f8681c..45ecb14736 100644 --- a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/smpso/SMPSOhv2IT.java +++ b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/smpso/SMPSOhv2IT.java @@ -7,8 +7,8 @@ import org.uma.jmetal.problem.doubleproblem.DoubleProblem; import org.uma.jmetal.problem.multiobjective.zdt.ZDT4; import org.uma.jmetal.qualityindicator.QualityIndicator; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; -import org.uma.jmetal.qualityindicator.impl.hypervolume.WFGHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.WFGHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.archive.BoundedArchive; import org.uma.jmetal.util.archive.impl.HypervolumeArchive; @@ -55,7 +55,7 @@ public void shouldTheHypervolumeHaveAMininumValue() throws Exception { List population = algorithm.getResult(); QualityIndicator, Double> hypervolume = - new PISAHypervolume<>("../resources/referenceFronts/ZDT4.pf"); + new PISAHypervolume<>("../resources/referenceFrontsCSV/ZDT4.pf"); // Rationale: the default problem is ZDT4, and SMPSO, configured with standard settings, should // return find a front with a hypervolume value higher than 0.64 diff --git a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/smpso/SMPSOhvIT.java b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/smpso/SMPSOhvIT.java index d0f6dfacb5..808b63c0e5 100644 --- a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/smpso/SMPSOhvIT.java +++ b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/smpso/SMPSOhvIT.java @@ -7,7 +7,7 @@ import org.uma.jmetal.problem.doubleproblem.DoubleProblem; import org.uma.jmetal.problem.multiobjective.zdt.ZDT4; import org.uma.jmetal.qualityindicator.QualityIndicator; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.archive.BoundedArchive; import org.uma.jmetal.util.archive.impl.HypervolumeArchive; @@ -54,7 +54,7 @@ public void shouldTheHypervolumeHaveAMininumValue() throws Exception { List population = algorithm.getResult(); QualityIndicator, Double> hypervolume = - new PISAHypervolume<>("../resources/referenceFronts/ZDT4.pf"); + new PISAHypervolume<>("../resources/referenceFrontsCSV/ZDT4.pf"); // Rationale: the default problem is ZDT4, and SMPSO, configured with standard settings, should // return find a front with a hypervolume value higher than 0.64 diff --git a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/smsemoa/SMSEMOAIT.java b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/smsemoa/SMSEMOAIT.java index 51a452f93c..6a8c48984b 100644 --- a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/smsemoa/SMSEMOAIT.java +++ b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/smsemoa/SMSEMOAIT.java @@ -12,8 +12,8 @@ import org.uma.jmetal.problem.multiobjective.zdt.ZDT1; import org.uma.jmetal.problem.multiobjective.zdt.ZDT4; import org.uma.jmetal.qualityindicator.QualityIndicator; -import org.uma.jmetal.qualityindicator.impl.Hypervolume; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.Hypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import java.util.List; @@ -93,7 +93,7 @@ public void shouldTheHypervolumeHaveAMinimumValue() throws Exception { List population = algorithm.getResult(); QualityIndicator, Double> hypervolume = - new PISAHypervolume<>("../resources/referenceFronts/ZDT1.pf"); + new PISAHypervolume<>("../resources/referenceFrontsCSV/ZDT1.pf"); // Rationale: the default problem is ZDT1, and SMSEMOA, configured with standard settings, // should diff --git a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/wasfga/WASFGAIT.java b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/wasfga/WASFGAIT.java index 7c42ade8cd..f75ca144df 100644 --- a/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/wasfga/WASFGAIT.java +++ b/jmetal-algorithm/src/test/java/org/uma/jmetal/algorithm/multiobjective/wasfga/WASFGAIT.java @@ -12,7 +12,7 @@ import org.uma.jmetal.problem.doubleproblem.DoubleProblem; import org.uma.jmetal.problem.multiobjective.zdt.ZDT1; import org.uma.jmetal.qualityindicator.QualityIndicator; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.comparator.RankingAndCrowdingDistanceComparator; import org.uma.jmetal.util.evaluator.impl.SequentialSolutionListEvaluator; @@ -159,7 +159,7 @@ public void shouldTheHypervolumeHaveAMininumValue() throws Exception { List population = algorithm.getResult(); QualityIndicator, Double> hypervolume = - new PISAHypervolume<>("../resources/referenceFronts/ZDT4.pf"); + new PISAHypervolume<>("../resources/referenceFrontsCSV/ZDT4.pf"); // Rationale: the default problem is ZDT1, and WASFGA, configured with standard settings, should // return find a front with a hypervolume value higher than 0.64 diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/EvolutionaryAlgorithm.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/EvolutionaryAlgorithm.java index 2c24a6faf5..94c2780e4c 100644 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/EvolutionaryAlgorithm.java +++ b/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/EvolutionaryAlgorithm.java @@ -1,12 +1,12 @@ package org.uma.jmetal.auto.algorithm; import org.uma.jmetal.algorithm.Algorithm; -import org.uma.jmetal.auto.component.evaluation.Evaluation; -import org.uma.jmetal.auto.component.initialsolutionscreation.InitialSolutionsCreation; -import org.uma.jmetal.auto.component.replacement.Replacement; -import org.uma.jmetal.auto.component.selection.MatingPoolSelection; -import org.uma.jmetal.auto.component.termination.Termination; -import org.uma.jmetal.auto.component.variation.Variation; +import org.uma.jmetal.component.evaluation.Evaluation; +import org.uma.jmetal.component.initialsolutioncreation.InitialSolutionsCreation; +import org.uma.jmetal.component.replacement.Replacement; +import org.uma.jmetal.component.selection.MatingPoolSelection; +import org.uma.jmetal.component.termination.Termination; +import org.uma.jmetal.component.variation.Variation; import org.uma.jmetal.solution.Solution; import org.uma.jmetal.util.archive.Archive; import org.uma.jmetal.util.observable.Observable; diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/nsgaii/AutoNSGAII.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/nsgaii/AutoNSGAII.java index c0e0ecc7f5..30a4a35902 100644 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/nsgaii/AutoNSGAII.java +++ b/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/nsgaii/AutoNSGAII.java @@ -1,26 +1,26 @@ package org.uma.jmetal.auto.algorithm.nsgaii; import org.uma.jmetal.auto.algorithm.EvolutionaryAlgorithm; -import org.uma.jmetal.auto.component.evaluation.Evaluation; -import org.uma.jmetal.auto.component.evaluation.impl.SequentialEvaluation; -import org.uma.jmetal.auto.component.initialsolutionscreation.InitialSolutionsCreation; -import org.uma.jmetal.auto.component.replacement.Replacement; -import org.uma.jmetal.auto.component.replacement.impl.RankingAndDensityEstimatorReplacement; -import org.uma.jmetal.auto.component.selection.MatingPoolSelection; -import org.uma.jmetal.auto.component.termination.Termination; -import org.uma.jmetal.auto.component.termination.impl.TerminationByEvaluations; -import org.uma.jmetal.auto.component.variation.Variation; import org.uma.jmetal.auto.parameter.IntegerParameter; import org.uma.jmetal.auto.parameter.Parameter; import org.uma.jmetal.auto.parameter.RealParameter; import org.uma.jmetal.auto.parameter.catalogue.*; -import org.uma.jmetal.auto.util.preference.Preference; import org.uma.jmetal.component.densityestimator.DensityEstimator; import org.uma.jmetal.component.densityestimator.impl.CrowdingDistanceDensityEstimator; +import org.uma.jmetal.component.evaluation.Evaluation; +import org.uma.jmetal.component.evaluation.impl.SequentialEvaluation; +import org.uma.jmetal.component.initialsolutioncreation.InitialSolutionsCreation; import org.uma.jmetal.component.ranking.Ranking; import org.uma.jmetal.component.ranking.impl.FastNonDominatedSortRanking; +import org.uma.jmetal.component.replacement.Replacement; +import org.uma.jmetal.component.replacement.impl.RankingAndDensityEstimatorReplacement; +import org.uma.jmetal.component.selection.MatingPoolSelection; +import org.uma.jmetal.component.termination.Termination; +import org.uma.jmetal.component.termination.impl.TerminationByEvaluations; +import org.uma.jmetal.component.variation.Variation; import org.uma.jmetal.problem.doubleproblem.DoubleProblem; import org.uma.jmetal.solution.doublesolution.DoubleSolution; +import org.uma.jmetal.util.Preference; import org.uma.jmetal.util.archive.Archive; import org.uma.jmetal.util.archive.impl.CrowdingDistanceArchive; import org.uma.jmetal.util.comparator.DominanceComparator; @@ -30,6 +30,11 @@ import java.util.Arrays; import java.util.List; +/** + * Class to configure NSGA-II with an argument string using class {@link EvolutionaryAlgorithm} + * + * @autor Antonio J. Nebro + */ public class AutoNSGAII { public List> autoConfigurableParameterList = new ArrayList<>(); public List> fixedParameterList = new ArrayList<>(); @@ -160,6 +165,7 @@ EvolutionaryAlgorithm create() { DoubleProblem problem = (DoubleProblem) problemNameParameter.getProblem(); Archive archive = null; + if (algorithmResultParameter.getValue().equals("externalArchive")) { archive = new CrowdingDistanceArchive<>(populationSizeParameter.getValue()); populationSizeParameter.setValue(populationSizeWithArchiveParameter.getValue()); diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/nsgaii/AutoNSGAIIv2.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/nsgaii/AutoNSGAIIv2.java new file mode 100644 index 0000000000..133361107a --- /dev/null +++ b/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/nsgaii/AutoNSGAIIv2.java @@ -0,0 +1,216 @@ +package org.uma.jmetal.auto.algorithm.nsgaii; + +import org.uma.jmetal.algorithm.ComponentBasedEvolutionaryAlgorithm; +import org.uma.jmetal.auto.algorithm.EvolutionaryAlgorithm; +import org.uma.jmetal.auto.parameter.IntegerParameter; +import org.uma.jmetal.auto.parameter.Parameter; +import org.uma.jmetal.auto.parameter.RealParameter; +import org.uma.jmetal.auto.parameter.catalogue.*; +import org.uma.jmetal.component.densityestimator.DensityEstimator; +import org.uma.jmetal.component.densityestimator.impl.CrowdingDistanceDensityEstimator; +import org.uma.jmetal.component.evaluation.Evaluation; +import org.uma.jmetal.component.evaluation.impl.SequentialEvaluation; +import org.uma.jmetal.component.initialsolutioncreation.InitialSolutionsCreation; +import org.uma.jmetal.component.ranking.Ranking; +import org.uma.jmetal.component.ranking.impl.FastNonDominatedSortRanking; +import org.uma.jmetal.component.replacement.Replacement; +import org.uma.jmetal.component.replacement.impl.RankingAndDensityEstimatorReplacement; +import org.uma.jmetal.component.selection.MatingPoolSelection; +import org.uma.jmetal.component.termination.Termination; +import org.uma.jmetal.component.termination.impl.TerminationByEvaluations; +import org.uma.jmetal.component.variation.Variation; +import org.uma.jmetal.problem.doubleproblem.DoubleProblem; +import org.uma.jmetal.solution.doublesolution.DoubleSolution; +import org.uma.jmetal.util.Preference; +import org.uma.jmetal.util.archive.Archive; +import org.uma.jmetal.util.archive.impl.CrowdingDistanceArchive; +import org.uma.jmetal.util.comparator.DominanceComparator; +import org.uma.jmetal.util.comparator.MultiComparator; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * Class to configure NSGA-II with an argument string using class {@link ComponentBasedEvolutionaryAlgorithm} + * + * @autor Antonio J. Nebro + */ +public class AutoNSGAIIv2 { + public List> autoConfigurableParameterList = new ArrayList<>(); + public List> fixedParameterList = new ArrayList<>(); + + private ProblemNameParameter problemNameParameter; + private ReferenceFrontFilenameParameter referenceFrontFilename; + private IntegerParameter maximumNumberOfEvaluationsParameter; + private StringCategoricalParameter algorithmResultParameter; + private PopulationSizeParameter populationSizeParameter; + private PopulationSizeWithArchive populationSizeWithArchiveParameter; + private OffspringPopulationSizeParameter offspringPopulationSizeParameter; + private CreateInitialSolutionsParameter createInitialSolutionsParameter; + private SelectionParameter selectionParameter; + private VariationParameter variationParameter; + + public void parseAndCheckParameters(String[] args) { + problemNameParameter = new ProblemNameParameter<>(args); + referenceFrontFilename = new ReferenceFrontFilenameParameter(args); + maximumNumberOfEvaluationsParameter = + new IntegerParameter("maximumNumberOfEvaluations", args, 1, 10000000); + + fixedParameterList.add(problemNameParameter); + fixedParameterList.add(referenceFrontFilename); + fixedParameterList.add(maximumNumberOfEvaluationsParameter); + + for (Parameter parameter : fixedParameterList) { + parameter.parse().check(); + } + populationSizeParameter = new PopulationSizeParameter(args); + + algorithmResult(args); + createInitialSolution(args); + selection(args); + variation(args); + + autoConfigurableParameterList.add(populationSizeParameter); + autoConfigurableParameterList.add(algorithmResultParameter); + autoConfigurableParameterList.add(createInitialSolutionsParameter); + autoConfigurableParameterList.add(variationParameter); + autoConfigurableParameterList.add(selectionParameter); + + for (Parameter parameter : autoConfigurableParameterList) { + parameter.parse().check(); + } + } + + private void variation(String[] args) { + CrossoverParameter crossover = new CrossoverParameter(args, Arrays.asList("SBX", "BLX_ALPHA")); + ProbabilityParameter crossoverProbability = + new ProbabilityParameter("crossoverProbability", args); + crossover.addGlobalParameter(crossoverProbability); + RepairDoubleSolutionStrategyParameter crossoverRepairStrategy = + new RepairDoubleSolutionStrategyParameter( + "crossoverRepairStrategy", args, Arrays.asList("random", "round", "bounds")); + crossover.addGlobalParameter(crossoverRepairStrategy); + + RealParameter distributionIndex = new RealParameter("sbxDistributionIndex", args, 5.0, 400.0); + crossover.addSpecificParameter("SBX", distributionIndex); + + RealParameter alpha = new RealParameter("blxAlphaCrossoverAlphaValue", args, 0.0, 1.0); + crossover.addSpecificParameter("BLX_ALPHA", alpha); + + MutationParameter mutation = + new MutationParameter(args, Arrays.asList("uniform", "polynomial")); + ProbabilityParameter mutationProbability = + new ProbabilityParameter("mutationProbability", args); + mutation.addGlobalParameter(mutationProbability); + RepairDoubleSolutionStrategyParameter mutationRepairStrategy = + new RepairDoubleSolutionStrategyParameter( + "mutationRepairStrategy", args, Arrays.asList("random", "round", "bounds")); + mutation.addGlobalParameter(mutationRepairStrategy); + + RealParameter distributionIndexForMutation = + new RealParameter("polynomialMutationDistributionIndex", args, 5.0, 400.0); + mutation.addSpecificParameter("polynomial", distributionIndexForMutation); + + RealParameter uniformMutationPerturbation = + new RealParameter("uniformMutationPerturbation", args, 0.0, 1.0); + mutation.addSpecificParameter("uniform", uniformMutationPerturbation); + + DifferentialEvolutionCrossoverParameter differentialEvolutionCrossover = + new DifferentialEvolutionCrossoverParameter(args); + + RealParameter f = new RealParameter("f", args, 0.0, 1.0); + RealParameter cr = new RealParameter("cr", args, 0.0, 1.0); + differentialEvolutionCrossover.addGlobalParameter(f); + differentialEvolutionCrossover.addGlobalParameter(cr); + + offspringPopulationSizeParameter = + new OffspringPopulationSizeParameter(args, Arrays.asList(1, 10, 50, 100, 200, 400)); + + variationParameter = + new VariationParameter(args, Arrays.asList("crossoverAndMutationVariation")); + variationParameter.addGlobalParameter(offspringPopulationSizeParameter); + variationParameter.addSpecificParameter("crossoverAndMutationVariation", crossover); + variationParameter.addSpecificParameter("crossoverAndMutationVariation", mutation); + } + + private void selection(String[] args) { + selectionParameter = new SelectionParameter(args, Arrays.asList("tournament", "random")); + IntegerParameter selectionTournamentSize = + new IntegerParameter("selectionTournamentSize", args, 2, 10); + selectionParameter.addSpecificParameter("tournament", selectionTournamentSize); + } + + private void createInitialSolution(String[] args) { + createInitialSolutionsParameter = + new CreateInitialSolutionsParameter( + args, Arrays.asList("random", "latinHypercubeSampling", "scatterSearch")); + } + + private void algorithmResult(String[] args) { + algorithmResultParameter = + new StringCategoricalParameter("algorithmResult", args, Arrays.asList("externalArchive", "population")); + populationSizeWithArchiveParameter = + new PopulationSizeWithArchive(args, Arrays.asList(10, 20, 50, 100, 200)); + algorithmResultParameter.addSpecificParameter( + "externalArchive", populationSizeWithArchiveParameter); + } + + /** + * Creates an instance of NSGA-II from the parsed parameters + * + * @return + */ + ComponentBasedEvolutionaryAlgorithm create() { + + DoubleProblem problem = (DoubleProblem) problemNameParameter.getProblem(); + + Archive archive = null; + if (algorithmResultParameter.getValue().equals("externalArchive")) { + archive = new CrowdingDistanceArchive<>(populationSizeParameter.getValue()); + populationSizeParameter.setValue(populationSizeWithArchiveParameter.getValue()); + } + + Ranking ranking = new FastNonDominatedSortRanking<>(new DominanceComparator<>()); + DensityEstimator densityEstimator = new CrowdingDistanceDensityEstimator<>(); + MultiComparator rankingAndCrowdingComparator = + new MultiComparator( + Arrays.asList( + ranking.getSolutionComparator(), densityEstimator.getSolutionComparator())); + + InitialSolutionsCreation initialSolutionsCreation = + createInitialSolutionsParameter.getParameter(problem, populationSizeParameter.getValue()); + + Variation variation = + (Variation) variationParameter.getParameter(); + MatingPoolSelection selection = + (MatingPoolSelection) + selectionParameter.getParameter( + variation.getMatingPoolSize(), rankingAndCrowdingComparator); + + Evaluation evaluation = new SequentialEvaluation<>(problem); + + Preference preferenceForReplacement = new Preference<>(ranking, densityEstimator) ; + Replacement replacement = + new RankingAndDensityEstimatorReplacement<>(preferenceForReplacement, Replacement.RemovalPolicy.oneShot); + + Termination termination = + new TerminationByEvaluations(maximumNumberOfEvaluationsParameter.getValue()); + + ComponentBasedEvolutionaryAlgorithm nsgaii = + new ComponentBasedEvolutionaryAlgorithm<>( + "NSGA-II", + evaluation, + initialSolutionsCreation, + termination, + selection, + variation, + replacement).withArchive(archive) ; + + return nsgaii; + } + + public static void print(List> parameterList) { + parameterList.forEach(System.out::println); + } +} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/nsgaii/NSGAII.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/nsgaii/NSGAII.java index d9be2b0038..040c4887b5 100644 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/nsgaii/NSGAII.java +++ b/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/nsgaii/NSGAII.java @@ -1,24 +1,23 @@ package org.uma.jmetal.auto.algorithm.nsgaii; import org.uma.jmetal.auto.algorithm.EvolutionaryAlgorithm; -import org.uma.jmetal.auto.component.evaluation.Evaluation; -import org.uma.jmetal.auto.component.evaluation.impl.SequentialEvaluation; -import org.uma.jmetal.auto.component.initialsolutionscreation.InitialSolutionsCreation; -import org.uma.jmetal.auto.component.initialsolutionscreation.impl.RandomSolutionsCreation; -import org.uma.jmetal.auto.component.replacement.Replacement; -import org.uma.jmetal.auto.component.replacement.impl.RankingAndDensityEstimatorReplacement; -import org.uma.jmetal.auto.component.selection.MatingPoolSelection; -import org.uma.jmetal.auto.component.selection.impl.NaryTournamentMatingPoolSelection; -import org.uma.jmetal.auto.component.termination.Termination; -import org.uma.jmetal.auto.component.termination.impl.TerminationByEvaluations; -import org.uma.jmetal.auto.component.variation.Variation; -import org.uma.jmetal.auto.component.variation.impl.CrossoverAndMutationVariation; -import org.uma.jmetal.auto.util.preference.Preference; import org.uma.jmetal.component.densityestimator.DensityEstimator; import org.uma.jmetal.component.densityestimator.impl.CrowdingDistanceDensityEstimator; +import org.uma.jmetal.component.evaluation.Evaluation; +import org.uma.jmetal.component.evaluation.impl.SequentialEvaluation; +import org.uma.jmetal.component.initialsolutioncreation.InitialSolutionsCreation; +import org.uma.jmetal.component.initialsolutioncreation.impl.RandomSolutionsCreation; import org.uma.jmetal.component.ranking.Ranking; import org.uma.jmetal.component.ranking.impl.FastNonDominatedSortRanking; import org.uma.jmetal.component.ranking.impl.MergeNonDominatedSortRanking; +import org.uma.jmetal.component.replacement.Replacement; +import org.uma.jmetal.component.replacement.impl.RankingAndDensityEstimatorReplacement; +import org.uma.jmetal.component.selection.MatingPoolSelection; +import org.uma.jmetal.component.selection.impl.NaryTournamentMatingPoolSelection; +import org.uma.jmetal.component.termination.Termination; +import org.uma.jmetal.component.termination.impl.TerminationByEvaluations; +import org.uma.jmetal.component.variation.Variation; +import org.uma.jmetal.component.variation.impl.CrossoverAndMutationVariation; import org.uma.jmetal.operator.crossover.CrossoverOperator; import org.uma.jmetal.operator.crossover.impl.SBXCrossover; import org.uma.jmetal.operator.mutation.MutationOperator; @@ -28,9 +27,11 @@ import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.solution.util.repairsolution.RepairDoubleSolution; import org.uma.jmetal.solution.util.repairsolution.impl.RepairDoubleSolutionWithRandomValue; +import org.uma.jmetal.util.Preference; import org.uma.jmetal.util.comparator.DominanceComparator; import org.uma.jmetal.util.fileoutput.SolutionListOutput; import org.uma.jmetal.util.fileoutput.impl.DefaultFileOutputContext; +import org.uma.jmetal.util.observer.impl.EvaluationObserver; /** * Class to configure and run the NSGA-II using the {@link EvolutionaryAlgorithm} class. @@ -41,8 +42,6 @@ public class NSGAII { public static void main(String[] args) { DoubleProblem problem = new ZDT1(); - //JMetalRandom.getInstance().setSeed(1); - int populationSize = 100; int offspringPopulationSize = 100; int maxNumberOfEvaluations = 50000; @@ -60,7 +59,7 @@ public static void main(String[] args) { new PolynomialMutation( mutationProbability, mutationDistributionIndex, mutationSolutionRepair); - Variation variation = + CrossoverAndMutationVariation variation = new CrossoverAndMutationVariation<>(offspringPopulationSize, crossover, mutation); Evaluation evaluation = new SequentialEvaluation<>(problem); @@ -95,7 +94,7 @@ public static void main(String[] args) { replacement ); - //EvaluationObserver evaluationObserver = new EvaluationObserver(1000); + EvaluationObserver evaluationObserver = new EvaluationObserver(1000); //RunTimeChartObserver runTimeChartObserver = //new RunTimeChartObserver<>("NSGA-II", 80, referenceParetoFront); //ExternalArchiveObserver boundedArchiveObserver = diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/nsgaii/NSGAIIWithParameters.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/nsgaii/NSGAIIWithParameters.java index 54bb554b9b..f01ffb5a27 100644 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/nsgaii/NSGAIIWithParameters.java +++ b/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/nsgaii/NSGAIIWithParameters.java @@ -8,7 +8,7 @@ import org.uma.jmetal.util.observer.impl.RunTimeChartObserver; /** - * Class configuring NSGA-II using arguments in the form and the {@link AutoNSGAII} + * Class configuring NSGA-II using arguments in the form and the {@link AutoNSGAIIv2} * class. * * @author Antonio J. Nebro (ajnebro@uma.es) @@ -42,15 +42,15 @@ public static void main(String[] args) { AutoNSGAII NSGAII = new AutoNSGAII(); NSGAII.parseAndCheckParameters(parameters); - NSGAII.print(NSGAII.fixedParameterList); - NSGAII.print(NSGAII.autoConfigurableParameterList); + AutoNSGAII.print(NSGAII.fixedParameterList); + AutoNSGAII.print(NSGAII.autoConfigurableParameterList); EvolutionaryAlgorithm nsgaII = NSGAII.create(); EvaluationObserver evaluationObserver = new EvaluationObserver(1000); RunTimeChartObserver runTimeChartObserver = new RunTimeChartObserver<>( - "NSGA-II", 80, "/pareto_fronts/ZDT1.pf"); + "NSGA-II", 80, "resources/referenceFrontsCSV/ZDT1.pf"); //WriteSolutionsToFilesObserver writeSolutionsToFilesObserver = new WriteSolutionsToFilesObserver() ; nsgaII.getObservable().register(evaluationObserver); @@ -62,8 +62,8 @@ public static void main(String[] args) { System.out.println("Total computing time: " + nsgaII.getTotalComputingTime()) ; new SolutionListOutput(nsgaII.getResult()) - .setVarFileOutputContext(new DefaultFileOutputContext("VAR.tsv")) - .setFunFileOutputContext(new DefaultFileOutputContext("FUN.tsv")) + .setVarFileOutputContext(new DefaultFileOutputContext("VAR.csv", ",")) + .setFunFileOutputContext(new DefaultFileOutputContext("FUN.csv", ",")) .print(); } } diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/nsgaii/NSGAIIv2.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/nsgaii/NSGAIIv2.java new file mode 100644 index 0000000000..89e92df078 --- /dev/null +++ b/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/nsgaii/NSGAIIv2.java @@ -0,0 +1,128 @@ +package org.uma.jmetal.auto.algorithm.nsgaii; + +import org.uma.jmetal.algorithm.ComponentBasedEvolutionaryAlgorithm; +import org.uma.jmetal.component.densityestimator.DensityEstimator; +import org.uma.jmetal.component.densityestimator.impl.CrowdingDistanceDensityEstimator; +import org.uma.jmetal.component.evaluation.Evaluation; +import org.uma.jmetal.component.evaluation.impl.SequentialEvaluation; +import org.uma.jmetal.component.initialsolutioncreation.InitialSolutionsCreation; +import org.uma.jmetal.component.initialsolutioncreation.impl.RandomSolutionsCreation; +import org.uma.jmetal.component.ranking.Ranking; +import org.uma.jmetal.component.ranking.impl.MergeNonDominatedSortRanking; +import org.uma.jmetal.component.replacement.Replacement; +import org.uma.jmetal.component.replacement.impl.RankingAndDensityEstimatorReplacement; +import org.uma.jmetal.component.selection.MatingPoolSelection; +import org.uma.jmetal.component.selection.impl.NaryTournamentMatingPoolSelection; +import org.uma.jmetal.component.termination.Termination; +import org.uma.jmetal.component.termination.impl.TerminationByEvaluations; +import org.uma.jmetal.component.variation.Variation; +import org.uma.jmetal.component.variation.impl.CrossoverAndMutationVariation; +import org.uma.jmetal.operator.crossover.CrossoverOperator; +import org.uma.jmetal.operator.crossover.impl.SBXCrossover; +import org.uma.jmetal.operator.mutation.MutationOperator; +import org.uma.jmetal.operator.mutation.impl.PolynomialMutation; +import org.uma.jmetal.problem.doubleproblem.DoubleProblem; +import org.uma.jmetal.problem.multiobjective.dtlz.DTLZ2; +import org.uma.jmetal.solution.doublesolution.DoubleSolution; +import org.uma.jmetal.solution.util.repairsolution.RepairDoubleSolution; +import org.uma.jmetal.solution.util.repairsolution.impl.RepairDoubleSolutionWithRandomValue; +import org.uma.jmetal.util.Preference; +import org.uma.jmetal.util.SolutionListUtils; +import org.uma.jmetal.util.archive.Archive; +import org.uma.jmetal.util.archive.impl.NonDominatedSolutionListArchive; +import org.uma.jmetal.util.fileoutput.SolutionListOutput; +import org.uma.jmetal.util.fileoutput.impl.DefaultFileOutputContext; + +/** + * Class to configure and run the NSGA-II using the {@link ComponentBasedEvolutionaryAlgorithm} + * class. + * + * @author Antonio J. Nebro (ajnebro@uma.es) + */ +public class NSGAIIv2 { + public static void main(String[] args) { + DoubleProblem problem = new DTLZ2(); + + int populationSize = 100; + int offspringPopulationSize = 100; + int maxNumberOfEvaluations = 50000; + + RepairDoubleSolution crossoverSolutionRepair = new RepairDoubleSolutionWithRandomValue(); + double crossoverProbability = 0.9; + double crossoverDistributionIndex = 20.0; + CrossoverOperator crossover = + new SBXCrossover(crossoverProbability, crossoverDistributionIndex, crossoverSolutionRepair); + + RepairDoubleSolution mutationSolutionRepair = new RepairDoubleSolutionWithRandomValue(); + double mutationProbability = 1.0 / problem.getNumberOfVariables(); + double mutationDistributionIndex = 20.0; + MutationOperator mutation = + new PolynomialMutation( + mutationProbability, mutationDistributionIndex, mutationSolutionRepair); + + Variation variation = + new CrossoverAndMutationVariation<>(offspringPopulationSize, crossover, mutation); + + Evaluation evaluation = new SequentialEvaluation<>(problem); + + InitialSolutionsCreation createInitialPopulation = + new RandomSolutionsCreation<>(problem, populationSize); + + Termination termination = new TerminationByEvaluations(maxNumberOfEvaluations); + + Ranking ranking = new MergeNonDominatedSortRanking<>(); + + DensityEstimator densityEstimator = new CrowdingDistanceDensityEstimator<>(); + + Preference preferenceForReplacement = + new Preference<>(ranking, densityEstimator); + Replacement replacement = + new RankingAndDensityEstimatorReplacement<>( + preferenceForReplacement, Replacement.RemovalPolicy.oneShot); + + int tournamentSize = 2; + Preference preferenceForSelection = + new Preference<>(ranking, densityEstimator, preferenceForReplacement); + MatingPoolSelection selection = + new NaryTournamentMatingPoolSelection<>( + tournamentSize, variation.getMatingPoolSize(), preferenceForSelection); + + Archive archive = new NonDominatedSolutionListArchive<>(); + + ComponentBasedEvolutionaryAlgorithm algorithm = + new ComponentBasedEvolutionaryAlgorithm<>( + "NSGA-II", + evaluation, + createInitialPopulation, + termination, + selection, + variation, + replacement) + .withArchive(archive); + + // EvaluationObserver evaluationObserver = new EvaluationObserver(1000); + // RunTimeChartObserver runTimeChartObserver = + // new RunTimeChartObserver<>("NSGA-II", 80, "resources/referenceFronts/ZDT1.pf"); + // ExternalArchiveObserver boundedArchiveObserver = + // new ExternalArchiveObserver<>(new CrowdingDistanceArchive<>(archiveMaximumSize)); + + // algorithm.getObservable().register(evaluationObserver); + // algorithm.getObservable().register(runTimeChartObserver); + // evaluation.getObservable().register(boundedArchiveObserver); + + algorithm.run(); + System.out.println("Total computing time: " + algorithm.getTotalComputingTime()); + /* + algorithm.updatePopulation(boundedArchiveObserver.getArchive().getSolutionList()); + AlgorithmDefaultOutputData.generateMultiObjectiveAlgorithmOutputData( + algorithm.getResult(), algorithm.getTotalComputingTime()); + */ + new SolutionListOutput( + SolutionListUtils.distanceBasedSubsetSelection(algorithm.getResult(), 100)) + .setVarFileOutputContext(new DefaultFileOutputContext("VAR.csv", ",")) + .setFunFileOutputContext(new DefaultFileOutputContext("FUN.csv", ",")) + .print(); + + System.exit(0); + } +} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/nsgaii/NSGAIIv2WithParameters.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/nsgaii/NSGAIIv2WithParameters.java new file mode 100644 index 0000000000..5e68a71d71 --- /dev/null +++ b/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/nsgaii/NSGAIIv2WithParameters.java @@ -0,0 +1,69 @@ +package org.uma.jmetal.auto.algorithm.nsgaii; + +import org.uma.jmetal.algorithm.ComponentBasedEvolutionaryAlgorithm; +import org.uma.jmetal.solution.doublesolution.DoubleSolution; +import org.uma.jmetal.util.fileoutput.SolutionListOutput; +import org.uma.jmetal.util.fileoutput.impl.DefaultFileOutputContext; +import org.uma.jmetal.util.observer.impl.EvaluationObserver; +import org.uma.jmetal.util.observer.impl.RunTimeChartObserver; + +/** + * Class configuring NSGA-II using arguments in the form and the {@link AutoNSGAII} + * class. + * + * @author Antonio J. Nebro (ajnebro@uma.es) + */ +public class NSGAIIv2WithParameters { + + public static void main(String[] args) { + String[] parameters = + ("--problemName org.uma.jmetal.problem.multiobjective.zdt.ZDT1 " + + "--referenceFrontFileName ZDT1.pf " + + "--maximumNumberOfEvaluations 25000 " + + "--algorithmResult population " + + "--populationSize 100 " + + "--offspringPopulationSize 100 " + + "--createInitialSolutions random " + + "--variation crossoverAndMutationVariation " + + "--selection tournament " + + "--selectionTournamentSize 2 " + + "--rankingForSelection dominanceRanking " + + "--densityEstimatorForSelection crowdingDistance " + + "--crossover SBX " + + "--crossoverProbability 0.9 " + + "--crossoverRepairStrategy bounds " + + "--sbxDistributionIndex 20.0 " + + "--mutation polynomial " + + "--mutationProbability 0.01 " + + "--mutationRepairStrategy bounds " + + "--polynomialMutationDistributionIndex 20.0 ") + .split("\\s+"); + + AutoNSGAIIv2 NSGAII = new AutoNSGAIIv2(); + NSGAII.parseAndCheckParameters(parameters); + + AutoNSGAII.print(NSGAII.fixedParameterList); + AutoNSGAII.print(NSGAII.autoConfigurableParameterList); + + ComponentBasedEvolutionaryAlgorithm nsgaII = NSGAII.create(); + + EvaluationObserver evaluationObserver = new EvaluationObserver(1000); + RunTimeChartObserver runTimeChartObserver = + new RunTimeChartObserver<>( + "NSGA-II", 80, "resources/referenceFrontsCSV/ZDT1.pf"); + //WriteSolutionsToFilesObserver writeSolutionsToFilesObserver = new WriteSolutionsToFilesObserver() ; + + nsgaII.getObservable().register(evaluationObserver); + nsgaII.getObservable().register(runTimeChartObserver); + //nsgaII.getObservable().register(writeSolutionsToFilesObserver); + + nsgaII.run(); + + System.out.println("Total computing time: " + nsgaII.getTotalComputingTime()) ; + + new SolutionListOutput(nsgaII.getResult()) + .setVarFileOutputContext(new DefaultFileOutputContext("VAR.csv", ",")) + .setFunFileOutputContext(new DefaultFileOutputContext("FUN.csv", ",")) + .print(); + } +} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/spea2/SPEA2.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/spea2/SPEA2.java index b32d567df3..b20a1d1e6c 100644 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/spea2/SPEA2.java +++ b/jmetal-auto/src/main/java/org/uma/jmetal/auto/algorithm/spea2/SPEA2.java @@ -1,23 +1,22 @@ package org.uma.jmetal.auto.algorithm.spea2; import org.uma.jmetal.auto.algorithm.EvolutionaryAlgorithm; -import org.uma.jmetal.auto.component.evaluation.Evaluation; -import org.uma.jmetal.auto.component.evaluation.impl.SequentialEvaluation; -import org.uma.jmetal.auto.component.initialsolutionscreation.InitialSolutionsCreation; -import org.uma.jmetal.auto.component.initialsolutionscreation.impl.RandomSolutionsCreation; -import org.uma.jmetal.auto.component.replacement.Replacement; -import org.uma.jmetal.auto.component.replacement.impl.RankingAndDensityEstimatorReplacement; -import org.uma.jmetal.auto.component.selection.MatingPoolSelection; -import org.uma.jmetal.auto.component.selection.impl.NaryTournamentMatingPoolSelection; -import org.uma.jmetal.auto.component.termination.Termination; -import org.uma.jmetal.auto.component.termination.impl.TerminationByEvaluations; -import org.uma.jmetal.auto.component.variation.Variation; -import org.uma.jmetal.auto.component.variation.impl.CrossoverAndMutationVariation; -import org.uma.jmetal.auto.util.preference.Preference; import org.uma.jmetal.component.densityestimator.DensityEstimator; import org.uma.jmetal.component.densityestimator.impl.KnnDensityEstimator; +import org.uma.jmetal.component.evaluation.Evaluation; +import org.uma.jmetal.component.evaluation.impl.SequentialEvaluation; +import org.uma.jmetal.component.initialsolutioncreation.InitialSolutionsCreation; +import org.uma.jmetal.component.initialsolutioncreation.impl.RandomSolutionsCreation; import org.uma.jmetal.component.ranking.Ranking; import org.uma.jmetal.component.ranking.impl.StrengthRanking; +import org.uma.jmetal.component.replacement.Replacement; +import org.uma.jmetal.component.replacement.impl.RankingAndDensityEstimatorReplacement; +import org.uma.jmetal.component.selection.MatingPoolSelection; +import org.uma.jmetal.component.selection.impl.NaryTournamentMatingPoolSelection; +import org.uma.jmetal.component.termination.Termination; +import org.uma.jmetal.component.termination.impl.TerminationByEvaluations; +import org.uma.jmetal.component.variation.Variation; +import org.uma.jmetal.component.variation.impl.CrossoverAndMutationVariation; import org.uma.jmetal.operator.crossover.CrossoverOperator; import org.uma.jmetal.operator.crossover.impl.SBXCrossover; import org.uma.jmetal.operator.mutation.MutationOperator; @@ -27,6 +26,7 @@ import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.solution.util.repairsolution.RepairDoubleSolution; import org.uma.jmetal.solution.util.repairsolution.impl.RepairDoubleSolutionWithRandomValue; +import org.uma.jmetal.util.Preference; import org.uma.jmetal.util.fileoutput.SolutionListOutput; import org.uma.jmetal.util.fileoutput.impl.DefaultFileOutputContext; diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/evaluation/Evaluation.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/evaluation/Evaluation.java deleted file mode 100644 index 9373128c7b..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/evaluation/Evaluation.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.uma.jmetal.auto.component.evaluation; - -import org.uma.jmetal.solution.Solution; -import org.uma.jmetal.util.observable.ObservableEntity; - -import java.util.List; - -public interface Evaluation> extends ObservableEntity { - List evaluate(List solutionList) ; -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/evaluation/impl/MultithreadedEvaluation.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/evaluation/impl/MultithreadedEvaluation.java deleted file mode 100644 index 466472689b..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/evaluation/impl/MultithreadedEvaluation.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.uma.jmetal.auto.component.evaluation.impl; - -import org.uma.jmetal.auto.component.evaluation.Evaluation; -import org.uma.jmetal.problem.Problem; -import org.uma.jmetal.solution.Solution; -import org.uma.jmetal.util.observable.Observable; -import org.uma.jmetal.util.observable.impl.DefaultObservable; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -public class MultithreadedEvaluation> implements Evaluation { - private Problem problem; - protected Observable> observable; - - public MultithreadedEvaluation(Problem problem) { - this.problem = problem; - this.observable = new DefaultObservable<>("MultithreadedEvaluation") ; - } - - public List evaluate(List solutionList) { - solutionList.parallelStream().forEach(solution -> problem.evaluate(solution)); - - Mapattributes = new HashMap<>() ; - attributes.put("POPULATION", solutionList); - observable.setChanged(); - observable.notifyObservers(attributes); - - return solutionList; - } - - @Override - public Observable> getObservable() { - return observable; - } -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/evaluation/impl/SequentialEvaluation.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/evaluation/impl/SequentialEvaluation.java deleted file mode 100644 index 6fe47ae31b..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/evaluation/impl/SequentialEvaluation.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.uma.jmetal.auto.component.evaluation.impl; - -import org.uma.jmetal.auto.component.evaluation.Evaluation; -import org.uma.jmetal.problem.Problem; -import org.uma.jmetal.solution.Solution; -import org.uma.jmetal.util.observable.Observable; -import org.uma.jmetal.util.observable.impl.DefaultObservable; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -public class SequentialEvaluation> implements Evaluation { - private Problem problem; - private Observable> observable; - private int numberOfEvaluationIterations ; - - - public SequentialEvaluation(Problem problem) { - this.problem = problem; - this.observable = new DefaultObservable<>("SequentialEvaluation") ; - this.numberOfEvaluationIterations = 0 ; - } - - public List evaluate(List solutionList) { - solutionList.forEach(solution -> problem.evaluate(solution)); - - Mapattributes = new HashMap<>() ; - attributes.put("POPULATION", solutionList); - attributes.put("EVALUATIONS", ++numberOfEvaluationIterations); - observable.setChanged(); - observable.notifyObservers(attributes); - - return solutionList; - } - - @Override - public Observable> getObservable() { - return observable; - } -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/initialsolutionscreation/InitialSolutionsCreation.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/initialsolutionscreation/InitialSolutionsCreation.java deleted file mode 100644 index c886849d7d..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/initialsolutionscreation/InitialSolutionsCreation.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.uma.jmetal.auto.component.initialsolutionscreation; - -import org.uma.jmetal.solution.Solution; - -import java.util.List; - -@FunctionalInterface -public interface InitialSolutionsCreation> { - List create() ; -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/initialsolutionscreation/impl/LatinHypercubeSamplingSolutionsCreation.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/initialsolutionscreation/impl/LatinHypercubeSamplingSolutionsCreation.java deleted file mode 100644 index 8990f31615..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/initialsolutionscreation/impl/LatinHypercubeSamplingSolutionsCreation.java +++ /dev/null @@ -1,74 +0,0 @@ -package org.uma.jmetal.auto.component.initialsolutionscreation.impl; - -import org.uma.jmetal.auto.component.initialsolutionscreation.InitialSolutionsCreation; -import org.uma.jmetal.problem.doubleproblem.DoubleProblem; -import org.uma.jmetal.problem.multiobjective.zdt.ZDT4; -import org.uma.jmetal.solution.doublesolution.DoubleSolution; -import org.uma.jmetal.solution.doublesolution.impl.DefaultDoubleSolution; -import org.uma.jmetal.util.AlgorithmDefaultOutputData; -import org.uma.jmetal.util.NormalizeUtils; - -import java.util.ArrayList; -import java.util.List; - -public class LatinHypercubeSamplingSolutionsCreation - implements InitialSolutionsCreation { - private final int numberOfSolutionsToCreate; - private final DoubleProblem problem; - - public LatinHypercubeSamplingSolutionsCreation( - DoubleProblem problem, int numberOfSolutionsToCreate) { - this.problem = problem; - this.numberOfSolutionsToCreate = numberOfSolutionsToCreate; - } - - public List create() { - int[][] latinHypercube = new int[numberOfSolutionsToCreate][problem.getNumberOfVariables()]; - for (int dim = 0; dim < problem.getNumberOfVariables(); dim++) { - List permutation = getPermutation(numberOfSolutionsToCreate); - for (int v = 0; v < numberOfSolutionsToCreate; v++) { - latinHypercube[v][dim] = permutation.get(v); - } - } - - List solutionList = new ArrayList<>(numberOfSolutionsToCreate); - for (int i = 0; i < numberOfSolutionsToCreate; i++) { - DoubleSolution newSolution = - new DefaultDoubleSolution(problem.getBounds(), problem.getNumberOfObjectives()); - for (int j = 0; j < problem.getNumberOfVariables(); j++) { - newSolution.setVariable( - j, - NormalizeUtils.normalize( - latinHypercube[i][j], - problem.getLowerBound(j), - problem.getUpperBound(j), - 0, - numberOfSolutionsToCreate)); - } - - solutionList.add(newSolution); - } - - return solutionList; - } - - private List getPermutation(int permutationLength) { - List randomSequence = new ArrayList<>(permutationLength); - - for (int j = 0; j < permutationLength; j++) { - randomSequence.add(j); - } - - java.util.Collections.shuffle(randomSequence); - - return randomSequence; - } - - public static void main(String[] args) { - DoubleProblem problem = new ZDT4(2); - int numberOfSolutionsToCreate = 100; - List solutions = - new LatinHypercubeSamplingSolutionsCreation(problem, numberOfSolutionsToCreate).create(); - AlgorithmDefaultOutputData.generateMultiObjectiveAlgorithmOutputData(solutions, 0); - } -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/initialsolutionscreation/impl/RandomSolutionsCreation.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/initialsolutionscreation/impl/RandomSolutionsCreation.java deleted file mode 100644 index 712773cfbb..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/initialsolutionscreation/impl/RandomSolutionsCreation.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.uma.jmetal.auto.component.initialsolutionscreation.impl; - -import org.uma.jmetal.auto.component.initialsolutionscreation.InitialSolutionsCreation; -import org.uma.jmetal.problem.Problem; -import org.uma.jmetal.problem.doubleproblem.DoubleProblem; -import org.uma.jmetal.problem.multiobjective.zdt.ZDT4; -import org.uma.jmetal.solution.Solution; -import org.uma.jmetal.solution.doublesolution.DoubleSolution; -import org.uma.jmetal.util.AlgorithmDefaultOutputData; - -import java.util.ArrayList; -import java.util.List; -import java.util.stream.IntStream; - -public class RandomSolutionsCreation> implements InitialSolutionsCreation { - private final int numberOfSolutionsToCreate; - private final Problem problem; - - public RandomSolutionsCreation(Problem problem, int numberOfSolutionsToCreate) { - this.problem = problem; - this.numberOfSolutionsToCreate = numberOfSolutionsToCreate; - } - - public List create() { - List solutionList = new ArrayList<>(numberOfSolutionsToCreate); - IntStream.range(0, numberOfSolutionsToCreate) - .forEach(i -> solutionList.add(problem.createSolution())); - - return solutionList; - } - - public static void main(String[] args) { - DoubleProblem problem = new ZDT4(2); - int numberOfSolutionsToCreate = 100; - - List solutions = - new RandomSolutionsCreation<>(problem, numberOfSolutionsToCreate).create(); - AlgorithmDefaultOutputData.generateMultiObjectiveAlgorithmOutputData(solutions, 0); - } -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/initialsolutionscreation/impl/ScatterSearchSolutionsCreation.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/initialsolutionscreation/impl/ScatterSearchSolutionsCreation.java deleted file mode 100644 index 7ec7a69cf7..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/initialsolutionscreation/impl/ScatterSearchSolutionsCreation.java +++ /dev/null @@ -1,98 +0,0 @@ -package org.uma.jmetal.auto.component.initialsolutionscreation.impl; - -import org.uma.jmetal.auto.component.initialsolutionscreation.InitialSolutionsCreation; -import org.uma.jmetal.problem.doubleproblem.DoubleProblem; -import org.uma.jmetal.problem.multiobjective.zdt.ZDT4; -import org.uma.jmetal.solution.doublesolution.DoubleSolution; -import org.uma.jmetal.solution.doublesolution.impl.DefaultDoubleSolution; -import org.uma.jmetal.util.AlgorithmDefaultOutputData; -import org.uma.jmetal.util.pseudorandom.JMetalRandom; - -import java.util.ArrayList; -import java.util.List; - -public class ScatterSearchSolutionsCreation implements InitialSolutionsCreation { - private final int numberOfSolutionsToCreate; - private final DoubleProblem problem; - private final int numberOfSubRanges; - protected int[] sumOfFrequencyValues; - protected int[] sumOfReverseFrequencyValues; - protected int[][] frequency; - protected int[][] reverseFrequency; - - public ScatterSearchSolutionsCreation( - DoubleProblem problem, int numberOfSolutionsToCreate, int numberOfSubRanges) { - this.problem = problem; - this.numberOfSolutionsToCreate = numberOfSolutionsToCreate; - this.numberOfSubRanges = numberOfSubRanges; - - sumOfFrequencyValues = new int[problem.getNumberOfVariables()]; - sumOfReverseFrequencyValues = new int[problem.getNumberOfVariables()]; - frequency = new int[numberOfSubRanges][problem.getNumberOfVariables()]; - reverseFrequency = new int[numberOfSubRanges][problem.getNumberOfVariables()]; - } - - public List create() { - List solutionList = new ArrayList<>(numberOfSolutionsToCreate); - - for (int i = 0; i < numberOfSolutionsToCreate; i++) { - List variables = generateVariables(); - DoubleSolution newSolution = - new DefaultDoubleSolution(problem.getBounds(), problem.getNumberOfObjectives()); - for (int j = 0; j < problem.getNumberOfVariables(); j++) { - newSolution.setVariable(j, variables.get(j)); - } - - solutionList.add(newSolution); - } - - return solutionList; - } - - private List generateVariables() { - List vars = new ArrayList<>(problem.getNumberOfVariables()); - - double value; - int range; - - for (int i = 0; i < problem.getNumberOfVariables(); i++) { - sumOfReverseFrequencyValues[i] = 0; - for (int j = 0; j < numberOfSubRanges; j++) { - reverseFrequency[j][i] = sumOfFrequencyValues[i] - frequency[j][i]; - sumOfReverseFrequencyValues[i] += reverseFrequency[j][i]; - } - - if (sumOfReverseFrequencyValues[i] == 0) { - range = JMetalRandom.getInstance().nextInt(0, numberOfSubRanges - 1); - } else { - value = JMetalRandom.getInstance().nextInt(0, sumOfReverseFrequencyValues[i] - 1); - range = 0; - while (value > reverseFrequency[range][i]) { - value -= reverseFrequency[range][i]; - range++; - } - } - - frequency[range][i]++; - sumOfFrequencyValues[i]++; - - double low = - problem.getLowerBound(i) - + range * (problem.getUpperBound(i) - problem.getLowerBound(i)) / numberOfSubRanges; - double high = low + (problem.getUpperBound(i) - problem.getLowerBound(i)) / numberOfSubRanges; - - vars.add(i, JMetalRandom.getInstance().nextDouble(low, high)); - } - - return vars; - } - - public static void main(String[] args) { - DoubleProblem problem = new ZDT4(2); - int numberOfSolutionsToCreate = 100; - int numberOfSubRanges = 4 ; - List solutions = - new ScatterSearchSolutionsCreation(problem, numberOfSolutionsToCreate, numberOfSubRanges).create(); - AlgorithmDefaultOutputData.generateMultiObjectiveAlgorithmOutputData(solutions, 0); - } -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/replacement/Replacement.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/replacement/Replacement.java deleted file mode 100644 index 114e7aaad5..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/replacement/Replacement.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.uma.jmetal.auto.component.replacement; - -import org.uma.jmetal.solution.Solution; - -import java.util.List; - -@FunctionalInterface -public interface Replacement> { - enum RemovalPolicy {sequential, oneShot} - List replace(List currentList, List offspringList) ; -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/replacement/impl/PairwiseReplacement.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/replacement/impl/PairwiseReplacement.java deleted file mode 100644 index 5578344d85..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/replacement/impl/PairwiseReplacement.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.uma.jmetal.auto.component.replacement.impl; - -import org.uma.jmetal.auto.component.replacement.Replacement; -import org.uma.jmetal.operator.selection.impl.RankingAndCrowdingSelection; -import org.uma.jmetal.solution.Solution; -import org.uma.jmetal.util.checking.Check; -import org.uma.jmetal.util.comparator.DominanceComparator; - -import java.util.ArrayList; -import java.util.List; - -public class PairwiseReplacement> implements Replacement { - private DominanceComparator dominanceComparator ; - private Check checker = new Check(); - - public PairwiseReplacement() { - this(new DominanceComparator<>()) ; - } - /** - * Constructor - * @param dominanceComparator - */ - public PairwiseReplacement(DominanceComparator dominanceComparator) { - this.dominanceComparator = dominanceComparator ; - } - - public List replace(List population, List offspringPopulation) { - checker.that(population.size() == offspringPopulation.size(), "The population size (" + - population.size()+ ") is not equal to the offspring population size (" + offspringPopulation.size()+")") ; - - List temporaryPopulation = new ArrayList<>() ; - for (int i = 0; i < population.size(); i++) { - // Dominance test - S child = offspringPopulation.get(i); - int result; - result = dominanceComparator.compare(population.get(i), child); - if (result == -1) { - // Solution i dominates child - temporaryPopulation.add(population.get(i)); - } else if (result == 1) { - // child dominates - temporaryPopulation.add(child); - } else { - // the two population are non-dominated - temporaryPopulation.add(child); - temporaryPopulation.add(population.get(i)); - } - } - RankingAndCrowdingSelection rankingAndCrowdingSelection; - rankingAndCrowdingSelection = new RankingAndCrowdingSelection(population.size(), dominanceComparator); - - List newPopulation = new ArrayList<>( - rankingAndCrowdingSelection.execute(temporaryPopulation)); - - return newPopulation ; - } -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/replacement/impl/RankingAndDensityEstimatorReplacement.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/replacement/impl/RankingAndDensityEstimatorReplacement.java deleted file mode 100644 index e0bc0e16ee..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/replacement/impl/RankingAndDensityEstimatorReplacement.java +++ /dev/null @@ -1,104 +0,0 @@ -package org.uma.jmetal.auto.component.replacement.impl; - -import org.uma.jmetal.auto.component.replacement.Replacement; -import org.uma.jmetal.auto.util.preference.Preference; -import org.uma.jmetal.component.densityestimator.DensityEstimator; -import org.uma.jmetal.component.ranking.Ranking; -import org.uma.jmetal.solution.Solution; - -import java.util.ArrayList; -import java.util.List; - -public class RankingAndDensityEstimatorReplacement> - implements Replacement { - private Ranking ranking; - private DensityEstimator densityEstimator; - private RemovalPolicy removalPolicy ; - private Preference preference ; - - public RankingAndDensityEstimatorReplacement( - Ranking ranking, DensityEstimator densityEstimator) { - this(ranking, densityEstimator, RemovalPolicy.sequential) ; - } - - @Deprecated - public RankingAndDensityEstimatorReplacement( - Ranking ranking, DensityEstimator densityEstimator, RemovalPolicy removalPolicy) { - this.ranking = ranking; - this.densityEstimator = densityEstimator; - this.removalPolicy = removalPolicy ; - } - - public RankingAndDensityEstimatorReplacement(Preference preference, RemovalPolicy removalPolicy) { - this.preference = preference ; - this.ranking = preference.getRanking(); - this.densityEstimator = preference.getDensityEstimator(); - this.removalPolicy = removalPolicy ; - } - - public List replace(List solutionList, List offspringList) { - List jointPopulation = new ArrayList<>(); - jointPopulation.addAll(solutionList); - jointPopulation.addAll(offspringList); - - List resultList ; - - ranking.computeRanking(jointPopulation); - if (removalPolicy == RemovalPolicy.oneShot) { - resultList = oneShotTruncation(0, solutionList.size()); - } else { - resultList = sequentialTruncation( 0, solutionList.size()) ; - } - return resultList; - } - - private List oneShotTruncation(int rankingId, int sizeOfTheResultingSolutionList) { - List currentRankSolutions = ranking.getSubFront(rankingId); - densityEstimator.computeDensityEstimator(currentRankSolutions); - - List resultList = new ArrayList<>(); - - if (currentRankSolutions.size() < sizeOfTheResultingSolutionList) { - resultList.addAll(ranking.getSubFront(rankingId)); - resultList.addAll( - oneShotTruncation( - rankingId + 1, - sizeOfTheResultingSolutionList - currentRankSolutions.size())); - } else { - densityEstimator.sort(currentRankSolutions); - int i = 0; - while (resultList.size() < sizeOfTheResultingSolutionList) { - resultList.add(currentRankSolutions.get(i)); - i++; - } - } - - return resultList; - } - - private List sequentialTruncation(int rankingId, int sizeOfTheResultingSolutionList) { - List currentRankSolutions = ranking.getSubFront(rankingId); - densityEstimator.computeDensityEstimator(currentRankSolutions); - - List resultList = new ArrayList<>(); - - if (currentRankSolutions.size() < sizeOfTheResultingSolutionList) { - resultList.addAll(ranking.getSubFront(rankingId)); - resultList.addAll( - sequentialTruncation( - rankingId + 1, - sizeOfTheResultingSolutionList - currentRankSolutions.size())); - } else { - for (S solution : currentRankSolutions) - resultList.add(solution) ; - while (resultList.size() > sizeOfTheResultingSolutionList) { - densityEstimator.sort(resultList); - - resultList.remove(resultList.size()-1) ; - densityEstimator.computeDensityEstimator(resultList); - } - } - - return resultList; - } -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/replacement/impl/SingleObjectiveGenerationalReplacement.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/replacement/impl/SingleObjectiveGenerationalReplacement.java deleted file mode 100644 index 8bbb4316d7..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/replacement/impl/SingleObjectiveGenerationalReplacement.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.uma.jmetal.auto.component.replacement.impl; - -import org.uma.jmetal.auto.component.replacement.Replacement; -import org.uma.jmetal.solution.Solution; -import org.uma.jmetal.util.comparator.DominanceComparator; -import org.uma.jmetal.util.comparator.ObjectiveComparator; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -public class SingleObjectiveGenerationalReplacement> implements Replacement { - private DominanceComparator dominanceComparator = new DominanceComparator<>() ; - - public List replace(List currentList, List offspringList) { - List jointPopulation = new ArrayList<>(); - jointPopulation.addAll(currentList); - jointPopulation.addAll(offspringList); - - Collections.sort(jointPopulation, new ObjectiveComparator(0)); - - while (jointPopulation.size() > currentList.size()) { - jointPopulation.remove(jointPopulation.size() - 1); - } - - return jointPopulation; - } -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/selection/MatingPoolSelection.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/selection/MatingPoolSelection.java deleted file mode 100644 index c756dba454..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/selection/MatingPoolSelection.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.uma.jmetal.auto.component.selection; - -import org.uma.jmetal.solution.Solution; - -import java.util.List; - -@FunctionalInterface -public interface MatingPoolSelection> { - List select(List solutionList) ; -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/selection/impl/DifferentialEvolutionMatingPoolSelection.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/selection/impl/DifferentialEvolutionMatingPoolSelection.java deleted file mode 100644 index 2cce36755b..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/selection/impl/DifferentialEvolutionMatingPoolSelection.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.uma.jmetal.auto.component.selection.impl; - -import org.uma.jmetal.auto.component.selection.MatingPoolSelection; -import org.uma.jmetal.operator.selection.impl.DifferentialEvolutionSelection; -import org.uma.jmetal.solution.doublesolution.DoubleSolution; - -import java.util.ArrayList; -import java.util.List; - -public class DifferentialEvolutionMatingPoolSelection implements MatingPoolSelection { - private DifferentialEvolutionSelection selectionOperator ; - private int matingPoolSize ; - private int solutionCounter ; - - public DifferentialEvolutionMatingPoolSelection(int matingPoolSize) { - selectionOperator = new DifferentialEvolutionSelection(); - this.matingPoolSize = matingPoolSize ; - this.solutionCounter = 0 ; - } - - public List select(List solutionList) { - List matingPool = new ArrayList<>(matingPoolSize) ; - - while (matingPool.size() < matingPoolSize) { - selectionOperator.setIndex(solutionCounter); - matingPool.addAll(selectionOperator.execute(solutionList)) ; - solutionCounter++ ; - if (solutionCounter % solutionList.size() == 0) { - solutionCounter = 0 ; - } - } - - return matingPool ; - } -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/selection/impl/MOEADSelection.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/selection/impl/MOEADSelection.java deleted file mode 100644 index dac0987fd3..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/selection/impl/MOEADSelection.java +++ /dev/null @@ -1,85 +0,0 @@ -package org.uma.jmetal.auto.component.selection.impl; - -import org.uma.jmetal.auto.component.selection.MatingPoolSelection; -import org.uma.jmetal.solution.doublesolution.DoubleSolution; -import org.uma.jmetal.util.neighborhood.Neighborhood; -import org.uma.jmetal.util.pseudorandom.JMetalRandom; - -import java.util.ArrayList; -import java.util.List; - -public class MOEADSelection implements MatingPoolSelection { - private int matingPoolSize ; - private Neighborhood neighborhood ; - private double neighborhoodSelectionProbability ; - private int currentSolutionIndex ; - private String neighbourType ; - - public MOEADSelection(int matingPoolSize, Neighborhood neighborhood, - double neighborhoodSelectionProbability) { - this.matingPoolSize = matingPoolSize ; - this.neighborhood = neighborhood ; - this.neighborhoodSelectionProbability = neighborhoodSelectionProbability ; - currentSolutionIndex = 0 ; - } - - public List select(List solutionList) { - if (JMetalRandom.getInstance().nextDouble() < neighborhoodSelectionProbability) { - neighbourType = "NEIGHBOR" ; - } else { - neighbourType = "POPULATION" ; - } - - List matingPool = matingSelection(currentSolutionIndex, solutionList, 2, neighbourType) ; - matingPool.add(solutionList.get(currentSolutionIndex)) ; - - return matingPool ; - } - - public int getCurrentSolutionIndex() { - return currentSolutionIndex ; - } - - public String getNeighbourType() { - return neighbourType ; - } - - /** - * - * @param subproblemId the id of current subproblem - * @param neighborType neighbour type - */ - private List matingSelection( - int subproblemId, - List population, - int numberOfSolutionsToSelect, - String neighborType) { - int neighbourSize; - DoubleSolution selectedSolution; - - List listOfSolutions = new ArrayList<>(numberOfSolutionsToSelect) ; - List neighbors = neighborhood.getNeighbors(population, subproblemId) ; - - neighbourSize = neighbors.size() ; - while (listOfSolutions.size() < numberOfSolutionsToSelect) { - int randomPosition; - if (neighborType.equals("NEIGHBOR")) { - randomPosition = JMetalRandom.getInstance().nextInt(0, neighbourSize - 1); - selectedSolution = neighbors.get(randomPosition) ; - } else { - randomPosition = JMetalRandom.getInstance().nextInt(0, population.size() - 1) ; - selectedSolution = population.get(randomPosition); - } - - boolean flag = true; - for (DoubleSolution individualId : listOfSolutions) { - if (individualId == selectedSolution) { - flag = false; - break; - } - } - } - - return listOfSolutions ; - } -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/selection/impl/NaryTournamentMatingPoolSelection.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/selection/impl/NaryTournamentMatingPoolSelection.java deleted file mode 100644 index b8a7bf2fe2..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/selection/impl/NaryTournamentMatingPoolSelection.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.uma.jmetal.auto.component.selection.impl; - -import org.uma.jmetal.auto.component.selection.MatingPoolSelection; -import org.uma.jmetal.auto.util.preference.Preference; -import org.uma.jmetal.operator.selection.impl.NaryTournamentSelection; -import org.uma.jmetal.solution.Solution; -import org.uma.jmetal.util.comparator.MultiComparator; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.List; - -public class NaryTournamentMatingPoolSelection> - implements MatingPoolSelection { - private NaryTournamentSelection selectionOperator; - private int matingPoolSize; - private Preference preference ; - - @Deprecated - public NaryTournamentMatingPoolSelection( - int tournamentSize, int matingPoolSize, Comparator comparator) { - selectionOperator = new NaryTournamentSelection<>(tournamentSize, comparator); - this.matingPoolSize = matingPoolSize; - } - - public NaryTournamentMatingPoolSelection( - int tournamentSize, int matingPoolSize, Preference preference) { - this.preference = preference ; - Comparator comparator = new MultiComparator<>( - Arrays.asList( - preference.getRanking().getSolutionComparator(), - preference.getDensityEstimator().getSolutionComparator())) ; - this.selectionOperator = new NaryTournamentSelection<>(tournamentSize, comparator) ; - this.matingPoolSize = matingPoolSize ; - } - - public List select(List solutionList) { - preference.recompute(solutionList); - List matingPool = new ArrayList<>(matingPoolSize); - - while (matingPool.size() < matingPoolSize) { - matingPool.add(selectionOperator.execute(solutionList)); - } - - return matingPool; - } - - -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/selection/impl/RandomMatingPoolSelection.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/selection/impl/RandomMatingPoolSelection.java deleted file mode 100644 index 4d7fab24c5..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/selection/impl/RandomMatingPoolSelection.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.uma.jmetal.auto.component.selection.impl; - -import org.uma.jmetal.auto.component.selection.MatingPoolSelection; -import org.uma.jmetal.solution.Solution; -import org.uma.jmetal.util.checking.Check; -import org.uma.jmetal.util.pseudorandom.JMetalRandom; - -import java.util.ArrayList; -import java.util.List; -import java.util.stream.IntStream; - -public class RandomMatingPoolSelection> implements MatingPoolSelection { - private int matingPoolSize; - - public RandomMatingPoolSelection(int matingPoolSize) { - this.matingPoolSize = matingPoolSize; - } - - public List select(List solutionList) { - Check.isNotNull(solutionList); - - List matingPool = new ArrayList<>(); - IntStream.range(0, matingPoolSize) - .forEach( - i -> - matingPool.add( - solutionList.get(JMetalRandom.getInstance().nextInt(0, solutionList.size()-1)))); - - return matingPool; - } -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/selection/impl/RankingAndDensityEstimatorMatingPoolSelection.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/selection/impl/RankingAndDensityEstimatorMatingPoolSelection.java deleted file mode 100644 index 8e29b7ebb8..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/selection/impl/RankingAndDensityEstimatorMatingPoolSelection.java +++ /dev/null @@ -1,75 +0,0 @@ -package org.uma.jmetal.auto.component.selection.impl; - -import org.uma.jmetal.auto.component.selection.MatingPoolSelection; -import org.uma.jmetal.component.densityestimator.DensityEstimator; -import org.uma.jmetal.component.ranking.Ranking; -import org.uma.jmetal.solution.Solution; - -import java.util.ArrayList; -import java.util.List; - -public class RankingAndDensityEstimatorMatingPoolSelection> implements MatingPoolSelection { - private int matingPoolSize ; - - public Ranking ranking ; - public DensityEstimator densityEstimator ; - - public RankingAndDensityEstimatorMatingPoolSelection(int numberOfSolutionsToSelect, Ranking ranking, DensityEstimator densityEstimator) { - this.ranking = ranking ; - this.densityEstimator = densityEstimator ; - this.matingPoolSize = numberOfSolutionsToSelect ; - } - - public List select(List solutionList) { - ranking.computeRanking(solutionList) ; - for (int i = 0 ; i < ranking.getNumberOfSubFronts(); i++) { - densityEstimator.computeDensityEstimator(ranking.getSubFront(i)); - } - - return getMatingPool() ; - } - - private List getMatingPool() { - List matingPool = new ArrayList<>() ; - int rankingIndex = 0 ; - while (matingPool.size() < matingPoolSize) { - if (subFrontFillsIntoTheMatingPool(ranking, rankingIndex, matingPool)) { - densityEstimator.computeDensityEstimator(ranking.getSubFront(rankingIndex)); - addRankedSolutionsToPopulation(ranking, rankingIndex, matingPool); - rankingIndex++; - } else { - densityEstimator.computeDensityEstimator(ranking.getSubFront(rankingIndex)); - addLastRankedSolutionsToPopulation(ranking, rankingIndex, matingPool); - } - } - - return matingPool ; - } - - protected boolean subFrontFillsIntoTheMatingPool(Ranking ranking, int rank, List solutionList) { - return ranking.getSubFront(rank).size() < (matingPoolSize - solutionList.size()) ; - } - - protected void addRankedSolutionsToPopulation(Ranking ranking, int rank, List solutionList) { - List front ; - - front = ranking.getSubFront(rank); - - for (int i = 0 ; i < front.size(); i++) { - solutionList.add(front.get(i)); - } - } - - protected void addLastRankedSolutionsToPopulation(Ranking ranking, int rank, List solutionList) { - List currentRankedFront = ranking.getSubFront(rank) ; - - densityEstimator.sort(currentRankedFront) ; - //Collections.sort(currentRankedFront, densityEstimator.getSolutionComparator()) ; - - int i = 0 ; - while ( solutionList.size() < matingPoolSize) { - solutionList.add(currentRankedFront.get(i)) ; - i++ ; - } - } -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/termination/Termination.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/termination/Termination.java deleted file mode 100644 index 53c90a72ba..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/termination/Termination.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.uma.jmetal.auto.component.termination; - -import java.util.Map; - -/** - * This interface represents classes that isMet the termination condition of an algorithm. - * - * @author Antonio J. Nebro - */ -@FunctionalInterface -public interface Termination { - boolean isMet(Map algorithmStatusData) ; -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/termination/impl/TerminationByComputingTime.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/termination/impl/TerminationByComputingTime.java deleted file mode 100644 index a59eec400f..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/termination/impl/TerminationByComputingTime.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.uma.jmetal.auto.component.termination.impl; - -import org.uma.jmetal.auto.component.termination.Termination; -import org.uma.jmetal.util.JMetalLogger; - -import java.util.Map; - -/** - * Class that allows to isMet the termination condition when the computing time of an algorithm - * gets higher than a given threshold. - * - * @author Antonio J. Nebro - */ -public class TerminationByComputingTime implements Termination { - private long maxComputingTime ; - private int evaluations ; - - public TerminationByComputingTime(int maxComputingTime) { - this.maxComputingTime = maxComputingTime ; - this.evaluations = 0 ; - } - - @Override - public boolean isMet(Map algorithmStatusData) { - long currentComputingTime = (long) algorithmStatusData.get("COMPUTING_TIME") ; - - boolean result = currentComputingTime >= maxComputingTime ; - if (result) { - this.evaluations = (int)algorithmStatusData.get("EVALUATIONS") ; - JMetalLogger.logger.info("Evaluations: " + evaluations); - } - - return result ; - } - - public int getEvaluations() { - return evaluations ; - } -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/termination/impl/TerminationByEvaluations.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/termination/impl/TerminationByEvaluations.java deleted file mode 100644 index 4898d7eb5b..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/termination/impl/TerminationByEvaluations.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.uma.jmetal.auto.component.termination.impl; - -import org.uma.jmetal.auto.component.termination.Termination; - -import java.util.Map; - -/** - * Class that allows to isMet the termination condition based on a maximum number of indicated - * evaluations. - * - * @author Antonio J. Nebro - */ -public class TerminationByEvaluations implements Termination { - private int maximumNumberOfEvaluations ; - - public TerminationByEvaluations(int maximumNumberOfEvaluations) { - this.maximumNumberOfEvaluations = maximumNumberOfEvaluations ; - } - - @Override - public boolean isMet(Map algorithmStatusData) { - int currentNumberOfEvaluations = (int) algorithmStatusData.get("EVALUATIONS") ; - - return (currentNumberOfEvaluations >= maximumNumberOfEvaluations) ; - } -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/termination/impl/TerminationByKeyboard.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/termination/impl/TerminationByKeyboard.java deleted file mode 100644 index 8d187527c6..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/termination/impl/TerminationByKeyboard.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.uma.jmetal.auto.component.termination.impl; - - -import org.uma.jmetal.auto.component.termination.Termination; -import org.uma.jmetal.util.JMetalLogger; - -import java.util.Map; -import java.util.Scanner; - -/** - * Class that allows to isMet the termination condition based on introducing a character by keyboard. - * - * @author Antonio J. Nebro - */ -public class TerminationByKeyboard implements Termination { - public boolean keyHit ; - private int evaluations ; - - public TerminationByKeyboard() { - keyHit = false; - evaluations = 0 ; - - KeyboardReader keyboardReader = new KeyboardReader(this) ; - keyboardReader.start(); - } - - @Override - public boolean isMet(Map algorithmStatusData) { - if (keyHit) { - this.evaluations = (int)algorithmStatusData.get("EVALUATIONS") ; - JMetalLogger.logger.info("Evaluations: " + evaluations); - } - return keyHit ; - } - - private class KeyboardReader extends Thread { - private TerminationByKeyboard terminationByKeyboard ; - - public KeyboardReader(TerminationByKeyboard terminationByKeyboard) { - this.terminationByKeyboard = terminationByKeyboard ; - } - - @Override - public void run() { - System.out.println("Press any key and hit return") ; - Scanner scanner = new Scanner(System.in); - - scanner.nextLine() ; - - terminationByKeyboard.keyHit = true ; - } - } - - public int getEvaluations() { - return evaluations ; - } -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/variation/Variation.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/variation/Variation.java deleted file mode 100644 index f0e1a81a80..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/variation/Variation.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.uma.jmetal.auto.component.variation; - -import org.uma.jmetal.solution.Solution; - -import java.util.List; - -public interface Variation> { - List variate(List solutionList, List matingPool) ; - - int getMatingPoolSize() ; - int getOffspringPopulationSize() ; -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/variation/impl/CrossoverAndMutationVariation.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/variation/impl/CrossoverAndMutationVariation.java deleted file mode 100644 index 71c080f220..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/variation/impl/CrossoverAndMutationVariation.java +++ /dev/null @@ -1,89 +0,0 @@ -package org.uma.jmetal.auto.component.variation.impl; - -import org.uma.jmetal.auto.component.variation.Variation; -import org.uma.jmetal.operator.crossover.CrossoverOperator; -import org.uma.jmetal.operator.mutation.MutationOperator; -import org.uma.jmetal.solution.Solution; -import org.uma.jmetal.util.JMetalException; - -import java.util.ArrayList; -import java.util.List; - -/** - * - * @param - */ -public class CrossoverAndMutationVariation> implements Variation { - private CrossoverOperator crossover ; - private MutationOperator mutation ; - private int matingPoolSize ; - private int offspringPopulationSize ; - - public CrossoverAndMutationVariation( - int offspringPopulationSize, - CrossoverOperator crossover, - MutationOperator mutation) { - this.crossover = crossover ; - this.mutation = mutation ; - this.offspringPopulationSize = offspringPopulationSize ; - - this.matingPoolSize = offspringPopulationSize * - crossover.getNumberOfRequiredParents() / crossover.getNumberOfGeneratedChildren(); - - int remainder = matingPoolSize % crossover.getNumberOfRequiredParents(); - if (remainder != 0) { - matingPoolSize += remainder; - } - } - - @Override - public List variate(List population, List matingPopulation) { - int numberOfParents = crossover.getNumberOfRequiredParents(); - - checkNumberOfParents(matingPopulation, numberOfParents); - - List offspringPopulation = new ArrayList<>(offspringPopulationSize); - for (int i = 0; i < matingPoolSize; i += numberOfParents) { - List parents = new ArrayList<>(numberOfParents); - for (int j = 0; j < numberOfParents; j++) { - parents.add(matingPopulation.get(i + j)); - } - - List offspring = crossover.execute(parents); - - for (S s : offspring) { - mutation.execute(s); - offspringPopulation.add(s); - if (offspringPopulation.size() == offspringPopulationSize) { - break; - } - } - } - return offspringPopulation; - } - - /** - * A crossover operator is applied to a number of parents, and it assumed that the population contains - * a valid number of population. This method checks that. - * - * @param population - * @param numberOfParentsForCrossover - */ - private void checkNumberOfParents(List population, int numberOfParentsForCrossover) { - if ((population.size() % numberOfParentsForCrossover) != 0) { - throw new JMetalException("Wrong number of parents: the remainder if the " + - "population size (" + population.size() + ") is not divisible by " + - numberOfParentsForCrossover); - } - } - - @Override - public int getMatingPoolSize() { - return matingPoolSize ; - } - - @Override - public int getOffspringPopulationSize() { - return offspringPopulationSize ; - } -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/variation/impl/DifferentialCrossoverVariation.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/variation/impl/DifferentialCrossoverVariation.java deleted file mode 100644 index 945b5b0087..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/component/variation/impl/DifferentialCrossoverVariation.java +++ /dev/null @@ -1,65 +0,0 @@ -package org.uma.jmetal.auto.component.variation.impl; - -import org.uma.jmetal.auto.component.variation.Variation; -import org.uma.jmetal.operator.crossover.impl.DifferentialEvolutionCrossover; -import org.uma.jmetal.operator.mutation.MutationOperator; -import org.uma.jmetal.operator.mutation.impl.NullMutation; -import org.uma.jmetal.solution.doublesolution.DoubleSolution; - -import java.util.ArrayList; -import java.util.List; - -/** */ -public class DifferentialCrossoverVariation implements Variation { - private int matingPoolSize; - private int offspringPopulationSize; - - private DifferentialEvolutionCrossover crossover; - private MutationOperator mutation; - - public DifferentialCrossoverVariation( - int offspringPopulationSize, - DifferentialEvolutionCrossover crossover, - MutationOperator mutation) { - this.offspringPopulationSize = offspringPopulationSize; - this.crossover = crossover; - this.mutation = mutation; - - this.matingPoolSize = offspringPopulationSize * 3; - } - - public DifferentialCrossoverVariation( - int offspringPopulationSize, DifferentialEvolutionCrossover crossover) { - this(offspringPopulationSize, crossover, new NullMutation<>()); - } - - @Override - public List variate( - List solutionList, List matingPool) { - - List offspringPopulation = new ArrayList<>(); - for (int i = 0; i < solutionList.size(); i++) { - crossover.setCurrentSolution(solutionList.get(i)); - List parents = new ArrayList<>(3); - for (int j = 0; j < 3; j++) { - parents.add(matingPool.get(0)); - matingPool.remove(0); - } - - List offspring = crossover.execute(parents); - - offspringPopulation.add(mutation.execute(offspring.get(0))); - } - return offspringPopulation; - } - - @Override - public int getMatingPoolSize() { - return matingPoolSize; - } - - @Override - public int getOffspringPopulationSize() { - return offspringPopulationSize; - } -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/irace/AutoNSGAIIirace.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/irace/AutoNSGAIIirace.java index 068b3aa037..f9fb39bee4 100644 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/irace/AutoNSGAIIirace.java +++ b/jmetal-auto/src/main/java/org/uma/jmetal/auto/irace/AutoNSGAIIirace.java @@ -1,25 +1,26 @@ package org.uma.jmetal.auto.irace; import org.uma.jmetal.auto.algorithm.EvolutionaryAlgorithm; -import org.uma.jmetal.auto.component.evaluation.Evaluation; -import org.uma.jmetal.auto.component.evaluation.impl.SequentialEvaluation; -import org.uma.jmetal.auto.component.initialsolutionscreation.InitialSolutionsCreation; -import org.uma.jmetal.auto.component.replacement.Replacement; -import org.uma.jmetal.auto.component.replacement.impl.RankingAndDensityEstimatorReplacement; -import org.uma.jmetal.auto.component.selection.MatingPoolSelection; -import org.uma.jmetal.auto.component.termination.Termination; -import org.uma.jmetal.auto.component.termination.impl.TerminationByEvaluations; -import org.uma.jmetal.auto.component.variation.Variation; import org.uma.jmetal.auto.parameter.IntegerParameter; import org.uma.jmetal.auto.parameter.Parameter; import org.uma.jmetal.auto.parameter.RealParameter; import org.uma.jmetal.auto.parameter.catalogue.*; import org.uma.jmetal.component.densityestimator.DensityEstimator; import org.uma.jmetal.component.densityestimator.impl.CrowdingDistanceDensityEstimator; +import org.uma.jmetal.component.evaluation.Evaluation; +import org.uma.jmetal.component.evaluation.impl.SequentialEvaluation; +import org.uma.jmetal.component.initialsolutioncreation.InitialSolutionsCreation; import org.uma.jmetal.component.ranking.Ranking; import org.uma.jmetal.component.ranking.impl.FastNonDominatedSortRanking; +import org.uma.jmetal.component.ranking.impl.MergeNonDominatedSortRanking; +import org.uma.jmetal.component.replacement.Replacement; +import org.uma.jmetal.component.replacement.impl.RankingAndDensityEstimatorReplacement; +import org.uma.jmetal.component.selection.MatingPoolSelection; +import org.uma.jmetal.component.termination.Termination; +import org.uma.jmetal.component.termination.impl.TerminationByEvaluations; +import org.uma.jmetal.component.variation.Variation; import org.uma.jmetal.problem.doubleproblem.DoubleProblem; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.archive.Archive; import org.uma.jmetal.util.archive.impl.CrowdingDistanceArchive; @@ -55,23 +56,26 @@ public void parseAndCheckParameters(String[] args) { problemNameParameter = new ProblemNameParameter<>(args); populationSizeParameter = new PopulationSizeParameter(args); referenceFrontFilename = new ReferenceFrontFilenameParameter(args); - maximumNumberOfEvaluationsParameter = new IntegerParameter("maximumNumberOfEvaluations", args, 1, 10000000) ; + maximumNumberOfEvaluationsParameter = + new IntegerParameter("maximumNumberOfEvaluations", args, 1, 10000000); - fixedParameterList.add(problemNameParameter) ; - fixedParameterList.add(referenceFrontFilename) ; - fixedParameterList.add(maximumNumberOfEvaluationsParameter) ; - fixedParameterList.add(populationSizeParameter) ; + fixedParameterList.add(problemNameParameter); + fixedParameterList.add(referenceFrontFilename); + fixedParameterList.add(maximumNumberOfEvaluationsParameter); + fixedParameterList.add(populationSizeParameter); for (Parameter parameter : fixedParameterList) { parameter.parse().check(); } algorithmResultParameter = - new StringCategoricalParameter("algorithmResult", args, Arrays.asList("externalArchive", "population")); + new StringCategoricalParameter( + "algorithmResult", args, Arrays.asList("externalArchive", "population")); populationSizeWithArchiveParameter = - new PopulationSizeWithArchive(args, Arrays.asList(10, 20, 50, 100, 200)); + new PopulationSizeWithArchive(args, Arrays.asList(10, 20, 50, 100, 200)); algorithmResultParameter.addSpecificParameter("population", populationSizeParameter); - algorithmResultParameter.addSpecificParameter("externalArchive", populationSizeWithArchiveParameter); + algorithmResultParameter.addSpecificParameter( + "externalArchive", populationSizeWithArchiveParameter); createInitialSolutionsParameter = new CreateInitialSolutionsParameter( @@ -83,15 +87,15 @@ public void parseAndCheckParameters(String[] args) { selectionParameter.addSpecificParameter("tournament", selectionTournamentSize); CrossoverParameter crossover = new CrossoverParameter(args, Arrays.asList("SBX", "BLX_ALPHA")); - ProbabilityParameter crossoverProbability = new ProbabilityParameter("crossoverProbability", args); + ProbabilityParameter crossoverProbability = + new ProbabilityParameter("crossoverProbability", args); crossover.addGlobalParameter(crossoverProbability); RepairDoubleSolutionStrategyParameter crossoverRepairStrategy = - new RepairDoubleSolutionStrategyParameter("crossoverRepairStrategy", - args, Arrays.asList("random", "round", "bounds")); + new RepairDoubleSolutionStrategyParameter( + "crossoverRepairStrategy", args, Arrays.asList("random", "round", "bounds")); crossover.addGlobalParameter(crossoverRepairStrategy); - RealParameter distributionIndex = - new RealParameter("sbxDistributionIndex", args,5.0, 400.0); + RealParameter distributionIndex = new RealParameter("sbxDistributionIndex", args, 5.0, 400.0); crossover.addSpecificParameter("SBX", distributionIndex); RealParameter alpha = new RealParameter("blxAlphaCrossoverAlphaValue", args, 0.0, 1.0); @@ -99,11 +103,12 @@ public void parseAndCheckParameters(String[] args) { MutationParameter mutation = new MutationParameter(args, Arrays.asList("uniform", "polynomial")); - ProbabilityParameter mutationProbability = new ProbabilityParameter("mutationProbability", args); + ProbabilityParameter mutationProbability = + new ProbabilityParameter("mutationProbability", args); mutation.addGlobalParameter(mutationProbability); RepairDoubleSolutionStrategyParameter mutationRepairStrategy = - new RepairDoubleSolutionStrategyParameter("mutationRepairStrategy", - args, Arrays.asList("random", "round", "bounds")); + new RepairDoubleSolutionStrategyParameter( + "mutationRepairStrategy", args, Arrays.asList("random", "round", "bounds")); mutation.addGlobalParameter(mutationRepairStrategy); RealParameter distributionIndexForMutation = @@ -117,15 +122,15 @@ public void parseAndCheckParameters(String[] args) { DifferentialEvolutionCrossoverParameter differentialEvolutionCrossover = new DifferentialEvolutionCrossoverParameter(args); - RealParameter f = new RealParameter("f", args, 0.0, 1.0) ; - RealParameter cr = new RealParameter("cr", args, 0.0, 1.0) ; + RealParameter f = new RealParameter("f", args, 0.0, 1.0); + RealParameter cr = new RealParameter("cr", args, 0.0, 1.0); differentialEvolutionCrossover.addGlobalParameter(f); differentialEvolutionCrossover.addGlobalParameter(cr); - offspringPopulationSizeParameter = new OffspringPopulationSizeParameter(args, Arrays.asList(1, 10, 50, 100)); + offspringPopulationSizeParameter = + new OffspringPopulationSizeParameter(args, Arrays.asList(1, 10, 50, 100, 200, 400)); - variationParameter = - new VariationParameter(args, Arrays.asList("crossoverAndMutationVariation")); + variationParameter = new VariationParameter(args, List.of("crossoverAndMutationVariation")); variationParameter.addGlobalParameter(offspringPopulationSizeParameter); variationParameter.addSpecificParameter("crossoverAndMutationVariation", crossover); variationParameter.addSpecificParameter("crossoverAndMutationVariation", mutation); @@ -155,19 +160,17 @@ EvolutionaryAlgorithm create() { populationSizeParameter.setValue(populationSizeWithArchiveParameter.getValue()); } - Ranking ranking = new FastNonDominatedSortRanking<>(new DominanceComparator<>()); + Ranking ranking = + new MergeNonDominatedSortRanking<>(); DensityEstimator densityEstimator = new CrowdingDistanceDensityEstimator<>(); - MultiComparator rankingAndCrowdingComparator = - new MultiComparator( - Arrays.asList( - ranking.getSolutionComparator(), densityEstimator.getSolutionComparator())); + var rankingAndCrowdingComparator = + new MultiComparator<>( + List.of(ranking.getSolutionComparator(), densityEstimator.getSolutionComparator())); - InitialSolutionsCreation initialSolutionsCreation = + var initialSolutionsCreation = createInitialSolutionsParameter.getParameter(problem, populationSizeParameter.getValue()); - Variation variation = - (Variation) - variationParameter.getParameter(); - MatingPoolSelection selection = + var variation = (Variation) variationParameter.getParameter(); + var selection = (MatingPoolSelection) selectionParameter.getParameter( variation.getMatingPoolSize(), rankingAndCrowdingComparator); @@ -180,7 +183,7 @@ EvolutionaryAlgorithm create() { Termination termination = new TerminationByEvaluations(maximumNumberOfEvaluationsParameter.getValue()); - EvolutionaryAlgorithm nsgaii = + var nsgaii = new EvolutionaryAlgorithm<>( "NSGAII", evaluation, @@ -190,7 +193,6 @@ EvolutionaryAlgorithm create() { variation, replacement, archive); - return nsgaii; } @@ -201,20 +203,21 @@ public static void main(String[] args) throws FileNotFoundException { EvolutionaryAlgorithm nsgaII = nsgaiiWithParameters.create(); nsgaII.run(); - String referenceFrontFile = "/pareto_fronts/" + nsgaiiWithParameters.referenceFrontFilename.getValue() ; + String referenceFrontFile = + "resources/referenceFrontsCSV/" + nsgaiiWithParameters.referenceFrontFilename.getValue(); Front referenceFront = new ArrayFront(referenceFrontFile); FrontNormalizer frontNormalizer = new FrontNormalizer(referenceFront); Front normalizedReferenceFront = frontNormalizer.normalize(referenceFront); Front normalizedFront = frontNormalizer.normalize(new ArrayFront(nsgaII.getResult())); List normalizedPopulation = - FrontUtils.convertFrontToSolutionList(normalizedFront); + FrontUtils.convertFrontToSolutionList(normalizedFront); double referenceFrontHV = - new PISAHypervolume(normalizedReferenceFront) - .evaluate(FrontUtils.convertFrontToSolutionList(normalizedReferenceFront)); + new PISAHypervolume(normalizedReferenceFront) + .evaluate(FrontUtils.convertFrontToSolutionList(normalizedReferenceFront)); double obtainedFrontHV = - new PISAHypervolume(normalizedReferenceFront).evaluate(normalizedPopulation); + new PISAHypervolume(normalizedReferenceFront).evaluate(normalizedPopulation); System.out.println((referenceFrontHV - obtainedFrontHV) / referenceFrontHV); } } diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/parameter/catalogue/CreateInitialSolutionsParameter.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/parameter/catalogue/CreateInitialSolutionsParameter.java index e995ec6f9f..3c5b5a02b2 100644 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/parameter/catalogue/CreateInitialSolutionsParameter.java +++ b/jmetal-auto/src/main/java/org/uma/jmetal/auto/parameter/catalogue/CreateInitialSolutionsParameter.java @@ -1,10 +1,10 @@ package org.uma.jmetal.auto.parameter.catalogue; -import org.uma.jmetal.auto.component.initialsolutionscreation.InitialSolutionsCreation; -import org.uma.jmetal.auto.component.initialsolutionscreation.impl.LatinHypercubeSamplingSolutionsCreation; -import org.uma.jmetal.auto.component.initialsolutionscreation.impl.RandomSolutionsCreation; -import org.uma.jmetal.auto.component.initialsolutionscreation.impl.ScatterSearchSolutionsCreation; import org.uma.jmetal.auto.parameter.CategoricalParameter; +import org.uma.jmetal.component.initialsolutioncreation.InitialSolutionsCreation; +import org.uma.jmetal.component.initialsolutioncreation.impl.LatinHypercubeSamplingSolutionsCreation; +import org.uma.jmetal.component.initialsolutioncreation.impl.RandomSolutionsCreation; +import org.uma.jmetal.component.initialsolutioncreation.impl.ScatterSearchSolutionsCreation; import org.uma.jmetal.problem.doubleproblem.DoubleProblem; import org.uma.jmetal.solution.doublesolution.DoubleSolution; diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/parameter/catalogue/ReplacementParameter.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/parameter/catalogue/ReplacementParameter.java index 9efc9d31f3..08e3244dcd 100644 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/parameter/catalogue/ReplacementParameter.java +++ b/jmetal-auto/src/main/java/org/uma/jmetal/auto/parameter/catalogue/ReplacementParameter.java @@ -1,7 +1,6 @@ package org.uma.jmetal.auto.parameter.catalogue; -import org.uma.jmetal.auto.component.replacement.Replacement; -import org.uma.jmetal.auto.component.replacement.impl.RankingAndDensityEstimatorReplacement; + import org.uma.jmetal.auto.parameter.CategoricalParameter; import org.uma.jmetal.auto.parameter.Parameter; import org.uma.jmetal.component.densityestimator.DensityEstimator; @@ -10,6 +9,8 @@ import org.uma.jmetal.component.ranking.Ranking; import org.uma.jmetal.component.ranking.impl.FastNonDominatedSortRanking; import org.uma.jmetal.component.ranking.impl.StrengthRanking; +import org.uma.jmetal.component.replacement.Replacement; +import org.uma.jmetal.component.replacement.impl.RankingAndDensityEstimatorReplacement; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import java.util.Comparator; diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/parameter/catalogue/SelectionParameter.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/parameter/catalogue/SelectionParameter.java index 2c63284088..d4fd27e0b4 100644 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/parameter/catalogue/SelectionParameter.java +++ b/jmetal-auto/src/main/java/org/uma/jmetal/auto/parameter/catalogue/SelectionParameter.java @@ -1,14 +1,14 @@ package org.uma.jmetal.auto.parameter.catalogue; -import org.uma.jmetal.auto.component.selection.MatingPoolSelection; -import org.uma.jmetal.auto.component.selection.impl.DifferentialEvolutionMatingPoolSelection; -import org.uma.jmetal.auto.component.selection.impl.NaryTournamentMatingPoolSelection; -import org.uma.jmetal.auto.component.selection.impl.RandomMatingPoolSelection; import org.uma.jmetal.auto.parameter.CategoricalParameter; import org.uma.jmetal.component.densityestimator.DensityEstimator; import org.uma.jmetal.component.densityestimator.impl.CrowdingDistanceDensityEstimator; import org.uma.jmetal.component.ranking.Ranking; import org.uma.jmetal.component.ranking.impl.FastNonDominatedSortRanking; +import org.uma.jmetal.component.selection.MatingPoolSelection; +import org.uma.jmetal.component.selection.impl.DifferentialEvolutionMatingPoolSelection; +import org.uma.jmetal.component.selection.impl.NaryTournamentMatingPoolSelection; +import org.uma.jmetal.component.selection.impl.RandomMatingPoolSelection; import org.uma.jmetal.util.comparator.MultiComparator; import java.util.Arrays; @@ -70,9 +70,6 @@ public MatingPoolSelection getParameter(int matingPoolSize, Comparator com case "random": result = new RandomMatingPoolSelection<>(matingPoolSize); break ; - case "differentialEvolutionSelection": - result = new DifferentialEvolutionMatingPoolSelection(matingPoolSize) ; - break ; default: throw new RuntimeException("Selection component unknown: " + getValue()) ; } diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/parameter/catalogue/VariationParameter.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/parameter/catalogue/VariationParameter.java index 08d2458190..04babc5d4d 100644 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/parameter/catalogue/VariationParameter.java +++ b/jmetal-auto/src/main/java/org/uma/jmetal/auto/parameter/catalogue/VariationParameter.java @@ -1,10 +1,10 @@ package org.uma.jmetal.auto.parameter.catalogue; -import org.uma.jmetal.auto.component.variation.Variation; -import org.uma.jmetal.auto.component.variation.impl.CrossoverAndMutationVariation; -import org.uma.jmetal.auto.component.variation.impl.DifferentialCrossoverVariation; import org.uma.jmetal.auto.parameter.CategoricalParameter; import org.uma.jmetal.auto.parameter.Parameter; +import org.uma.jmetal.component.variation.Variation; +import org.uma.jmetal.component.variation.impl.CrossoverAndMutationVariation; +import org.uma.jmetal.component.variation.impl.DifferentialCrossoverVariation; import org.uma.jmetal.operator.crossover.CrossoverOperator; import org.uma.jmetal.operator.crossover.impl.DifferentialEvolutionCrossover; import org.uma.jmetal.operator.mutation.MutationOperator; @@ -55,12 +55,6 @@ public Variation getParameter() { new CrossoverAndMutationVariation( offspringPopulationSize, crossoverOperator, mutationOperatorOperator); break; - case "differentialEvolutionVariation": - DifferentialEvolutionCrossover crossover = - ((DifferentialEvolutionCrossoverParameter)findGlobalParameter("differentialEvolutionCrossover")).getParameter() ; - - result = new DifferentialCrossoverVariation(offspringPopulationSize, crossover, new PolynomialMutation(0.0, 0.0)) ; - break ; default: throw new RuntimeException("Variation component unknown: " + getValue()); } diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/util/fitness/Fitness.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/util/fitness/Fitness.java deleted file mode 100644 index 0c3f8d64e6..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/util/fitness/Fitness.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.uma.jmetal.auto.util.fitness; - -import org.uma.jmetal.solution.Solution; - -import java.util.List; - -public interface Fitness> { - double getFitness(S solution) ; - void computeFitness(List solutionList) ; -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/util/fitness/impl/SPEA2Fitness.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/util/fitness/impl/SPEA2Fitness.java deleted file mode 100644 index 58752e6a42..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/util/fitness/impl/SPEA2Fitness.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.uma.jmetal.auto.util.fitness.impl; - -import org.uma.jmetal.auto.util.fitness.Fitness; -import org.uma.jmetal.component.densityestimator.DensityEstimator; -import org.uma.jmetal.component.densityestimator.impl.KnnDensityEstimator; -import org.uma.jmetal.component.ranking.Ranking; -import org.uma.jmetal.component.ranking.impl.StrengthRanking; -import org.uma.jmetal.solution.Solution; - -import java.util.List; - -public class SPEA2Fitness> implements Fitness { - private String attributeId = getClass().getName() ; - Ranking ranking = new StrengthRanking() ; - DensityEstimator densityEstimator = new KnnDensityEstimator<>(1) ; - - @Override - public double getFitness(S solution) { - return (double) solution.getAttribute(attributeId); - } - - @Override - public void computeFitness(List solutionList) { - ranking.computeRanking(solutionList) ; - densityEstimator.computeDensityEstimator(solutionList); - - for (S solution : solutionList) { - double fitness = (int)solution.getAttribute(ranking.getAttributeId()) - + 1.0/ (2.0 + (double)solution.getAttribute(densityEstimator.getAttributeId())) ; - solution.setAttribute(attributeId, fitness); - } - } -} diff --git a/jmetal-auto/src/main/java/org/uma/jmetal/auto/util/preference/Preference.java b/jmetal-auto/src/main/java/org/uma/jmetal/auto/util/preference/Preference.java deleted file mode 100755 index d580a2936b..0000000000 --- a/jmetal-auto/src/main/java/org/uma/jmetal/auto/util/preference/Preference.java +++ /dev/null @@ -1,75 +0,0 @@ -package org.uma.jmetal.auto.util.preference; - -import org.uma.jmetal.component.densityestimator.DensityEstimator; -import org.uma.jmetal.component.ranking.Ranking; - -import java.util.List; - -/** - * A preference is a list composed of a ranking and a density estimator that specifies preferences in the selection - * and replacement components of an evolutionary algorithm. - * - * @author Antonio J. Nebro - */ -public class Preference { - private Ranking ranking ; - private DensityEstimator densityEstimator ; - private Preference relatedPreference ; - private boolean preferenceHasBeenComputedFirstTime = false ; - - public Preference(Ranking ranking, DensityEstimator densityEstimator) { - this(ranking, densityEstimator, null) ; - } - - /** Constructor */ - public Preference(Ranking ranking, DensityEstimator densityEstimator, Preference relatedPreference) { - this.ranking = ranking ; - this.densityEstimator = densityEstimator ; - this.relatedPreference = relatedPreference ; - } - - /** - * Recomputes the ranking and density estimators on a solution list if they are different of the ones of the - * related preference. - */ - public void recompute(List solutionList) { - if (!preferenceHasBeenComputedFirstTime) { - recomputeRanking(solutionList) ; - recomputeDensityEstimator() ; - preferenceHasBeenComputedFirstTime = true ; - } else if (relatedPreference != null) { - if (rankingsAreDifferent()) { - recomputeRanking(solutionList) ; - recomputeDensityEstimator() ; - } else if (densityEstimatorsAreDifferent()) { - recomputeDensityEstimator() ; - } - } - } - - private boolean densityEstimatorsAreDifferent() { - return !densityEstimator.getAttributeId().equals(relatedPreference.getDensityEstimator().getAttributeId()); - } - - private void recomputeDensityEstimator() { - for (int i = 0 ; i < ranking.getNumberOfSubFronts(); i++) { - densityEstimator.computeDensityEstimator( ranking.getSubFront(i)); - } - } - - private void recomputeRanking(List solutionList) { - ranking.computeRanking(solutionList) ; - } - - private boolean rankingsAreDifferent() { - return !ranking.getAttributeId().equals(relatedPreference.getRanking().getAttributeId()); - } - - public Ranking getRanking() { - return ranking ; - } - - public DensityEstimator getDensityEstimator() { - return densityEstimator ; - } -} diff --git a/jmetal-auto/src/main/resources/irace/parameters-NSGAII.txt b/jmetal-auto/src/main/resources/irace/parameters-NSGAII.txt index 9d5340bce5..bda9afe3b2 100644 --- a/jmetal-auto/src/main/resources/irace/parameters-NSGAII.txt +++ b/jmetal-auto/src/main/resources/irace/parameters-NSGAII.txt @@ -1,24 +1,23 @@ -algorithmResult "--algorithmResult " c (externalArchive,population) -populationSize "--populationSize " o (100) -populationSizeWithArchive "--populationSizeWithArchive " o (10,20,50,100,200) | algorithmResult %in% c("externalArchive") +populationSize "--populationSize " o (100) # -maximumNumberOfEvaluations "--maximumNumberOfEvaluations " c (25000) -createInitialSolutions "--createInitialSolutions " c (random,latinHypercubeSampling,scatterSearch) +algorithmResult "--algorithmResult " c (externalArchive, population) +populationSizeWithArchive "--populationSizeWithArchive " o (10, 20, 50, 100, 200) | algorithmResult %in% c("externalArchive") +# +createInitialSolutions "--createInitialSolutions " c (random, latinHypercubeSampling, scatterSearch) # variation "--variation " c (crossoverAndMutationVariation) -offspringPopulationSize "--offspringPopulationSize " o (1,10,50,100) -crossover "--crossover " c (SBX,BLX_ALPHA) -crossoverProbability "--crossoverProbability " r (0.0, 1.0) | crossover %in% c("SBX","BLX_ALPHA") -crossoverRepairStrategy "--crossoverRepairStrategy " c (random, round, bounds) | crossover %in% c("SBX","BLX_ALPHA") +offspringPopulationSize "--offspringPopulationSize " o (1, 10, 50, 100, 200, 400) | variation %in% c("crossoverAndMutationVariation") +crossover "--crossover " c (SBX, BLX_ALPHA) | variation %in% c("crossoverAndMutationVariation") +crossoverProbability "--crossoverProbability " r (0.0, 1.0) | crossover %in% c("SBX, BLX_ALPHA") +crossoverRepairStrategy "--crossoverRepairStrategy " c (random, round, bounds) | crossover %in% c("SBX, BLX_ALPHA") sbxDistributionIndex "--sbxDistributionIndex " r (5.0, 400.0) | crossover %in% c("SBX") blxAlphaCrossoverAlphaValue "--blxAlphaCrossoverAlphaValue " r (0.0, 1.0) | crossover %in% c("BLX_ALPHA") -mutation "--mutation " c (uniform, polynomial) -mutationProbability "--mutationProbability " r (0.0, 1.0) | mutation %in% c("uniform","polynomial") -mutationRepairStrategy "--mutationRepairStrategy " c (random, round, bounds) | mutation %in% c("uniform","polynomial") +mutation "--mutation " c (uniform, polynomial) | variation %in% c("crossoverAndMutationVariation") +mutationProbability "--mutationProbability " r (0.0, 1.0) | mutation %in% c("uniform, polynomial") +mutationRepairStrategy "--mutationRepairStrategy " c (random, round, bounds) | mutation %in% c("uniform, polynomial") polynomialMutationDistributionIndex "--polynomialMutationDistributionIndex " r (5.0, 400.0) | mutation %in% c("polynomial") uniformMutationPerturbation "--uniformMutationPerturbation " r (0.0, 1.0) | mutation %in% c("uniform") # selection "--selection " c (tournament, random) selectionTournamentSize "--selectionTournamentSize " i (2, 10) | selection %in% c("tournament") # - diff --git a/jmetal-auto/src/main/resources/irace/target-runner b/jmetal-auto/src/main/resources/irace/target-runner index 3ed57bb4b5..bbd0ca4bd7 100755 --- a/jmetal-auto/src/main/resources/irace/target-runner +++ b/jmetal-auto/src/main/resources/irace/target-runner @@ -17,7 +17,7 @@ # Exit with 0 if no error, with 1 in case of error ############################################################################### EXE=java -FIXED_PARAMS="-jar ../jmetal-auto-6.0-SNAPSHOT-jar-with-dependencies.jar" +FIXED_PARAMS="-jar ../jmetal-auto-6.0-SNAPSHOT-jar-with-dependencies.jar org.uma.jmetal.auto.irace.AutoNSGAIIirace" CONFIG_ID=$1 INSTANCE_ID=$2 diff --git a/jmetal-auto/src/test/org/uma/jmetal/auto/component/replacement/impl/RankingAndDensityEstimatorReplacementTest.java b/jmetal-auto/src/test/org/uma/jmetal/auto/component/replacement/impl/RankingAndDensityEstimatorReplacementTest.java deleted file mode 100644 index 4596f2f6da..0000000000 --- a/jmetal-auto/src/test/org/uma/jmetal/auto/component/replacement/impl/RankingAndDensityEstimatorReplacementTest.java +++ /dev/null @@ -1,202 +0,0 @@ -package org.uma.jmetal.auto.component.replacement.impl; - -import org.junit.Test; -import org.uma.jmetal.component.densityestimator.impl.KnnDensityEstimator; -import org.uma.jmetal.component.ranking.Ranking; -import org.uma.jmetal.component.ranking.impl.StrengthRanking; -import org.uma.jmetal.problem.doubleproblem.DoubleProblem; -import org.uma.jmetal.problem.doubleproblem.impl.AbstractDoubleProblem; -import org.uma.jmetal.solution.doublesolution.DoubleSolution; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class RankingAndDensityEstimatorReplacementTest { - private double EPSILON = 0.00000000000001; - - @Test - public void shouldReplacementReturnTheListIfTheOffspringListIsEmpty() { - /* - 5 1 - 4 2 - 3 3 - 2 - 1 4 - 0 1 2 3 4 5 - */ - DoubleProblem problem = new MockDoubleProblem(2); - Ranking ranking = new StrengthRanking<>(); - KnnDensityEstimator densityEstimator = new KnnDensityEstimator<>(1); - RankingAndDensityEstimatorReplacement rankingAndDensityEstimatorReplacement = - new RankingAndDensityEstimatorReplacement(ranking, densityEstimator); - - DoubleSolution solution1 = problem.createSolution(); - DoubleSolution solution2 = problem.createSolution(); - DoubleSolution solution3 = problem.createSolution(); - DoubleSolution solution4 = problem.createSolution(); - - solution1.setObjective(0, 1.0); - solution1.setObjective(1, 5.0); - - solution2.setObjective(0, 2.0); - solution2.setObjective(1, 4.0); - - solution3.setObjective(0, 3.0); - solution3.setObjective(1, 3.0); - - solution4.setObjective(0, 5.0); - solution4.setObjective(1, 1.0); - - List solutionList = Arrays.asList(solution1, solution2, solution3, solution4); - - List resultList = rankingAndDensityEstimatorReplacement.replace(solutionList, new ArrayList<>()) ; - - assertEquals(0, (int) solution1.getAttribute(ranking.getAttributeId())); - assertEquals(0, (int) solution2.getAttribute(ranking.getAttributeId())); - assertEquals(0, (int) solution3.getAttribute(ranking.getAttributeId())); - assertEquals(0, (int) solution4.getAttribute(ranking.getAttributeId())); - - assertEquals(4, resultList.size()); - } - - @Test - public void shouldReplacementReturnTheRightValuesCase1() { - /* - 5 1 - 4 2 - 3 3 - 2 - 1 4 - 0 1 2 3 4 5 - - List: 1,2,3 OffspringList: 4 - Expected result: 4, 1, 3 - */ - DoubleProblem problem = new MockDoubleProblem(2); - Ranking ranking = new StrengthRanking<>(); - KnnDensityEstimator densityEstimator = new KnnDensityEstimator<>(1); - RankingAndDensityEstimatorReplacement rankingAndDensityEstimatorReplacement = - new RankingAndDensityEstimatorReplacement(ranking, densityEstimator); - - DoubleSolution solution1 = problem.createSolution(); - DoubleSolution solution2 = problem.createSolution(); - DoubleSolution solution3 = problem.createSolution(); - DoubleSolution solution4 = problem.createSolution(); - - solution1.setObjective(0, 1.0); - solution1.setObjective(1, 5.0); - - solution2.setObjective(0, 2.0); - solution2.setObjective(1, 4.0); - - solution3.setObjective(0, 3.0); - solution3.setObjective(1, 3.0); - - solution4.setObjective(0, 5.0); - solution4.setObjective(1, 1.0); - - List solutionList = Arrays.asList(solution1, solution2, solution3); - List offspringList = Arrays.asList(solution4) ; - - List resultList = rankingAndDensityEstimatorReplacement.replace(solutionList, offspringList) ; - - assertEquals(0, (int) solution1.getAttribute(ranking.getAttributeId())); - assertEquals(0, (int) solution2.getAttribute(ranking.getAttributeId())); - assertEquals(0, (int) solution3.getAttribute(ranking.getAttributeId())); - assertEquals(0, (int) solution4.getAttribute(ranking.getAttributeId())); - - assertEquals(3, resultList.size()); - assertTrue(resultList.contains(solution4)); - assertTrue(resultList.contains(solution1)); - assertTrue(resultList.contains(solution3)); - } - - @Test - public void shouldReplacementReturnTheRightValuesCase2() { - /* - 5 1 - 4 2 - 3 3 - 2 5 - 1 4 - 0 1 2 3 4 5 - - List: 1,2,4 OffspringList: 3,5 - Expected result: 1, 5, 4 - */ - DoubleProblem problem = new MockDoubleProblem(2); - Ranking ranking = new StrengthRanking<>(); - KnnDensityEstimator densityEstimator = new KnnDensityEstimator<>(1); - RankingAndDensityEstimatorReplacement rankingAndDensityEstimatorReplacement = - new RankingAndDensityEstimatorReplacement(ranking, densityEstimator); - - DoubleSolution solution1 = problem.createSolution(); - DoubleSolution solution2 = problem.createSolution(); - DoubleSolution solution3 = problem.createSolution(); - DoubleSolution solution4 = problem.createSolution(); - DoubleSolution solution5 = problem.createSolution(); - - solution1.setObjective(0, 1.0); - solution1.setObjective(1, 5.0); - - solution2.setObjective(0, 2.0); - solution2.setObjective(1, 4.0); - - solution3.setObjective(0, 3.0); - solution3.setObjective(1, 3.0); - - solution4.setObjective(0, 5.0); - solution4.setObjective(1, 1.0); - - solution5.setObjective(0, 2.5); - solution5.setObjective(1, 2.5); - - List solutionList = Arrays.asList(solution1, solution2, solution4); - List offspringList = Arrays.asList(solution3, solution5) ; - - List resultList = rankingAndDensityEstimatorReplacement.replace(solutionList, offspringList) ; - - assertEquals(0, (int) solution1.getAttribute(ranking.getAttributeId())); - assertEquals(0, (int) solution2.getAttribute(ranking.getAttributeId())); - assertEquals(1, (int) solution3.getAttribute(ranking.getAttributeId())); - assertEquals(0, (int) solution4.getAttribute(ranking.getAttributeId())); - assertEquals(0, (int) solution5.getAttribute(ranking.getAttributeId())); - - assertEquals(3, resultList.size()); - assertTrue(resultList.contains(solution1)); - assertTrue(resultList.contains(solution5)); - assertTrue(resultList.contains(solution4)); - } - - /** Mock class representing a double problem */ - @SuppressWarnings("serial") - private class MockDoubleProblem extends AbstractDoubleProblem { - - /** Constructor */ - public MockDoubleProblem(Integer numberOfVariables) { - setNumberOfVariables(numberOfVariables); - setNumberOfObjectives(2); - - List lowerLimit = new ArrayList<>(getNumberOfVariables()); - List upperLimit = new ArrayList<>(getNumberOfVariables()); - - for (int i = 0; i < getNumberOfVariables(); i++) { - lowerLimit.add(0.0); - upperLimit.add(5.0); - } - - setVariableBounds(lowerLimit, upperLimit); - } - - /** Evaluate() method */ - @Override - public void evaluate(DoubleSolution solution) { - solution.setObjective(0, 0.0); - solution.setObjective(1, 1.0); - } - } -} diff --git a/jmetal-auto/src/test/org/uma/jmetal/auto/util/fitness/impl/SPEA2FitnessTest.java b/jmetal-auto/src/test/org/uma/jmetal/auto/util/fitness/impl/SPEA2FitnessTest.java deleted file mode 100644 index cddadcb843..0000000000 --- a/jmetal-auto/src/test/org/uma/jmetal/auto/util/fitness/impl/SPEA2FitnessTest.java +++ /dev/null @@ -1,89 +0,0 @@ -package org.uma.jmetal.auto.util.fitness.impl; - -import org.junit.Test; -import org.uma.jmetal.auto.util.fitness.Fitness; -import org.uma.jmetal.problem.doubleproblem.DoubleProblem; -import org.uma.jmetal.problem.doubleproblem.impl.AbstractDoubleProblem; -import org.uma.jmetal.solution.doublesolution.DoubleSolution; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class SPEA2FitnessTest { - - private double EPSILON = 0.00000000000001; - - @Test - public void shouldAllTheSolutionHaveAFitnessValueLowerThanOneIfAllOfThemAreNonDominated() { - /* - 5 1 - 4 2 - 3 3 - 2 - 1 4 - 0 1 2 3 4 5 - */ - DoubleProblem problem = new MockDoubleProblem(2); - DoubleSolution solution1 = problem.createSolution(); - DoubleSolution solution2 = problem.createSolution(); - DoubleSolution solution3 = problem.createSolution(); - DoubleSolution solution4 = problem.createSolution(); - - solution1.setObjective(0, 1.0); - solution1.setObjective(1, 5.0); - - solution2.setObjective(0, 2.0); - solution2.setObjective(1, 4.0); - - solution3.setObjective(0, 3.0); - solution3.setObjective(1, 3.0); - - solution4.setObjective(0, 5.0); - solution4.setObjective(1, 1.0); - - List solutionList = Arrays.asList(solution1, solution2, solution3, solution4); - - Fitness fitness = new SPEA2Fitness<>() ; - fitness.computeFitness(solutionList); - - assertTrue((double) fitness.getFitness(solution1) < 1.0); - assertTrue((double) fitness.getFitness(solution2) < 1.0); - assertTrue((double) fitness.getFitness(solution3) < 1.0); - assertTrue((double) fitness.getFitness(solution4) < 1.0); - - assertEquals(4, solutionList.size()); - } - - - /** Mock class representing a double problem */ - @SuppressWarnings("serial") - private class MockDoubleProblem extends AbstractDoubleProblem { - - /** Constructor */ - public MockDoubleProblem(Integer numberOfVariables) { - setNumberOfVariables(numberOfVariables); - setNumberOfObjectives(2); - - List lowerLimit = new ArrayList<>(getNumberOfVariables()); - List upperLimit = new ArrayList<>(getNumberOfVariables()); - - for (int i = 0; i < getNumberOfVariables(); i++) { - lowerLimit.add(0.0); - upperLimit.add(5.0); - } - - setVariableBounds(lowerLimit, upperLimit); - } - - /** Evaluate() method */ - @Override - public void evaluate(DoubleSolution solution) { - solution.setObjective(0, 0.0); - solution.setObjective(1, 1.0); - } - } -} \ No newline at end of file diff --git a/jmetal-core/jMetal.log.1 b/jmetal-core/jMetal.log.1 new file mode 100644 index 0000000000..116110900e --- /dev/null +++ b/jmetal-core/jMetal.log.1 @@ -0,0 +1,16 @@ + + + + + 2020-03-18T12:14:56.365364Z + 1584533696365 + 364000 + 0 + org.uma.jmetal.util.JMetalLogger + INFO + org.uma.jmetal.util.JMetalLogger + configureLoggers + 1 + Loggers configured with null + + diff --git a/jmetal-core/pom.xml b/jmetal-core/pom.xml index e1ead19718..2ecbcee6b5 100644 --- a/jmetal-core/pom.xml +++ b/jmetal-core/pom.xml @@ -49,6 +49,14 @@ + + org.apache.maven.plugins + maven-compiler-plugin + + 10 + 10 + + diff --git a/jmetal-core/src/main/java/org/uma/jmetal/algorithm/ComponentBasedEvolutionaryAlgorithm.java b/jmetal-core/src/main/java/org/uma/jmetal/algorithm/ComponentBasedEvolutionaryAlgorithm.java index 6de425614d..b6d6c7fa0a 100644 --- a/jmetal-core/src/main/java/org/uma/jmetal/algorithm/ComponentBasedEvolutionaryAlgorithm.java +++ b/jmetal-core/src/main/java/org/uma/jmetal/algorithm/ComponentBasedEvolutionaryAlgorithm.java @@ -9,12 +9,14 @@ import org.uma.jmetal.component.variation.Variation; import org.uma.jmetal.problem.Problem; import org.uma.jmetal.solution.Solution; +import org.uma.jmetal.util.archive.Archive; import org.uma.jmetal.util.observable.Observable; import org.uma.jmetal.util.observable.impl.DefaultObservable; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; /** * Class representing an evolutionary algorithm. It implements the {@link Algorithm} interface by @@ -44,12 +46,11 @@ public class ComponentBasedEvolutionaryAlgorithm> protected Observable> observable; protected String name; - + protected Archive archive ; /** * Constructor * * @param name - * @param problem * @param evaluation * @param initialPopulationCreation * @param termination @@ -59,7 +60,6 @@ public class ComponentBasedEvolutionaryAlgorithm> */ public ComponentBasedEvolutionaryAlgorithm( String name, - Problem problem, Evaluation evaluation, InitialSolutionsCreation initialPopulationCreation, Termination termination, @@ -67,7 +67,6 @@ public ComponentBasedEvolutionaryAlgorithm( Variation variation, Replacement replacement) { this.name = name; - this.problem = problem; this.evaluation = evaluation; this.createInitialPopulation = initialPopulationCreation; @@ -78,6 +77,8 @@ public ComponentBasedEvolutionaryAlgorithm( this.observable = new DefaultObservable<>(name); this.attributes = new HashMap<>(); + + this.archive = null ; } /** @@ -130,7 +131,12 @@ protected List createInitialPopulation() { @Override protected List evaluatePopulation(List population) { - return evaluation.evaluate(population, problem); + var solutionList = evaluation.evaluate(population) ; + if (null != archive) { + solutionList.forEach(archive::add); + } + + return solutionList ; } @Override @@ -150,7 +156,13 @@ protected List replacement(List population, List offspringPopulation) { @Override public List getResult() { - return population; + List result ; + if (null != archive) { + result = archive.getSolutionList() ; + } else { + result = population ; + } + return result; } @Override @@ -167,6 +179,16 @@ public int getEvaluations() { return evaluations; } + public Archive getArchive() { + return archive ; + } + + public ComponentBasedEvolutionaryAlgorithm withArchive(Archive archive) { + this.archive = archive ; + + return this ; + } + public ComponentBasedEvolutionaryAlgorithm setEvaluation(Evaluation evaluation) { this.evaluation = evaluation; diff --git a/jmetal-core/src/main/java/org/uma/jmetal/component/densityestimator/impl/HypervolumeContributionDensityEstimator.java b/jmetal-core/src/main/java/org/uma/jmetal/component/densityestimator/impl/HypervolumeContributionDensityEstimator.java index 8bbaa47a05..ba5d716e83 100644 --- a/jmetal-core/src/main/java/org/uma/jmetal/component/densityestimator/impl/HypervolumeContributionDensityEstimator.java +++ b/jmetal-core/src/main/java/org/uma/jmetal/component/densityestimator/impl/HypervolumeContributionDensityEstimator.java @@ -1,8 +1,8 @@ package org.uma.jmetal.component.densityestimator.impl; import org.uma.jmetal.component.densityestimator.DensityEstimator; -import org.uma.jmetal.qualityindicator.impl.Hypervolume; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.Hypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.Solution; import org.uma.jmetal.solution.util.attribute.util.attributecomparator.AttributeComparator; import org.uma.jmetal.solution.util.attribute.util.attributecomparator.impl.DoubleValueAttributeComparator; diff --git a/jmetal-core/src/main/java/org/uma/jmetal/component/evaluation/Evaluation.java b/jmetal-core/src/main/java/org/uma/jmetal/component/evaluation/Evaluation.java index 32cef7024c..2c9be1fdd1 100644 --- a/jmetal-core/src/main/java/org/uma/jmetal/component/evaluation/Evaluation.java +++ b/jmetal-core/src/main/java/org/uma/jmetal/component/evaluation/Evaluation.java @@ -6,6 +6,6 @@ import java.util.List; public interface Evaluation> { - List evaluate(List solutionList, Problem problem) ; + List evaluate(List solutionList) ; int getComputedEvaluations() ; } diff --git a/jmetal-core/src/main/java/org/uma/jmetal/component/evaluation/impl/AbstractEvaluation.java b/jmetal-core/src/main/java/org/uma/jmetal/component/evaluation/impl/AbstractEvaluation.java index 6aa4c5e312..85e76f42c8 100644 --- a/jmetal-core/src/main/java/org/uma/jmetal/component/evaluation/impl/AbstractEvaluation.java +++ b/jmetal-core/src/main/java/org/uma/jmetal/component/evaluation/impl/AbstractEvaluation.java @@ -10,14 +10,16 @@ public abstract class AbstractEvaluation> implements Evaluation { private SolutionListEvaluator evaluator ; private int numberOfComputedEvaluations ; + private Problem problem ; - public AbstractEvaluation(SolutionListEvaluator evaluator) { + public AbstractEvaluation(SolutionListEvaluator evaluator, Problem problem) { this.numberOfComputedEvaluations = 0 ; this.evaluator = evaluator ; + this.problem = problem ; } @Override - public List evaluate(List solutionList, Problem problem) { + public List evaluate(List solutionList) { evaluator.evaluate(solutionList, problem) ; numberOfComputedEvaluations += solutionList.size() ; diff --git a/jmetal-core/src/main/java/org/uma/jmetal/component/evaluation/impl/MultithreadedEvaluation.java b/jmetal-core/src/main/java/org/uma/jmetal/component/evaluation/impl/MultithreadedEvaluation.java index 436cd2e40f..ffa634d6f1 100644 --- a/jmetal-core/src/main/java/org/uma/jmetal/component/evaluation/impl/MultithreadedEvaluation.java +++ b/jmetal-core/src/main/java/org/uma/jmetal/component/evaluation/impl/MultithreadedEvaluation.java @@ -1,10 +1,11 @@ package org.uma.jmetal.component.evaluation.impl; +import org.uma.jmetal.problem.Problem; import org.uma.jmetal.solution.Solution; import org.uma.jmetal.util.evaluator.impl.MultithreadedSolutionListEvaluator; public class MultithreadedEvaluation> extends AbstractEvaluation { - public MultithreadedEvaluation(int numberOfThreads) { - super(new MultithreadedSolutionListEvaluator(numberOfThreads)) ; + public MultithreadedEvaluation(int numberOfThreads, Problem problem) { + super(new MultithreadedSolutionListEvaluator(numberOfThreads), problem) ; } } diff --git a/jmetal-core/src/main/java/org/uma/jmetal/component/evaluation/impl/SequentialEvaluation.java b/jmetal-core/src/main/java/org/uma/jmetal/component/evaluation/impl/SequentialEvaluation.java index b47de2eef6..5691dc40df 100644 --- a/jmetal-core/src/main/java/org/uma/jmetal/component/evaluation/impl/SequentialEvaluation.java +++ b/jmetal-core/src/main/java/org/uma/jmetal/component/evaluation/impl/SequentialEvaluation.java @@ -1,10 +1,16 @@ package org.uma.jmetal.component.evaluation.impl; +import org.uma.jmetal.problem.Problem; import org.uma.jmetal.solution.Solution; import org.uma.jmetal.util.evaluator.impl.SequentialSolutionListEvaluator; +/** + * @author Antonio J. Nebro (ajnebro@uma.es) + * + * @param + */ public class SequentialEvaluation> extends AbstractEvaluation { - public SequentialEvaluation() { - super(new SequentialSolutionListEvaluator()) ; + public SequentialEvaluation(Problem problem) { + super(new SequentialSolutionListEvaluator(), problem); } } diff --git a/jmetal-core/src/main/java/org/uma/jmetal/component/replacement/impl/RankingAndDensityEstimatorReplacement.java b/jmetal-core/src/main/java/org/uma/jmetal/component/replacement/impl/RankingAndDensityEstimatorReplacement.java index cca45ed98d..cdcc6fda84 100644 --- a/jmetal-core/src/main/java/org/uma/jmetal/component/replacement/impl/RankingAndDensityEstimatorReplacement.java +++ b/jmetal-core/src/main/java/org/uma/jmetal/component/replacement/impl/RankingAndDensityEstimatorReplacement.java @@ -4,6 +4,7 @@ import org.uma.jmetal.component.ranking.Ranking; import org.uma.jmetal.component.replacement.Replacement; import org.uma.jmetal.solution.Solution; +import org.uma.jmetal.util.Preference; import java.util.ArrayList; import java.util.List; @@ -12,20 +13,25 @@ public class RankingAndDensityEstimatorReplacement> implements Replacement { private Ranking ranking; private DensityEstimator densityEstimator; - private RemovalPolicy removalPolicy ; - - int c = 0 ; + private RemovalPolicy removalPolicy; public RankingAndDensityEstimatorReplacement( Ranking ranking, DensityEstimator densityEstimator) { - this(ranking, densityEstimator, RemovalPolicy.sequential) ; + this(ranking, densityEstimator, RemovalPolicy.sequential); } public RankingAndDensityEstimatorReplacement( Ranking ranking, DensityEstimator densityEstimator, RemovalPolicy removalPolicy) { this.ranking = ranking; this.densityEstimator = densityEstimator; - this.removalPolicy = removalPolicy ; + this.removalPolicy = removalPolicy; + } + + public RankingAndDensityEstimatorReplacement( + Preference preference, RemovalPolicy removalPolicy) { + this.ranking = preference.getRanking(); + this.densityEstimator = preference.getDensityEstimator(); + this.removalPolicy = removalPolicy; } public List replace(List solutionList, List offspringList) { @@ -33,40 +39,40 @@ public List replace(List solutionList, List offspringList) { jointPopulation.addAll(solutionList); jointPopulation.addAll(offspringList); - List resultList ; + List resultList; ranking.computeRanking(jointPopulation); if (removalPolicy == RemovalPolicy.oneShot) { resultList = oneShotTruncation(0, solutionList.size()); } else { - resultList = sequentialTruncation( 0, solutionList.size()) ; + resultList = sequentialTruncation(0, solutionList.size()); } return resultList; } private List oneShotTruncation(int sizeOfTheResultingSolutionList) { - int currentRank = 0 ; + int currentRank = 0; List resultList = new ArrayList<>(); while (resultList.size() < sizeOfTheResultingSolutionList) { - if (ranking.getSubFront(currentRank).size() < (sizeOfTheResultingSolutionList - resultList.size())) { - resultList.addAll(ranking.getSubFront(currentRank)) ; - currentRank ++ ; + if (ranking.getSubFront(currentRank).size() + < (sizeOfTheResultingSolutionList - resultList.size())) { + resultList.addAll(ranking.getSubFront(currentRank)); + currentRank++; } else { densityEstimator.computeDensityEstimator(ranking.getSubFront(currentRank)); - densityEstimator.sort(ranking.getSubFront(currentRank)) ; - int i = 0 ; + densityEstimator.sort(ranking.getSubFront(currentRank)); + int i = 0; while (resultList.size() < sizeOfTheResultingSolutionList) { - resultList.add(ranking.getSubFront(currentRank).get(i)) ; - i++ ; + resultList.add(ranking.getSubFront(currentRank).get(i)); + i++; } } } - return resultList ; + return resultList; } - private List oneShotTruncation(int rankingId, int sizeOfTheResultingSolutionList) { List currentRankSolutions = ranking.getSubFront(rankingId); densityEstimator.computeDensityEstimator(currentRankSolutions); @@ -77,8 +83,7 @@ private List oneShotTruncation(int rankingId, int sizeOfTheResultingSolutionL resultList.addAll(ranking.getSubFront(rankingId)); resultList.addAll( oneShotTruncation( - rankingId + 1, - sizeOfTheResultingSolutionList - currentRankSolutions.size())); + rankingId + 1, sizeOfTheResultingSolutionList - currentRankSolutions.size())); } else { densityEstimator.sort(currentRankSolutions); int i = 0; @@ -91,7 +96,6 @@ private List oneShotTruncation(int rankingId, int sizeOfTheResultingSolutionL return resultList; } - private List sequentialTruncation(int rankingId, int sizeOfTheResultingSolutionList) { List currentRankSolutions = ranking.getSubFront(rankingId); densityEstimator.computeDensityEstimator(currentRankSolutions); @@ -102,15 +106,13 @@ private List sequentialTruncation(int rankingId, int sizeOfTheResultingSoluti resultList.addAll(ranking.getSubFront(rankingId)); resultList.addAll( sequentialTruncation( - rankingId + 1, - sizeOfTheResultingSolutionList - currentRankSolutions.size())); + rankingId + 1, sizeOfTheResultingSolutionList - currentRankSolutions.size())); } else { - for (S solution : currentRankSolutions) - resultList.add(solution) ; + for (S solution : currentRankSolutions) resultList.add(solution); while (resultList.size() > sizeOfTheResultingSolutionList) { densityEstimator.sort(resultList); - resultList.remove(resultList.size()-1) ; + resultList.remove(resultList.size() - 1); densityEstimator.computeDensityEstimator(resultList); } } diff --git a/jmetal-core/src/main/java/org/uma/jmetal/component/selection/impl/NaryTournamentMatingPoolSelection.java b/jmetal-core/src/main/java/org/uma/jmetal/component/selection/impl/NaryTournamentMatingPoolSelection.java index 47a1139b31..6aee460d62 100644 --- a/jmetal-core/src/main/java/org/uma/jmetal/component/selection/impl/NaryTournamentMatingPoolSelection.java +++ b/jmetal-core/src/main/java/org/uma/jmetal/component/selection/impl/NaryTournamentMatingPoolSelection.java @@ -3,22 +3,38 @@ import org.uma.jmetal.component.selection.MatingPoolSelection; import org.uma.jmetal.operator.selection.impl.NaryTournamentSelection; import org.uma.jmetal.solution.Solution; +import org.uma.jmetal.util.Preference; import java.util.ArrayList; import java.util.Comparator; import java.util.List; +import java.util.Optional; -public class NaryTournamentMatingPoolSelection> implements MatingPoolSelection { +public class NaryTournamentMatingPoolSelection> + implements MatingPoolSelection { private NaryTournamentSelection selectionOperator; private int matingPoolSize; + private Preference preference; - public NaryTournamentMatingPoolSelection(int tournamentSize, int matingPoolSize, Comparator comparator) { - selectionOperator = - new NaryTournamentSelection<>(tournamentSize, comparator); + public NaryTournamentMatingPoolSelection( + int tournamentSize, int matingPoolSize, Comparator comparator) { + selectionOperator = new NaryTournamentSelection<>(tournamentSize, comparator); + this.matingPoolSize = matingPoolSize; + preference = null ; + } + + public NaryTournamentMatingPoolSelection( + int tournamentSize, int matingPoolSize, Preference preference) { + this.preference = preference ; + + this.selectionOperator = new NaryTournamentSelection<>(tournamentSize, preference.getComparator()); this.matingPoolSize = matingPoolSize; } public List select(List solutionList) { + if (null != preference) { + preference.recompute(solutionList) ; + } List matingPool = new ArrayList<>(matingPoolSize); while (matingPool.size() < matingPoolSize) { diff --git a/jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/RelativeHypervolume.java b/jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/RelativeHypervolume.java new file mode 100755 index 0000000000..f494c65c49 --- /dev/null +++ b/jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/RelativeHypervolume.java @@ -0,0 +1,70 @@ +package org.uma.jmetal.qualityindicator.impl; + +import org.uma.jmetal.qualityindicator.impl.hypervolume.Hypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; +import org.uma.jmetal.solution.Solution; +import org.uma.jmetal.util.front.Front; +import org.uma.jmetal.util.front.impl.ArrayFront; +import org.uma.jmetal.util.front.util.FrontUtils; + +import java.io.FileNotFoundException; +import java.util.List; + +/** + * Class providing an implementation of the relative hypervolume, which is calculated as follows: + * relative hypervolume = 1 - (HV of the front / HV of the reference front) + * + * @author Antonio J. Nebro + */ +public class RelativeHypervolume> extends GenericIndicator { + private double referenceFrontHypervolume; + private Hypervolume hypervolume; + + public RelativeHypervolume() {} + + public RelativeHypervolume(String referenceParetoFrontFile) + throws FileNotFoundException { + super(referenceParetoFrontFile); + Front referenceFront = new ArrayFront(referenceParetoFrontFile); + hypervolume = new PISAHypervolume<>(referenceParetoFrontFile) ; + + referenceFrontHypervolume = + this.hypervolume.evaluate( + (List) FrontUtils.convertFrontToSolutionList(referenceFront)); + } + + public RelativeHypervolume(double[] referencePoint) { + Front referenceFront = new ArrayFront(referencePoint.length, referencePoint.length); + hypervolume = new PISAHypervolume<>(); + hypervolume.setReferenceParetoFront(referenceFront); + + referenceFrontHypervolume = + hypervolume.evaluate((List) FrontUtils.convertFrontToSolutionList(referenceFront)); + } + + public RelativeHypervolume(Front referenceParetoFront) { + super(referenceParetoFront); + hypervolume = new PISAHypervolume<>(referenceParetoFront) ; + + referenceFrontHypervolume = + this.hypervolume.evaluate( + (List) FrontUtils.convertFrontToSolutionList(referenceParetoFront)); + } + + @Override + public String getName() { + return "rHV"; + } + + @Override + public boolean isTheLowerTheIndicatorValueTheBetter() { + return true; + } + + @Override + public Double evaluate(List solutionList) { + double hypervolumeValue = hypervolume.evaluate(solutionList); + + return 1 - (hypervolumeValue / referenceFrontHypervolume); + } +} diff --git a/jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/Spread.java b/jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/Spread.java index 3be40a8129..7889f79506 100755 --- a/jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/Spread.java +++ b/jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/Spread.java @@ -1,5 +1,6 @@ package org.uma.jmetal.qualityindicator.impl; +import org.uma.jmetal.qualityindicator.impl.GenericIndicator; import org.uma.jmetal.solution.Solution; import org.uma.jmetal.util.front.Front; import org.uma.jmetal.util.front.impl.ArrayFront; diff --git a/jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/Hypervolume.java b/jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/hypervolume/Hypervolume.java similarity index 94% rename from jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/Hypervolume.java rename to jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/hypervolume/Hypervolume.java index 4a3cd0750c..684bef5252 100755 --- a/jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/Hypervolume.java +++ b/jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/hypervolume/Hypervolume.java @@ -1,5 +1,6 @@ -package org.uma.jmetal.qualityindicator.impl; +package org.uma.jmetal.qualityindicator.impl.hypervolume; +import org.uma.jmetal.qualityindicator.impl.GenericIndicator; import org.uma.jmetal.util.front.Front; import org.uma.jmetal.util.front.impl.ArrayFront; import org.uma.jmetal.util.front.util.FrontUtils; diff --git a/jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/hypervolume/PISAHypervolume.java b/jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/hypervolume/impl/PISAHypervolume.java similarity index 98% rename from jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/hypervolume/PISAHypervolume.java rename to jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/hypervolume/impl/PISAHypervolume.java index 742ca88a3a..27a170bfc1 100755 --- a/jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/hypervolume/PISAHypervolume.java +++ b/jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/hypervolume/impl/PISAHypervolume.java @@ -1,6 +1,6 @@ -package org.uma.jmetal.qualityindicator.impl.hypervolume; +package org.uma.jmetal.qualityindicator.impl.hypervolume.impl; -import org.uma.jmetal.qualityindicator.impl.Hypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.Hypervolume; import org.uma.jmetal.solution.Solution; import org.uma.jmetal.util.JMetalException; import org.uma.jmetal.util.checking.Check; diff --git a/jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/hypervolume/WFGHypervolume.java b/jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/hypervolume/impl/WFGHypervolume.java similarity index 99% rename from jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/hypervolume/WFGHypervolume.java rename to jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/hypervolume/impl/WFGHypervolume.java index c6722e2fcc..6d59ece5c1 100644 --- a/jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/hypervolume/WFGHypervolume.java +++ b/jmetal-core/src/main/java/org/uma/jmetal/qualityindicator/impl/hypervolume/impl/WFGHypervolume.java @@ -1,6 +1,6 @@ -package org.uma.jmetal.qualityindicator.impl.hypervolume; +package org.uma.jmetal.qualityindicator.impl.hypervolume.impl; -import org.uma.jmetal.qualityindicator.impl.Hypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.Hypervolume; import org.uma.jmetal.solution.Solution; import org.uma.jmetal.util.JMetalException; import org.uma.jmetal.util.comparator.HypervolumeContributionComparator; diff --git a/jmetal-core/src/main/java/org/uma/jmetal/util/AbstractAlgorithmRunner.java b/jmetal-core/src/main/java/org/uma/jmetal/util/AbstractAlgorithmRunner.java index 8139fa5993..e048d07ffc 100644 --- a/jmetal-core/src/main/java/org/uma/jmetal/util/AbstractAlgorithmRunner.java +++ b/jmetal-core/src/main/java/org/uma/jmetal/util/AbstractAlgorithmRunner.java @@ -1,7 +1,7 @@ package org.uma.jmetal.util; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.qualityindicator.impl.*; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; import org.uma.jmetal.solution.Solution; import org.uma.jmetal.util.fileoutput.SolutionListOutput; import org.uma.jmetal.util.fileoutput.impl.DefaultFileOutputContext; @@ -58,6 +58,10 @@ public static > void printQualityIndicators(List popula new PISAHypervolume(normalizedReferenceFront).evaluate(normalizedPopulation) + "\n"; outputString += "Hypervolume : " + new PISAHypervolume(referenceFront).evaluate(population) + "\n"; + outputString += "Relative Hypervolume (N) : " + + new RelativeHypervolume(normalizedReferenceFront).evaluate(normalizedPopulation) + "\n"; + outputString += "Relative Hypervolume : " + + new RelativeHypervolume(referenceFront).evaluate(population) + "\n"; outputString += "Epsilon (N) : " + new Epsilon(normalizedReferenceFront).evaluate(normalizedPopulation) + "\n" ; diff --git a/jmetal-core/src/main/java/org/uma/jmetal/util/Preference.java b/jmetal-core/src/main/java/org/uma/jmetal/util/Preference.java new file mode 100755 index 0000000000..bfb5cf5932 --- /dev/null +++ b/jmetal-core/src/main/java/org/uma/jmetal/util/Preference.java @@ -0,0 +1,87 @@ +package org.uma.jmetal.util; + +import org.uma.jmetal.component.densityestimator.DensityEstimator; +import org.uma.jmetal.component.ranking.Ranking; +import org.uma.jmetal.util.comparator.MultiComparator; + +import java.util.Arrays; +import java.util.Comparator; +import java.util.List; + +/** + * A preference is a list composed of a ranking and a density estimator that specifies preferences + * in the selection and replacement components of an evolutionary algorithm. + * + * @author Antonio J. Nebro + */ +public class Preference { + private Ranking ranking; + private DensityEstimator densityEstimator; + private Preference relatedPreference; + private boolean preferenceHasBeenComputedFirstTime = false; + + public Preference(Ranking ranking, DensityEstimator densityEstimator) { + this(ranking, densityEstimator, null); + } + + /** Constructor */ + public Preference( + Ranking ranking, DensityEstimator densityEstimator, Preference relatedPreference) { + this.ranking = ranking; + this.densityEstimator = densityEstimator; + this.relatedPreference = relatedPreference; + } + + /** + * Recomputes the ranking and density estimators on a solution list if they are different of the + * ones of the related preference. + */ + public void recompute(List solutionList) { + if (!preferenceHasBeenComputedFirstTime) { + recomputeRanking(solutionList); + recomputeDensityEstimator(); + preferenceHasBeenComputedFirstTime = true; + } else if (relatedPreference != null) { + if (rankingsAreDifferent()) { + recomputeRanking(solutionList); + recomputeDensityEstimator(); + } else if (densityEstimatorsAreDifferent()) { + recomputeDensityEstimator(); + } + } + } + + private boolean densityEstimatorsAreDifferent() { + return !densityEstimator + .getAttributeId() + .equals(relatedPreference.getDensityEstimator().getAttributeId()); + } + + private void recomputeDensityEstimator() { + for (int i = 0; i < ranking.getNumberOfSubFronts(); i++) { + densityEstimator.computeDensityEstimator(ranking.getSubFront(i)); + } + } + + private void recomputeRanking(List solutionList) { + ranking.computeRanking(solutionList); + } + + private boolean rankingsAreDifferent() { + return !ranking.getAttributeId().equals(relatedPreference.getRanking().getAttributeId()); + } + + public Ranking getRanking() { + return ranking; + } + + public DensityEstimator getDensityEstimator() { + return densityEstimator; + } + + public Comparator getComparator() { + return new MultiComparator<>( + List.of( + getRanking().getSolutionComparator(), getDensityEstimator().getSolutionComparator())); + } +} diff --git a/jmetal-core/src/main/java/org/uma/jmetal/util/archive/impl/AbstractBoundedArchive.java b/jmetal-core/src/main/java/org/uma/jmetal/util/archive/impl/AbstractBoundedArchive.java index b114337a20..98efad5055 100644 --- a/jmetal-core/src/main/java/org/uma/jmetal/util/archive/impl/AbstractBoundedArchive.java +++ b/jmetal-core/src/main/java/org/uma/jmetal/util/archive/impl/AbstractBoundedArchive.java @@ -53,9 +53,7 @@ public int getMaxSize() { public abstract void prune(); public Archive join(Archive archive) { - for (S solution : archive.getSolutionList()) { - this.add(solution); - } + archive.getSolutionList().forEach(this::add); return archive; } diff --git a/jmetal-core/src/main/java/org/uma/jmetal/util/archive/impl/HypervolumeArchive.java b/jmetal-core/src/main/java/org/uma/jmetal/util/archive/impl/HypervolumeArchive.java index afe612a645..894e8567be 100644 --- a/jmetal-core/src/main/java/org/uma/jmetal/util/archive/impl/HypervolumeArchive.java +++ b/jmetal-core/src/main/java/org/uma/jmetal/util/archive/impl/HypervolumeArchive.java @@ -1,6 +1,6 @@ package org.uma.jmetal.util.archive.impl; -import org.uma.jmetal.qualityindicator.impl.Hypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.Hypervolume; import org.uma.jmetal.solution.Solution; import org.uma.jmetal.util.SolutionListUtils; import org.uma.jmetal.util.comparator.HypervolumeContributionComparator; diff --git a/jmetal-core/src/main/java/org/uma/jmetal/util/archivewithreferencepoint/impl/HypervolumeArchiveWithReferencePoint.java b/jmetal-core/src/main/java/org/uma/jmetal/util/archivewithreferencepoint/impl/HypervolumeArchiveWithReferencePoint.java index dd6104efc0..6008b06f1d 100644 --- a/jmetal-core/src/main/java/org/uma/jmetal/util/archivewithreferencepoint/impl/HypervolumeArchiveWithReferencePoint.java +++ b/jmetal-core/src/main/java/org/uma/jmetal/util/archivewithreferencepoint/impl/HypervolumeArchiveWithReferencePoint.java @@ -13,8 +13,8 @@ package org.uma.jmetal.util.archivewithreferencepoint.impl; -import org.uma.jmetal.qualityindicator.impl.Hypervolume; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.Hypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.Solution; import org.uma.jmetal.util.archivewithreferencepoint.ArchiveWithReferencePoint; import org.uma.jmetal.util.comparator.HypervolumeContributionComparator; diff --git a/jmetal-core/src/main/java/org/uma/jmetal/util/chartcontainer/ChartContainer.java b/jmetal-core/src/main/java/org/uma/jmetal/util/chartcontainer/ChartContainer.java index 1eb7ca2b4d..edf80acd28 100644 --- a/jmetal-core/src/main/java/org/uma/jmetal/util/chartcontainer/ChartContainer.java +++ b/jmetal-core/src/main/java/org/uma/jmetal/util/chartcontainer/ChartContainer.java @@ -19,235 +19,256 @@ * * @author Jorge Rodriguez Ordonez */ - public class ChartContainer { - private Map charts; - private XYChart frontChart; - private XYChart varChart; - private SwingWrapper sw; - private String name; - private int delay; - private int objective1; - private int objective2; - private int variable1; - private int variable2; - private Map> iterations; - private Map> indicatorValues; - - public ChartContainer(String name) { - this(name, 0); - } - - public ChartContainer(String name, int delay) { - this.name = name; - this.delay = delay; - this.charts = new LinkedHashMap(); - this.iterations = new HashMap>(); - this.indicatorValues = new HashMap>(); - } - - public void setFrontChart(int objective1, int objective2) throws FileNotFoundException { - this.setFrontChart(objective1, objective2, null); - } - - public void setFrontChart(int objective1, int objective2, String referenceFrontFileName) throws FileNotFoundException { - this.objective1 = objective1; - this.objective2 = objective2; - this.frontChart = new XYChartBuilder().xAxisTitle("Objective " + this.objective1) - .yAxisTitle("Objective " + this.objective2).build(); - this.frontChart.getStyler().setDefaultSeriesRenderStyle(XYSeriesRenderStyle.Scatter).setMarkerSize(5); - - if (referenceFrontFileName != null) { - this.displayReferenceFront(referenceFrontFileName); - } - - double[] xData = new double[] { 0 }; - double[] yData = new double[] { 0 }; - XYSeries frontChartSeries = this.frontChart.addSeries(this.name, xData, yData); - frontChartSeries.setMarkerColor(Color.blue); - - this.charts.put("Front", this.frontChart); - } - - public void setReferencePoint(List referencePoint){ - double rp1 = referencePoint.get(this.objective1); - double rp2 = referencePoint.get(this.objective2); - XYSeries referencePointSeries = this.frontChart.addSeries("Reference Point ["+ rp1 + ", " + rp2 + "]", - new double[] { rp1 }, - new double[] { rp2 }); - referencePointSeries.setMarkerColor(Color.green); - } - - public void setVarChart(int variable1, int variable2) { - this.variable1 = variable1; - this.variable2 = variable2; - this.varChart = new XYChartBuilder().xAxisTitle("Variable " + this.variable1) - .yAxisTitle("Variable " + this.variable2).build(); - this.varChart.getStyler().setDefaultSeriesRenderStyle(XYSeriesRenderStyle.Scatter).setMarkerSize(5); - - double[] xData = new double[] { 0 }; - double[] yData = new double[] { 0 }; - - XYSeries varChartSeries = this.varChart.addSeries(this.name, xData, yData); - varChartSeries.setMarkerColor(Color.blue); - - this.charts.put("VAR", this.varChart); - } - - public void initChart() { - this.sw = new SwingWrapper(new ArrayList(this.charts.values())); - this.sw.displayChartMatrix(this.name); - } - - public void updateFrontCharts(List solutionList) { - if (this.frontChart != null) { - this.frontChart.updateXYSeries(this.name, - this.getSolutionsForObjective(solutionList, this.objective1), - this.getSolutionsForObjective(solutionList, this.objective2), - null); - } - - if (this.varChart != null) { - this.varChart.updateXYSeries(this.name, - this.getVariableValues(solutionList, this.variable1), - this.getVariableValues(solutionList, this.variable2), - null); - } - } - - public void refreshCharts() { - this.refreshCharts(this.delay); + private Map charts; + private XYChart frontChart; + private XYChart varChart; + private SwingWrapper sw; + private String name; + private int delay; + private int objective1; + private int objective2; + private int variable1; + private int variable2; + private Map> iterations; + private Map> indicatorValues; + + public ChartContainer(String name) { + this(name, 0); + } + + public ChartContainer(String name, int delay) { + this.name = name; + this.delay = delay; + this.charts = new LinkedHashMap(); + this.iterations = new HashMap>(); + this.indicatorValues = new HashMap>(); + } + + public void setFrontChart(int objective1, int objective2) throws FileNotFoundException { + this.setFrontChart(objective1, objective2, null); + } + + public void setFrontChart(int objective1, int objective2, String referenceFrontFileName) + throws FileNotFoundException { + this.objective1 = objective1; + this.objective2 = objective2; + this.frontChart = + new XYChartBuilder() + .xAxisTitle("Objective " + this.objective1) + .yAxisTitle("Objective " + this.objective2) + .build(); + this.frontChart + .getStyler() + .setDefaultSeriesRenderStyle(XYSeriesRenderStyle.Scatter) + .setMarkerSize(5); + + if (referenceFrontFileName != null) { + this.displayReferenceFront(referenceFrontFileName); } - public void refreshCharts(int delay) { - if (delay > 0) { - try { - TimeUnit.MILLISECONDS.sleep(delay); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - this.repaint(); + double[] xData = new double[] {0}; + double[] yData = new double[] {0}; + XYSeries frontChartSeries = this.frontChart.addSeries(this.name, xData, yData); + frontChartSeries.setMarkerColor(Color.blue); + + this.charts.put("Front", this.frontChart); + } + + public void setReferencePoint(List referencePoint) { + double rp1 = referencePoint.get(this.objective1); + double rp2 = referencePoint.get(this.objective2); + XYSeries referencePointSeries = + this.frontChart.addSeries( + "Reference Point [" + rp1 + ", " + rp2 + "]", new double[] {rp1}, new double[] {rp2}); + referencePointSeries.setMarkerColor(Color.green); + } + + public void setVarChart(int variable1, int variable2) { + this.variable1 = variable1; + this.variable2 = variable2; + this.varChart = + new XYChartBuilder() + .xAxisTitle("Variable " + this.variable1) + .yAxisTitle("Variable " + this.variable2) + .build(); + this.varChart + .getStyler() + .setDefaultSeriesRenderStyle(XYSeriesRenderStyle.Scatter) + .setMarkerSize(5); + + double[] xData = new double[] {0}; + double[] yData = new double[] {0}; + + XYSeries varChartSeries = this.varChart.addSeries(this.name, xData, yData); + varChartSeries.setMarkerColor(Color.blue); + + this.charts.put("VAR", this.varChart); + } + + public void initChart() { + this.sw = new SwingWrapper(new ArrayList(this.charts.values())); + this.sw.displayChartMatrix(this.name); + } + + public void updateFrontCharts(List solutionList) { + if (this.frontChart != null) { + this.frontChart.updateXYSeries( + this.name, + this.getSolutionsForObjective(solutionList, this.objective1), + this.getSolutionsForObjective(solutionList, this.objective2), + null); } - public void addIndicatorChart(String indicator) { - XYChart indicatorChart = new XYChartBuilder().xAxisTitle("n").yAxisTitle(indicator).build(); - indicatorChart.getStyler().setDefaultSeriesRenderStyle(XYSeriesRenderStyle.Scatter).setMarkerSize(5); - - List indicatorIterations = new ArrayList(); - indicatorIterations.add(0); - List indicatorValues = new ArrayList(); - indicatorValues.add(0.0); - - XYSeries indicatorSeries = indicatorChart.addSeries(this.name, indicatorIterations, indicatorValues); - indicatorSeries.setMarkerColor(Color.blue); - - this.iterations.put(indicator, indicatorIterations); - this.indicatorValues.put(indicator, indicatorValues); - this.charts.put(indicator, indicatorChart); - } - - public void removeIndicator(String indicator) { - this.iterations.remove(indicator); - this.indicatorValues.remove(indicator); - this.charts.remove(indicator); - } - - public void updateIndicatorChart(String indicator, Double value) { - this.indicatorValues.get(indicator).add(value); - this.iterations.get(indicator).add(this.indicatorValues.get(indicator).size()); - - this.charts.get(indicator).updateXYSeries(this.name, this.iterations.get(indicator), - this.indicatorValues.get(indicator), null); - } - - public void repaint() { - try { - for (int i = 0; i < this.charts.values().size(); i++) { - this.sw.repaintChart(i); - } - } catch (IndexOutOfBoundsException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - private void displayFront(String name, String fileName, int objective1, int objective2) - throws FileNotFoundException { - ArrayFront front = new ArrayFront(fileName); - double[][] data = FrontUtils.convertFrontToArray(front); - double[] xData = getObjectiveValues(data, objective1); - double[] yData = getObjectiveValues(data, objective2); - XYSeries referenceFront = this.frontChart.addSeries(name, xData, yData); - referenceFront.setMarkerColor(Color.red); + if (this.varChart != null) { + this.varChart.updateXYSeries( + this.name, + this.getVariableValues(solutionList, this.variable1), + this.getVariableValues(solutionList, this.variable2), + null); } - - private void displayReferenceFront(String fileName) throws FileNotFoundException { - this.displayReferenceFront(fileName, this.objective1, this.objective2); + } + + public void refreshCharts() { + this.refreshCharts(this.delay); + } + + public void refreshCharts(int delay) { + if (delay > 0) { + try { + TimeUnit.MILLISECONDS.sleep(delay); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } } - - private void displayReferenceFront(String fileName, int objective1, int objective2) throws FileNotFoundException { - this.displayFront("Reference Front", fileName, objective1, objective2); + this.repaint(); + } + + public void addIndicatorChart(String indicator) { + XYChart indicatorChart = new XYChartBuilder().xAxisTitle("n").yAxisTitle(indicator).build(); + indicatorChart + .getStyler() + .setDefaultSeriesRenderStyle(XYSeriesRenderStyle.Scatter) + .setMarkerSize(5); + + List indicatorIterations = new ArrayList(); + indicatorIterations.add(0); + List indicatorValues = new ArrayList(); + indicatorValues.add(0.0); + + XYSeries indicatorSeries = + indicatorChart.addSeries(this.name, indicatorIterations, indicatorValues); + indicatorSeries.setMarkerColor(Color.blue); + + this.iterations.put(indicator, indicatorIterations); + this.indicatorValues.put(indicator, indicatorValues); + this.charts.put(indicator, indicatorChart); + } + + public void removeIndicator(String indicator) { + this.iterations.remove(indicator); + this.indicatorValues.remove(indicator); + this.charts.remove(indicator); + } + + public void updateIndicatorChart(String indicator, Double value) { + this.indicatorValues.get(indicator).add(value); + this.iterations.get(indicator).add(this.indicatorValues.get(indicator).size()); + + this.charts + .get(indicator) + .updateXYSeries( + this.name, this.iterations.get(indicator), this.indicatorValues.get(indicator), null); + } + + public void repaint() { + try { + for (int i = 0; i < this.charts.values().size(); i++) { + this.sw.repaintChart(i); + } + } catch (IndexOutOfBoundsException e) { + // TODO Auto-generated catch block + e.printStackTrace(); } - - private double[] getObjectiveValues(double[][] data, int obj) { - double[] values = new double[data.length]; - for (int i = 0; i < data.length; i++) { - values[i] = data[i][obj]; - } - return values; + } + + private void displayFront(String name, String fileName, int objective1, int objective2) + throws FileNotFoundException { + ArrayFront front = new ArrayFront(fileName); + double[][] data = FrontUtils.convertFrontToArray(front); + double[] xData = getObjectiveValues(data, objective1); + double[] yData = getObjectiveValues(data, objective2); + XYSeries referenceFront = this.frontChart.addSeries(name, xData, yData); + referenceFront.setMarkerColor(Color.red); + } + + private void displayReferenceFront(String fileName) throws FileNotFoundException { + this.displayReferenceFront(fileName, this.objective1, this.objective2); + } + + private void displayReferenceFront(String fileName, int objective1, int objective2) + throws FileNotFoundException { + this.displayFront("Reference Front", fileName, objective1, objective2); + } + + private double[] getObjectiveValues(double[][] data, int obj) { + double[] values = new double[data.length]; + for (int i = 0; i < data.length; i++) { + values[i] = data[i][obj]; } + return values; + } - private double[] getSolutionsForObjective(List solutionList, int objective) { - double[] result = new double[solutionList.size()]; - for (int i = 0; i < solutionList.size(); i++) { - result[i] = solutionList.get(i).getObjective(objective); - } - return result; + private double[] getSolutionsForObjective(List solutionList, int objective) { + double[] result = new double[solutionList.size()]; + for (int i = 0; i < solutionList.size(); i++) { + result[i] = solutionList.get(i).getObjective(objective); } + return result; + } - private double[] getVariableValues(List solutionList, int variable) { - double[] result = new double[solutionList.size()]; - for (int i = 0; i < solutionList.size(); i++) { - result[i] = solutionList.get(i).getVariable(variable); - } - return result; + private double[] getVariableValues(List solutionList, int variable) { + double[] result = new double[solutionList.size()]; + for (int i = 0; i < solutionList.size(); i++) { + result[i] = solutionList.get(i).getVariable(variable); } + return result; + } - public void saveChart(String fileName, BitmapFormat format) throws IOException { - for (String chart : this.charts.keySet()) { - BitmapEncoder.saveBitmap(this.charts.get(chart), fileName + "_" + chart, format); - } + public void saveChart(String fileName, BitmapFormat format) throws IOException { + for (String chart : this.charts.keySet()) { + BitmapEncoder.saveBitmap(this.charts.get(chart), fileName + "_" + chart, format); } + } - public String getName() { - return this.name; - } + public String getName() { + return this.name; + } - public ChartContainer setName(String name) { - this.name = name; - return this; - } + public ChartContainer setName(String name) { + this.name = name; + return this; + } - public int getDelay() { - return this.delay; - } + public int getDelay() { + return this.delay; + } - public ChartContainer setDelay(int delay) { - this.delay = delay; - return this; - } + public ChartContainer setDelay(int delay) { + this.delay = delay; + return this; + } - public XYChart getFrontChart() { - return this.frontChart; - } + public XYChart getFrontChart() { + return this.frontChart; + } - public XYChart getVarChart() { - return this.varChart; - } + public XYChart getVarChart() { + return this.varChart; + } - public XYChart getChart(String chartName) { - return this.charts.get(chartName); - } + public XYChart getChart(String chartName) { + return this.charts.get(chartName); + } } diff --git a/jmetal-core/src/main/java/org/uma/jmetal/util/chartcontainer/GenericChartContainer.java b/jmetal-core/src/main/java/org/uma/jmetal/util/chartcontainer/GenericChartContainer.java index 84333e2a01..0119f82d74 100644 --- a/jmetal-core/src/main/java/org/uma/jmetal/util/chartcontainer/GenericChartContainer.java +++ b/jmetal-core/src/main/java/org/uma/jmetal/util/chartcontainer/GenericChartContainer.java @@ -18,259 +18,295 @@ * * @author Jorge Rodriguez Ordonez */ - public class GenericChartContainer> { - private Map charts; - private XYChart frontChart; - private XYChart varChart; - private SwingWrapper sw; - private String name; - private int delay; - private int objective1; - private int objective2; - private int variable1; - private int variable2; - private Map> iterations; - private Map> indicatorValues; - private List referencePointName ; - - public GenericChartContainer(String name) { - this(name, 0); - } - - public GenericChartContainer(String name, int delay) { - this.name = name; - this.delay = delay; - this.charts = new LinkedHashMap(); - this.iterations = new HashMap>(); - this.indicatorValues = new HashMap>(); - referencePointName = new ArrayList<>() ; + private Map charts; + private XYChart frontChart; + private XYChart varChart; + private SwingWrapper sw; + private String name; + private int delay; + private int objective1; + private int objective2; + private int variable1; + private int variable2; + private Map> iterations; + private Map> indicatorValues; + private List referencePointName; + + private double[] xReferenceFrontData ; + private double[] yReferenceFrontData ; + + public GenericChartContainer(String name) { + this(name, 0); + } + + public GenericChartContainer(String name, int delay) { + this.name = name; + this.delay = delay; + this.charts = new LinkedHashMap(); + this.iterations = new HashMap>(); + this.indicatorValues = new HashMap>(); + referencePointName = new ArrayList<>(); + } + + public void setFrontChart(int objective1, int objective2) throws FileNotFoundException { + this.setFrontChart(objective1, objective2, null); + } + + public void setFrontChart(int objective1, int objective2, String referenceFrontFileName) + throws FileNotFoundException { + this.objective1 = objective1; + this.objective2 = objective2; + this.frontChart = + new XYChartBuilder() + .xAxisTitle("Objective " + this.objective1) + .yAxisTitle("Objective " + this.objective2) + .build(); + this.frontChart + .getStyler() + .setDefaultSeriesRenderStyle(XYSeries.XYSeriesRenderStyle.Scatter) + .setMarkerSize(5); + + if (referenceFrontFileName != null) { + getReferenceFrontData(referenceFrontFileName); + displayReferenceFront(); } - public void setFrontChart(int objective1, int objective2) throws FileNotFoundException { - this.setFrontChart(objective1, objective2, null); - } + double[] xData = new double[] {0}; + double[] yData = new double[] {0}; + XYSeries frontChartSeries = this.frontChart.addSeries(this.name, xData, yData); + frontChartSeries.setMarkerColor(Color.blue); - public void setFrontChart(int objective1, int objective2, String referenceFrontFileName) throws FileNotFoundException { - this.objective1 = objective1; - this.objective2 = objective2; - this.frontChart = new XYChartBuilder().xAxisTitle("Objective " + this.objective1) - .yAxisTitle("Objective " + this.objective2).build(); - this.frontChart.getStyler().setDefaultSeriesRenderStyle(XYSeries.XYSeriesRenderStyle.Scatter).setMarkerSize(5); + this.charts.put("Front", this.frontChart); + } - if (referenceFrontFileName != null) { - this.displayReferenceFront(referenceFrontFileName); - } + public synchronized void setReferencePoint(List> referencePoint) { + for (int i = 0; i < referencePoint.size(); i++) { + double rp1 = referencePoint.get(i).get(this.objective1); + double rp2 = referencePoint.get(i).get(this.objective2); - double[] xData = new double[] { 0 }; - double[] yData = new double[] { 0 }; - XYSeries frontChartSeries = this.frontChart.addSeries(this.name, xData, yData); - frontChartSeries.setMarkerColor(Color.blue); + referencePointName.add("Reference Point [" + rp1 + ", " + rp2 + "]"); - this.charts.put("Front", this.frontChart); + XYSeries referencePointSeries = + this.frontChart.addSeries( + referencePointName.get(i), new double[] {rp1}, new double[] {rp2}); + referencePointSeries.setMarkerColor(Color.green); } + } - public synchronized void setReferencePoint(List> referencePoint){ - for (int i = 0; i < referencePoint.size(); i++) { - double rp1 = referencePoint.get(i).get(this.objective1); - double rp2 = referencePoint.get(i).get(this.objective2); - - referencePointName.add("Reference Point [" + rp1 + ", " + rp2 + "]") ; + public synchronized void updateReferencePoint(List> referencePoint) { + for (int i = 0; i < referencePoint.size(); i++) { + double rp1 = referencePoint.get(i).get(this.objective1); + double rp2 = referencePoint.get(i).get(this.objective2); - XYSeries referencePointSeries = this.frontChart.addSeries(referencePointName.get(i), - new double[] { rp1 }, - new double[] { rp2 }); - referencePointSeries.setMarkerColor(Color.green); - } - } + this.frontChart.removeSeries(referencePointName.get(i)); - public synchronized void updateReferencePoint(List> referencePoint){ - for (int i = 0; i < referencePoint.size(); i++) { - double rp1 = referencePoint.get(i).get(this.objective1); - double rp2 = referencePoint.get(i).get(this.objective2); + referencePointName.set(i, "Reference Point [" + rp1 + ", " + rp2 + "]"); - this.frontChart.removeSeries(referencePointName.get(i)) ; - - referencePointName.set(i, "Reference Point [" + rp1 + ", " + rp2 + "]") ; - - XYSeries referencePointSeries = this.frontChart.addSeries(referencePointName.get(i), - new double[] { rp1 }, - new double[] { rp2 }); - referencePointSeries.setMarkerColor(Color.green); - } + XYSeries referencePointSeries = + this.frontChart.addSeries( + referencePointName.get(i), new double[] {rp1}, new double[] {rp2}); + referencePointSeries.setMarkerColor(Color.green); } - - public void setVarChart(int variable1, int variable2) { - this.variable1 = variable1; - this.variable2 = variable2; - this.varChart = new XYChartBuilder().xAxisTitle("Variable " + this.variable1) - .yAxisTitle("Variable " + this.variable2).build(); - this.varChart.getStyler().setDefaultSeriesRenderStyle(XYSeries.XYSeriesRenderStyle.Scatter).setMarkerSize(5); - - double[] xData = new double[] { 0 }; - double[] yData = new double[] { 0 }; - - XYSeries varChartSeries = this.varChart.addSeries(this.name, xData, yData); - varChartSeries.setMarkerColor(Color.blue); - - this.charts.put("VAR", this.varChart); + } + + public void setVarChart(int variable1, int variable2) { + this.variable1 = variable1; + this.variable2 = variable2; + this.varChart = + new XYChartBuilder() + .xAxisTitle("Variable " + this.variable1) + .yAxisTitle("Variable " + this.variable2) + .build(); + this.varChart + .getStyler() + .setDefaultSeriesRenderStyle(XYSeries.XYSeriesRenderStyle.Scatter) + .setMarkerSize(5); + + double[] xData = new double[] {0}; + double[] yData = new double[] {0}; + + XYSeries varChartSeries = this.varChart.addSeries(this.name, xData, yData); + varChartSeries.setMarkerColor(Color.blue); + + this.charts.put("VAR", this.varChart); + } + + public void initChart() { + this.sw = new SwingWrapper(new ArrayList(this.charts.values())); + this.sw.displayChartMatrix(this.name); + } + + public void updateFrontCharts(List solutionList) { + if (this.frontChart != null) { + this.frontChart.updateXYSeries( + this.name, + this.getSolutionsForObjective(solutionList, this.objective1), + this.getSolutionsForObjective(solutionList, this.objective2), + null); } - public void initChart() { - this.sw = new SwingWrapper(new ArrayList(this.charts.values())); - this.sw.displayChartMatrix(this.name); + if (this.varChart != null) { + this.varChart.updateXYSeries( + this.name, + this.getVariableValues((List) solutionList, this.variable1), + this.getVariableValues((List) solutionList, this.variable2), + null); } - - public void updateFrontCharts(List solutionList) { - if (this.frontChart != null) { - this.frontChart.updateXYSeries(this.name, - this.getSolutionsForObjective(solutionList, this.objective1), - this.getSolutionsForObjective(solutionList, this.objective2), - null); - } - - if (this.varChart != null) { - this.varChart.updateXYSeries(this.name, - this.getVariableValues((List)solutionList, this.variable1), - this.getVariableValues((List)solutionList, this.variable2), - null); - } - + } + + public void refreshCharts() { + this.refreshCharts(this.delay); + } + + public void refreshCharts(int delay) { + if (delay > 0) { + try { + TimeUnit.MILLISECONDS.sleep(delay); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } } - - public void refreshCharts() { - this.refreshCharts(this.delay); + this.repaint(); + } + + public void addIndicatorChart(String indicator) { + XYChart indicatorChart = new XYChartBuilder().xAxisTitle("n").yAxisTitle(indicator).build(); + indicatorChart + .getStyler() + .setDefaultSeriesRenderStyle(XYSeries.XYSeriesRenderStyle.Scatter) + .setMarkerSize(5); + + List indicatorIterations = new ArrayList(); + indicatorIterations.add(0); + List indicatorValues = new ArrayList(); + indicatorValues.add(0.0); + + XYSeries indicatorSeries = + indicatorChart.addSeries(this.name, indicatorIterations, indicatorValues); + indicatorSeries.setMarkerColor(Color.blue); + + this.iterations.put(indicator, indicatorIterations); + this.indicatorValues.put(indicator, indicatorValues); + this.charts.put(indicator, indicatorChart); + } + + public void removeIndicator(String indicator) { + this.iterations.remove(indicator); + this.indicatorValues.remove(indicator); + this.charts.remove(indicator); + } + + public void updateIndicatorChart(String indicator, Double value) { + this.indicatorValues.get(indicator).add(value); + this.iterations.get(indicator).add(this.indicatorValues.get(indicator).size()); + + this.charts + .get(indicator) + .updateXYSeries( + this.name, this.iterations.get(indicator), this.indicatorValues.get(indicator), null); + } + + public void repaint() { + try { + for (int i = 0; i < this.charts.values().size(); i++) { + this.sw.repaintChart(i); + } + } catch (IndexOutOfBoundsException e) { + // TODO Auto-generated catch block + e.printStackTrace(); } - - public void refreshCharts(int delay) { - if (delay > 0) { - try { - TimeUnit.MILLISECONDS.sleep(delay); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - this.repaint(); + } + + private void displayFront(String name, String fileName, int objective1, int objective2) + throws FileNotFoundException { + ArrayFront front = new ArrayFront(fileName); + double[][] data = FrontUtils.convertFrontToArray(front); + double[] xData = getObjectiveValues(data, objective1); + double[] yData = getObjectiveValues(data, objective2); + XYSeries referenceFront = this.frontChart.addSeries(name, xData, yData); + referenceFront.setMarkerColor(Color.red); + } + + private void getReferenceFrontData(String fileName) throws FileNotFoundException { + ArrayFront front = new ArrayFront(fileName); + double[][] data = FrontUtils.convertFrontToArray(front); + xReferenceFrontData = getObjectiveValues(data, objective1) ; + yReferenceFrontData = getObjectiveValues(data, objective2) ; + } + + private void displayReferenceFront() { + XYSeries referenceFront = this.frontChart.addSeries("Reference Front", xReferenceFrontData, yReferenceFrontData); + referenceFront.setMarkerColor(Color.red); + } + + private void displayReferenceFront(String fileName) throws FileNotFoundException { + this.displayReferenceFront(fileName, this.objective1, this.objective2); + } + + private void displayReferenceFront(String fileName, int objective1, int objective2) + throws FileNotFoundException { + this.displayFront("Reference Front", fileName, objective1, objective2); + } + + private double[] getObjectiveValues(double[][] data, int obj) { + double[] values = new double[data.length]; + for (int i = 0; i < data.length; i++) { + values[i] = data[i][obj]; } + return values; + } - public void addIndicatorChart(String indicator) { - XYChart indicatorChart = new XYChartBuilder().xAxisTitle("n").yAxisTitle(indicator).build(); - indicatorChart.getStyler().setDefaultSeriesRenderStyle(XYSeries.XYSeriesRenderStyle.Scatter).setMarkerSize(5); - - List indicatorIterations = new ArrayList(); - indicatorIterations.add(0); - List indicatorValues = new ArrayList(); - indicatorValues.add(0.0); - - XYSeries indicatorSeries = indicatorChart.addSeries(this.name, indicatorIterations, indicatorValues); - indicatorSeries.setMarkerColor(Color.blue); - - this.iterations.put(indicator, indicatorIterations); - this.indicatorValues.put(indicator, indicatorValues); - this.charts.put(indicator, indicatorChart); + private double[] getSolutionsForObjective(List solutionList, int objective) { + double[] result = new double[solutionList.size()]; + for (int i = 0; i < solutionList.size(); i++) { + result[i] = solutionList.get(i).getObjective(objective); } + return result; + } - public void removeIndicator(String indicator) { - this.iterations.remove(indicator); - this.indicatorValues.remove(indicator); - this.charts.remove(indicator); + private double[] getVariableValues(List solutionList, int variable) { + double[] result = new double[solutionList.size()]; + for (int i = 0; i < solutionList.size(); i++) { + result[i] = solutionList.get(i).getVariable(variable); } + return result; + } - public void updateIndicatorChart(String indicator, Double value) { - this.indicatorValues.get(indicator).add(value); - this.iterations.get(indicator).add(this.indicatorValues.get(indicator).size()); - - this.charts.get(indicator).updateXYSeries(this.name, this.iterations.get(indicator), - this.indicatorValues.get(indicator), null); + public void saveChart(String fileName, BitmapEncoder.BitmapFormat format) throws IOException { + for (String chart : this.charts.keySet()) { + BitmapEncoder.saveBitmap(this.charts.get(chart), fileName + "_" + chart, format); } + } - public void repaint() { - try { - for (int i = 0; i < this.charts.values().size(); i++) { - this.sw.repaintChart(i); - } - } catch (IndexOutOfBoundsException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } + public String getName() { + return this.name; + } - private void displayFront(String name, String fileName, int objective1, int objective2) - throws FileNotFoundException { - ArrayFront front = new ArrayFront(fileName); - double[][] data = FrontUtils.convertFrontToArray(front); - double[] xData = getObjectiveValues(data, objective1); - double[] yData = getObjectiveValues(data, objective2); - XYSeries referenceFront = this.frontChart.addSeries(name, xData, yData); - referenceFront.setMarkerColor(Color.red); - } + public GenericChartContainer setName(String name) { + this.name = name; + return this; + } - private void displayReferenceFront(String fileName) throws FileNotFoundException { - this.displayReferenceFront(fileName, this.objective1, this.objective2); - } - - private void displayReferenceFront(String fileName, int objective1, int objective2) throws FileNotFoundException { - this.displayFront("Reference Front", fileName, objective1, objective2); - } + public int getDelay() { + return this.delay; + } - private double[] getObjectiveValues(double[][] data, int obj) { - double[] values = new double[data.length]; - for (int i = 0; i < data.length; i++) { - values[i] = data[i][obj]; - } - return values; - } + public GenericChartContainer setDelay(int delay) { + this.delay = delay; + return this; + } - private double[] getSolutionsForObjective(List solutionList, int objective) { - double[] result = new double[solutionList.size()]; - for (int i = 0; i < solutionList.size(); i++) { - result[i] = solutionList.get(i).getObjective(objective); - } - return result; - } + public XYChart getFrontChart() { + return this.frontChart; + } - private double[] getVariableValues(List solutionList, int variable) { - double[] result = new double[solutionList.size()]; - for (int i = 0; i < solutionList.size(); i++) { - result[i] = solutionList.get(i).getVariable(variable); - } - return result; - } + public XYChart getVarChart() { + return this.varChart; + } - public void saveChart(String fileName, BitmapEncoder.BitmapFormat format) throws IOException { - for (String chart : this.charts.keySet()) { - BitmapEncoder.saveBitmap(this.charts.get(chart), fileName + "_" + chart, format); - } - } - - public String getName() { - return this.name; - } - - public GenericChartContainer setName(String name) { - this.name = name; - return this; - } - - public int getDelay() { - return this.delay; - } - - public GenericChartContainer setDelay(int delay) { - this.delay = delay; - return this; - } - - public XYChart getFrontChart() { - return this.frontChart; - } - - public XYChart getVarChart() { - return this.varChart; - } - - public XYChart getChart(String chartName) { - return this.charts.get(chartName); - } + public XYChart getChart(String chartName) { + return this.charts.get(chartName); + } } diff --git a/jmetal-core/src/main/java/org/uma/jmetal/util/front/impl/ArrayFront.java b/jmetal-core/src/main/java/org/uma/jmetal/util/front/impl/ArrayFront.java index bf8f5eef8e..32575d5cbb 100644 --- a/jmetal-core/src/main/java/org/uma/jmetal/util/front/impl/ArrayFront.java +++ b/jmetal-core/src/main/java/org/uma/jmetal/util/front/impl/ArrayFront.java @@ -148,7 +148,8 @@ public ArrayFront(String fileName, String separator) throws FileNotFoundExceptio * @throws FileNotFoundException */ public ArrayFront(String fileName) throws FileNotFoundException { - this(fileName, "\\s+"); + //this(fileName, "\\s+"); + this(fileName, ","); } public InputStream createInputStream(String fileName) throws FileNotFoundException { diff --git a/jmetal-core/src/main/java/org/uma/jmetal/util/restartstrategy/impl/RemoveNSolutionsAccordingToTheHypervolumeContribution.java b/jmetal-core/src/main/java/org/uma/jmetal/util/restartstrategy/impl/RemoveNSolutionsAccordingToTheHypervolumeContribution.java index 88d3e31b2a..90002a2d1b 100644 --- a/jmetal-core/src/main/java/org/uma/jmetal/util/restartstrategy/impl/RemoveNSolutionsAccordingToTheHypervolumeContribution.java +++ b/jmetal-core/src/main/java/org/uma/jmetal/util/restartstrategy/impl/RemoveNSolutionsAccordingToTheHypervolumeContribution.java @@ -1,7 +1,7 @@ package org.uma.jmetal.util.restartstrategy.impl; import org.uma.jmetal.problem.DynamicProblem; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.Solution; import org.uma.jmetal.util.JMetalException; import org.uma.jmetal.util.archive.impl.HypervolumeArchive; diff --git a/jmetal-core/src/main/java/org/uma/jmetal/utilities/CommandLineQualityIndicatorTool.java b/jmetal-core/src/main/java/org/uma/jmetal/utilities/CommandLineQualityIndicatorTool.java index dd8f047934..f51c7b9f0f 100644 --- a/jmetal-core/src/main/java/org/uma/jmetal/utilities/CommandLineQualityIndicatorTool.java +++ b/jmetal-core/src/main/java/org/uma/jmetal/utilities/CommandLineQualityIndicatorTool.java @@ -1,8 +1,8 @@ package org.uma.jmetal.utilities; -import org.uma.jmetal.qualityindicator.QualityIndicator; +import org.uma.jmetal.qualityindicator.*; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.qualityindicator.impl.*; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; import org.uma.jmetal.util.JMetalException; import org.uma.jmetal.util.JMetalLogger; import org.uma.jmetal.util.front.Front; @@ -137,6 +137,7 @@ private static List, Double>> getAvailableI List, Double>> list = new ArrayList<>() ; list.add(new Epsilon(referenceFront)) ; list.add(new PISAHypervolume(referenceFront)) ; + list.add(new RelativeHypervolume<>(referenceFront)) ; list.add(new GenerationalDistance(referenceFront)) ; list.add(new InvertedGenerationalDistance(referenceFront)) ; list.add(new InvertedGenerationalDistancePlus(referenceFront)) ; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/component/evaluation/impl/EvaluationTestCases.java b/jmetal-core/src/test/java/org/uma/jmetal/component/evaluation/impl/EvaluationTestCases.java index db9a0f91ff..80821eaa43 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/component/evaluation/impl/EvaluationTestCases.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/component/evaluation/impl/EvaluationTestCases.java @@ -21,7 +21,7 @@ public abstract class EvaluationTestCases> { public void shouldACallToEvaluateComputeTheRightNumberOfEvaluationsCase1() { List solutions = new ArrayList<>(); - evaluation.evaluate(solutions, problem); + evaluation.evaluate(solutions); assertEquals(0, evaluation.getComputedEvaluations()); } @@ -32,7 +32,7 @@ public void shouldACallToEvaluateComputeTheRightNumberOfEvaluationsCase2() { List solutions = new ArrayList<>(); solutions.add(problem.createSolution()); - evaluation.evaluate(solutions, problem); + evaluation.evaluate(solutions); assertEquals(1, evaluation.getComputedEvaluations()); } @@ -43,8 +43,8 @@ public void shouldACallToEvaluateComputeTheRightNumberOfEvaluationsCase3() { List solutions = new ArrayList<>(); IntStream.range(0, 20).forEach(i -> solutions.add(problem.createSolution())); - evaluation.evaluate(solutions, problem); - evaluation.evaluate(solutions, problem); + evaluation.evaluate(solutions); + evaluation.evaluate(solutions); assertEquals(40, evaluation.getComputedEvaluations()); } diff --git a/jmetal-core/src/test/java/org/uma/jmetal/component/evaluation/impl/MultithreadedEvaluationTest.java b/jmetal-core/src/test/java/org/uma/jmetal/component/evaluation/impl/MultithreadedEvaluationTest.java index 6844ef0b32..69bf896729 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/component/evaluation/impl/MultithreadedEvaluationTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/component/evaluation/impl/MultithreadedEvaluationTest.java @@ -7,6 +7,6 @@ public class MultithreadedEvaluationTest extends EvaluationTestCases(8) ; + this.evaluation = new MultithreadedEvaluation<>(8, problem) ; } } diff --git a/jmetal-core/src/test/java/org/uma/jmetal/component/evaluation/impl/SequentialEvaluationTest.java b/jmetal-core/src/test/java/org/uma/jmetal/component/evaluation/impl/SequentialEvaluationTest.java index 69b131e739..eb926138ba 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/component/evaluation/impl/SequentialEvaluationTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/component/evaluation/impl/SequentialEvaluationTest.java @@ -7,6 +7,6 @@ public class SequentialEvaluationTest extends EvaluationTestCases() ; + this.evaluation = new SequentialEvaluation<>(problem) ; } } diff --git a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/BLXAlphaCrossoverTest.java b/jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/BLXAlphaCrossoverTest.java similarity index 99% rename from jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/BLXAlphaCrossoverTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/BLXAlphaCrossoverTest.java index eca53d7ea5..0bf0921b48 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/BLXAlphaCrossoverTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/BLXAlphaCrossoverTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.operator.impl.crossover; +package org.uma.jmetal.operator.crossover; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/CompositeCrossoverTest.java b/jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/CompositeCrossoverTest.java similarity index 99% rename from jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/CompositeCrossoverTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/CompositeCrossoverTest.java index a0f0c69c0b..90173094de 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/CompositeCrossoverTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/CompositeCrossoverTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.operator.impl.crossover; +package org.uma.jmetal.operator.crossover; import org.junit.Test; import org.uma.jmetal.operator.crossover.CrossoverOperator; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/DifferentialEvolutionCrossoverTest.java b/jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/DifferentialEvolutionCrossoverTest.java similarity index 97% rename from jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/DifferentialEvolutionCrossoverTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/DifferentialEvolutionCrossoverTest.java index 5de770bda4..d060d96ca6 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/DifferentialEvolutionCrossoverTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/DifferentialEvolutionCrossoverTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.operator.impl.crossover; +package org.uma.jmetal.operator.crossover; import org.junit.Test; import org.uma.jmetal.operator.crossover.impl.DifferentialEvolutionCrossover; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/HUXCrossoverTest.java b/jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/HUXCrossoverTest.java similarity index 94% rename from jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/HUXCrossoverTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/HUXCrossoverTest.java index 6b90638bfb..c270c9f4a5 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/HUXCrossoverTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/HUXCrossoverTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.operator.impl.crossover; +package org.uma.jmetal.operator.crossover; import org.junit.Test; import org.uma.jmetal.operator.crossover.impl.HUXCrossover; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/IntegerSBXCrossoverTest.java b/jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/IntegerSBXCrossoverTest.java similarity index 94% rename from jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/IntegerSBXCrossoverTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/IntegerSBXCrossoverTest.java index 0372d555ef..989e95eb36 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/IntegerSBXCrossoverTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/IntegerSBXCrossoverTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.operator.impl.crossover; +package org.uma.jmetal.operator.crossover; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/NullCrossoverTest.java b/jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/NullCrossoverTest.java similarity index 98% rename from jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/NullCrossoverTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/NullCrossoverTest.java index 0c1f62f8f2..3cc5753485 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/NullCrossoverTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/NullCrossoverTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.operator.impl.crossover; +package org.uma.jmetal.operator.crossover; import org.junit.Test; import org.uma.jmetal.operator.crossover.CrossoverOperator; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/PMXCrossoverTest.java b/jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/PMXCrossoverTest.java similarity index 95% rename from jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/PMXCrossoverTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/PMXCrossoverTest.java index 1f95ea3a26..668f8a1b54 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/PMXCrossoverTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/PMXCrossoverTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.operator.impl.crossover; +package org.uma.jmetal.operator.crossover; import org.junit.Test; import org.uma.jmetal.operator.crossover.impl.PMXCrossover; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/SBXCrossoverTest.java b/jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/SBXCrossoverTest.java similarity index 99% rename from jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/SBXCrossoverTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/SBXCrossoverTest.java index 2a8c51d6b5..2150cd5599 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/SBXCrossoverTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/SBXCrossoverTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.operator.impl.crossover; +package org.uma.jmetal.operator.crossover; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/SinglePointCrossoverTest.java b/jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/SinglePointCrossoverTest.java similarity index 99% rename from jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/SinglePointCrossoverTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/SinglePointCrossoverTest.java index 2e0811563b..f02bfb41c0 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/crossover/SinglePointCrossoverTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/operator/crossover/SinglePointCrossoverTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.operator.impl.crossover; +package org.uma.jmetal.operator.crossover; import org.junit.Test; import org.mockito.Mockito; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/localsearch/BasicLocalSearchTest.java b/jmetal-core/src/test/java/org/uma/jmetal/operator/localsearch/BasicLocalSearchTest.java similarity index 93% rename from jmetal-core/src/test/java/org/uma/jmetal/operator/impl/localsearch/BasicLocalSearchTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/operator/localsearch/BasicLocalSearchTest.java index 33fa74d55d..1a52326410 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/localsearch/BasicLocalSearchTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/operator/localsearch/BasicLocalSearchTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.operator.impl.localsearch; +package org.uma.jmetal.operator.localsearch; import org.junit.Test; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/mutation/BitFlipMutationTest.java b/jmetal-core/src/test/java/org/uma/jmetal/operator/mutation/BitFlipMutationTest.java similarity index 99% rename from jmetal-core/src/test/java/org/uma/jmetal/operator/impl/mutation/BitFlipMutationTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/operator/mutation/BitFlipMutationTest.java index a7b6d3eeac..a8adc5b79d 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/mutation/BitFlipMutationTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/operator/mutation/BitFlipMutationTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.operator.impl.mutation; +package org.uma.jmetal.operator.mutation; import org.junit.Test; import org.mockito.Mockito; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/mutation/CompositeMutationTest.java b/jmetal-core/src/test/java/org/uma/jmetal/operator/mutation/CompositeMutationTest.java similarity index 98% rename from jmetal-core/src/test/java/org/uma/jmetal/operator/impl/mutation/CompositeMutationTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/operator/mutation/CompositeMutationTest.java index 33a7553b61..bb6da00c86 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/mutation/CompositeMutationTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/operator/mutation/CompositeMutationTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.operator.impl.mutation; +package org.uma.jmetal.operator.mutation; import org.junit.Test; import org.uma.jmetal.operator.mutation.MutationOperator; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/mutation/IntegerPolynomialMutationTest.java b/jmetal-core/src/test/java/org/uma/jmetal/operator/mutation/IntegerPolynomialMutationTest.java similarity index 99% rename from jmetal-core/src/test/java/org/uma/jmetal/operator/impl/mutation/IntegerPolynomialMutationTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/operator/mutation/IntegerPolynomialMutationTest.java index 19359a6d50..58121bbc44 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/mutation/IntegerPolynomialMutationTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/operator/mutation/IntegerPolynomialMutationTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.operator.impl.mutation; +package org.uma.jmetal.operator.mutation; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/mutation/NonUniformMutationTest.java b/jmetal-core/src/test/java/org/uma/jmetal/operator/mutation/NonUniformMutationTest.java similarity index 94% rename from jmetal-core/src/test/java/org/uma/jmetal/operator/impl/mutation/NonUniformMutationTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/operator/mutation/NonUniformMutationTest.java index e298afc0f2..8167c09168 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/mutation/NonUniformMutationTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/operator/mutation/NonUniformMutationTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.operator.impl.mutation; +package org.uma.jmetal.operator.mutation; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/mutation/PermutationSwapMutationTest.java b/jmetal-core/src/test/java/org/uma/jmetal/operator/mutation/PermutationSwapMutationTest.java similarity index 95% rename from jmetal-core/src/test/java/org/uma/jmetal/operator/impl/mutation/PermutationSwapMutationTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/operator/mutation/PermutationSwapMutationTest.java index 634dc9e50b..f488f8b293 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/mutation/PermutationSwapMutationTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/operator/mutation/PermutationSwapMutationTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.operator.impl.mutation; +package org.uma.jmetal.operator.mutation; import org.junit.Test; import org.uma.jmetal.operator.mutation.impl.PermutationSwapMutation; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/mutation/PolynomialMutationTest.java b/jmetal-core/src/test/java/org/uma/jmetal/operator/mutation/PolynomialMutationTest.java similarity index 99% rename from jmetal-core/src/test/java/org/uma/jmetal/operator/impl/mutation/PolynomialMutationTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/operator/mutation/PolynomialMutationTest.java index 1edb387b33..0aa2332f87 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/mutation/PolynomialMutationTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/operator/mutation/PolynomialMutationTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.operator.impl.mutation; +package org.uma.jmetal.operator.mutation; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/mutation/SimpleRandomMutationTest.java b/jmetal-core/src/test/java/org/uma/jmetal/operator/mutation/SimpleRandomMutationTest.java similarity index 94% rename from jmetal-core/src/test/java/org/uma/jmetal/operator/impl/mutation/SimpleRandomMutationTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/operator/mutation/SimpleRandomMutationTest.java index ed47c7f834..04547be37b 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/mutation/SimpleRandomMutationTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/operator/mutation/SimpleRandomMutationTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.operator.impl.mutation; +package org.uma.jmetal.operator.mutation; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/mutation/UniformMutationTest.java b/jmetal-core/src/test/java/org/uma/jmetal/operator/mutation/UniformMutationTest.java similarity index 95% rename from jmetal-core/src/test/java/org/uma/jmetal/operator/impl/mutation/UniformMutationTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/operator/mutation/UniformMutationTest.java index db146ddae4..ef40ca6093 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/mutation/UniformMutationTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/operator/mutation/UniformMutationTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.operator.impl.mutation; +package org.uma.jmetal.operator.mutation; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/selection/BinaryTournamentSelectionTest.java b/jmetal-core/src/test/java/org/uma/jmetal/operator/selection/BinaryTournamentSelectionTest.java similarity index 98% rename from jmetal-core/src/test/java/org/uma/jmetal/operator/impl/selection/BinaryTournamentSelectionTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/operator/selection/BinaryTournamentSelectionTest.java index 4744ea66af..60c221fa06 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/selection/BinaryTournamentSelectionTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/operator/selection/BinaryTournamentSelectionTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.operator.impl.selection; +package org.uma.jmetal.operator.selection; import org.hamcrest.Matchers; import org.junit.After; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/selection/DifferentialEvolutionSelectionTest.java b/jmetal-core/src/test/java/org/uma/jmetal/operator/selection/DifferentialEvolutionSelectionTest.java similarity index 99% rename from jmetal-core/src/test/java/org/uma/jmetal/operator/impl/selection/DifferentialEvolutionSelectionTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/operator/selection/DifferentialEvolutionSelectionTest.java index b1994c7567..c9ceef1af7 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/selection/DifferentialEvolutionSelectionTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/operator/selection/DifferentialEvolutionSelectionTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.operator.impl.selection; +package org.uma.jmetal.operator.selection; import org.junit.Rule; import org.junit.Test; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/selection/NaryRandomSelectionTest.java b/jmetal-core/src/test/java/org/uma/jmetal/operator/selection/NaryRandomSelectionTest.java similarity index 99% rename from jmetal-core/src/test/java/org/uma/jmetal/operator/impl/selection/NaryRandomSelectionTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/operator/selection/NaryRandomSelectionTest.java index c6dd783f0a..37b121caa2 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/selection/NaryRandomSelectionTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/operator/selection/NaryRandomSelectionTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.operator.impl.selection; +package org.uma.jmetal.operator.selection; import org.hamcrest.Matchers; import org.junit.Rule; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/selection/NaryTournamentSelectionTest.java b/jmetal-core/src/test/java/org/uma/jmetal/operator/selection/NaryTournamentSelectionTest.java similarity index 98% rename from jmetal-core/src/test/java/org/uma/jmetal/operator/impl/selection/NaryTournamentSelectionTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/operator/selection/NaryTournamentSelectionTest.java index e7993844dd..07444e229b 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/selection/NaryTournamentSelectionTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/operator/selection/NaryTournamentSelectionTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.operator.impl.selection; +package org.uma.jmetal.operator.selection; import org.junit.Rule; import org.junit.Test; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/selection/RandomSelectionTest.java b/jmetal-core/src/test/java/org/uma/jmetal/operator/selection/RandomSelectionTest.java similarity index 62% rename from jmetal-core/src/test/java/org/uma/jmetal/operator/impl/selection/RandomSelectionTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/operator/selection/RandomSelectionTest.java index 32303fb2ec..e959632c8a 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/selection/RandomSelectionTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/operator/selection/RandomSelectionTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.operator.impl.selection; +package org.uma.jmetal.operator.selection; /** * Created by ajnebro on 4/5/15. diff --git a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/selection/RankingAndCrowdingSelectionTest.java b/jmetal-core/src/test/java/org/uma/jmetal/operator/selection/RankingAndCrowdingSelectionTest.java similarity index 97% rename from jmetal-core/src/test/java/org/uma/jmetal/operator/impl/selection/RankingAndCrowdingSelectionTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/operator/selection/RankingAndCrowdingSelectionTest.java index 3bcf8a3246..1cd583d35c 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/selection/RankingAndCrowdingSelectionTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/operator/selection/RankingAndCrowdingSelectionTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.operator.impl.selection; +package org.uma.jmetal.operator.selection; import org.junit.Rule; import org.junit.Test; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/selection/TournamentSelectionTest.java b/jmetal-core/src/test/java/org/uma/jmetal/operator/selection/TournamentSelectionTest.java similarity index 98% rename from jmetal-core/src/test/java/org/uma/jmetal/operator/impl/selection/TournamentSelectionTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/operator/selection/TournamentSelectionTest.java index 937f6025a7..0deb27e001 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/operator/impl/selection/TournamentSelectionTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/operator/selection/TournamentSelectionTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.operator.impl.selection; +package org.uma.jmetal.operator.selection; import org.junit.Rule; import org.junit.Test; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/EpsilonTest.java b/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/EpsilonTest.java similarity index 98% rename from jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/EpsilonTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/EpsilonTest.java index 8c03414c77..0c0c1f88f3 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/EpsilonTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/EpsilonTest.java @@ -1,9 +1,9 @@ -package org.uma.jmetal.qualityindicator.impl; +package org.uma.jmetal.qualityindicator; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; -import org.uma.jmetal.qualityindicator.QualityIndicator; +import org.uma.jmetal.qualityindicator.impl.Epsilon; import org.uma.jmetal.util.JMetalException; import org.uma.jmetal.util.checking.exception.NullParameterException; import org.uma.jmetal.util.front.Front; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/ErrorRatioTest.java b/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/ErrorRatioTest.java similarity index 98% rename from jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/ErrorRatioTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/ErrorRatioTest.java index 892374ab1c..ea8c2acb58 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/ErrorRatioTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/ErrorRatioTest.java @@ -1,11 +1,11 @@ -package org.uma.jmetal.qualityindicator.impl; +package org.uma.jmetal.qualityindicator; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.uma.jmetal.problem.doubleproblem.DoubleProblem; import org.uma.jmetal.problem.doubleproblem.impl.AbstractDoubleProblem; -import org.uma.jmetal.qualityindicator.QualityIndicator; +import org.uma.jmetal.qualityindicator.impl.ErrorRatio; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.JMetalException; import org.uma.jmetal.util.front.Front; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/GenerationalDistanceTest.java b/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/GenerationalDistanceTest.java similarity index 97% rename from jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/GenerationalDistanceTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/GenerationalDistanceTest.java index 0bba6348f8..1da8a5bdc9 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/GenerationalDistanceTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/GenerationalDistanceTest.java @@ -1,8 +1,9 @@ -package org.uma.jmetal.qualityindicator.impl; +package org.uma.jmetal.qualityindicator; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; +import org.uma.jmetal.qualityindicator.impl.GenerationalDistance; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.JMetalException; import org.uma.jmetal.util.checking.exception.NullParameterException; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/HypervolumeTest.java b/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/HypervolumeTest.java similarity index 84% rename from jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/HypervolumeTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/HypervolumeTest.java index 11f1b86f01..a1b0317708 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/HypervolumeTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/HypervolumeTest.java @@ -1,9 +1,10 @@ -package org.uma.jmetal.qualityindicator.impl; +package org.uma.jmetal.qualityindicator; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.Hypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.checking.exception.NullParameterException; import org.uma.jmetal.util.front.Front; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/InvertedGenerationalDistancePlusTest.java b/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/InvertedGenerationalDistancePlusTest.java similarity index 98% rename from jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/InvertedGenerationalDistancePlusTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/InvertedGenerationalDistancePlusTest.java index f3531b48f5..d45fc53da3 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/InvertedGenerationalDistancePlusTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/InvertedGenerationalDistancePlusTest.java @@ -1,8 +1,9 @@ -package org.uma.jmetal.qualityindicator.impl; +package org.uma.jmetal.qualityindicator; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; +import org.uma.jmetal.qualityindicator.impl.InvertedGenerationalDistancePlus; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.JMetalException; import org.uma.jmetal.util.checking.exception.NullParameterException; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/R2Test.java b/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/R2Test.java similarity index 95% rename from jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/R2Test.java rename to jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/R2Test.java index 7d2fc3bf79..fb6ff82ce7 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/R2Test.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/R2Test.java @@ -1,6 +1,7 @@ -package org.uma.jmetal.qualityindicator.impl; +package org.uma.jmetal.qualityindicator; import org.junit.Test; +import org.uma.jmetal.qualityindicator.impl.R2; import org.uma.jmetal.solution.Solution; import org.uma.jmetal.util.front.Front; import org.uma.jmetal.util.front.impl.ArrayFront; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/RelativeHypervolumeTest.java b/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/RelativeHypervolumeTest.java new file mode 100644 index 0000000000..004ec83706 --- /dev/null +++ b/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/RelativeHypervolumeTest.java @@ -0,0 +1,92 @@ +package org.uma.jmetal.qualityindicator; + +import org.junit.BeforeClass; +import org.junit.Ignore; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.uma.jmetal.qualityindicator.impl.RelativeHypervolume; +import org.uma.jmetal.util.front.Front; +import org.uma.jmetal.util.front.impl.ArrayFront; +import org.uma.jmetal.util.front.util.FrontUtils; +import org.uma.jmetal.util.point.PointSolution; +import org.uma.jmetal.util.point.impl.ArrayPoint; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.List; +import java.util.Properties; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +/** + * @author Antonio J. Nebro + * @version 1.0 + */ +public class RelativeHypervolumeTest { + public static double EPSILON = 0.0000000001; + + private static String frontDirectory ; + private static String resourcesDirectory ; + + @Rule public ExpectedException exception = ExpectedException.none(); + + @BeforeClass + public static void startup() throws IOException { + Properties jMetalProperties = new Properties() ; + jMetalProperties.load(new FileInputStream("../jmetal.properties")); + + resourcesDirectory = "../" + jMetalProperties.getProperty("resourcesDirectory") ; + frontDirectory = resourcesDirectory + "/" +jMetalProperties.getProperty("referenceFrontsDirectory") ; + } + + @Test + public void shouldConstructorWithReferencePointCreateAValidInstance() { + var relativeHypervolume = new RelativeHypervolume<>(new double[] {1.0, 1.0}); + + assertNotNull(relativeHypervolume); + } + + @Test + public void shouldEvaluateReturnOneInTheSimplestCase() { + var relativeHypervolume = new RelativeHypervolume(new double[] {1.0, 1.0}); + + Front frontToEvaluate = new ArrayFront(1, 2); + frontToEvaluate.setPoint(0, new ArrayPoint(new double[] {1.0, 1.0})); + + var point = new PointSolution(2); + point.setObjective(0, 1.0); + point.setObjective(1, 1.0); + List list = List.of(point); + + assertEquals(1.0, relativeHypervolume.evaluate(list), EPSILON); + } + + @Test + public void shouldEvaluateReturnZeroIfTheReferenceFrontIsEvaluatedWithItself() + throws FileNotFoundException { + var relativeHypervolume = + new RelativeHypervolume("../resources/referenceFrontsCSV/ZDT1.pf"); + + Front frontToEvaluate = new ArrayFront(frontDirectory +"/ZDT1.pf"); + assertEquals( + 0.0, + relativeHypervolume.evaluate(FrontUtils.convertFrontToSolutionList(frontToEvaluate)), + EPSILON); + } + + @Test + @Ignore + public void shouldEvaluateReturnZeroIfTheReferenceFrontIsEvaluatedWithAReferencePoint() + throws FileNotFoundException { + var relativeHypervolume = new RelativeHypervolume(new double[] {1.0, 1.0}); + + Front frontToEvaluate = new ArrayFront(frontDirectory +"/ZDT1.pf"); + assertEquals( + 0.0, + relativeHypervolume.evaluate(FrontUtils.convertFrontToSolutionList(frontToEvaluate)), + EPSILON); + } +} diff --git a/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/SetCoverageTest.java b/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/SetCoverageTest.java similarity index 99% rename from jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/SetCoverageTest.java rename to jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/SetCoverageTest.java index 99a26df676..d7c85c9eaa 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/SetCoverageTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/SetCoverageTest.java @@ -1,4 +1,4 @@ -package org.uma.jmetal.qualityindicator.impl; +package org.uma.jmetal.qualityindicator; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; @@ -6,6 +6,7 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; +import org.uma.jmetal.qualityindicator.impl.SetCoverage; import org.uma.jmetal.solution.Solution; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.JMetalException; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/hypervolume/PISAHypervolumeTest.java b/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/hypervolume/PISAHypervolumeTest.java index d830609834..fbe616c346 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/hypervolume/PISAHypervolumeTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/hypervolume/PISAHypervolumeTest.java @@ -1,17 +1,15 @@ package org.uma.jmetal.qualityindicator.impl.hypervolume; import org.junit.Test; -import org.uma.jmetal.problem.doubleproblem.DoubleProblem; -import org.uma.jmetal.problem.doubleproblem.impl.AbstractDoubleProblem; -import org.uma.jmetal.qualityindicator.impl.Hypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.front.Front; import org.uma.jmetal.util.front.impl.ArrayFront; +import org.uma.jmetal.util.front.util.FrontUtils; +import org.uma.jmetal.util.point.PointSolution; import org.uma.jmetal.util.point.impl.ArrayPoint; import java.io.FileNotFoundException; -import java.util.ArrayList; -import java.util.List; import static org.junit.Assert.assertEquals; @@ -40,68 +38,21 @@ public void shouldEvaluateWorkProperlyCase1() throws FileNotFoundException { referenceFront.setPoint(0, new ArrayPoint(new double[]{1.0, 0.0})); referenceFront.setPoint(0, new ArrayPoint(new double[]{0.0, 1.0})); - Front storeFront = new ArrayFront("../resources/referenceFronts/ZDT1.pf") ; + Front storedFront = new ArrayFront("../resources/referenceFrontsCSV/ZDT1.pf") ; - DoubleProblem problem = new MockDoubleProblem(2) ; - - List frontToEvaluate = new ArrayList<>() ; - for (int i = 0 ; i < storeFront.getNumberOfPoints(); i++) { - DoubleSolution solution = problem.createSolution() ; - solution.setObjective(0, storeFront.getPoint(i).getValue(0)); - solution.setObjective(1, storeFront.getPoint(i).getValue(1)); - frontToEvaluate.add(solution) ; - } - - Hypervolume hypervolume = new PISAHypervolume<>(referenceFront) ; - double result = hypervolume.evaluate(frontToEvaluate) ; + Hypervolume hypervolume = new PISAHypervolume<>(referenceFront) ; + double result = hypervolume.evaluate(FrontUtils.convertFrontToSolutionList(storedFront)) ; assertEquals(0.6661, result, 0.0001) ; } @Test public void shouldEvaluateWorkProperlyCase2() throws FileNotFoundException { - Front storeFront = new ArrayFront("../resources/referenceFronts/ZDT1.pf") ; - - DoubleProblem problem = new MockDoubleProblem(2) ; + Front storedFront = new ArrayFront("../resources/referenceFrontsCSV/ZDT1.pf") ; - List frontToEvaluate = new ArrayList<>() ; - for (int i = 0 ; i < storeFront.getNumberOfPoints(); i++) { - DoubleSolution solution = problem.createSolution() ; - solution.setObjective(0, storeFront.getPoint(i).getValue(0)); - solution.setObjective(1, storeFront.getPoint(i).getValue(1)); - frontToEvaluate.add(solution) ; - } - - Hypervolume hypervolume = new PISAHypervolume(new double[]{1.1, 1.1}) ; - double result = hypervolume.evaluate(frontToEvaluate) ; + Hypervolume hypervolume = new PISAHypervolume<>(new double[]{1.0, 1.0}) ; + double result = hypervolume.evaluate(FrontUtils.convertFrontToSolutionList(storedFront)) ; assertEquals(0.6661, result, 0.0001) ; } - - @SuppressWarnings("serial") - private class MockDoubleProblem extends AbstractDoubleProblem { - - /** Constructor */ - public MockDoubleProblem(Integer numberOfVariables) { - setNumberOfVariables(numberOfVariables); - setNumberOfObjectives(2); - - List lowerLimit = new ArrayList<>(getNumberOfVariables()) ; - List upperLimit = new ArrayList<>(getNumberOfVariables()) ; - - for (int i = 0; i < getNumberOfVariables(); i++) { - lowerLimit.add(-4.0); - upperLimit.add(4.0); - } - - setVariableBounds(lowerLimit, upperLimit); - } - - /** Evaluate() method */ - @Override - public void evaluate(DoubleSolution solution) { - solution.setObjective(0, 0.0); - solution.setObjective(1, 1.0); - } - } } \ No newline at end of file diff --git a/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/hypervolume/WFGHypervolumeTest.java b/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/hypervolume/WFGHypervolumeTest.java index 882a8dc924..8fa6d8587d 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/hypervolume/WFGHypervolumeTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/qualityindicator/impl/hypervolume/WFGHypervolumeTest.java @@ -3,6 +3,7 @@ import org.junit.Test; import org.uma.jmetal.problem.doubleproblem.DoubleProblem; import org.uma.jmetal.problem.doubleproblem.impl.AbstractDoubleProblem; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.WFGHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.front.Front; import org.uma.jmetal.util.front.impl.ArrayFront; @@ -124,7 +125,7 @@ public void shouldEvaluateWorkProperlyCase3() throws FileNotFoundException { */ @Test public void shouldEvaluateWorkProperlyCase4() throws FileNotFoundException { - Front storeFront = new ArrayFront("../resources/referenceFronts/ZDT1.pf") ; + Front storeFront = new ArrayFront("../resources/referenceFrontsCSV/ZDT1.pf") ; DoubleProblem problem = new MockDoubleProblem(2) ; diff --git a/jmetal-core/src/test/java/org/uma/jmetal/util/front/impl/ArrayFrontTest.java b/jmetal-core/src/test/java/org/uma/jmetal/util/front/impl/ArrayFrontTest.java index abaffd7b2d..3bcc561f87 100644 --- a/jmetal-core/src/test/java/org/uma/jmetal/util/front/impl/ArrayFrontTest.java +++ b/jmetal-core/src/test/java/org/uma/jmetal/util/front/impl/ArrayFrontTest.java @@ -2,10 +2,13 @@ import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; +import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; import org.junit.rules.ExpectedException; +import org.junit.runner.RunWith; import org.springframework.test.util.ReflectionTestUtils; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.solution.doublesolution.impl.DefaultDoubleSolution; @@ -18,10 +21,13 @@ import org.uma.jmetal.util.point.impl.ArrayPoint; import org.uma.jmetal.util.point.util.comparator.LexicographicalPointComparator; +import java.io.FileInputStream; import java.io.FileNotFoundException; +import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Properties; import static org.hamcrest.CoreMatchers.containsString; import static org.junit.Assert.*; @@ -32,9 +38,20 @@ */ public class ArrayFrontTest { private static final double EPSILON = 0.0000000000001; + private static String frontDirectory ; + private static String resourcesDirectory ; @Rule public ExpectedException exception = ExpectedException.none(); + @BeforeClass + public static void startup() throws IOException { + Properties jMetalProperties = new Properties() ; + jMetalProperties.load(new FileInputStream("../jmetal.properties")); + + resourcesDirectory = "../" + jMetalProperties.getProperty("resourcesDirectory") ; + frontDirectory = resourcesDirectory + "/" +jMetalProperties.getProperty("referenceFrontsDirectory") ; + } + @Test public void shouldDefaultConstructorCreateAnEmptyArrayFront() { Front front = new ArrayFront(); @@ -59,7 +76,7 @@ public void shouldCreateAnArrayFrontFromAnEmptyListRaiseAnException() { @Test public void shouldConstructorCreateAnArranFrontFromAFileContainingA2DFront() throws FileNotFoundException { - Front storeFront = new ArrayFront("../resources/referenceFronts/ZDT1.pf"); + Front storeFront = new ArrayFront(frontDirectory + "/ZDT1.pf"); assertEquals(1001, storeFront.getNumberOfPoints()); assertEquals(0.0, storeFront.getPoint(0).getValues()[0], 0.0001); @@ -69,11 +86,12 @@ public void shouldConstructorCreateAnArranFrontFromAFileContainingA2DFront() } @Test + @Ignore public void shouldConstructorCreateAnArranFrontFromAFileContainingA3DFront() throws FileNotFoundException { - Front storeFront = new ArrayFront("../resources/referenceFronts/DTLZ1.3D.pf"); + Front storeFront = new ArrayFront(frontDirectory + "/DTLZ1.3D.pf"); - assertEquals(10000, storeFront.getNumberOfPoints()); + assertEquals(9901, storeFront.getNumberOfPoints()); assertEquals(0.0, storeFront.getPoint(0).getValues()[0], 0.0001); assertEquals(0.0, storeFront.getPoint(0).getValues()[1], 0.0001); @@ -414,7 +432,7 @@ public void shouldCreateInputStreamThrownAnExceptionIfFileDoesNotExist() @Test public void shouldReadFrontAnEmptyFileCreateAnEmptyFront() throws FileNotFoundException { - String fileName = "../resources/unitTestsData/arrayFront/emptyFile.dat"; + String fileName = resourcesDirectory + "/unitTestsData/arrayFront/emptyFile.dat"; Front front = new ArrayFront(fileName); assertEquals(0, front.getNumberOfPoints()); @@ -423,7 +441,7 @@ public void shouldReadFrontAnEmptyFileCreateAnEmptyFront() throws FileNotFoundEx /** Test using a file containing: 1.0 2.0 -3.0 */ @Test public void shouldReadFrontAFileWithOnePointCreateTheCorrectFront() throws FileNotFoundException { - String fileName = "/arrayFront/fileWithOnePoint.dat"; + String fileName = resourcesDirectory + "/unitTestsData/arrayFront/fileWithOnePoint.dat"; Front front = new ArrayFront(fileName); @@ -450,7 +468,7 @@ public void shouldReadFrontWithALineContainingWrongDataRaiseAnException() @Test public void shouldReadFrontWithALineWithALineMissingDataRaiseAnException() throws FileNotFoundException, JMetalException { - String fileName = "../resources/unitTestsData/arrayFront/fileWithMissingData.dat"; + String fileName = resourcesDirectory + "/unitTestsData/arrayFront/fileWithMissingData.dat"; exception.expect(InvalidConditionException.class); @@ -461,7 +479,7 @@ public void shouldReadFrontWithALineWithALineMissingDataRaiseAnException() @Test public void shouldReadFrontFourPointsCreateTheCorrectFront() throws FileNotFoundException, JMetalException { - String fileName = "/arrayFront/fileWithFourPoints.dat"; + String fileName = resourcesDirectory + "/unitTestsData/arrayFront/fileWithFourPoints.dat"; Front front = new ArrayFront(fileName); diff --git a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/MOCellHVRunner.java b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/MOCellHVRunner.java index d954ef11ec..1b32853436 100644 --- a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/MOCellHVRunner.java +++ b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/MOCellHVRunner.java @@ -10,7 +10,7 @@ import org.uma.jmetal.operator.selection.SelectionOperator; import org.uma.jmetal.operator.selection.impl.BinaryTournamentSelection; import org.uma.jmetal.problem.Problem; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.AbstractAlgorithmRunner; import org.uma.jmetal.util.JMetalException; diff --git a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/ensemble/Ensemble2DNSGAIISMPSOMOEAD.java b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/ensemble/Ensemble2DNSGAIISMPSOMOEAD.java index eeefca0a3d..5f8c14d7b1 100644 --- a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/ensemble/Ensemble2DNSGAIISMPSOMOEAD.java +++ b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/ensemble/Ensemble2DNSGAIISMPSOMOEAD.java @@ -2,8 +2,8 @@ import org.uma.jmetal.algorithm.Algorithm; import org.uma.jmetal.algorithm.multiobjective.ensemble.AlgorithmEnsemble; -import org.uma.jmetal.algorithm.multiobjective.moead.MOEADDEWithArchive; -import org.uma.jmetal.algorithm.multiobjective.nsgaii.NSGAIIWithArchive; +import org.uma.jmetal.algorithm.multiobjective.moead.MOEADDE; +import org.uma.jmetal.algorithm.multiobjective.nsgaii.NSGAII; import org.uma.jmetal.algorithm.multiobjective.smpso.SMPSOWithArchive; import org.uma.jmetal.component.evaluation.Evaluation; import org.uma.jmetal.component.evaluation.impl.SequentialEvaluation; @@ -56,20 +56,20 @@ public static void main(String[] args) throws Exception { Termination termination = new TerminationByEvaluations(150000); Algorithm> nsgaII = - new NSGAIIWithArchive<>( - problem, - populationSize, - offspringPopulationSize, - new SBXCrossover(crossoverProbability, crossoverDistributionIndex), - new PolynomialMutation(mutationProbability, mutationDistributionIndex), - termination, - new NonDominatedSolutionListArchive<>()); + new NSGAII<>( + problem, + populationSize, + offspringPopulationSize, + new SBXCrossover(crossoverProbability, crossoverDistributionIndex), + new PolynomialMutation(mutationProbability, mutationDistributionIndex), + termination) + .withArchive(new NonDominatedSolutionListArchive<>()); int swarmSize = 100; BoundedArchive leadersArchive = new CrowdingDistanceArchive(swarmSize); - Evaluation evaluation = new SequentialEvaluation<>(); + Evaluation evaluation = new SequentialEvaluation<>(problem); Algorithm> smpso = new SMPSOWithArchive( @@ -93,18 +93,18 @@ public static void main(String[] args) throws Exception { Archive externalArchive = new NonDominatedSolutionListArchive<>(); Algorithm> moead = - new MOEADDEWithArchive( - problem, - 300, - cr, - f, - aggregativeFunction, - neighborhoodSelectionProbability, - maximumNumberOfReplacedSolutions, - neighborhoodSize, - "resources/weightVectorFiles/moead", - termination, - archive); + new MOEADDE( + problem, + 300, + cr, + f, + aggregativeFunction, + neighborhoodSelectionProbability, + maximumNumberOfReplacedSolutions, + neighborhoodSize, + "resources/weightVectorFiles/moead", + termination) + .withArchive(archive); List>> algorithmList = new ArrayList<>(); algorithmList.add(nsgaII); diff --git a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/ensemble/Ensemble3DNSGAIISMPSOMOEAD.java b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/ensemble/Ensemble3DNSGAIISMPSOMOEAD.java index db5238bc93..a785d64e45 100644 --- a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/ensemble/Ensemble3DNSGAIISMPSOMOEAD.java +++ b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/ensemble/Ensemble3DNSGAIISMPSOMOEAD.java @@ -2,8 +2,8 @@ import org.uma.jmetal.algorithm.Algorithm; import org.uma.jmetal.algorithm.multiobjective.ensemble.AlgorithmEnsemble; -import org.uma.jmetal.algorithm.multiobjective.moead.MOEADDEWithArchive; -import org.uma.jmetal.algorithm.multiobjective.nsgaii.NSGAIIWithArchive; +import org.uma.jmetal.algorithm.multiobjective.moead.MOEADDE; +import org.uma.jmetal.algorithm.multiobjective.nsgaii.NSGAII; import org.uma.jmetal.algorithm.multiobjective.smpso.SMPSOWithArchive; import org.uma.jmetal.component.evaluation.Evaluation; import org.uma.jmetal.component.evaluation.impl.SequentialEvaluation; @@ -38,11 +38,11 @@ public static void main(String[] args) throws Exception { DoubleProblem problem; String problemName; - //problemName = "org.uma.jmetal.problem.multiobjective.maf.MaF01PF_M5"; + // problemName = "org.uma.jmetal.problem.multiobjective.maf.MaF01PF_M5"; String referenceParetoFront = "resources/referenceFronts/MaF01PF_M5.txt"; - //problem = (DoubleProblem) ProblemUtils.loadProblem(problemName); - problem = new MaF01(12, 5) ; + // problem = (DoubleProblem) ProblemUtils.loadProblem(problemName); + problem = new MaF01(12, 5); Archive archive = new NonDominatedSolutionListArchive<>(); @@ -58,20 +58,20 @@ public static void main(String[] args) throws Exception { Termination termination = new TerminationByEvaluations(100000); Algorithm> nsgaII = - new NSGAIIWithArchive<>( - problem, - populationSize, - offspringPopulationSize, - new SBXCrossover(crossoverProbability, crossoverDistributionIndex), - new PolynomialMutation(mutationProbability, mutationDistributionIndex), - termination, - new NonDominatedSolutionListArchive<>()); + new NSGAII<>( + problem, + populationSize, + offspringPopulationSize, + new SBXCrossover(crossoverProbability, crossoverDistributionIndex), + new PolynomialMutation(mutationProbability, mutationDistributionIndex), + termination) + .withArchive(new NonDominatedSolutionListArchive<>()); int swarmSize = 100; BoundedArchive leadersArchive = new CrowdingDistanceArchive(swarmSize); - Evaluation evaluation = new SequentialEvaluation<>(); + Evaluation evaluation = new SequentialEvaluation<>(problem); Algorithm> smpso = new SMPSOWithArchive( @@ -95,18 +95,18 @@ public static void main(String[] args) throws Exception { Archive externalArchive = new NonDominatedSolutionListArchive<>(); Algorithm> moead = - new MOEADDEWithArchive( - problem, - 495, - cr, - f, - aggregativeFunction, - neighborhoodSelectionProbability, - maximumNumberOfReplacedSolutions, - neighborhoodSize, - "resources/weightVectorFiles/moead", - termination, - archive); + new MOEADDE( + problem, + 495, + cr, + f, + aggregativeFunction, + neighborhoodSelectionProbability, + maximumNumberOfReplacedSolutions, + neighborhoodSize, + "resources/weightVectorFiles/moead", + termination) + .withArchive(archive); List>> algorithmList = new ArrayList<>(); algorithmList.add(nsgaII); diff --git a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/moead/MOEADDEComponentBasedConfigurationExample.java b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/moead/MOEADDEComponentBasedConfigurationExample.java index 94f6241658..b31b7aaea4 100644 --- a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/moead/MOEADDEComponentBasedConfigurationExample.java +++ b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/moead/MOEADDEComponentBasedConfigurationExample.java @@ -88,11 +88,10 @@ public static void main(String[] args) throws FileNotFoundException { subProblemIdGenerator, maximumNumberOfReplacedSolutions); - Evaluation evaluation = new SequentialEvaluation<>(); + Evaluation evaluation = new SequentialEvaluation<>(problem); algorithm = new MOEADDE( - problem, evaluation, new RandomSolutionsCreation<>(problem, populationSize), new TerminationByEvaluations(150000), diff --git a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/moead/MOEADDEWithUnboundedNonDominatedArchiveExample.java b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/moead/MOEADDEWithUnboundedNonDominatedArchiveExample.java index 90a4215a3a..09716c0ce3 100644 --- a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/moead/MOEADDEWithUnboundedNonDominatedArchiveExample.java +++ b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/moead/MOEADDEWithUnboundedNonDominatedArchiveExample.java @@ -1,7 +1,7 @@ package org.uma.jmetal.example.multiobjective.moead; +import org.uma.jmetal.algorithm.ComponentBasedEvolutionaryAlgorithm; import org.uma.jmetal.algorithm.multiobjective.moead.MOEADDE; -import org.uma.jmetal.algorithm.multiobjective.moead.MOEADDEWithArchive; import org.uma.jmetal.component.termination.impl.TerminationByEvaluations; import org.uma.jmetal.problem.doubleproblem.DoubleProblem; import org.uma.jmetal.solution.doublesolution.DoubleSolution; @@ -33,7 +33,7 @@ public class MOEADDEWithUnboundedNonDominatedArchiveExample extends AbstractAlgo */ public static void main(String[] args) throws FileNotFoundException { DoubleProblem problem; - MOEADDE algorithm; + ComponentBasedEvolutionaryAlgorithm algorithm; String problemName = "org.uma.jmetal.problem.multiobjective.dtlz.DTLZ1"; String referenceParetoFront = "resources/referenceFronts/DTLZ1.3D.pf"; @@ -55,22 +55,23 @@ public static void main(String[] args) throws FileNotFoundException { Archive archive = new NonDominatedSolutionListArchive<>(); algorithm = - new MOEADDEWithArchive( - problem, - populationSize, - cr, - f, - aggregativeFunction, - neighborhoodSelectionProbability, - maximumNumberOfReplacedSolutions, - neighborhoodSize, - "resources/weightVectorFiles/moead", - new TerminationByEvaluations(maximumNumberOfFunctionEvaluations), - archive); + new MOEADDE( + problem, + populationSize, + cr, + f, + aggregativeFunction, + neighborhoodSelectionProbability, + maximumNumberOfReplacedSolutions, + neighborhoodSize, + "resources/weightVectorFiles/moead", + new TerminationByEvaluations(maximumNumberOfFunctionEvaluations)) + .withArchive(archive); algorithm.run(); - List population = SolutionListUtils.distanceBasedSubsetSelection(algorithm.getResult(), 100); + List population = + SolutionListUtils.distanceBasedSubsetSelection(algorithm.getResult(), 100); JMetalLogger.logger.info("Total execution time : " + algorithm.getTotalComputingTime() + "ms"); JMetalLogger.logger.info("Number of evaluations: " + algorithm.getEvaluations()); diff --git a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/moead/MOEADWithCrowdingDistanceArchiveExample.java b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/moead/MOEADWithCrowdingDistanceArchiveExample.java index d598823909..c5aa1615bc 100644 --- a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/moead/MOEADWithCrowdingDistanceArchiveExample.java +++ b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/moead/MOEADWithCrowdingDistanceArchiveExample.java @@ -1,6 +1,7 @@ package org.uma.jmetal.example.multiobjective.moead; -import org.uma.jmetal.algorithm.multiobjective.moead.MOEADWithArchive; +import org.uma.jmetal.algorithm.ComponentBasedEvolutionaryAlgorithm; +import org.uma.jmetal.algorithm.multiobjective.moead.MOEAD; import org.uma.jmetal.component.termination.impl.TerminationByEvaluations; import org.uma.jmetal.operator.crossover.CrossoverOperator; import org.uma.jmetal.operator.crossover.impl.SBXCrossover; @@ -35,7 +36,7 @@ public class MOEADWithCrowdingDistanceArchiveExample extends AbstractAlgorithmRu */ public static void main(String[] args) throws FileNotFoundException { DoubleProblem problem; - MOEADWithArchive algorithm; + ComponentBasedEvolutionaryAlgorithm algorithm; MutationOperator mutation; CrossoverOperator crossover; @@ -58,21 +59,21 @@ public static void main(String[] args) throws FileNotFoundException { int maximumNumberOfReplacedSolutions = 2; AggregativeFunction aggregativeFunction = new PenaltyBoundaryIntersection(); - Archive archive = new CrowdingDistanceArchive<>(100) ; + Archive archive = new CrowdingDistanceArchive<>(100); algorithm = - new MOEADWithArchive<>( - problem, - populationSize, - mutation, - crossover, - aggregativeFunction, - neighborhoodSelectionProbability, - maximumNumberOfReplacedSolutions, - neighborhoodSize, - "resources/weightVectorFiles/moead", - new TerminationByEvaluations(50000), - archive); + new MOEAD<>( + problem, + populationSize, + mutation, + crossover, + aggregativeFunction, + neighborhoodSelectionProbability, + maximumNumberOfReplacedSolutions, + neighborhoodSize, + "resources/weightVectorFiles/moead", + new TerminationByEvaluations(50000)) + .withArchive(archive); algorithm.run(); diff --git a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/moead/MOEADWithUnboundedNonDominatedArchiveExample.java b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/moead/MOEADWithUnboundedNonDominatedArchiveExample.java index a87b6232ba..c6497f6667 100644 --- a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/moead/MOEADWithUnboundedNonDominatedArchiveExample.java +++ b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/moead/MOEADWithUnboundedNonDominatedArchiveExample.java @@ -1,6 +1,7 @@ package org.uma.jmetal.example.multiobjective.moead; -import org.uma.jmetal.algorithm.multiobjective.moead.MOEADWithArchive; +import org.uma.jmetal.algorithm.ComponentBasedEvolutionaryAlgorithm; +import org.uma.jmetal.algorithm.multiobjective.moead.MOEAD; import org.uma.jmetal.component.termination.impl.TerminationByEvaluations; import org.uma.jmetal.operator.crossover.CrossoverOperator; import org.uma.jmetal.operator.crossover.impl.SBXCrossover; @@ -36,16 +37,16 @@ public class MOEADWithUnboundedNonDominatedArchiveExample extends AbstractAlgori */ public static void main(String[] args) throws FileNotFoundException { DoubleProblem problem; - MOEADWithArchive algorithm; + ComponentBasedEvolutionaryAlgorithm algorithm; MutationOperator mutation; CrossoverOperator crossover; String problemName = "org.uma.jmetal.problem.multiobjective.dtlz.DTLZ2"; - String referenceParetoFront = "resources/referenceFronts/DTLZ2.3D.pf"; + String referenceParetoFront = "resources/referenceFrontsCSV/DTLZ2.3D.pf"; problem = (DoubleProblem) ProblemUtils.loadProblem(problemName); - int populationSize = 300; + int populationSize = 91; crossover = new SBXCrossover(1.0, 20.0); @@ -62,23 +63,23 @@ public static void main(String[] args) throws FileNotFoundException { Archive archive = new NonDominatedSolutionListArchive<>(); algorithm = - new MOEADWithArchive<>( - problem, - populationSize, - mutation, - crossover, - aggregativeFunction, - neighborhoodSelectionProbability, - maximumNumberOfReplacedSolutions, - neighborhoodSize, - "resources/weightVectorFiles/moead", - new TerminationByEvaluations(50000), - archive); + new MOEAD<>( + problem, + populationSize, + mutation, + crossover, + aggregativeFunction, + neighborhoodSelectionProbability, + maximumNumberOfReplacedSolutions, + neighborhoodSize, + "resources/weightVectorFiles/moead", + new TerminationByEvaluations(50000)) + .withArchive(archive); algorithm.run(); List population = - SolutionListUtils.distanceBasedSubsetSelection(algorithm.getResult(), 100) ; + SolutionListUtils.distanceBasedSubsetSelection(algorithm.getResult(), 100); JMetalLogger.logger.info("Total execution time : " + algorithm.getTotalComputingTime() + "ms"); JMetalLogger.logger.info("Number of evaluations: " + algorithm.getEvaluations()); diff --git a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/nsgaii/NSGAIIComponentBasedConfigurationExample.java b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/nsgaii/NSGAIIComponentBasedConfigurationExample.java index 6afeb65b9c..82f6d709b7 100644 --- a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/nsgaii/NSGAIIComponentBasedConfigurationExample.java +++ b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/nsgaii/NSGAIIComponentBasedConfigurationExample.java @@ -15,7 +15,6 @@ import org.uma.jmetal.component.selection.impl.NaryTournamentMatingPoolSelection; import org.uma.jmetal.component.termination.Termination; import org.uma.jmetal.component.termination.impl.TerminationByEvaluations; -import org.uma.jmetal.component.variation.Variation; import org.uma.jmetal.component.variation.impl.CrossoverAndMutationVariation; import org.uma.jmetal.operator.crossover.CrossoverOperator; import org.uma.jmetal.operator.crossover.impl.SBXCrossover; @@ -23,8 +22,6 @@ import org.uma.jmetal.operator.mutation.impl.PolynomialMutation; import org.uma.jmetal.problem.Problem; import org.uma.jmetal.solution.doublesolution.DoubleSolution; -import org.uma.jmetal.solution.util.repairsolution.RepairDoubleSolution; -import org.uma.jmetal.solution.util.repairsolution.impl.RepairDoubleSolutionWithRandomValue; import org.uma.jmetal.util.AbstractAlgorithmRunner; import org.uma.jmetal.util.JMetalException; import org.uma.jmetal.util.JMetalLogger; @@ -48,13 +45,13 @@ public static void main(String[] args) throws JMetalException, FileNotFoundExcep Problem problem; NSGAII algorithm; - String problemName = "org.uma.jmetal.problem.multiobjective.zdt.ZDT1"; - String referenceParetoFront = "resources/referenceFronts/ZDT1.pf"; + String problemName = "org.uma.jmetal.problem.multiobjective.dtlz.DTLZ2"; + String referenceParetoFront = "resources/referenceFronts/DTLZ2.3D.pf"; problem = ProblemUtils.loadProblem(problemName); int populationSize = 100; - int offspringPopulationSize = 1; + int offspringPopulationSize = 100 ; int maxNumberOfEvaluations = 25000; DensityEstimator densityEstimator = new CrowdingDistanceDensityEstimator<>(); @@ -90,11 +87,10 @@ public static void main(String[] args) throws JMetalException, FileNotFoundExcep Termination termination = new TerminationByEvaluations(maxNumberOfEvaluations); - Evaluation evaluation = new SequentialEvaluation<>(); + Evaluation evaluation = new SequentialEvaluation<>(problem); algorithm = new NSGAII<>( - problem, evaluation, initialSolutionsCreation, termination, diff --git a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/nsgaii/NSGAIIDefaultConfigurationExample.java b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/nsgaii/NSGAIIDefaultConfigurationExample.java index 40157be23e..dffe6c7ecb 100644 --- a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/nsgaii/NSGAIIDefaultConfigurationExample.java +++ b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/nsgaii/NSGAIIDefaultConfigurationExample.java @@ -33,7 +33,7 @@ public static void main(String[] args) throws JMetalException, FileNotFoundExcep MutationOperator mutation; String problemName = "org.uma.jmetal.problem.multiobjective.zdt.ZDT1"; - String referenceParetoFront = "resources/referenceFronts/ZDT1.pf"; + String referenceParetoFront = "resources/referenceFrontsCSV/ZDT1.pf"; problem = ProblemUtils.loadProblem(problemName); diff --git a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/nsgaii/NSGAIIWithCrowdingDistanceArchiveExample.java b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/nsgaii/NSGAIIWithCrowdingDistanceArchiveExample.java index 24a0bbc41e..18dc295b50 100644 --- a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/nsgaii/NSGAIIWithCrowdingDistanceArchiveExample.java +++ b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/nsgaii/NSGAIIWithCrowdingDistanceArchiveExample.java @@ -1,6 +1,7 @@ package org.uma.jmetal.example.multiobjective.nsgaii; -import org.uma.jmetal.algorithm.multiobjective.nsgaii.NSGAIIWithArchive; +import org.uma.jmetal.algorithm.ComponentBasedEvolutionaryAlgorithm; +import org.uma.jmetal.algorithm.multiobjective.nsgaii.NSGAII; import org.uma.jmetal.component.termination.Termination; import org.uma.jmetal.component.termination.impl.TerminationByEvaluations; import org.uma.jmetal.operator.crossover.CrossoverOperator; @@ -30,7 +31,7 @@ public class NSGAIIWithCrowdingDistanceArchiveExample extends AbstractAlgorithmRunner { public static void main(String[] args) throws JMetalException, FileNotFoundException { Problem problem; - NSGAIIWithArchive algorithm; + ComponentBasedEvolutionaryAlgorithm algorithm; CrossoverOperator crossover; MutationOperator mutation; @@ -52,17 +53,12 @@ public static void main(String[] args) throws JMetalException, FileNotFoundExcep Termination termination = new TerminationByEvaluations(25000); - Archive archive = new CrowdingDistanceArchive<>(populationSize) ; + Archive archive = new CrowdingDistanceArchive<>(populationSize); algorithm = - new NSGAIIWithArchive<>( - problem, - populationSize, - offspringPopulationSize, - crossover, - mutation, - termination, - archive); + new NSGAII<>( + problem, populationSize, offspringPopulationSize, crossover, mutation, termination) + .withArchive(archive); algorithm.run(); @@ -71,9 +67,9 @@ public static void main(String[] args) throws JMetalException, FileNotFoundExcep JMetalLogger.logger.info("Number of evaluations: " + algorithm.getEvaluations()); new SolutionListOutput(population) - .setVarFileOutputContext(new DefaultFileOutputContext("VAR.csv", ",")) - .setFunFileOutputContext(new DefaultFileOutputContext("FUN.csv", ",")) - .print(); + .setVarFileOutputContext(new DefaultFileOutputContext("VAR.csv", ",")) + .setFunFileOutputContext(new DefaultFileOutputContext("FUN.csv", ",")) + .print(); JMetalLogger.logger.info("Random seed: " + JMetalRandom.getInstance().getSeed()); JMetalLogger.logger.info("Objectives values have been written to file FUN.csv"); diff --git a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/nsgaii/NSGAIIWithUnboundedNonDominatedArchiveExample.java b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/nsgaii/NSGAIIWithUnboundedNonDominatedArchiveExample.java index 7786363974..942e4435a5 100644 --- a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/nsgaii/NSGAIIWithUnboundedNonDominatedArchiveExample.java +++ b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/nsgaii/NSGAIIWithUnboundedNonDominatedArchiveExample.java @@ -1,6 +1,7 @@ package org.uma.jmetal.example.multiobjective.nsgaii; -import org.uma.jmetal.algorithm.multiobjective.nsgaii.NSGAIIWithArchive; +import org.uma.jmetal.algorithm.ComponentBasedEvolutionaryAlgorithm; +import org.uma.jmetal.algorithm.multiobjective.nsgaii.NSGAII; import org.uma.jmetal.component.ranking.Ranking; import org.uma.jmetal.component.ranking.impl.MergeNonDominatedSortRanking; import org.uma.jmetal.component.termination.Termination; @@ -29,11 +30,11 @@ public class NSGAIIWithUnboundedNonDominatedArchiveExample extends AbstractAlgorithmRunner { public static void main(String[] args) throws JMetalException, FileNotFoundException { Problem problem; - NSGAIIWithArchive algorithm; + ComponentBasedEvolutionaryAlgorithm algorithm; CrossoverOperator crossover; MutationOperator mutation; - String problemName = "org.uma.jmetal.problem.multiobjective.dtlz.DTLZ2" ; + String problemName = "org.uma.jmetal.problem.multiobjective.dtlz.DTLZ2"; String referenceParetoFront = "resources/referenceFronts/DTLZ2.3D.pf"; problem = ProblemUtils.loadProblem(problemName); @@ -56,37 +57,38 @@ public static void main(String[] args) throws JMetalException, FileNotFoundExcep Ranking ranking = new MergeNonDominatedSortRanking<>(); algorithm = - new NSGAIIWithArchive<>( - problem, - populationSize, - offspringPopulationSize, - crossover, - mutation, - termination, - ranking, - archive); + new NSGAII<>( + problem, + populationSize, + offspringPopulationSize, + crossover, + mutation, + termination, + ranking) + .withArchive(archive); algorithm.run(); - List population = SolutionListUtils.distanceBasedSubsetSelection(algorithm.getResult(), 100); + List population = + SolutionListUtils.distanceBasedSubsetSelection(algorithm.getResult(), 100); JMetalLogger.logger.info("Total execution time : " + algorithm.getTotalComputingTime() + "ms"); JMetalLogger.logger.info("Number of evaluations: " + algorithm.getEvaluations()); new SolutionListOutput(population) - .setVarFileOutputContext(new DefaultFileOutputContext("VAR.csv", ",")) - .setFunFileOutputContext(new DefaultFileOutputContext("FUN.csv",",")) - .print(); + .setVarFileOutputContext(new DefaultFileOutputContext("VAR.csv", ",")) + .setFunFileOutputContext(new DefaultFileOutputContext("FUN.csv", ",")) + .print(); new SolutionListOutput(algorithm.getPopulation()) - .setVarFileOutputContext(new DefaultFileOutputContext("POPVAR.csv", ",")) - .setFunFileOutputContext(new DefaultFileOutputContext("POPFUN.csv", ",")) - .print(); + .setVarFileOutputContext(new DefaultFileOutputContext("POPVAR.csv", ",")) + .setFunFileOutputContext(new DefaultFileOutputContext("POPFUN.csv", ",")) + .print(); new SolutionListOutput(algorithm.getArchive().getSolutionList()) - .setVarFileOutputContext(new DefaultFileOutputContext("ARCVAR.csv", ",")) - .setFunFileOutputContext(new DefaultFileOutputContext("ARCFUN.csv", ",")) - .print(); + .setVarFileOutputContext(new DefaultFileOutputContext("ARCVAR.csv", ",")) + .setFunFileOutputContext(new DefaultFileOutputContext("ARCFUN.csv", ",")) + .print(); JMetalLogger.logger.info("Random seed: " + JMetalRandom.getInstance().getSeed()); JMetalLogger.logger.info("Objectives values have been written to file FUN.csv"); diff --git a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/nsgaii/ParallelNSGAIIExample.java b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/nsgaii/ParallelNSGAIIExample.java index 957031f175..342f9bebbe 100644 --- a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/nsgaii/ParallelNSGAIIExample.java +++ b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/nsgaii/ParallelNSGAIIExample.java @@ -59,7 +59,7 @@ public static void main(String[] args) throws JMetalException, FileNotFoundExcep algorithm = new NSGAII<>( problem, populationSize, offspringPopulationSize, crossover, mutation, termination) - .setEvaluation(new MultithreadedEvaluation<>(8)); + .setEvaluation(new MultithreadedEvaluation<>(8, problem)); algorithm.run(); diff --git a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/nsgaii/jmetal5version/NSGAIIMeasuresWithQualityIndicatorRunner.java b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/nsgaii/jmetal5version/NSGAIIMeasuresWithQualityIndicatorRunner.java index 989b579716..8c0d04e4a0 100644 --- a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/nsgaii/jmetal5version/NSGAIIMeasuresWithQualityIndicatorRunner.java +++ b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/nsgaii/jmetal5version/NSGAIIMeasuresWithQualityIndicatorRunner.java @@ -10,9 +10,9 @@ import org.uma.jmetal.operator.selection.SelectionOperator; import org.uma.jmetal.operator.selection.impl.BinaryTournamentSelection; import org.uma.jmetal.problem.Problem; -import org.uma.jmetal.qualityindicator.QualityIndicator; import org.uma.jmetal.qualityindicator.impl.Epsilon; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.QualityIndicator; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.AbstractAlgorithmRunner; import org.uma.jmetal.util.JMetalException; diff --git a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/SMPSOStandardSettingsExample.java b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/SMPSOStandardSettingsExample.java index 3f72b4b925..614eea9cc7 100644 --- a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/SMPSOStandardSettingsExample.java +++ b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/SMPSOStandardSettingsExample.java @@ -43,7 +43,7 @@ public static void main(String[] args) throws Exception { double mutationDistributionIndex = 20.0 ; mutation = new PolynomialMutation(mutationProbability, mutationDistributionIndex) ; - Evaluation evaluation = new SequentialEvaluation<>() ; + Evaluation evaluation = new SequentialEvaluation<>(problem) ; Termination termination = new TerminationByEvaluations(50000) ; algorithm = new SMPSO(problem, swarmSize, leadersArchive, mutation, evaluation, termination) ; diff --git a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/SMPSOStoppingByKeyboardExample.java b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/SMPSOStoppingByKeyboardExample.java index 89055d0809..b643862ac8 100644 --- a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/SMPSOStoppingByKeyboardExample.java +++ b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/SMPSOStoppingByKeyboardExample.java @@ -43,7 +43,7 @@ public static void main(String[] args) throws Exception { double mutationDistributionIndex = 20.0 ; mutation = new PolynomialMutation(mutationProbability, mutationDistributionIndex) ; - Evaluation evaluation = new SequentialEvaluation<>() ; + Evaluation evaluation = new SequentialEvaluation<>(problem) ; Termination termination = new TerminationByKeyboard() ; algorithm = new SMPSO(problem, swarmSize, leadersArchive, mutation, evaluation, termination) ; diff --git a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/SMPSOWithPlotliChartExample.java b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/SMPSOWithPlotliChartExample.java index 069ad02388..40c9e457d0 100644 --- a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/SMPSOWithPlotliChartExample.java +++ b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/SMPSOWithPlotliChartExample.java @@ -48,7 +48,7 @@ public static void main(String[] args) throws Exception { double mutationDistributionIndex = 20.0 ; mutation = new PolynomialMutation(mutationProbability, mutationDistributionIndex) ; - Evaluation evaluation = new SequentialEvaluation<>() ; + Evaluation evaluation = new SequentialEvaluation<>(problem) ; Termination termination = new TerminationByEvaluations(25000) ; algorithm = new SMPSO(problem, swarmSize, leadersArchive, mutation, evaluation, termination) ; diff --git a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/SMPSOWithRealTimeChartExample.java b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/SMPSOWithRealTimeChartExample.java index 18ad021001..1f00b84998 100644 --- a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/SMPSOWithRealTimeChartExample.java +++ b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/SMPSOWithRealTimeChartExample.java @@ -39,7 +39,7 @@ public static void main(String[] args) throws Exception { double mutationDistributionIndex = 20.0 ; mutation = new PolynomialMutation(mutationProbability, mutationDistributionIndex) ; - Evaluation evaluation = new SequentialEvaluation<>() ; + Evaluation evaluation = new SequentialEvaluation<>(problem) ; Termination termination = new TerminationByEvaluations(25000) ; algorithm = new SMPSO(problem, swarmSize, leadersArchive, mutation, evaluation, termination) ; diff --git a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/SMPSOWithUnboundedNonDominatedArchiveExample.java b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/SMPSOWithUnboundedNonDominatedArchiveExample.java index 5e84b5ed5b..dc864aeecc 100644 --- a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/SMPSOWithUnboundedNonDominatedArchiveExample.java +++ b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/SMPSOWithUnboundedNonDominatedArchiveExample.java @@ -46,7 +46,7 @@ public static void main(String[] args) throws Exception { double mutationDistributionIndex = 20.0 ; mutation = new PolynomialMutation(mutationProbability, mutationDistributionIndex) ; - Evaluation evaluation = new SequentialEvaluation<>() ; + Evaluation evaluation = new SequentialEvaluation<>(problem) ; Termination termination = new TerminationByEvaluations(50000) ; Archive externalArchive = new NonDominatedSolutionListArchive<>() ; diff --git a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/jmetal5version/SMPSOHv2Runner.java b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/jmetal5version/SMPSOHv2Runner.java index 192f5cf191..ba3c4570bb 100644 --- a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/jmetal5version/SMPSOHv2Runner.java +++ b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/jmetal5version/SMPSOHv2Runner.java @@ -7,7 +7,7 @@ import org.uma.jmetal.operator.mutation.MutationOperator; import org.uma.jmetal.operator.mutation.impl.PolynomialMutation; import org.uma.jmetal.problem.doubleproblem.DoubleProblem; -import org.uma.jmetal.qualityindicator.impl.hypervolume.WFGHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.WFGHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.AbstractAlgorithmRunner; import org.uma.jmetal.util.JMetalLogger; diff --git a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/jmetal5version/SMPSOHvRunner.java b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/jmetal5version/SMPSOHvRunner.java index 0bacf8e57f..8008d9ef93 100644 --- a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/jmetal5version/SMPSOHvRunner.java +++ b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smpso/jmetal5version/SMPSOHvRunner.java @@ -8,7 +8,7 @@ import org.uma.jmetal.operator.mutation.impl.PolynomialMutation; import org.uma.jmetal.problem.doubleproblem.DoubleProblem; import org.uma.jmetal.problem.multiobjective.lz09.LZ09F2; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.AbstractAlgorithmRunner; import org.uma.jmetal.util.JMetalLogger; diff --git a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smsemoa/jmetal5version/SMSEMOARunner.java b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smsemoa/jmetal5version/SMSEMOARunner.java index 5b6883b0ae..e2b73c341c 100644 --- a/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smsemoa/jmetal5version/SMSEMOARunner.java +++ b/jmetal-example/src/main/java/org/uma/jmetal/example/multiobjective/smsemoa/jmetal5version/SMSEMOARunner.java @@ -10,8 +10,8 @@ import org.uma.jmetal.operator.selection.SelectionOperator; import org.uma.jmetal.operator.selection.impl.RandomSelection; import org.uma.jmetal.problem.doubleproblem.DoubleProblem; -import org.uma.jmetal.qualityindicator.impl.Hypervolume; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.Hypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.AbstractAlgorithmRunner; import org.uma.jmetal.util.JMetalException; diff --git a/jmetal-lab/src/main/java/org/uma/jmetal/lab/experiment/component/ComputeQualityIndicators.java b/jmetal-lab/src/main/java/org/uma/jmetal/lab/experiment/component/ComputeQualityIndicators.java index bf28caef45..c3ee9c0faf 100644 --- a/jmetal-lab/src/main/java/org/uma/jmetal/lab/experiment/component/ComputeQualityIndicators.java +++ b/jmetal-lab/src/main/java/org/uma/jmetal/lab/experiment/component/ComputeQualityIndicators.java @@ -6,8 +6,8 @@ import org.uma.jmetal.lab.experiment.ExperimentComponent; import org.uma.jmetal.lab.experiment.util.ExperimentAlgorithm; import org.uma.jmetal.lab.experiment.util.ExperimentProblem; -import org.uma.jmetal.qualityindicator.QualityIndicator; import org.uma.jmetal.qualityindicator.impl.GenericIndicator; +import org.uma.jmetal.qualityindicator.QualityIndicator; import org.uma.jmetal.solution.Solution; import org.uma.jmetal.util.JMetalException; import org.uma.jmetal.util.JMetalLogger; diff --git a/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/BinaryProblemsStudy.java b/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/BinaryProblemsStudy.java index a4e2bd1123..e4b139613f 100644 --- a/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/BinaryProblemsStudy.java +++ b/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/BinaryProblemsStudy.java @@ -26,8 +26,8 @@ import org.uma.jmetal.problem.binaryproblem.BinaryProblem; import org.uma.jmetal.problem.multiobjective.OneZeroMax; import org.uma.jmetal.problem.multiobjective.zdt.ZDT5; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.qualityindicator.impl.*; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; import org.uma.jmetal.solution.binarysolution.BinarySolution; import org.uma.jmetal.util.JMetalException; import org.uma.jmetal.util.evaluator.impl.SequentialSolutionListEvaluator; diff --git a/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/ConstraintProblemsStudy.java b/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/ConstraintProblemsStudy.java index bd8e21b0aa..4bd363e018 100644 --- a/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/ConstraintProblemsStudy.java +++ b/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/ConstraintProblemsStudy.java @@ -21,7 +21,7 @@ import org.uma.jmetal.problem.multiobjective.*; import org.uma.jmetal.qualityindicator.impl.Epsilon; import org.uma.jmetal.qualityindicator.impl.InvertedGenerationalDistancePlus; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.JMetalException; import org.uma.jmetal.util.archive.impl.CrowdingDistanceArchive; diff --git a/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/DTLZStudy.java b/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/DTLZStudy.java index 980471189a..6884c43a5e 100644 --- a/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/DTLZStudy.java +++ b/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/DTLZStudy.java @@ -14,8 +14,8 @@ import org.uma.jmetal.problem.Problem; import org.uma.jmetal.problem.doubleproblem.DoubleProblem; import org.uma.jmetal.problem.multiobjective.dtlz.*; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.qualityindicator.impl.*; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.JMetalException; import org.uma.jmetal.util.archive.impl.CrowdingDistanceArchive; diff --git a/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/NSGAIIStudy.java b/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/NSGAIIStudy.java index 0c0a0513cc..b8b4f89e9e 100644 --- a/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/NSGAIIStudy.java +++ b/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/NSGAIIStudy.java @@ -11,8 +11,8 @@ import org.uma.jmetal.operator.mutation.impl.PolynomialMutation; import org.uma.jmetal.problem.Problem; import org.uma.jmetal.problem.multiobjective.zdt.*; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.qualityindicator.impl.*; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.JMetalException; diff --git a/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/NSGAIIStudy2.java b/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/NSGAIIStudy2.java index 07355bd30a..86754b42c8 100644 --- a/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/NSGAIIStudy2.java +++ b/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/NSGAIIStudy2.java @@ -11,8 +11,8 @@ import org.uma.jmetal.operator.mutation.impl.PolynomialMutation; import org.uma.jmetal.problem.Problem; import org.uma.jmetal.problem.multiobjective.zdt.*; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.qualityindicator.impl.*; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.JMetalException; diff --git a/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/WFGStudy.java b/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/WFGStudy.java index 0993a89807..fa4e60a836 100644 --- a/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/WFGStudy.java +++ b/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/WFGStudy.java @@ -14,8 +14,8 @@ import org.uma.jmetal.problem.Problem; import org.uma.jmetal.problem.doubleproblem.DoubleProblem; import org.uma.jmetal.problem.multiobjective.wfg.*; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.qualityindicator.impl.*; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.JMetalException; import org.uma.jmetal.util.archive.impl.CrowdingDistanceArchive; diff --git a/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/ZDTScalabilityIStudy.java b/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/ZDTScalabilityIStudy.java index 786d475c93..53459a5916 100644 --- a/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/ZDTScalabilityIStudy.java +++ b/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/ZDTScalabilityIStudy.java @@ -14,8 +14,8 @@ import org.uma.jmetal.problem.Problem; import org.uma.jmetal.problem.doubleproblem.DoubleProblem; import org.uma.jmetal.problem.multiobjective.zdt.ZDT1; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.qualityindicator.impl.*; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.JMetalException; import org.uma.jmetal.util.archive.impl.CrowdingDistanceArchive; diff --git a/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/ZDTScalabilityIStudy2.java b/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/ZDTScalabilityIStudy2.java index f251c25b5a..23ad895e75 100644 --- a/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/ZDTScalabilityIStudy2.java +++ b/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/ZDTScalabilityIStudy2.java @@ -14,8 +14,8 @@ import org.uma.jmetal.problem.Problem; import org.uma.jmetal.problem.doubleproblem.DoubleProblem; import org.uma.jmetal.problem.multiobjective.zdt.ZDT1; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.qualityindicator.impl.*; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.JMetalException; import org.uma.jmetal.util.archive.impl.CrowdingDistanceArchive; diff --git a/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/ZDTStudy.java b/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/ZDTStudy.java index 9ca258b6fd..992d740505 100644 --- a/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/ZDTStudy.java +++ b/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/ZDTStudy.java @@ -16,8 +16,8 @@ import org.uma.jmetal.problem.Problem; import org.uma.jmetal.problem.doubleproblem.DoubleProblem; import org.uma.jmetal.problem.multiobjective.zdt.*; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.qualityindicator.impl.*; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.JMetalException; import org.uma.jmetal.util.archive.impl.CrowdingDistanceArchive; diff --git a/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/ZDTStudy2.java b/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/ZDTStudy2.java index 6d2bbf14e0..e8070b7a9b 100644 --- a/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/ZDTStudy2.java +++ b/jmetal-lab/src/main/java/org/uma/jmetal/lab/studies/ZDTStudy2.java @@ -16,8 +16,8 @@ import org.uma.jmetal.problem.Problem; import org.uma.jmetal.problem.doubleproblem.DoubleProblem; import org.uma.jmetal.problem.multiobjective.zdt.*; +import org.uma.jmetal.qualityindicator.impl.hypervolume.impl.PISAHypervolume; import org.uma.jmetal.qualityindicator.impl.*; -import org.uma.jmetal.qualityindicator.impl.hypervolume.PISAHypervolume; import org.uma.jmetal.solution.doublesolution.DoubleSolution; import org.uma.jmetal.util.JMetalException; import org.uma.jmetal.util.archive.impl.CrowdingDistanceArchive; diff --git a/jmetal.properties b/jmetal.properties new file mode 100644 index 0000000000..9458b55985 --- /dev/null +++ b/jmetal.properties @@ -0,0 +1,2 @@ +resourcesDirectory=resources +referenceFrontsDirectory=referenceFrontsCSV diff --git a/pom.xml b/pom.xml index 7cca70b394..67511ba5ec 100644 --- a/pom.xml +++ b/pom.xml @@ -59,20 +59,10 @@ UTF-8 none + 11 + 11 - - - doclint-java8-disable - - [1.8,) - - - -Xdoclint:none - - - - @@ -99,13 +89,17 @@ org.apache.maven.plugins maven-compiler-plugin - 3.1 + 3.8.0 - - 1.8 - 1.8 - UTF-8 + 10 + + + org.ow2.asm + asm + 6.2 + + org.apache.maven.plugins @@ -259,11 +253,16 @@ jmetal-auto 6.0-SNAPSHOT - junit junit - 4.11 + 4.12 + test + + + org.junit.jupiter + junit-jupiter-engine + 5.5.2 test diff --git a/resources/referenceFrontsCSV/ConstrEx.pf b/resources/referenceFrontsCSV/ConstrEx.pf new file mode 100644 index 0000000000..7da809748c --- /dev/null +++ b/resources/referenceFrontsCSV/ConstrEx.pf @@ -0,0 +1,679 @@ +0.9991,1.000900811 +0.9973,1.00270731 +0.9955,1.004520342 +0.9937,1.006339942 +0.9919,1.008166146 +0.9901,1.00999899 +0.9883,1.011838511 +0.9865,1.013684744 +0.9847,1.015537727 +0.9829,1.017397497 +0.9811,1.019264091 +0.9793,1.021137547 +0.9775,1.023017903 +0.9757,1.024905196 +0.9739,1.026799466 +0.9721,1.028700751 +0.9703,1.03060909 +0.9685,1.032524522 +0.9667,1.034447088 +0.9649,1.036376827 +0.9631,1.038313778 +0.9613,1.040257984 +0.9595,1.042209484 +0.9577,1.04416832 +0.9559,1.046134533 +0.9541,1.048108165 +0.9523,1.050089258 +0.9505,1.052077854 +0.9487,1.054073996 +0.9469,1.056077727 +0.9451,1.058089091 +0.9433,1.060108131 +0.9415,1.062134891 +0.9397,1.064169416 +0.9379,1.06621175 +0.9361,1.068261938 +0.9343,1.070320026 +0.9325,1.072386059 +0.9307,1.074460084 +0.9289,1.076542147 +0.9271,1.078632294 +0.9253,1.080730574 +0.9235,1.082837033 +0.9217,1.08495172 +0.9199,1.087074682 +0.9181,1.089205969 +0.9163,1.091345629 +0.9145,1.093493712 +0.9127,1.095650268 +0.9109,1.097815347 +0.9091,1.099989 +0.9073,1.102171277 +0.9055,1.104362231 +0.9037,1.106561912 +0.9019,1.108770374 +0.9001,1.110987668 +0.8983,1.113213848 +0.8965,1.115448968 +0.8947,1.117693081 +0.8929,1.119946243 +0.8911,1.122208506 +0.8893,1.124479928 +0.8875,1.126760563 +0.8857,1.129050469 +0.8839,1.1313497 +0.8821,1.133658315 +0.8803,1.135976372 +0.8785,1.138303927 +0.8767,1.14064104 +0.8749,1.14298777 +0.8731,1.145344176 +0.8713,1.147710318 +0.8695,1.150086256 +0.8677,1.152472053 +0.8659,1.154867768 +0.8641,1.157273464 +0.8623,1.159689203 +0.8605,1.162115049 +0.8587,1.164551066 +0.8569,1.166997316 +0.8551,1.169453865 +0.8533,1.171920778 +0.8515,1.174398121 +0.8497,1.17688596 +0.8479,1.179384361 +0.8461,1.181893393 +0.8443,1.184413123 +0.8425,1.18694362 +0.8407,1.189484953 +0.8389,1.192037192 +0.8371,1.194600406 +0.8353,1.197174668 +0.8335,1.199760048 +0.8317,1.202356619 +0.8299,1.204964454 +0.8281,1.207583625 +0.8263,1.210214208 +0.8245,1.212856277 +0.8227,1.215509906 +0.8209,1.218175174 +0.8191,1.220852155 +0.8173,1.223540927 +0.8155,1.22624157 +0.8137,1.22895416 +0.8119,1.231678778 +0.8101,1.234415504 +0.8083,1.237164419 +0.8065,1.239925604 +0.8047,1.242699143 +0.8029,1.245485116 +0.8011,1.24828361 +0.7993,1.251094708 +0.7975,1.253918495 +0.7957,1.256755058 +0.7939,1.259604484 +0.7921,1.26246686 +0.7903,1.265342275 +0.7885,1.268230818 +0.7867,1.271132579 +0.7849,1.274047649 +0.7831,1.276976121 +0.7813,1.279918085 +0.7795,1.282873637 +0.7777,1.28584287 +0.7759,1.28882588 +0.7741,1.291822762 +0.7723,1.294833614 +0.7705,1.297858533 +0.7687,1.300897619 +0.7669,1.303950971 +0.7651,1.30701869 +0.7633,1.310100878 +0.7615,1.313197636 +0.7597,1.316309069 +0.7579,1.319435282 +0.7561,1.322576379 +0.7543,1.325732467 +0.7525,1.328903654 +0.7507,1.332090049 +0.7489,1.335291761 +0.7471,1.338508901 +0.7453,1.341741581 +0.7435,1.344989913 +0.7417,1.348254011 +0.7399,1.351533991 +0.7381,1.354829969 +0.7363,1.358142062 +0.7345,1.361470388 +0.7327,1.364815068 +0.7309,1.368176221 +0.7291,1.371553971 +0.7273,1.374948439 +0.7255,1.378359752 +0.7237,1.381788034 +0.7219,1.385233412 +0.7201,1.388696014 +0.7183,1.392175971 +0.7165,1.395673412 +0.7147,1.399188471 +0.7129,1.402721279 +0.7111,1.406271973 +0.7093,1.409840688 +0.7075,1.413427562 +0.7057,1.417032733 +0.7039,1.420656343 +0.7021,1.424298533 +0.7003,1.427959446 +0.6985,1.431639227 +0.6967,1.435338022 +0.6949,1.439055979 +0.6931,1.442793248 +0.6913,1.446549978 +0.6895,1.450326323 +0.6877,1.454122437 +0.6859,1.457938475 +0.6841,1.461774594 +0.6823,1.465630954 +0.6805,1.469507715 +0.6787,1.473405039 +0.6769,1.477323091 +0.6751,1.481262035 +0.6733,1.485222041 +0.6715,1.489203276 +0.6697,1.493205913 +0.6679,1.497230124 +0.6661,1.516288846 +0.6643,1.54297757 +0.6625,1.569811321 +0.6607,1.596791282 +0.6589,1.623918652 +0.6571,1.658803835 +0.6553,1.686250572 +0.6535,1.713848508 +0.6517,1.741598895 +0.6499,1.777196492 +0.6481,1.805276963 +0.6463,1.833513848 +0.6445,1.861908456 +0.6427,1.898241792 +0.6409,1.926977688 +0.6391,1.95587545 +0.6373,1.984936451 +0.6355,2.022029898 +0.6337,2.051443901 +0.6319,2.081025479 +0.6301,2.110776067 +0.6283,2.148655101 +0.6265,2.17877095 +0.6247,2.209060349 +0.6229,2.239524803 +0.6211,2.278216068 +0.6193,2.309058615 +0.6175,2.340080972 +0.6157,2.371284717 +0.6139,2.402671445 +0.6121,2.442411371 +0.6103,2.47419302 +0.6085,2.506162695 +0.6067,2.53832207 +0.6049,2.578938668 +0.6031,2.611507213 +0.6013,2.644270747 +0.5995,2.677231026 +0.5977,2.718755228 +0.5959,2.752139621 +0.5941,2.785726309 +0.5923,2.819517137 +0.5905,2.861981372 +0.5887,2.896211993 +0.5869,2.930652581 +0.5851,2.965305076 +0.5833,3.008743357 +0.5815,3.043852107 +0.5797,3.079178886 +0.5779,3.114725731 +0.5761,3.159173755 +0.5743,3.195194149 +0.5725,3.231441048 +0.5707,3.267916594 +0.5689,3.304622957 +0.5671,3.350379122 +0.5653,3.387581815 +0.5635,3.425022183 +0.5617,3.46270251 +0.5599,3.509555278 +0.5581,3.547751299 +0.5563,3.586194499 +0.5545,3.624887286 +0.5527,3.672878596 +0.5509,3.712107461 +0.5491,3.751593517 +0.5473,3.791339302 +0.5455,3.840513291 +0.5437,3.880816627 +0.5419,3.92138771 +0.5401,3.962229217 +0.5383,4.012632361 +0.5365,4.054054054 +0.5347,4.095754629 +0.5329,4.137736911 +0.5311,4.189418189 +0.5293,4.232004534 +0.5275,4.274881517 +0.5257,4.318052121 +0.5239,4.361519374 +0.5221,4.414863053 +0.5203,4.458965981 +0.5185,4.503375121 +0.5167,4.548093671 +0.5149,4.602835502 +0.5131,4.648216722 +0.5113,4.693917465 +0.5095,4.739941119 +0.5077,4.796139452 +0.5059,4.842854319 +0.5041,4.889902797 +0.5023,4.937288473 +0.5005,4.995004995 +0.4987,5.043112091 +0.4969,5.09156772 +0.4951,5.140375682 +0.4933,5.199675654 +0.4915,5.24923703 +0.4897,5.299162753 +0.4879,5.349456856 +0.4861,5.410409381 +0.4843,5.461490811 +0.4825,5.512953368 +0.4807,5.564801331 +0.4789,5.617039048 +0.4771,5.680150912 +0.4753,5.733221124 +0.4735,5.786694826 +0.4717,5.840576638 +0.4699,5.905511811 +0.4681,5.960264901 +0.4663,6.015440703 +0.4645,6.071044133 +0.4627,6.137886319 +0.4609,6.194402256 +0.4591,6.251361359 +0.4573,6.308768861 +0.4555,6.377607025 +0.4537,6.435970906 +0.4519,6.494799734 +0.4501,6.554099089 +0.4483,6.625027883 +0.4465,6.685330347 +0.4447,6.74612098 +0.4429,6.807405735 +0.4411,6.880525958 +0.4393,6.942863647 +0.4375,7.005714286 +0.4357,7.069084232 +0.4339,7.132979949 +0.4321,7.208979403 +0.4303,7.273994887 +0.4285,7.339556593 +0.4267,7.405671432 +0.4249,7.484113909 +0.4231,7.551406287 +0.4213,7.619273677 +0.4195,7.68772348 +0.4177,7.768733541 +0.4159,7.838422698 +0.4141,7.908717701 +0.4123,7.979626486 +0.4105,8.063337393 +0.4087,8.135551749 +0.4069,8.208405014 +0.4051,8.281905702 +0.4033,8.368460203 +0.4015,8.443337484 +0.3997,8.518889167 +0.3979,8.595124403 +0.3961,8.684675587 +0.3943,8.762363682 +0.3925,8.840764331 +0.3907,8.919887382 +0.3889,8.999742864 +0.3898,8.96613648 +0.3916,8.886618999 +0.3934,8.795119471 +0.3952,8.717105263 +0.397,8.639798489 +0.3988,8.563189569 +0.4006,8.474787818 +0.4024,8.399602386 +0.4042,8.325086591 +0.406,8.251231527 +0.4078,8.165767533 +0.4096,8.093261719 +0.4114,8.021390374 +0.4132,7.950145208 +0.415,7.86746988 +0.4168,7.797504798 +0.4186,7.728141424 +0.4204,7.659372027 +0.4222,7.59118901 +0.424,7.511792453 +0.4258,7.44480977 +0.4276,7.37839102 +0.4294,7.31252911 +0.4312,7.235621521 +0.433,7.170900693 +0.4348,7.106715731 +0.4366,7.043060009 +0.4384,6.968521898 +0.4402,6.90595184 +0.442,6.843891403 +0.4438,6.782334385 +0.4456,6.71005386 +0.4474,6.649530621 +0.4492,6.589492431 +0.451,6.529933481 +0.4528,6.459805654 +0.4546,6.401231852 +0.4564,6.34312007 +0.4582,6.285464863 +0.46,6.217391304 +0.4618,6.160675617 +0.4636,6.104400345 +0.4654,6.048560378 +0.4672,5.993150685 +0.469,5.92750533 +0.4708,5.872982158 +0.4726,5.818874312 +0.4744,5.765177066 +0.4762,5.701385972 +0.478,5.648535565 +0.4798,5.596081701 +0.4816,5.544019934 +0.4834,5.482002482 +0.4852,5.430750206 +0.487,5.379876797 +0.4888,5.329378069 +0.4906,5.269058296 +0.4924,5.219333875 +0.4942,5.169971671 +0.496,5.120967742 +0.4978,5.062274006 +0.4996,5.014011209 +0.5014,4.966094934 +0.5032,4.918521463 +0.505,4.861386139 +0.5068,4.814522494 +0.5086,4.767990562 +0.5104,4.721786834 +0.5122,4.675907848 +0.514,4.620622568 +0.5158,4.575416828 +0.5176,4.530525502 +0.5194,4.485945322 +0.5212,4.432079816 +0.523,4.388145315 +0.5248,4.344512195 +0.5266,4.301177364 +0.5284,4.248675246 +0.5302,4.205960015 +0.532,4.163533835 +0.5338,4.12139378 +0.5356,4.070201643 +0.5374,4.028656494 +0.5392,3.987388724 +0.541,3.946395564 +0.5428,3.896462786 +0.5446,3.856041131 +0.5464,3.815885798 +0.5482,3.775994163 +0.55,3.727272727 +0.5518,3.68793041 +0.5536,3.648843931 +0.5554,3.610010803 +0.5572,3.571428571 +0.559,3.524150268 +0.5608,3.486091298 +0.5626,3.448275862 +0.5644,3.41070163 +0.5662,3.3645355 +0.568,3.327464789 +0.5698,3.290628291 +0.5716,3.254023793 +0.5734,3.208929194 +0.5752,3.172809458 +0.577,3.136915078 +0.5788,3.101243953 +0.5806,3.057182225 +0.5824,3.021978022 +0.5842,2.986990757 +0.586,2.95221843 +0.5878,2.909152773 +0.5896,2.874830393 +0.5914,2.840716943 +0.5932,2.806810519 +0.595,2.764705882 +0.5968,2.731233244 +0.5986,2.697961911 +0.6004,2.664890073 +0.6022,2.632015942 +0.604,2.591059603 +0.6058,2.558600198 +0.6076,2.526333114 +0.6094,2.494256646 +0.6112,2.454188482 +0.613,2.422512235 +0.6148,2.39102147 +0.6166,2.359714564 +0.6184,2.320504528 +0.6202,2.289584005 +0.622,2.258842444 +0.6238,2.228278294 +0.6256,2.189897698 +0.6274,2.159706726 +0.6292,2.129688493 +0.631,2.099841521 +0.6328,2.062262958 +0.6346,2.032776552 +0.6364,2.003456945 +0.6382,1.974302726 +0.64,1.9375 +0.6418,1.908694297 +0.6436,1.88004972 +0.6454,1.851564921 +0.6472,1.823238566 +0.649,1.787365177 +0.6508,1.759373079 +0.6526,1.731535397 +0.6544,1.703850856 +0.6562,1.668698568 +0.658,1.641337386 +0.6598,1.614125493 +0.6616,1.587061669 +0.6634,1.552607778 +0.6652,1.525856885 +0.667,1.499250375 +0.6688,1.495215311 +0.6706,1.491201909 +0.6724,1.487209994 +0.6742,1.483239395 +0.676,1.479289941 +0.6778,1.475361464 +0.6796,1.471453796 +0.6814,1.467566774 +0.6832,1.463700234 +0.685,1.459854015 +0.6868,1.456027956 +0.6886,1.4522219 +0.6904,1.448435689 +0.6922,1.444669171 +0.694,1.44092219 +0.6958,1.437194596 +0.6976,1.433486239 +0.6994,1.429796969 +0.7012,1.42612664 +0.703,1.422475107 +0.7048,1.418842225 +0.7066,1.415227852 +0.7084,1.411631846 +0.7102,1.408054069 +0.712,1.404494382 +0.7138,1.400952648 +0.7156,1.397428731 +0.7174,1.393922498 +0.7192,1.390433815 +0.721,1.386962552 +0.7228,1.383508578 +0.7246,1.380071764 +0.7264,1.376651982 +0.7282,1.373249107 +0.73,1.369863014 +0.7318,1.366493577 +0.7336,1.363140676 +0.7354,1.359804188 +0.7372,1.356483993 +0.739,1.353179973 +0.7408,1.349892009 +0.7426,1.346619984 +0.7444,1.343363783 +0.7462,1.340123291 +0.748,1.336898396 +0.7498,1.333688984 +0.7516,1.330494944 +0.7534,1.327316167 +0.7552,1.324152542 +0.757,1.321003963 +0.7588,1.317870322 +0.7606,1.314751512 +0.7624,1.311647429 +0.7642,1.308557969 +0.766,1.305483029 +0.7678,1.302422506 +0.7696,1.299376299 +0.7714,1.296344309 +0.7732,1.293326436 +0.775,1.290322581 +0.7768,1.287332647 +0.7786,1.284356537 +0.7804,1.281394157 +0.7822,1.27844541 +0.784,1.275510204 +0.7858,1.272588445 +0.7876,1.269680041 +0.7894,1.2667849 +0.7912,1.263902932 +0.793,1.261034048 +0.7948,1.258178158 +0.7966,1.255335174 +0.7984,1.25250501 +0.8002,1.249687578 +0.802,1.246882793 +0.8038,1.24409057 +0.8056,1.241310824 +0.8074,1.238543473 +0.8092,1.235788433 +0.811,1.233045623 +0.8128,1.230314961 +0.8146,1.227596366 +0.8164,1.22488976 +0.8182,1.222195062 +0.82,1.219512195 +0.8218,1.216841081 +0.8236,1.214181642 +0.8254,1.211533802 +0.8272,1.208897485 +0.829,1.206272618 +0.8308,1.203659124 +0.8326,1.20105693 +0.8344,1.198465964 +0.8362,1.195886152 +0.838,1.193317422 +0.8398,1.190759705 +0.8416,1.188212928 +0.8434,1.185677022 +0.8452,1.183151917 +0.847,1.180637544 +0.8488,1.178133836 +0.8506,1.175640724 +0.8524,1.173158142 +0.8542,1.170686022 +0.856,1.168224299 +0.8578,1.165772907 +0.8596,1.163331782 +0.8614,1.160900859 +0.8632,1.158480074 +0.865,1.156069364 +0.8668,1.153668666 +0.8686,1.151277918 +0.8704,1.148897059 +0.8722,1.146526026 +0.874,1.14416476 +0.8758,1.141813199 +0.8776,1.139471285 +0.8794,1.137138958 +0.8812,1.13481616 +0.883,1.132502831 +0.8848,1.130198915 +0.8866,1.127904354 +0.8884,1.12561909 +0.8902,1.123343069 +0.892,1.121076233 +0.8938,1.118818528 +0.8956,1.116569897 +0.8974,1.114330287 +0.8992,1.112099644 +0.901,1.109877913 +0.9028,1.107665042 +0.9046,1.105460977 +0.9064,1.103265666 +0.9082,1.101079057 +0.91,1.098901099 +0.9118,1.096731739 +0.9136,1.094570928 +0.9154,1.092418615 +0.9172,1.090274749 +0.919,1.088139282 +0.9208,1.086012163 +0.9226,1.083893345 +0.9244,1.081782778 +0.9262,1.079680415 +0.928,1.077586207 +0.9298,1.075500108 +0.9316,1.07342207 +0.9334,1.071352046 +0.9352,1.069289991 +0.937,1.067235859 +0.9388,1.065189604 +0.9406,1.06315118 +0.9424,1.061120543 +0.9442,1.059097649 +0.946,1.057082452 +0.9478,1.05507491 +0.9496,1.053074979 +0.9514,1.051082615 +0.9532,1.049097776 +0.955,1.047120419 +0.9568,1.045150502 +0.9586,1.043187982 +0.9604,1.04123282 +0.9622,1.039284972 +0.964,1.037344398 +0.9658,1.035411058 +0.9676,1.033484911 +0.9694,1.031565917 +0.9712,1.029654036 +0.973,1.027749229 +0.9748,1.025851457 +0.9766,1.02396068 +0.9784,1.02207686 +0.9802,1.020199959 +0.982,1.018329939 +0.9838,1.016466762 +0.9856,1.01461039 +0.9874,1.012760786 +0.9892,1.010917913 +0.991,1.009081736 +0.9928,1.007252216 +0.9946,1.005429318 +0.9964,1.003613007 +0.9982,1.001803246 diff --git a/resources/referenceFrontsCSV/LZ09_F1.pf b/resources/referenceFrontsCSV/LZ09_F1.pf new file mode 100644 index 0000000000..88feaa0ed2 --- /dev/null +++ b/resources/referenceFrontsCSV/LZ09_F1.pf @@ -0,0 +1,500 @@ +0.0000000e+000,1.0000000e+000 +1.0000000e+000,0.0000000e+000 +1.0020040e-001,6.8345553e-001 +1.0020040e-002,8.9989985e-001 +1.0220441e-001,6.8030576e-001 +1.0420842e-001,6.7718672e-001 +1.0621242e-001,6.7409752e-001 +1.0821643e-001,6.7103734e-001 +1.1022044e-001,6.6800536e-001 +1.1222445e-001,6.6500082e-001 +1.1422846e-001,6.6202299e-001 +1.1623246e-001,6.5907117e-001 +1.1823647e-001,6.5614469e-001 +1.2024048e-001,6.5324291e-001 +1.2024048e-002,8.9034578e-001 +1.2224449e-001,6.5036521e-001 +1.2424850e-001,6.4751100e-001 +1.2625251e-001,6.4467971e-001 +1.2825651e-001,6.4187082e-001 +1.3026052e-001,6.3908378e-001 +1.3226453e-001,6.3631809e-001 +1.3426854e-001,6.3357329e-001 +1.3627255e-001,6.3084889e-001 +1.3827655e-001,6.2814445e-001 +1.4028056e-001,6.2545953e-001 +1.4028056e-002,8.8155990e-001 +1.4228457e-001,6.2279373e-001 +1.4428858e-001,6.2014664e-001 +1.4629259e-001,6.1751786e-001 +1.4829659e-001,6.1490703e-001 +1.5030060e-001,6.1231379e-001 +1.5230461e-001,6.0973777e-001 +1.5430862e-001,6.0717864e-001 +1.5631263e-001,6.0463609e-001 +1.5831663e-001,6.0210977e-001 +1.6032064e-001,5.9959940e-001 +1.6032064e-002,8.7338221e-001 +1.6232465e-001,5.9710467e-001 +1.6432866e-001,5.9462529e-001 +1.6633267e-001,5.9216098e-001 +1.6833667e-001,5.8971148e-001 +1.7034068e-001,5.8727651e-001 +1.7234469e-001,5.8485582e-001 +1.7434870e-001,5.8244917e-001 +1.7635271e-001,5.8005631e-001 +1.7835671e-001,5.7767700e-001 +1.8036072e-001,5.7531103e-001 +1.8036072e-002,8.6570156e-001 +1.8236473e-001,5.7295816e-001 +1.8436874e-001,5.7061819e-001 +1.8637275e-001,5.6829090e-001 +1.8837675e-001,5.6597609e-001 +1.9038076e-001,5.6367356e-001 +1.9238477e-001,5.6138312e-001 +1.9438878e-001,5.5910457e-001 +1.9639279e-001,5.5683774e-001 +1.9839679e-001,5.5458245e-001 +2.0040080e-001,5.5233852e-001 +2.0040080e-002,8.5843701e-001 +2.0040080e-003,9.5523385e-001 +2.0240481e-001,5.5010578e-001 +2.0440882e-001,5.4788407e-001 +2.0641283e-001,5.4567322e-001 +2.0841683e-001,5.4347307e-001 +2.1042084e-001,5.4128348e-001 +2.1242485e-001,5.3910430e-001 +2.1442886e-001,5.3693536e-001 +2.1643287e-001,5.3477654e-001 +2.1843687e-001,5.3262769e-001 +2.2044088e-001,5.3048868e-001 +2.2044088e-002,8.5152748e-001 +2.2244489e-001,5.2835936e-001 +2.2444890e-001,5.2623962e-001 +2.2645291e-001,5.2412932e-001 +2.2845691e-001,5.2202833e-001 +2.3046092e-001,5.1993654e-001 +2.3246493e-001,5.1785383e-001 +2.3446894e-001,5.1578007e-001 +2.3647295e-001,5.1371516e-001 +2.3847695e-001,5.1165898e-001 +2.4048096e-001,5.0961142e-001 +2.4048096e-002,8.4492551e-001 +2.4248497e-001,5.0757237e-001 +2.4448898e-001,5.0554173e-001 +2.4649299e-001,5.0351940e-001 +2.4849699e-001,5.0150527e-001 +2.5050100e-001,4.9949925e-001 +2.5250501e-001,4.9750123e-001 +2.5450902e-001,4.9551113e-001 +2.5651303e-001,4.9352885e-001 +2.5851703e-001,4.9155430e-001 +2.6052104e-001,4.8958738e-001 +2.6052104e-002,8.3859336e-001 +2.6252505e-001,4.8762802e-001 +2.6452906e-001,4.8567612e-001 +2.6653307e-001,4.8373159e-001 +2.6853707e-001,4.8179437e-001 +2.7054108e-001,4.7986436e-001 +2.7254509e-001,4.7794149e-001 +2.7454910e-001,4.7602567e-001 +2.7655311e-001,4.7411683e-001 +2.7855711e-001,4.7221490e-001 +2.8056112e-001,4.7031979e-001 +2.8056112e-002,8.3250041e-001 +2.8256513e-001,4.6843144e-001 +2.8456914e-001,4.6654978e-001 +2.8657315e-001,4.6467473e-001 +2.8857715e-001,4.6280622e-001 +2.9058116e-001,4.6094419e-001 +2.9258517e-001,4.5908857e-001 +2.9458918e-001,4.5723930e-001 +2.9659319e-001,4.5539630e-001 +2.9859719e-001,4.5355952e-001 +3.0060120e-001,4.5172890e-001 +3.0060120e-002,8.2662145e-001 +3.0260521e-001,4.4990436e-001 +3.0460922e-001,4.4808586e-001 +3.0661323e-001,4.4627333e-001 +3.0861723e-001,4.4446671e-001 +3.1062124e-001,4.4266595e-001 +3.1262525e-001,4.4087099e-001 +3.1462926e-001,4.3908177e-001 +3.1663327e-001,4.3729824e-001 +3.1863727e-001,4.3552035e-001 +3.2064128e-001,4.3374804e-001 +3.2064128e-002,8.2093541e-001 +3.2264529e-001,4.3198126e-001 +3.2464930e-001,4.3021996e-001 +3.2665331e-001,4.2846408e-001 +3.2865731e-001,4.2671358e-001 +3.3066132e-001,4.2496842e-001 +3.3266533e-001,4.2322853e-001 +3.3466934e-001,4.2149387e-001 +3.3667335e-001,4.1976440e-001 +3.3867735e-001,4.1804007e-001 +3.4068136e-001,4.1632084e-001 +3.4068136e-002,8.1542444e-001 +3.4268537e-001,4.1460665e-001 +3.4468938e-001,4.1289747e-001 +3.4669339e-001,4.1119325e-001 +3.4869739e-001,4.0949395e-001 +3.5070140e-001,4.0779952e-001 +3.5270541e-001,4.0610993e-001 +3.5470942e-001,4.0442514e-001 +3.5671343e-001,4.0274509e-001 +3.5871743e-001,4.0106976e-001 +3.6072144e-001,3.9939910e-001 +3.6072144e-002,8.1007332e-001 +3.6272545e-001,3.9773307e-001 +3.6472946e-001,3.9607164e-001 +3.6673347e-001,3.9441477e-001 +3.6873747e-001,3.9276242e-001 +3.7074148e-001,3.9111456e-001 +3.7274549e-001,3.8947114e-001 +3.7474950e-001,3.8783213e-001 +3.7675351e-001,3.8619750e-001 +3.7875752e-001,3.8456721e-001 +3.8076152e-001,3.8294123e-001 +3.8076152e-002,8.0486888e-001 +3.8276553e-001,3.8131952e-001 +3.8476954e-001,3.7970206e-001 +3.8677355e-001,3.7808879e-001 +3.8877756e-001,3.7647971e-001 +3.9078156e-001,3.7487476e-001 +3.9278557e-001,3.7327393e-001 +3.9478958e-001,3.7167717e-001 +3.9679359e-001,3.7008446e-001 +3.9879760e-001,3.6849577e-001 +4.0080160e-001,3.6691106e-001 +4.0080160e-002,7.9979970e-001 +4.0080160e-003,9.3669111e-001 +4.0280561e-001,3.6533031e-001 +4.0480962e-001,3.6375349e-001 +4.0681363e-001,3.6218057e-001 +4.0881764e-001,3.6061151e-001 +4.1082164e-001,3.5904630e-001 +4.1282565e-001,3.5748490e-001 +4.1482966e-001,3.5592729e-001 +4.1683367e-001,3.5437343e-001 +4.1883768e-001,3.5282330e-001 +4.2084168e-001,3.5127688e-001 +4.2084168e-002,7.9485574e-001 +4.2284569e-001,3.4973414e-001 +4.2484970e-001,3.4819504e-001 +4.2685371e-001,3.4665958e-001 +4.2885772e-001,3.4512771e-001 +4.3086172e-001,3.4359942e-001 +4.3286573e-001,3.4207468e-001 +4.3486974e-001,3.4055346e-001 +4.3687375e-001,3.3903574e-001 +4.3887776e-001,3.3752151e-001 +4.4088176e-001,3.3601072e-001 +4.4088176e-002,7.9002815e-001 +4.4288577e-001,3.3450336e-001 +4.4488978e-001,3.3299942e-001 +4.4689379e-001,3.3149885e-001 +4.4889780e-001,3.3000165e-001 +4.5090180e-001,3.2850778e-001 +4.5290581e-001,3.2701723e-001 +4.5490982e-001,3.2552997e-001 +4.5691383e-001,3.2404599e-001 +4.5891784e-001,3.2256525e-001 +4.6092184e-001,3.2108775e-001 +4.6092184e-002,7.8530910e-001 +4.6292585e-001,3.1961345e-001 +4.6492986e-001,3.1814235e-001 +4.6693387e-001,3.1667441e-001 +4.6893788e-001,3.1520961e-001 +4.7094188e-001,3.1374794e-001 +4.7294589e-001,3.1228938e-001 +4.7494990e-001,3.1083391e-001 +4.7695391e-001,3.0938150e-001 +4.7895792e-001,3.0793215e-001 +4.8096192e-001,3.0648582e-001 +4.8096192e-002,7.8069156e-001 +4.8296593e-001,3.0504250e-001 +4.8496994e-001,3.0360217e-001 +4.8697395e-001,3.0216481e-001 +4.8897796e-001,3.0073041e-001 +4.9098196e-001,2.9929895e-001 +4.9298597e-001,2.9787040e-001 +4.9498998e-001,2.9644476e-001 +4.9699399e-001,2.9502199e-001 +4.9899800e-001,2.9360210e-001 +5.0100200e-001,2.9218505e-001 +5.0100200e-002,7.7616926e-001 +5.0300601e-001,2.9077083e-001 +5.0501002e-001,2.8935943e-001 +5.0701403e-001,2.8795082e-001 +5.0901804e-001,2.8654500e-001 +5.1102204e-001,2.8514194e-001 +5.1302605e-001,2.8374163e-001 +5.1503006e-001,2.8234405e-001 +5.1703407e-001,2.8094919e-001 +5.1903808e-001,2.7955703e-001 +5.2104208e-001,2.7816755e-001 +5.2104208e-002,7.7173654e-001 +5.2304609e-001,2.7678074e-001 +5.2505010e-001,2.7539659e-001 +5.2705411e-001,2.7401508e-001 +5.2905812e-001,2.7263619e-001 +5.3106212e-001,2.7125991e-001 +5.3306613e-001,2.6988622e-001 +5.3507014e-001,2.6851511e-001 +5.3707415e-001,2.6714657e-001 +5.3907816e-001,2.6578058e-001 +5.4108216e-001,2.6441713e-001 +5.4108216e-002,7.6738827e-001 +5.4308617e-001,2.6305619e-001 +5.4509018e-001,2.6169777e-001 +5.4709419e-001,2.6034184e-001 +5.4909820e-001,2.5898840e-001 +5.5110220e-001,2.5763742e-001 +5.5310621e-001,2.5628889e-001 +5.5511022e-001,2.5494281e-001 +5.5711423e-001,2.5359915e-001 +5.5911824e-001,2.5225791e-001 +5.6112224e-001,2.5091907e-001 +5.6112224e-002,7.6311981e-001 +5.6312625e-001,2.4958261e-001 +5.6513026e-001,2.4824854e-001 +5.6713427e-001,2.4691682e-001 +5.6913828e-001,2.4558746e-001 +5.7114228e-001,2.4426044e-001 +5.7314629e-001,2.4293574e-001 +5.7515030e-001,2.4161336e-001 +5.7715431e-001,2.4029327e-001 +5.7915832e-001,2.3897548e-001 +5.8116232e-001,2.3765997e-001 +5.8116232e-002,7.5892691e-001 +5.8316633e-001,2.3634672e-001 +5.8517034e-001,2.3503573e-001 +5.8717435e-001,2.3372698e-001 +5.8917836e-001,2.3242046e-001 +5.9118236e-001,2.3111616e-001 +5.9318637e-001,2.2981407e-001 +5.9519038e-001,2.2851417e-001 +5.9719439e-001,2.2721647e-001 +5.9919840e-001,2.2592094e-001 +6.0120240e-001,2.2462757e-001 +6.0120240e-002,7.5480571e-001 +6.0120240e-003,9.2246276e-001 +6.0320641e-001,2.2333636e-001 +6.0521042e-001,2.2204729e-001 +6.0721443e-001,2.2076035e-001 +6.0921844e-001,2.1947554e-001 +6.1122244e-001,2.1819283e-001 +6.1322645e-001,2.1691223e-001 +6.1523046e-001,2.1563372e-001 +6.1723447e-001,2.1435729e-001 +6.1923848e-001,2.1308293e-001 +6.2124248e-001,2.1181063e-001 +6.2124248e-002,7.5075264e-001 +6.2324649e-001,2.1054038e-001 +6.2525050e-001,2.0927217e-001 +6.2725451e-001,2.0800599e-001 +6.2925852e-001,2.0674183e-001 +6.3126253e-001,2.0547969e-001 +6.3326653e-001,2.0421954e-001 +6.3527054e-001,2.0296139e-001 +6.3727455e-001,2.0170522e-001 +6.3927856e-001,2.0045103e-001 +6.4128257e-001,1.9919880e-001 +6.4128257e-002,7.4676442e-001 +6.4328657e-001,1.9794852e-001 +6.4529058e-001,1.9670019e-001 +6.4729459e-001,1.9545380e-001 +6.4929860e-001,1.9420933e-001 +6.5130261e-001,1.9296679e-001 +6.5330661e-001,1.9172615e-001 +6.5531062e-001,1.9048742e-001 +6.5731463e-001,1.8925058e-001 +6.5931864e-001,1.8801562e-001 +6.6132265e-001,1.8678254e-001 +6.6132265e-002,7.4283806e-001 +6.6332665e-001,1.8555132e-001 +6.6533066e-001,1.8432196e-001 +6.6733467e-001,1.8309446e-001 +6.6933868e-001,1.8186879e-001 +6.7134269e-001,1.8064496e-001 +6.7334669e-001,1.7942295e-001 +6.7535070e-001,1.7820276e-001 +6.7735471e-001,1.7698438e-001 +6.7935872e-001,1.7576780e-001 +6.8136273e-001,1.7455301e-001 +6.8136273e-002,7.3897074e-001 +6.8336673e-001,1.7334001e-001 +6.8537074e-001,1.7212879e-001 +6.8737475e-001,1.7091933e-001 +6.8937876e-001,1.6971164e-001 +6.9138277e-001,1.6850570e-001 +6.9338677e-001,1.6730151e-001 +6.9539078e-001,1.6609906e-001 +6.9739479e-001,1.6489834e-001 +6.9939880e-001,1.6369934e-001 +7.0140281e-001,1.6250206e-001 +7.0140281e-002,7.3515990e-001 +7.0340681e-001,1.6130648e-001 +7.0541082e-001,1.6011261e-001 +7.0741483e-001,1.5892044e-001 +7.0941884e-001,1.5772995e-001 +7.1142285e-001,1.5654114e-001 +7.1342685e-001,1.5535401e-001 +7.1543086e-001,1.5416854e-001 +7.1743487e-001,1.5298473e-001 +7.1943888e-001,1.5180257e-001 +7.2144289e-001,1.5062206e-001 +7.2144289e-002,7.3140311e-001 +7.2344689e-001,1.4944319e-001 +7.2545090e-001,1.4826594e-001 +7.2745491e-001,1.4709033e-001 +7.2945892e-001,1.4591633e-001 +7.3146293e-001,1.4474394e-001 +7.3346693e-001,1.4357316e-001 +7.3547094e-001,1.4240398e-001 +7.3747495e-001,1.4123638e-001 +7.3947896e-001,1.4007038e-001 +7.4148297e-001,1.3890595e-001 +7.4148297e-002,7.2769815e-001 +7.4348697e-001,1.3774309e-001 +7.4549098e-001,1.3658180e-001 +7.4749499e-001,1.3542207e-001 +7.4949900e-001,1.3426390e-001 +7.5150301e-001,1.3310727e-001 +7.5350701e-001,1.3195218e-001 +7.5551102e-001,1.3079863e-001 +7.5751503e-001,1.2964661e-001 +7.5951904e-001,1.2849611e-001 +7.6152305e-001,1.2734712e-001 +7.6152305e-002,7.2404293e-001 +7.6352705e-001,1.2619965e-001 +7.6553106e-001,1.2505368e-001 +7.6753507e-001,1.2390921e-001 +7.6953908e-001,1.2276624e-001 +7.7154309e-001,1.2162475e-001 +7.7354709e-001,1.2048474e-001 +7.7555110e-001,1.1934621e-001 +7.7755511e-001,1.1820915e-001 +7.7955912e-001,1.1707355e-001 +7.8156313e-001,1.1593941e-001 +7.8156313e-002,7.2043549e-001 +7.8356713e-001,1.1480672e-001 +7.8557114e-001,1.1367549e-001 +7.8757515e-001,1.1254569e-001 +7.8957916e-001,1.1141733e-001 +7.9158317e-001,1.1029040e-001 +7.9358717e-001,1.0916490e-001 +7.9559118e-001,1.0804082e-001 +7.9759519e-001,1.0691815e-001 +7.9959920e-001,1.0579689e-001 +8.0160321e-001,1.0467704e-001 +8.0160321e-002,7.1687402e-001 +8.0160321e-003,9.1046770e-001 +8.0360721e-001,1.0355858e-001 +8.0561122e-001,1.0244152e-001 +8.0761523e-001,1.0132585e-001 +8.0961924e-001,1.0021156e-001 +8.1162325e-001,9.9098648e-002 +8.1362725e-001,9.7987110e-002 +8.1563126e-001,9.6876939e-002 +8.1763527e-001,9.5768132e-002 +8.1963928e-001,9.4660683e-002 +8.2164329e-001,9.3554587e-002 +8.2164329e-002,7.1335679e-001 +8.2364729e-001,9.2449839e-002 +8.2565130e-001,9.1346434e-002 +8.2765531e-001,9.0244368e-002 +8.2965932e-001,8.9143634e-002 +8.3166333e-001,8.8044230e-002 +8.3366733e-001,8.6946149e-002 +8.3567134e-001,8.5849387e-002 +8.3767535e-001,8.4753940e-002 +8.3967936e-001,8.3659802e-002 +8.4168337e-001,8.2566969e-002 +8.4168337e-002,7.0988220e-001 +8.4368737e-001,8.1475436e-002 +8.4569138e-001,8.0385199e-002 +8.4769539e-001,7.9296252e-002 +8.4969940e-001,7.8208593e-002 +8.5170341e-001,7.7122215e-002 +8.5370741e-001,7.6037114e-002 +8.5571142e-001,7.4953286e-002 +8.5771543e-001,7.3870727e-002 +8.5971944e-001,7.2789431e-002 +8.6172345e-001,7.1709395e-002 +8.6172345e-002,7.0644874e-001 +8.6372745e-001,7.0630614e-002 +8.6573146e-001,6.9553084e-002 +8.6773547e-001,6.8476801e-002 +8.6973948e-001,6.7401759e-002 +8.7174349e-001,6.6327955e-002 +8.7374749e-001,6.5255385e-002 +8.7575150e-001,6.4184044e-002 +8.7775551e-001,6.3113928e-002 +8.7975952e-001,6.2045034e-002 +8.8176353e-001,6.0977355e-002 +8.8176353e-002,7.0305497e-001 +8.8376754e-001,5.9910890e-002 +8.8577154e-001,5.8845633e-002 +8.8777555e-001,5.7781580e-002 +8.8977956e-001,5.6718727e-002 +8.9178357e-001,5.5657071e-002 +8.9378758e-001,5.4596607e-002 +8.9579158e-001,5.3537331e-002 +8.9779559e-001,5.2479240e-002 +8.9979960e-001,5.1422328e-002 +9.0180361e-001,5.0366593e-002 +9.0180361e-002,6.9969955e-001 +9.0380762e-001,4.9312031e-002 +9.0581162e-001,4.8258636e-002 +9.0781563e-001,4.7206407e-002 +9.0981964e-001,4.6155338e-002 +9.1182365e-001,4.5105426e-002 +9.1382766e-001,4.4056667e-002 +9.1583166e-001,4.3009058e-002 +9.1783567e-001,4.1962594e-002 +9.1983968e-001,4.0917272e-002 +9.2184369e-001,3.9873088e-002 +9.2184369e-002,6.9638121e-001 +9.2384770e-001,3.8830038e-002 +9.2585170e-001,3.7788119e-002 +9.2785571e-001,3.6747327e-002 +9.2985972e-001,3.5707659e-002 +9.3186373e-001,3.4669110e-002 +9.3386774e-001,3.3631677e-002 +9.3587174e-001,3.2595357e-002 +9.3787575e-001,3.1560146e-002 +9.3987976e-001,3.0526040e-002 +9.4188377e-001,2.9493036e-002 +9.4188377e-002,6.9309875e-001 +9.4388778e-001,2.8461130e-002 +9.4589178e-001,2.7430319e-002 +9.4789579e-001,2.6400600e-002 +9.4989980e-001,2.5371969e-002 +9.5190381e-001,2.4344422e-002 +9.5390782e-001,2.3317956e-002 +9.5591182e-001,2.2292567e-002 +9.5791583e-001,2.1268253e-002 +9.5991984e-001,2.0245010e-002 +9.6192385e-001,1.9222835e-002 +9.6192385e-002,6.8985103e-001 +9.6392786e-001,1.8201724e-002 +9.6593186e-001,1.7181673e-002 +9.6793587e-001,1.6162680e-002 +9.6993988e-001,1.5144742e-002 +9.7194389e-001,1.4127854e-002 +9.7394790e-001,1.3112015e-002 +9.7595190e-001,1.2097219e-002 +9.7795591e-001,1.1083466e-002 +9.7995992e-001,1.0070750e-002 +9.8196393e-001,9.0590694e-003 +9.8196393e-002,6.8663696e-001 +9.8396794e-001,8.0484206e-003 +9.8597194e-001,7.0388004e-003 +9.8797595e-001,6.0302057e-003 +9.8997996e-001,5.0226335e-003 +9.9198397e-001,4.0160805e-003 +9.9398798e-001,3.0105437e-003 +9.9599198e-001,2.0060201e-003 +9.9799599e-001,1.0025065e-003 diff --git a/resources/referenceFrontsCSV/LZ09_F2.pf b/resources/referenceFrontsCSV/LZ09_F2.pf new file mode 100644 index 0000000000..88feaa0ed2 --- /dev/null +++ b/resources/referenceFrontsCSV/LZ09_F2.pf @@ -0,0 +1,500 @@ +0.0000000e+000,1.0000000e+000 +1.0000000e+000,0.0000000e+000 +1.0020040e-001,6.8345553e-001 +1.0020040e-002,8.9989985e-001 +1.0220441e-001,6.8030576e-001 +1.0420842e-001,6.7718672e-001 +1.0621242e-001,6.7409752e-001 +1.0821643e-001,6.7103734e-001 +1.1022044e-001,6.6800536e-001 +1.1222445e-001,6.6500082e-001 +1.1422846e-001,6.6202299e-001 +1.1623246e-001,6.5907117e-001 +1.1823647e-001,6.5614469e-001 +1.2024048e-001,6.5324291e-001 +1.2024048e-002,8.9034578e-001 +1.2224449e-001,6.5036521e-001 +1.2424850e-001,6.4751100e-001 +1.2625251e-001,6.4467971e-001 +1.2825651e-001,6.4187082e-001 +1.3026052e-001,6.3908378e-001 +1.3226453e-001,6.3631809e-001 +1.3426854e-001,6.3357329e-001 +1.3627255e-001,6.3084889e-001 +1.3827655e-001,6.2814445e-001 +1.4028056e-001,6.2545953e-001 +1.4028056e-002,8.8155990e-001 +1.4228457e-001,6.2279373e-001 +1.4428858e-001,6.2014664e-001 +1.4629259e-001,6.1751786e-001 +1.4829659e-001,6.1490703e-001 +1.5030060e-001,6.1231379e-001 +1.5230461e-001,6.0973777e-001 +1.5430862e-001,6.0717864e-001 +1.5631263e-001,6.0463609e-001 +1.5831663e-001,6.0210977e-001 +1.6032064e-001,5.9959940e-001 +1.6032064e-002,8.7338221e-001 +1.6232465e-001,5.9710467e-001 +1.6432866e-001,5.9462529e-001 +1.6633267e-001,5.9216098e-001 +1.6833667e-001,5.8971148e-001 +1.7034068e-001,5.8727651e-001 +1.7234469e-001,5.8485582e-001 +1.7434870e-001,5.8244917e-001 +1.7635271e-001,5.8005631e-001 +1.7835671e-001,5.7767700e-001 +1.8036072e-001,5.7531103e-001 +1.8036072e-002,8.6570156e-001 +1.8236473e-001,5.7295816e-001 +1.8436874e-001,5.7061819e-001 +1.8637275e-001,5.6829090e-001 +1.8837675e-001,5.6597609e-001 +1.9038076e-001,5.6367356e-001 +1.9238477e-001,5.6138312e-001 +1.9438878e-001,5.5910457e-001 +1.9639279e-001,5.5683774e-001 +1.9839679e-001,5.5458245e-001 +2.0040080e-001,5.5233852e-001 +2.0040080e-002,8.5843701e-001 +2.0040080e-003,9.5523385e-001 +2.0240481e-001,5.5010578e-001 +2.0440882e-001,5.4788407e-001 +2.0641283e-001,5.4567322e-001 +2.0841683e-001,5.4347307e-001 +2.1042084e-001,5.4128348e-001 +2.1242485e-001,5.3910430e-001 +2.1442886e-001,5.3693536e-001 +2.1643287e-001,5.3477654e-001 +2.1843687e-001,5.3262769e-001 +2.2044088e-001,5.3048868e-001 +2.2044088e-002,8.5152748e-001 +2.2244489e-001,5.2835936e-001 +2.2444890e-001,5.2623962e-001 +2.2645291e-001,5.2412932e-001 +2.2845691e-001,5.2202833e-001 +2.3046092e-001,5.1993654e-001 +2.3246493e-001,5.1785383e-001 +2.3446894e-001,5.1578007e-001 +2.3647295e-001,5.1371516e-001 +2.3847695e-001,5.1165898e-001 +2.4048096e-001,5.0961142e-001 +2.4048096e-002,8.4492551e-001 +2.4248497e-001,5.0757237e-001 +2.4448898e-001,5.0554173e-001 +2.4649299e-001,5.0351940e-001 +2.4849699e-001,5.0150527e-001 +2.5050100e-001,4.9949925e-001 +2.5250501e-001,4.9750123e-001 +2.5450902e-001,4.9551113e-001 +2.5651303e-001,4.9352885e-001 +2.5851703e-001,4.9155430e-001 +2.6052104e-001,4.8958738e-001 +2.6052104e-002,8.3859336e-001 +2.6252505e-001,4.8762802e-001 +2.6452906e-001,4.8567612e-001 +2.6653307e-001,4.8373159e-001 +2.6853707e-001,4.8179437e-001 +2.7054108e-001,4.7986436e-001 +2.7254509e-001,4.7794149e-001 +2.7454910e-001,4.7602567e-001 +2.7655311e-001,4.7411683e-001 +2.7855711e-001,4.7221490e-001 +2.8056112e-001,4.7031979e-001 +2.8056112e-002,8.3250041e-001 +2.8256513e-001,4.6843144e-001 +2.8456914e-001,4.6654978e-001 +2.8657315e-001,4.6467473e-001 +2.8857715e-001,4.6280622e-001 +2.9058116e-001,4.6094419e-001 +2.9258517e-001,4.5908857e-001 +2.9458918e-001,4.5723930e-001 +2.9659319e-001,4.5539630e-001 +2.9859719e-001,4.5355952e-001 +3.0060120e-001,4.5172890e-001 +3.0060120e-002,8.2662145e-001 +3.0260521e-001,4.4990436e-001 +3.0460922e-001,4.4808586e-001 +3.0661323e-001,4.4627333e-001 +3.0861723e-001,4.4446671e-001 +3.1062124e-001,4.4266595e-001 +3.1262525e-001,4.4087099e-001 +3.1462926e-001,4.3908177e-001 +3.1663327e-001,4.3729824e-001 +3.1863727e-001,4.3552035e-001 +3.2064128e-001,4.3374804e-001 +3.2064128e-002,8.2093541e-001 +3.2264529e-001,4.3198126e-001 +3.2464930e-001,4.3021996e-001 +3.2665331e-001,4.2846408e-001 +3.2865731e-001,4.2671358e-001 +3.3066132e-001,4.2496842e-001 +3.3266533e-001,4.2322853e-001 +3.3466934e-001,4.2149387e-001 +3.3667335e-001,4.1976440e-001 +3.3867735e-001,4.1804007e-001 +3.4068136e-001,4.1632084e-001 +3.4068136e-002,8.1542444e-001 +3.4268537e-001,4.1460665e-001 +3.4468938e-001,4.1289747e-001 +3.4669339e-001,4.1119325e-001 +3.4869739e-001,4.0949395e-001 +3.5070140e-001,4.0779952e-001 +3.5270541e-001,4.0610993e-001 +3.5470942e-001,4.0442514e-001 +3.5671343e-001,4.0274509e-001 +3.5871743e-001,4.0106976e-001 +3.6072144e-001,3.9939910e-001 +3.6072144e-002,8.1007332e-001 +3.6272545e-001,3.9773307e-001 +3.6472946e-001,3.9607164e-001 +3.6673347e-001,3.9441477e-001 +3.6873747e-001,3.9276242e-001 +3.7074148e-001,3.9111456e-001 +3.7274549e-001,3.8947114e-001 +3.7474950e-001,3.8783213e-001 +3.7675351e-001,3.8619750e-001 +3.7875752e-001,3.8456721e-001 +3.8076152e-001,3.8294123e-001 +3.8076152e-002,8.0486888e-001 +3.8276553e-001,3.8131952e-001 +3.8476954e-001,3.7970206e-001 +3.8677355e-001,3.7808879e-001 +3.8877756e-001,3.7647971e-001 +3.9078156e-001,3.7487476e-001 +3.9278557e-001,3.7327393e-001 +3.9478958e-001,3.7167717e-001 +3.9679359e-001,3.7008446e-001 +3.9879760e-001,3.6849577e-001 +4.0080160e-001,3.6691106e-001 +4.0080160e-002,7.9979970e-001 +4.0080160e-003,9.3669111e-001 +4.0280561e-001,3.6533031e-001 +4.0480962e-001,3.6375349e-001 +4.0681363e-001,3.6218057e-001 +4.0881764e-001,3.6061151e-001 +4.1082164e-001,3.5904630e-001 +4.1282565e-001,3.5748490e-001 +4.1482966e-001,3.5592729e-001 +4.1683367e-001,3.5437343e-001 +4.1883768e-001,3.5282330e-001 +4.2084168e-001,3.5127688e-001 +4.2084168e-002,7.9485574e-001 +4.2284569e-001,3.4973414e-001 +4.2484970e-001,3.4819504e-001 +4.2685371e-001,3.4665958e-001 +4.2885772e-001,3.4512771e-001 +4.3086172e-001,3.4359942e-001 +4.3286573e-001,3.4207468e-001 +4.3486974e-001,3.4055346e-001 +4.3687375e-001,3.3903574e-001 +4.3887776e-001,3.3752151e-001 +4.4088176e-001,3.3601072e-001 +4.4088176e-002,7.9002815e-001 +4.4288577e-001,3.3450336e-001 +4.4488978e-001,3.3299942e-001 +4.4689379e-001,3.3149885e-001 +4.4889780e-001,3.3000165e-001 +4.5090180e-001,3.2850778e-001 +4.5290581e-001,3.2701723e-001 +4.5490982e-001,3.2552997e-001 +4.5691383e-001,3.2404599e-001 +4.5891784e-001,3.2256525e-001 +4.6092184e-001,3.2108775e-001 +4.6092184e-002,7.8530910e-001 +4.6292585e-001,3.1961345e-001 +4.6492986e-001,3.1814235e-001 +4.6693387e-001,3.1667441e-001 +4.6893788e-001,3.1520961e-001 +4.7094188e-001,3.1374794e-001 +4.7294589e-001,3.1228938e-001 +4.7494990e-001,3.1083391e-001 +4.7695391e-001,3.0938150e-001 +4.7895792e-001,3.0793215e-001 +4.8096192e-001,3.0648582e-001 +4.8096192e-002,7.8069156e-001 +4.8296593e-001,3.0504250e-001 +4.8496994e-001,3.0360217e-001 +4.8697395e-001,3.0216481e-001 +4.8897796e-001,3.0073041e-001 +4.9098196e-001,2.9929895e-001 +4.9298597e-001,2.9787040e-001 +4.9498998e-001,2.9644476e-001 +4.9699399e-001,2.9502199e-001 +4.9899800e-001,2.9360210e-001 +5.0100200e-001,2.9218505e-001 +5.0100200e-002,7.7616926e-001 +5.0300601e-001,2.9077083e-001 +5.0501002e-001,2.8935943e-001 +5.0701403e-001,2.8795082e-001 +5.0901804e-001,2.8654500e-001 +5.1102204e-001,2.8514194e-001 +5.1302605e-001,2.8374163e-001 +5.1503006e-001,2.8234405e-001 +5.1703407e-001,2.8094919e-001 +5.1903808e-001,2.7955703e-001 +5.2104208e-001,2.7816755e-001 +5.2104208e-002,7.7173654e-001 +5.2304609e-001,2.7678074e-001 +5.2505010e-001,2.7539659e-001 +5.2705411e-001,2.7401508e-001 +5.2905812e-001,2.7263619e-001 +5.3106212e-001,2.7125991e-001 +5.3306613e-001,2.6988622e-001 +5.3507014e-001,2.6851511e-001 +5.3707415e-001,2.6714657e-001 +5.3907816e-001,2.6578058e-001 +5.4108216e-001,2.6441713e-001 +5.4108216e-002,7.6738827e-001 +5.4308617e-001,2.6305619e-001 +5.4509018e-001,2.6169777e-001 +5.4709419e-001,2.6034184e-001 +5.4909820e-001,2.5898840e-001 +5.5110220e-001,2.5763742e-001 +5.5310621e-001,2.5628889e-001 +5.5511022e-001,2.5494281e-001 +5.5711423e-001,2.5359915e-001 +5.5911824e-001,2.5225791e-001 +5.6112224e-001,2.5091907e-001 +5.6112224e-002,7.6311981e-001 +5.6312625e-001,2.4958261e-001 +5.6513026e-001,2.4824854e-001 +5.6713427e-001,2.4691682e-001 +5.6913828e-001,2.4558746e-001 +5.7114228e-001,2.4426044e-001 +5.7314629e-001,2.4293574e-001 +5.7515030e-001,2.4161336e-001 +5.7715431e-001,2.4029327e-001 +5.7915832e-001,2.3897548e-001 +5.8116232e-001,2.3765997e-001 +5.8116232e-002,7.5892691e-001 +5.8316633e-001,2.3634672e-001 +5.8517034e-001,2.3503573e-001 +5.8717435e-001,2.3372698e-001 +5.8917836e-001,2.3242046e-001 +5.9118236e-001,2.3111616e-001 +5.9318637e-001,2.2981407e-001 +5.9519038e-001,2.2851417e-001 +5.9719439e-001,2.2721647e-001 +5.9919840e-001,2.2592094e-001 +6.0120240e-001,2.2462757e-001 +6.0120240e-002,7.5480571e-001 +6.0120240e-003,9.2246276e-001 +6.0320641e-001,2.2333636e-001 +6.0521042e-001,2.2204729e-001 +6.0721443e-001,2.2076035e-001 +6.0921844e-001,2.1947554e-001 +6.1122244e-001,2.1819283e-001 +6.1322645e-001,2.1691223e-001 +6.1523046e-001,2.1563372e-001 +6.1723447e-001,2.1435729e-001 +6.1923848e-001,2.1308293e-001 +6.2124248e-001,2.1181063e-001 +6.2124248e-002,7.5075264e-001 +6.2324649e-001,2.1054038e-001 +6.2525050e-001,2.0927217e-001 +6.2725451e-001,2.0800599e-001 +6.2925852e-001,2.0674183e-001 +6.3126253e-001,2.0547969e-001 +6.3326653e-001,2.0421954e-001 +6.3527054e-001,2.0296139e-001 +6.3727455e-001,2.0170522e-001 +6.3927856e-001,2.0045103e-001 +6.4128257e-001,1.9919880e-001 +6.4128257e-002,7.4676442e-001 +6.4328657e-001,1.9794852e-001 +6.4529058e-001,1.9670019e-001 +6.4729459e-001,1.9545380e-001 +6.4929860e-001,1.9420933e-001 +6.5130261e-001,1.9296679e-001 +6.5330661e-001,1.9172615e-001 +6.5531062e-001,1.9048742e-001 +6.5731463e-001,1.8925058e-001 +6.5931864e-001,1.8801562e-001 +6.6132265e-001,1.8678254e-001 +6.6132265e-002,7.4283806e-001 +6.6332665e-001,1.8555132e-001 +6.6533066e-001,1.8432196e-001 +6.6733467e-001,1.8309446e-001 +6.6933868e-001,1.8186879e-001 +6.7134269e-001,1.8064496e-001 +6.7334669e-001,1.7942295e-001 +6.7535070e-001,1.7820276e-001 +6.7735471e-001,1.7698438e-001 +6.7935872e-001,1.7576780e-001 +6.8136273e-001,1.7455301e-001 +6.8136273e-002,7.3897074e-001 +6.8336673e-001,1.7334001e-001 +6.8537074e-001,1.7212879e-001 +6.8737475e-001,1.7091933e-001 +6.8937876e-001,1.6971164e-001 +6.9138277e-001,1.6850570e-001 +6.9338677e-001,1.6730151e-001 +6.9539078e-001,1.6609906e-001 +6.9739479e-001,1.6489834e-001 +6.9939880e-001,1.6369934e-001 +7.0140281e-001,1.6250206e-001 +7.0140281e-002,7.3515990e-001 +7.0340681e-001,1.6130648e-001 +7.0541082e-001,1.6011261e-001 +7.0741483e-001,1.5892044e-001 +7.0941884e-001,1.5772995e-001 +7.1142285e-001,1.5654114e-001 +7.1342685e-001,1.5535401e-001 +7.1543086e-001,1.5416854e-001 +7.1743487e-001,1.5298473e-001 +7.1943888e-001,1.5180257e-001 +7.2144289e-001,1.5062206e-001 +7.2144289e-002,7.3140311e-001 +7.2344689e-001,1.4944319e-001 +7.2545090e-001,1.4826594e-001 +7.2745491e-001,1.4709033e-001 +7.2945892e-001,1.4591633e-001 +7.3146293e-001,1.4474394e-001 +7.3346693e-001,1.4357316e-001 +7.3547094e-001,1.4240398e-001 +7.3747495e-001,1.4123638e-001 +7.3947896e-001,1.4007038e-001 +7.4148297e-001,1.3890595e-001 +7.4148297e-002,7.2769815e-001 +7.4348697e-001,1.3774309e-001 +7.4549098e-001,1.3658180e-001 +7.4749499e-001,1.3542207e-001 +7.4949900e-001,1.3426390e-001 +7.5150301e-001,1.3310727e-001 +7.5350701e-001,1.3195218e-001 +7.5551102e-001,1.3079863e-001 +7.5751503e-001,1.2964661e-001 +7.5951904e-001,1.2849611e-001 +7.6152305e-001,1.2734712e-001 +7.6152305e-002,7.2404293e-001 +7.6352705e-001,1.2619965e-001 +7.6553106e-001,1.2505368e-001 +7.6753507e-001,1.2390921e-001 +7.6953908e-001,1.2276624e-001 +7.7154309e-001,1.2162475e-001 +7.7354709e-001,1.2048474e-001 +7.7555110e-001,1.1934621e-001 +7.7755511e-001,1.1820915e-001 +7.7955912e-001,1.1707355e-001 +7.8156313e-001,1.1593941e-001 +7.8156313e-002,7.2043549e-001 +7.8356713e-001,1.1480672e-001 +7.8557114e-001,1.1367549e-001 +7.8757515e-001,1.1254569e-001 +7.8957916e-001,1.1141733e-001 +7.9158317e-001,1.1029040e-001 +7.9358717e-001,1.0916490e-001 +7.9559118e-001,1.0804082e-001 +7.9759519e-001,1.0691815e-001 +7.9959920e-001,1.0579689e-001 +8.0160321e-001,1.0467704e-001 +8.0160321e-002,7.1687402e-001 +8.0160321e-003,9.1046770e-001 +8.0360721e-001,1.0355858e-001 +8.0561122e-001,1.0244152e-001 +8.0761523e-001,1.0132585e-001 +8.0961924e-001,1.0021156e-001 +8.1162325e-001,9.9098648e-002 +8.1362725e-001,9.7987110e-002 +8.1563126e-001,9.6876939e-002 +8.1763527e-001,9.5768132e-002 +8.1963928e-001,9.4660683e-002 +8.2164329e-001,9.3554587e-002 +8.2164329e-002,7.1335679e-001 +8.2364729e-001,9.2449839e-002 +8.2565130e-001,9.1346434e-002 +8.2765531e-001,9.0244368e-002 +8.2965932e-001,8.9143634e-002 +8.3166333e-001,8.8044230e-002 +8.3366733e-001,8.6946149e-002 +8.3567134e-001,8.5849387e-002 +8.3767535e-001,8.4753940e-002 +8.3967936e-001,8.3659802e-002 +8.4168337e-001,8.2566969e-002 +8.4168337e-002,7.0988220e-001 +8.4368737e-001,8.1475436e-002 +8.4569138e-001,8.0385199e-002 +8.4769539e-001,7.9296252e-002 +8.4969940e-001,7.8208593e-002 +8.5170341e-001,7.7122215e-002 +8.5370741e-001,7.6037114e-002 +8.5571142e-001,7.4953286e-002 +8.5771543e-001,7.3870727e-002 +8.5971944e-001,7.2789431e-002 +8.6172345e-001,7.1709395e-002 +8.6172345e-002,7.0644874e-001 +8.6372745e-001,7.0630614e-002 +8.6573146e-001,6.9553084e-002 +8.6773547e-001,6.8476801e-002 +8.6973948e-001,6.7401759e-002 +8.7174349e-001,6.6327955e-002 +8.7374749e-001,6.5255385e-002 +8.7575150e-001,6.4184044e-002 +8.7775551e-001,6.3113928e-002 +8.7975952e-001,6.2045034e-002 +8.8176353e-001,6.0977355e-002 +8.8176353e-002,7.0305497e-001 +8.8376754e-001,5.9910890e-002 +8.8577154e-001,5.8845633e-002 +8.8777555e-001,5.7781580e-002 +8.8977956e-001,5.6718727e-002 +8.9178357e-001,5.5657071e-002 +8.9378758e-001,5.4596607e-002 +8.9579158e-001,5.3537331e-002 +8.9779559e-001,5.2479240e-002 +8.9979960e-001,5.1422328e-002 +9.0180361e-001,5.0366593e-002 +9.0180361e-002,6.9969955e-001 +9.0380762e-001,4.9312031e-002 +9.0581162e-001,4.8258636e-002 +9.0781563e-001,4.7206407e-002 +9.0981964e-001,4.6155338e-002 +9.1182365e-001,4.5105426e-002 +9.1382766e-001,4.4056667e-002 +9.1583166e-001,4.3009058e-002 +9.1783567e-001,4.1962594e-002 +9.1983968e-001,4.0917272e-002 +9.2184369e-001,3.9873088e-002 +9.2184369e-002,6.9638121e-001 +9.2384770e-001,3.8830038e-002 +9.2585170e-001,3.7788119e-002 +9.2785571e-001,3.6747327e-002 +9.2985972e-001,3.5707659e-002 +9.3186373e-001,3.4669110e-002 +9.3386774e-001,3.3631677e-002 +9.3587174e-001,3.2595357e-002 +9.3787575e-001,3.1560146e-002 +9.3987976e-001,3.0526040e-002 +9.4188377e-001,2.9493036e-002 +9.4188377e-002,6.9309875e-001 +9.4388778e-001,2.8461130e-002 +9.4589178e-001,2.7430319e-002 +9.4789579e-001,2.6400600e-002 +9.4989980e-001,2.5371969e-002 +9.5190381e-001,2.4344422e-002 +9.5390782e-001,2.3317956e-002 +9.5591182e-001,2.2292567e-002 +9.5791583e-001,2.1268253e-002 +9.5991984e-001,2.0245010e-002 +9.6192385e-001,1.9222835e-002 +9.6192385e-002,6.8985103e-001 +9.6392786e-001,1.8201724e-002 +9.6593186e-001,1.7181673e-002 +9.6793587e-001,1.6162680e-002 +9.6993988e-001,1.5144742e-002 +9.7194389e-001,1.4127854e-002 +9.7394790e-001,1.3112015e-002 +9.7595190e-001,1.2097219e-002 +9.7795591e-001,1.1083466e-002 +9.7995992e-001,1.0070750e-002 +9.8196393e-001,9.0590694e-003 +9.8196393e-002,6.8663696e-001 +9.8396794e-001,8.0484206e-003 +9.8597194e-001,7.0388004e-003 +9.8797595e-001,6.0302057e-003 +9.8997996e-001,5.0226335e-003 +9.9198397e-001,4.0160805e-003 +9.9398798e-001,3.0105437e-003 +9.9599198e-001,2.0060201e-003 +9.9799599e-001,1.0025065e-003 diff --git a/resources/referenceFrontsCSV/LZ09_F3.pf b/resources/referenceFrontsCSV/LZ09_F3.pf new file mode 100644 index 0000000000..88feaa0ed2 --- /dev/null +++ b/resources/referenceFrontsCSV/LZ09_F3.pf @@ -0,0 +1,500 @@ +0.0000000e+000,1.0000000e+000 +1.0000000e+000,0.0000000e+000 +1.0020040e-001,6.8345553e-001 +1.0020040e-002,8.9989985e-001 +1.0220441e-001,6.8030576e-001 +1.0420842e-001,6.7718672e-001 +1.0621242e-001,6.7409752e-001 +1.0821643e-001,6.7103734e-001 +1.1022044e-001,6.6800536e-001 +1.1222445e-001,6.6500082e-001 +1.1422846e-001,6.6202299e-001 +1.1623246e-001,6.5907117e-001 +1.1823647e-001,6.5614469e-001 +1.2024048e-001,6.5324291e-001 +1.2024048e-002,8.9034578e-001 +1.2224449e-001,6.5036521e-001 +1.2424850e-001,6.4751100e-001 +1.2625251e-001,6.4467971e-001 +1.2825651e-001,6.4187082e-001 +1.3026052e-001,6.3908378e-001 +1.3226453e-001,6.3631809e-001 +1.3426854e-001,6.3357329e-001 +1.3627255e-001,6.3084889e-001 +1.3827655e-001,6.2814445e-001 +1.4028056e-001,6.2545953e-001 +1.4028056e-002,8.8155990e-001 +1.4228457e-001,6.2279373e-001 +1.4428858e-001,6.2014664e-001 +1.4629259e-001,6.1751786e-001 +1.4829659e-001,6.1490703e-001 +1.5030060e-001,6.1231379e-001 +1.5230461e-001,6.0973777e-001 +1.5430862e-001,6.0717864e-001 +1.5631263e-001,6.0463609e-001 +1.5831663e-001,6.0210977e-001 +1.6032064e-001,5.9959940e-001 +1.6032064e-002,8.7338221e-001 +1.6232465e-001,5.9710467e-001 +1.6432866e-001,5.9462529e-001 +1.6633267e-001,5.9216098e-001 +1.6833667e-001,5.8971148e-001 +1.7034068e-001,5.8727651e-001 +1.7234469e-001,5.8485582e-001 +1.7434870e-001,5.8244917e-001 +1.7635271e-001,5.8005631e-001 +1.7835671e-001,5.7767700e-001 +1.8036072e-001,5.7531103e-001 +1.8036072e-002,8.6570156e-001 +1.8236473e-001,5.7295816e-001 +1.8436874e-001,5.7061819e-001 +1.8637275e-001,5.6829090e-001 +1.8837675e-001,5.6597609e-001 +1.9038076e-001,5.6367356e-001 +1.9238477e-001,5.6138312e-001 +1.9438878e-001,5.5910457e-001 +1.9639279e-001,5.5683774e-001 +1.9839679e-001,5.5458245e-001 +2.0040080e-001,5.5233852e-001 +2.0040080e-002,8.5843701e-001 +2.0040080e-003,9.5523385e-001 +2.0240481e-001,5.5010578e-001 +2.0440882e-001,5.4788407e-001 +2.0641283e-001,5.4567322e-001 +2.0841683e-001,5.4347307e-001 +2.1042084e-001,5.4128348e-001 +2.1242485e-001,5.3910430e-001 +2.1442886e-001,5.3693536e-001 +2.1643287e-001,5.3477654e-001 +2.1843687e-001,5.3262769e-001 +2.2044088e-001,5.3048868e-001 +2.2044088e-002,8.5152748e-001 +2.2244489e-001,5.2835936e-001 +2.2444890e-001,5.2623962e-001 +2.2645291e-001,5.2412932e-001 +2.2845691e-001,5.2202833e-001 +2.3046092e-001,5.1993654e-001 +2.3246493e-001,5.1785383e-001 +2.3446894e-001,5.1578007e-001 +2.3647295e-001,5.1371516e-001 +2.3847695e-001,5.1165898e-001 +2.4048096e-001,5.0961142e-001 +2.4048096e-002,8.4492551e-001 +2.4248497e-001,5.0757237e-001 +2.4448898e-001,5.0554173e-001 +2.4649299e-001,5.0351940e-001 +2.4849699e-001,5.0150527e-001 +2.5050100e-001,4.9949925e-001 +2.5250501e-001,4.9750123e-001 +2.5450902e-001,4.9551113e-001 +2.5651303e-001,4.9352885e-001 +2.5851703e-001,4.9155430e-001 +2.6052104e-001,4.8958738e-001 +2.6052104e-002,8.3859336e-001 +2.6252505e-001,4.8762802e-001 +2.6452906e-001,4.8567612e-001 +2.6653307e-001,4.8373159e-001 +2.6853707e-001,4.8179437e-001 +2.7054108e-001,4.7986436e-001 +2.7254509e-001,4.7794149e-001 +2.7454910e-001,4.7602567e-001 +2.7655311e-001,4.7411683e-001 +2.7855711e-001,4.7221490e-001 +2.8056112e-001,4.7031979e-001 +2.8056112e-002,8.3250041e-001 +2.8256513e-001,4.6843144e-001 +2.8456914e-001,4.6654978e-001 +2.8657315e-001,4.6467473e-001 +2.8857715e-001,4.6280622e-001 +2.9058116e-001,4.6094419e-001 +2.9258517e-001,4.5908857e-001 +2.9458918e-001,4.5723930e-001 +2.9659319e-001,4.5539630e-001 +2.9859719e-001,4.5355952e-001 +3.0060120e-001,4.5172890e-001 +3.0060120e-002,8.2662145e-001 +3.0260521e-001,4.4990436e-001 +3.0460922e-001,4.4808586e-001 +3.0661323e-001,4.4627333e-001 +3.0861723e-001,4.4446671e-001 +3.1062124e-001,4.4266595e-001 +3.1262525e-001,4.4087099e-001 +3.1462926e-001,4.3908177e-001 +3.1663327e-001,4.3729824e-001 +3.1863727e-001,4.3552035e-001 +3.2064128e-001,4.3374804e-001 +3.2064128e-002,8.2093541e-001 +3.2264529e-001,4.3198126e-001 +3.2464930e-001,4.3021996e-001 +3.2665331e-001,4.2846408e-001 +3.2865731e-001,4.2671358e-001 +3.3066132e-001,4.2496842e-001 +3.3266533e-001,4.2322853e-001 +3.3466934e-001,4.2149387e-001 +3.3667335e-001,4.1976440e-001 +3.3867735e-001,4.1804007e-001 +3.4068136e-001,4.1632084e-001 +3.4068136e-002,8.1542444e-001 +3.4268537e-001,4.1460665e-001 +3.4468938e-001,4.1289747e-001 +3.4669339e-001,4.1119325e-001 +3.4869739e-001,4.0949395e-001 +3.5070140e-001,4.0779952e-001 +3.5270541e-001,4.0610993e-001 +3.5470942e-001,4.0442514e-001 +3.5671343e-001,4.0274509e-001 +3.5871743e-001,4.0106976e-001 +3.6072144e-001,3.9939910e-001 +3.6072144e-002,8.1007332e-001 +3.6272545e-001,3.9773307e-001 +3.6472946e-001,3.9607164e-001 +3.6673347e-001,3.9441477e-001 +3.6873747e-001,3.9276242e-001 +3.7074148e-001,3.9111456e-001 +3.7274549e-001,3.8947114e-001 +3.7474950e-001,3.8783213e-001 +3.7675351e-001,3.8619750e-001 +3.7875752e-001,3.8456721e-001 +3.8076152e-001,3.8294123e-001 +3.8076152e-002,8.0486888e-001 +3.8276553e-001,3.8131952e-001 +3.8476954e-001,3.7970206e-001 +3.8677355e-001,3.7808879e-001 +3.8877756e-001,3.7647971e-001 +3.9078156e-001,3.7487476e-001 +3.9278557e-001,3.7327393e-001 +3.9478958e-001,3.7167717e-001 +3.9679359e-001,3.7008446e-001 +3.9879760e-001,3.6849577e-001 +4.0080160e-001,3.6691106e-001 +4.0080160e-002,7.9979970e-001 +4.0080160e-003,9.3669111e-001 +4.0280561e-001,3.6533031e-001 +4.0480962e-001,3.6375349e-001 +4.0681363e-001,3.6218057e-001 +4.0881764e-001,3.6061151e-001 +4.1082164e-001,3.5904630e-001 +4.1282565e-001,3.5748490e-001 +4.1482966e-001,3.5592729e-001 +4.1683367e-001,3.5437343e-001 +4.1883768e-001,3.5282330e-001 +4.2084168e-001,3.5127688e-001 +4.2084168e-002,7.9485574e-001 +4.2284569e-001,3.4973414e-001 +4.2484970e-001,3.4819504e-001 +4.2685371e-001,3.4665958e-001 +4.2885772e-001,3.4512771e-001 +4.3086172e-001,3.4359942e-001 +4.3286573e-001,3.4207468e-001 +4.3486974e-001,3.4055346e-001 +4.3687375e-001,3.3903574e-001 +4.3887776e-001,3.3752151e-001 +4.4088176e-001,3.3601072e-001 +4.4088176e-002,7.9002815e-001 +4.4288577e-001,3.3450336e-001 +4.4488978e-001,3.3299942e-001 +4.4689379e-001,3.3149885e-001 +4.4889780e-001,3.3000165e-001 +4.5090180e-001,3.2850778e-001 +4.5290581e-001,3.2701723e-001 +4.5490982e-001,3.2552997e-001 +4.5691383e-001,3.2404599e-001 +4.5891784e-001,3.2256525e-001 +4.6092184e-001,3.2108775e-001 +4.6092184e-002,7.8530910e-001 +4.6292585e-001,3.1961345e-001 +4.6492986e-001,3.1814235e-001 +4.6693387e-001,3.1667441e-001 +4.6893788e-001,3.1520961e-001 +4.7094188e-001,3.1374794e-001 +4.7294589e-001,3.1228938e-001 +4.7494990e-001,3.1083391e-001 +4.7695391e-001,3.0938150e-001 +4.7895792e-001,3.0793215e-001 +4.8096192e-001,3.0648582e-001 +4.8096192e-002,7.8069156e-001 +4.8296593e-001,3.0504250e-001 +4.8496994e-001,3.0360217e-001 +4.8697395e-001,3.0216481e-001 +4.8897796e-001,3.0073041e-001 +4.9098196e-001,2.9929895e-001 +4.9298597e-001,2.9787040e-001 +4.9498998e-001,2.9644476e-001 +4.9699399e-001,2.9502199e-001 +4.9899800e-001,2.9360210e-001 +5.0100200e-001,2.9218505e-001 +5.0100200e-002,7.7616926e-001 +5.0300601e-001,2.9077083e-001 +5.0501002e-001,2.8935943e-001 +5.0701403e-001,2.8795082e-001 +5.0901804e-001,2.8654500e-001 +5.1102204e-001,2.8514194e-001 +5.1302605e-001,2.8374163e-001 +5.1503006e-001,2.8234405e-001 +5.1703407e-001,2.8094919e-001 +5.1903808e-001,2.7955703e-001 +5.2104208e-001,2.7816755e-001 +5.2104208e-002,7.7173654e-001 +5.2304609e-001,2.7678074e-001 +5.2505010e-001,2.7539659e-001 +5.2705411e-001,2.7401508e-001 +5.2905812e-001,2.7263619e-001 +5.3106212e-001,2.7125991e-001 +5.3306613e-001,2.6988622e-001 +5.3507014e-001,2.6851511e-001 +5.3707415e-001,2.6714657e-001 +5.3907816e-001,2.6578058e-001 +5.4108216e-001,2.6441713e-001 +5.4108216e-002,7.6738827e-001 +5.4308617e-001,2.6305619e-001 +5.4509018e-001,2.6169777e-001 +5.4709419e-001,2.6034184e-001 +5.4909820e-001,2.5898840e-001 +5.5110220e-001,2.5763742e-001 +5.5310621e-001,2.5628889e-001 +5.5511022e-001,2.5494281e-001 +5.5711423e-001,2.5359915e-001 +5.5911824e-001,2.5225791e-001 +5.6112224e-001,2.5091907e-001 +5.6112224e-002,7.6311981e-001 +5.6312625e-001,2.4958261e-001 +5.6513026e-001,2.4824854e-001 +5.6713427e-001,2.4691682e-001 +5.6913828e-001,2.4558746e-001 +5.7114228e-001,2.4426044e-001 +5.7314629e-001,2.4293574e-001 +5.7515030e-001,2.4161336e-001 +5.7715431e-001,2.4029327e-001 +5.7915832e-001,2.3897548e-001 +5.8116232e-001,2.3765997e-001 +5.8116232e-002,7.5892691e-001 +5.8316633e-001,2.3634672e-001 +5.8517034e-001,2.3503573e-001 +5.8717435e-001,2.3372698e-001 +5.8917836e-001,2.3242046e-001 +5.9118236e-001,2.3111616e-001 +5.9318637e-001,2.2981407e-001 +5.9519038e-001,2.2851417e-001 +5.9719439e-001,2.2721647e-001 +5.9919840e-001,2.2592094e-001 +6.0120240e-001,2.2462757e-001 +6.0120240e-002,7.5480571e-001 +6.0120240e-003,9.2246276e-001 +6.0320641e-001,2.2333636e-001 +6.0521042e-001,2.2204729e-001 +6.0721443e-001,2.2076035e-001 +6.0921844e-001,2.1947554e-001 +6.1122244e-001,2.1819283e-001 +6.1322645e-001,2.1691223e-001 +6.1523046e-001,2.1563372e-001 +6.1723447e-001,2.1435729e-001 +6.1923848e-001,2.1308293e-001 +6.2124248e-001,2.1181063e-001 +6.2124248e-002,7.5075264e-001 +6.2324649e-001,2.1054038e-001 +6.2525050e-001,2.0927217e-001 +6.2725451e-001,2.0800599e-001 +6.2925852e-001,2.0674183e-001 +6.3126253e-001,2.0547969e-001 +6.3326653e-001,2.0421954e-001 +6.3527054e-001,2.0296139e-001 +6.3727455e-001,2.0170522e-001 +6.3927856e-001,2.0045103e-001 +6.4128257e-001,1.9919880e-001 +6.4128257e-002,7.4676442e-001 +6.4328657e-001,1.9794852e-001 +6.4529058e-001,1.9670019e-001 +6.4729459e-001,1.9545380e-001 +6.4929860e-001,1.9420933e-001 +6.5130261e-001,1.9296679e-001 +6.5330661e-001,1.9172615e-001 +6.5531062e-001,1.9048742e-001 +6.5731463e-001,1.8925058e-001 +6.5931864e-001,1.8801562e-001 +6.6132265e-001,1.8678254e-001 +6.6132265e-002,7.4283806e-001 +6.6332665e-001,1.8555132e-001 +6.6533066e-001,1.8432196e-001 +6.6733467e-001,1.8309446e-001 +6.6933868e-001,1.8186879e-001 +6.7134269e-001,1.8064496e-001 +6.7334669e-001,1.7942295e-001 +6.7535070e-001,1.7820276e-001 +6.7735471e-001,1.7698438e-001 +6.7935872e-001,1.7576780e-001 +6.8136273e-001,1.7455301e-001 +6.8136273e-002,7.3897074e-001 +6.8336673e-001,1.7334001e-001 +6.8537074e-001,1.7212879e-001 +6.8737475e-001,1.7091933e-001 +6.8937876e-001,1.6971164e-001 +6.9138277e-001,1.6850570e-001 +6.9338677e-001,1.6730151e-001 +6.9539078e-001,1.6609906e-001 +6.9739479e-001,1.6489834e-001 +6.9939880e-001,1.6369934e-001 +7.0140281e-001,1.6250206e-001 +7.0140281e-002,7.3515990e-001 +7.0340681e-001,1.6130648e-001 +7.0541082e-001,1.6011261e-001 +7.0741483e-001,1.5892044e-001 +7.0941884e-001,1.5772995e-001 +7.1142285e-001,1.5654114e-001 +7.1342685e-001,1.5535401e-001 +7.1543086e-001,1.5416854e-001 +7.1743487e-001,1.5298473e-001 +7.1943888e-001,1.5180257e-001 +7.2144289e-001,1.5062206e-001 +7.2144289e-002,7.3140311e-001 +7.2344689e-001,1.4944319e-001 +7.2545090e-001,1.4826594e-001 +7.2745491e-001,1.4709033e-001 +7.2945892e-001,1.4591633e-001 +7.3146293e-001,1.4474394e-001 +7.3346693e-001,1.4357316e-001 +7.3547094e-001,1.4240398e-001 +7.3747495e-001,1.4123638e-001 +7.3947896e-001,1.4007038e-001 +7.4148297e-001,1.3890595e-001 +7.4148297e-002,7.2769815e-001 +7.4348697e-001,1.3774309e-001 +7.4549098e-001,1.3658180e-001 +7.4749499e-001,1.3542207e-001 +7.4949900e-001,1.3426390e-001 +7.5150301e-001,1.3310727e-001 +7.5350701e-001,1.3195218e-001 +7.5551102e-001,1.3079863e-001 +7.5751503e-001,1.2964661e-001 +7.5951904e-001,1.2849611e-001 +7.6152305e-001,1.2734712e-001 +7.6152305e-002,7.2404293e-001 +7.6352705e-001,1.2619965e-001 +7.6553106e-001,1.2505368e-001 +7.6753507e-001,1.2390921e-001 +7.6953908e-001,1.2276624e-001 +7.7154309e-001,1.2162475e-001 +7.7354709e-001,1.2048474e-001 +7.7555110e-001,1.1934621e-001 +7.7755511e-001,1.1820915e-001 +7.7955912e-001,1.1707355e-001 +7.8156313e-001,1.1593941e-001 +7.8156313e-002,7.2043549e-001 +7.8356713e-001,1.1480672e-001 +7.8557114e-001,1.1367549e-001 +7.8757515e-001,1.1254569e-001 +7.8957916e-001,1.1141733e-001 +7.9158317e-001,1.1029040e-001 +7.9358717e-001,1.0916490e-001 +7.9559118e-001,1.0804082e-001 +7.9759519e-001,1.0691815e-001 +7.9959920e-001,1.0579689e-001 +8.0160321e-001,1.0467704e-001 +8.0160321e-002,7.1687402e-001 +8.0160321e-003,9.1046770e-001 +8.0360721e-001,1.0355858e-001 +8.0561122e-001,1.0244152e-001 +8.0761523e-001,1.0132585e-001 +8.0961924e-001,1.0021156e-001 +8.1162325e-001,9.9098648e-002 +8.1362725e-001,9.7987110e-002 +8.1563126e-001,9.6876939e-002 +8.1763527e-001,9.5768132e-002 +8.1963928e-001,9.4660683e-002 +8.2164329e-001,9.3554587e-002 +8.2164329e-002,7.1335679e-001 +8.2364729e-001,9.2449839e-002 +8.2565130e-001,9.1346434e-002 +8.2765531e-001,9.0244368e-002 +8.2965932e-001,8.9143634e-002 +8.3166333e-001,8.8044230e-002 +8.3366733e-001,8.6946149e-002 +8.3567134e-001,8.5849387e-002 +8.3767535e-001,8.4753940e-002 +8.3967936e-001,8.3659802e-002 +8.4168337e-001,8.2566969e-002 +8.4168337e-002,7.0988220e-001 +8.4368737e-001,8.1475436e-002 +8.4569138e-001,8.0385199e-002 +8.4769539e-001,7.9296252e-002 +8.4969940e-001,7.8208593e-002 +8.5170341e-001,7.7122215e-002 +8.5370741e-001,7.6037114e-002 +8.5571142e-001,7.4953286e-002 +8.5771543e-001,7.3870727e-002 +8.5971944e-001,7.2789431e-002 +8.6172345e-001,7.1709395e-002 +8.6172345e-002,7.0644874e-001 +8.6372745e-001,7.0630614e-002 +8.6573146e-001,6.9553084e-002 +8.6773547e-001,6.8476801e-002 +8.6973948e-001,6.7401759e-002 +8.7174349e-001,6.6327955e-002 +8.7374749e-001,6.5255385e-002 +8.7575150e-001,6.4184044e-002 +8.7775551e-001,6.3113928e-002 +8.7975952e-001,6.2045034e-002 +8.8176353e-001,6.0977355e-002 +8.8176353e-002,7.0305497e-001 +8.8376754e-001,5.9910890e-002 +8.8577154e-001,5.8845633e-002 +8.8777555e-001,5.7781580e-002 +8.8977956e-001,5.6718727e-002 +8.9178357e-001,5.5657071e-002 +8.9378758e-001,5.4596607e-002 +8.9579158e-001,5.3537331e-002 +8.9779559e-001,5.2479240e-002 +8.9979960e-001,5.1422328e-002 +9.0180361e-001,5.0366593e-002 +9.0180361e-002,6.9969955e-001 +9.0380762e-001,4.9312031e-002 +9.0581162e-001,4.8258636e-002 +9.0781563e-001,4.7206407e-002 +9.0981964e-001,4.6155338e-002 +9.1182365e-001,4.5105426e-002 +9.1382766e-001,4.4056667e-002 +9.1583166e-001,4.3009058e-002 +9.1783567e-001,4.1962594e-002 +9.1983968e-001,4.0917272e-002 +9.2184369e-001,3.9873088e-002 +9.2184369e-002,6.9638121e-001 +9.2384770e-001,3.8830038e-002 +9.2585170e-001,3.7788119e-002 +9.2785571e-001,3.6747327e-002 +9.2985972e-001,3.5707659e-002 +9.3186373e-001,3.4669110e-002 +9.3386774e-001,3.3631677e-002 +9.3587174e-001,3.2595357e-002 +9.3787575e-001,3.1560146e-002 +9.3987976e-001,3.0526040e-002 +9.4188377e-001,2.9493036e-002 +9.4188377e-002,6.9309875e-001 +9.4388778e-001,2.8461130e-002 +9.4589178e-001,2.7430319e-002 +9.4789579e-001,2.6400600e-002 +9.4989980e-001,2.5371969e-002 +9.5190381e-001,2.4344422e-002 +9.5390782e-001,2.3317956e-002 +9.5591182e-001,2.2292567e-002 +9.5791583e-001,2.1268253e-002 +9.5991984e-001,2.0245010e-002 +9.6192385e-001,1.9222835e-002 +9.6192385e-002,6.8985103e-001 +9.6392786e-001,1.8201724e-002 +9.6593186e-001,1.7181673e-002 +9.6793587e-001,1.6162680e-002 +9.6993988e-001,1.5144742e-002 +9.7194389e-001,1.4127854e-002 +9.7394790e-001,1.3112015e-002 +9.7595190e-001,1.2097219e-002 +9.7795591e-001,1.1083466e-002 +9.7995992e-001,1.0070750e-002 +9.8196393e-001,9.0590694e-003 +9.8196393e-002,6.8663696e-001 +9.8396794e-001,8.0484206e-003 +9.8597194e-001,7.0388004e-003 +9.8797595e-001,6.0302057e-003 +9.8997996e-001,5.0226335e-003 +9.9198397e-001,4.0160805e-003 +9.9398798e-001,3.0105437e-003 +9.9599198e-001,2.0060201e-003 +9.9799599e-001,1.0025065e-003 diff --git a/resources/referenceFrontsCSV/LZ09_F4.pf b/resources/referenceFrontsCSV/LZ09_F4.pf new file mode 100644 index 0000000000..88feaa0ed2 --- /dev/null +++ b/resources/referenceFrontsCSV/LZ09_F4.pf @@ -0,0 +1,500 @@ +0.0000000e+000,1.0000000e+000 +1.0000000e+000,0.0000000e+000 +1.0020040e-001,6.8345553e-001 +1.0020040e-002,8.9989985e-001 +1.0220441e-001,6.8030576e-001 +1.0420842e-001,6.7718672e-001 +1.0621242e-001,6.7409752e-001 +1.0821643e-001,6.7103734e-001 +1.1022044e-001,6.6800536e-001 +1.1222445e-001,6.6500082e-001 +1.1422846e-001,6.6202299e-001 +1.1623246e-001,6.5907117e-001 +1.1823647e-001,6.5614469e-001 +1.2024048e-001,6.5324291e-001 +1.2024048e-002,8.9034578e-001 +1.2224449e-001,6.5036521e-001 +1.2424850e-001,6.4751100e-001 +1.2625251e-001,6.4467971e-001 +1.2825651e-001,6.4187082e-001 +1.3026052e-001,6.3908378e-001 +1.3226453e-001,6.3631809e-001 +1.3426854e-001,6.3357329e-001 +1.3627255e-001,6.3084889e-001 +1.3827655e-001,6.2814445e-001 +1.4028056e-001,6.2545953e-001 +1.4028056e-002,8.8155990e-001 +1.4228457e-001,6.2279373e-001 +1.4428858e-001,6.2014664e-001 +1.4629259e-001,6.1751786e-001 +1.4829659e-001,6.1490703e-001 +1.5030060e-001,6.1231379e-001 +1.5230461e-001,6.0973777e-001 +1.5430862e-001,6.0717864e-001 +1.5631263e-001,6.0463609e-001 +1.5831663e-001,6.0210977e-001 +1.6032064e-001,5.9959940e-001 +1.6032064e-002,8.7338221e-001 +1.6232465e-001,5.9710467e-001 +1.6432866e-001,5.9462529e-001 +1.6633267e-001,5.9216098e-001 +1.6833667e-001,5.8971148e-001 +1.7034068e-001,5.8727651e-001 +1.7234469e-001,5.8485582e-001 +1.7434870e-001,5.8244917e-001 +1.7635271e-001,5.8005631e-001 +1.7835671e-001,5.7767700e-001 +1.8036072e-001,5.7531103e-001 +1.8036072e-002,8.6570156e-001 +1.8236473e-001,5.7295816e-001 +1.8436874e-001,5.7061819e-001 +1.8637275e-001,5.6829090e-001 +1.8837675e-001,5.6597609e-001 +1.9038076e-001,5.6367356e-001 +1.9238477e-001,5.6138312e-001 +1.9438878e-001,5.5910457e-001 +1.9639279e-001,5.5683774e-001 +1.9839679e-001,5.5458245e-001 +2.0040080e-001,5.5233852e-001 +2.0040080e-002,8.5843701e-001 +2.0040080e-003,9.5523385e-001 +2.0240481e-001,5.5010578e-001 +2.0440882e-001,5.4788407e-001 +2.0641283e-001,5.4567322e-001 +2.0841683e-001,5.4347307e-001 +2.1042084e-001,5.4128348e-001 +2.1242485e-001,5.3910430e-001 +2.1442886e-001,5.3693536e-001 +2.1643287e-001,5.3477654e-001 +2.1843687e-001,5.3262769e-001 +2.2044088e-001,5.3048868e-001 +2.2044088e-002,8.5152748e-001 +2.2244489e-001,5.2835936e-001 +2.2444890e-001,5.2623962e-001 +2.2645291e-001,5.2412932e-001 +2.2845691e-001,5.2202833e-001 +2.3046092e-001,5.1993654e-001 +2.3246493e-001,5.1785383e-001 +2.3446894e-001,5.1578007e-001 +2.3647295e-001,5.1371516e-001 +2.3847695e-001,5.1165898e-001 +2.4048096e-001,5.0961142e-001 +2.4048096e-002,8.4492551e-001 +2.4248497e-001,5.0757237e-001 +2.4448898e-001,5.0554173e-001 +2.4649299e-001,5.0351940e-001 +2.4849699e-001,5.0150527e-001 +2.5050100e-001,4.9949925e-001 +2.5250501e-001,4.9750123e-001 +2.5450902e-001,4.9551113e-001 +2.5651303e-001,4.9352885e-001 +2.5851703e-001,4.9155430e-001 +2.6052104e-001,4.8958738e-001 +2.6052104e-002,8.3859336e-001 +2.6252505e-001,4.8762802e-001 +2.6452906e-001,4.8567612e-001 +2.6653307e-001,4.8373159e-001 +2.6853707e-001,4.8179437e-001 +2.7054108e-001,4.7986436e-001 +2.7254509e-001,4.7794149e-001 +2.7454910e-001,4.7602567e-001 +2.7655311e-001,4.7411683e-001 +2.7855711e-001,4.7221490e-001 +2.8056112e-001,4.7031979e-001 +2.8056112e-002,8.3250041e-001 +2.8256513e-001,4.6843144e-001 +2.8456914e-001,4.6654978e-001 +2.8657315e-001,4.6467473e-001 +2.8857715e-001,4.6280622e-001 +2.9058116e-001,4.6094419e-001 +2.9258517e-001,4.5908857e-001 +2.9458918e-001,4.5723930e-001 +2.9659319e-001,4.5539630e-001 +2.9859719e-001,4.5355952e-001 +3.0060120e-001,4.5172890e-001 +3.0060120e-002,8.2662145e-001 +3.0260521e-001,4.4990436e-001 +3.0460922e-001,4.4808586e-001 +3.0661323e-001,4.4627333e-001 +3.0861723e-001,4.4446671e-001 +3.1062124e-001,4.4266595e-001 +3.1262525e-001,4.4087099e-001 +3.1462926e-001,4.3908177e-001 +3.1663327e-001,4.3729824e-001 +3.1863727e-001,4.3552035e-001 +3.2064128e-001,4.3374804e-001 +3.2064128e-002,8.2093541e-001 +3.2264529e-001,4.3198126e-001 +3.2464930e-001,4.3021996e-001 +3.2665331e-001,4.2846408e-001 +3.2865731e-001,4.2671358e-001 +3.3066132e-001,4.2496842e-001 +3.3266533e-001,4.2322853e-001 +3.3466934e-001,4.2149387e-001 +3.3667335e-001,4.1976440e-001 +3.3867735e-001,4.1804007e-001 +3.4068136e-001,4.1632084e-001 +3.4068136e-002,8.1542444e-001 +3.4268537e-001,4.1460665e-001 +3.4468938e-001,4.1289747e-001 +3.4669339e-001,4.1119325e-001 +3.4869739e-001,4.0949395e-001 +3.5070140e-001,4.0779952e-001 +3.5270541e-001,4.0610993e-001 +3.5470942e-001,4.0442514e-001 +3.5671343e-001,4.0274509e-001 +3.5871743e-001,4.0106976e-001 +3.6072144e-001,3.9939910e-001 +3.6072144e-002,8.1007332e-001 +3.6272545e-001,3.9773307e-001 +3.6472946e-001,3.9607164e-001 +3.6673347e-001,3.9441477e-001 +3.6873747e-001,3.9276242e-001 +3.7074148e-001,3.9111456e-001 +3.7274549e-001,3.8947114e-001 +3.7474950e-001,3.8783213e-001 +3.7675351e-001,3.8619750e-001 +3.7875752e-001,3.8456721e-001 +3.8076152e-001,3.8294123e-001 +3.8076152e-002,8.0486888e-001 +3.8276553e-001,3.8131952e-001 +3.8476954e-001,3.7970206e-001 +3.8677355e-001,3.7808879e-001 +3.8877756e-001,3.7647971e-001 +3.9078156e-001,3.7487476e-001 +3.9278557e-001,3.7327393e-001 +3.9478958e-001,3.7167717e-001 +3.9679359e-001,3.7008446e-001 +3.9879760e-001,3.6849577e-001 +4.0080160e-001,3.6691106e-001 +4.0080160e-002,7.9979970e-001 +4.0080160e-003,9.3669111e-001 +4.0280561e-001,3.6533031e-001 +4.0480962e-001,3.6375349e-001 +4.0681363e-001,3.6218057e-001 +4.0881764e-001,3.6061151e-001 +4.1082164e-001,3.5904630e-001 +4.1282565e-001,3.5748490e-001 +4.1482966e-001,3.5592729e-001 +4.1683367e-001,3.5437343e-001 +4.1883768e-001,3.5282330e-001 +4.2084168e-001,3.5127688e-001 +4.2084168e-002,7.9485574e-001 +4.2284569e-001,3.4973414e-001 +4.2484970e-001,3.4819504e-001 +4.2685371e-001,3.4665958e-001 +4.2885772e-001,3.4512771e-001 +4.3086172e-001,3.4359942e-001 +4.3286573e-001,3.4207468e-001 +4.3486974e-001,3.4055346e-001 +4.3687375e-001,3.3903574e-001 +4.3887776e-001,3.3752151e-001 +4.4088176e-001,3.3601072e-001 +4.4088176e-002,7.9002815e-001 +4.4288577e-001,3.3450336e-001 +4.4488978e-001,3.3299942e-001 +4.4689379e-001,3.3149885e-001 +4.4889780e-001,3.3000165e-001 +4.5090180e-001,3.2850778e-001 +4.5290581e-001,3.2701723e-001 +4.5490982e-001,3.2552997e-001 +4.5691383e-001,3.2404599e-001 +4.5891784e-001,3.2256525e-001 +4.6092184e-001,3.2108775e-001 +4.6092184e-002,7.8530910e-001 +4.6292585e-001,3.1961345e-001 +4.6492986e-001,3.1814235e-001 +4.6693387e-001,3.1667441e-001 +4.6893788e-001,3.1520961e-001 +4.7094188e-001,3.1374794e-001 +4.7294589e-001,3.1228938e-001 +4.7494990e-001,3.1083391e-001 +4.7695391e-001,3.0938150e-001 +4.7895792e-001,3.0793215e-001 +4.8096192e-001,3.0648582e-001 +4.8096192e-002,7.8069156e-001 +4.8296593e-001,3.0504250e-001 +4.8496994e-001,3.0360217e-001 +4.8697395e-001,3.0216481e-001 +4.8897796e-001,3.0073041e-001 +4.9098196e-001,2.9929895e-001 +4.9298597e-001,2.9787040e-001 +4.9498998e-001,2.9644476e-001 +4.9699399e-001,2.9502199e-001 +4.9899800e-001,2.9360210e-001 +5.0100200e-001,2.9218505e-001 +5.0100200e-002,7.7616926e-001 +5.0300601e-001,2.9077083e-001 +5.0501002e-001,2.8935943e-001 +5.0701403e-001,2.8795082e-001 +5.0901804e-001,2.8654500e-001 +5.1102204e-001,2.8514194e-001 +5.1302605e-001,2.8374163e-001 +5.1503006e-001,2.8234405e-001 +5.1703407e-001,2.8094919e-001 +5.1903808e-001,2.7955703e-001 +5.2104208e-001,2.7816755e-001 +5.2104208e-002,7.7173654e-001 +5.2304609e-001,2.7678074e-001 +5.2505010e-001,2.7539659e-001 +5.2705411e-001,2.7401508e-001 +5.2905812e-001,2.7263619e-001 +5.3106212e-001,2.7125991e-001 +5.3306613e-001,2.6988622e-001 +5.3507014e-001,2.6851511e-001 +5.3707415e-001,2.6714657e-001 +5.3907816e-001,2.6578058e-001 +5.4108216e-001,2.6441713e-001 +5.4108216e-002,7.6738827e-001 +5.4308617e-001,2.6305619e-001 +5.4509018e-001,2.6169777e-001 +5.4709419e-001,2.6034184e-001 +5.4909820e-001,2.5898840e-001 +5.5110220e-001,2.5763742e-001 +5.5310621e-001,2.5628889e-001 +5.5511022e-001,2.5494281e-001 +5.5711423e-001,2.5359915e-001 +5.5911824e-001,2.5225791e-001 +5.6112224e-001,2.5091907e-001 +5.6112224e-002,7.6311981e-001 +5.6312625e-001,2.4958261e-001 +5.6513026e-001,2.4824854e-001 +5.6713427e-001,2.4691682e-001 +5.6913828e-001,2.4558746e-001 +5.7114228e-001,2.4426044e-001 +5.7314629e-001,2.4293574e-001 +5.7515030e-001,2.4161336e-001 +5.7715431e-001,2.4029327e-001 +5.7915832e-001,2.3897548e-001 +5.8116232e-001,2.3765997e-001 +5.8116232e-002,7.5892691e-001 +5.8316633e-001,2.3634672e-001 +5.8517034e-001,2.3503573e-001 +5.8717435e-001,2.3372698e-001 +5.8917836e-001,2.3242046e-001 +5.9118236e-001,2.3111616e-001 +5.9318637e-001,2.2981407e-001 +5.9519038e-001,2.2851417e-001 +5.9719439e-001,2.2721647e-001 +5.9919840e-001,2.2592094e-001 +6.0120240e-001,2.2462757e-001 +6.0120240e-002,7.5480571e-001 +6.0120240e-003,9.2246276e-001 +6.0320641e-001,2.2333636e-001 +6.0521042e-001,2.2204729e-001 +6.0721443e-001,2.2076035e-001 +6.0921844e-001,2.1947554e-001 +6.1122244e-001,2.1819283e-001 +6.1322645e-001,2.1691223e-001 +6.1523046e-001,2.1563372e-001 +6.1723447e-001,2.1435729e-001 +6.1923848e-001,2.1308293e-001 +6.2124248e-001,2.1181063e-001 +6.2124248e-002,7.5075264e-001 +6.2324649e-001,2.1054038e-001 +6.2525050e-001,2.0927217e-001 +6.2725451e-001,2.0800599e-001 +6.2925852e-001,2.0674183e-001 +6.3126253e-001,2.0547969e-001 +6.3326653e-001,2.0421954e-001 +6.3527054e-001,2.0296139e-001 +6.3727455e-001,2.0170522e-001 +6.3927856e-001,2.0045103e-001 +6.4128257e-001,1.9919880e-001 +6.4128257e-002,7.4676442e-001 +6.4328657e-001,1.9794852e-001 +6.4529058e-001,1.9670019e-001 +6.4729459e-001,1.9545380e-001 +6.4929860e-001,1.9420933e-001 +6.5130261e-001,1.9296679e-001 +6.5330661e-001,1.9172615e-001 +6.5531062e-001,1.9048742e-001 +6.5731463e-001,1.8925058e-001 +6.5931864e-001,1.8801562e-001 +6.6132265e-001,1.8678254e-001 +6.6132265e-002,7.4283806e-001 +6.6332665e-001,1.8555132e-001 +6.6533066e-001,1.8432196e-001 +6.6733467e-001,1.8309446e-001 +6.6933868e-001,1.8186879e-001 +6.7134269e-001,1.8064496e-001 +6.7334669e-001,1.7942295e-001 +6.7535070e-001,1.7820276e-001 +6.7735471e-001,1.7698438e-001 +6.7935872e-001,1.7576780e-001 +6.8136273e-001,1.7455301e-001 +6.8136273e-002,7.3897074e-001 +6.8336673e-001,1.7334001e-001 +6.8537074e-001,1.7212879e-001 +6.8737475e-001,1.7091933e-001 +6.8937876e-001,1.6971164e-001 +6.9138277e-001,1.6850570e-001 +6.9338677e-001,1.6730151e-001 +6.9539078e-001,1.6609906e-001 +6.9739479e-001,1.6489834e-001 +6.9939880e-001,1.6369934e-001 +7.0140281e-001,1.6250206e-001 +7.0140281e-002,7.3515990e-001 +7.0340681e-001,1.6130648e-001 +7.0541082e-001,1.6011261e-001 +7.0741483e-001,1.5892044e-001 +7.0941884e-001,1.5772995e-001 +7.1142285e-001,1.5654114e-001 +7.1342685e-001,1.5535401e-001 +7.1543086e-001,1.5416854e-001 +7.1743487e-001,1.5298473e-001 +7.1943888e-001,1.5180257e-001 +7.2144289e-001,1.5062206e-001 +7.2144289e-002,7.3140311e-001 +7.2344689e-001,1.4944319e-001 +7.2545090e-001,1.4826594e-001 +7.2745491e-001,1.4709033e-001 +7.2945892e-001,1.4591633e-001 +7.3146293e-001,1.4474394e-001 +7.3346693e-001,1.4357316e-001 +7.3547094e-001,1.4240398e-001 +7.3747495e-001,1.4123638e-001 +7.3947896e-001,1.4007038e-001 +7.4148297e-001,1.3890595e-001 +7.4148297e-002,7.2769815e-001 +7.4348697e-001,1.3774309e-001 +7.4549098e-001,1.3658180e-001 +7.4749499e-001,1.3542207e-001 +7.4949900e-001,1.3426390e-001 +7.5150301e-001,1.3310727e-001 +7.5350701e-001,1.3195218e-001 +7.5551102e-001,1.3079863e-001 +7.5751503e-001,1.2964661e-001 +7.5951904e-001,1.2849611e-001 +7.6152305e-001,1.2734712e-001 +7.6152305e-002,7.2404293e-001 +7.6352705e-001,1.2619965e-001 +7.6553106e-001,1.2505368e-001 +7.6753507e-001,1.2390921e-001 +7.6953908e-001,1.2276624e-001 +7.7154309e-001,1.2162475e-001 +7.7354709e-001,1.2048474e-001 +7.7555110e-001,1.1934621e-001 +7.7755511e-001,1.1820915e-001 +7.7955912e-001,1.1707355e-001 +7.8156313e-001,1.1593941e-001 +7.8156313e-002,7.2043549e-001 +7.8356713e-001,1.1480672e-001 +7.8557114e-001,1.1367549e-001 +7.8757515e-001,1.1254569e-001 +7.8957916e-001,1.1141733e-001 +7.9158317e-001,1.1029040e-001 +7.9358717e-001,1.0916490e-001 +7.9559118e-001,1.0804082e-001 +7.9759519e-001,1.0691815e-001 +7.9959920e-001,1.0579689e-001 +8.0160321e-001,1.0467704e-001 +8.0160321e-002,7.1687402e-001 +8.0160321e-003,9.1046770e-001 +8.0360721e-001,1.0355858e-001 +8.0561122e-001,1.0244152e-001 +8.0761523e-001,1.0132585e-001 +8.0961924e-001,1.0021156e-001 +8.1162325e-001,9.9098648e-002 +8.1362725e-001,9.7987110e-002 +8.1563126e-001,9.6876939e-002 +8.1763527e-001,9.5768132e-002 +8.1963928e-001,9.4660683e-002 +8.2164329e-001,9.3554587e-002 +8.2164329e-002,7.1335679e-001 +8.2364729e-001,9.2449839e-002 +8.2565130e-001,9.1346434e-002 +8.2765531e-001,9.0244368e-002 +8.2965932e-001,8.9143634e-002 +8.3166333e-001,8.8044230e-002 +8.3366733e-001,8.6946149e-002 +8.3567134e-001,8.5849387e-002 +8.3767535e-001,8.4753940e-002 +8.3967936e-001,8.3659802e-002 +8.4168337e-001,8.2566969e-002 +8.4168337e-002,7.0988220e-001 +8.4368737e-001,8.1475436e-002 +8.4569138e-001,8.0385199e-002 +8.4769539e-001,7.9296252e-002 +8.4969940e-001,7.8208593e-002 +8.5170341e-001,7.7122215e-002 +8.5370741e-001,7.6037114e-002 +8.5571142e-001,7.4953286e-002 +8.5771543e-001,7.3870727e-002 +8.5971944e-001,7.2789431e-002 +8.6172345e-001,7.1709395e-002 +8.6172345e-002,7.0644874e-001 +8.6372745e-001,7.0630614e-002 +8.6573146e-001,6.9553084e-002 +8.6773547e-001,6.8476801e-002 +8.6973948e-001,6.7401759e-002 +8.7174349e-001,6.6327955e-002 +8.7374749e-001,6.5255385e-002 +8.7575150e-001,6.4184044e-002 +8.7775551e-001,6.3113928e-002 +8.7975952e-001,6.2045034e-002 +8.8176353e-001,6.0977355e-002 +8.8176353e-002,7.0305497e-001 +8.8376754e-001,5.9910890e-002 +8.8577154e-001,5.8845633e-002 +8.8777555e-001,5.7781580e-002 +8.8977956e-001,5.6718727e-002 +8.9178357e-001,5.5657071e-002 +8.9378758e-001,5.4596607e-002 +8.9579158e-001,5.3537331e-002 +8.9779559e-001,5.2479240e-002 +8.9979960e-001,5.1422328e-002 +9.0180361e-001,5.0366593e-002 +9.0180361e-002,6.9969955e-001 +9.0380762e-001,4.9312031e-002 +9.0581162e-001,4.8258636e-002 +9.0781563e-001,4.7206407e-002 +9.0981964e-001,4.6155338e-002 +9.1182365e-001,4.5105426e-002 +9.1382766e-001,4.4056667e-002 +9.1583166e-001,4.3009058e-002 +9.1783567e-001,4.1962594e-002 +9.1983968e-001,4.0917272e-002 +9.2184369e-001,3.9873088e-002 +9.2184369e-002,6.9638121e-001 +9.2384770e-001,3.8830038e-002 +9.2585170e-001,3.7788119e-002 +9.2785571e-001,3.6747327e-002 +9.2985972e-001,3.5707659e-002 +9.3186373e-001,3.4669110e-002 +9.3386774e-001,3.3631677e-002 +9.3587174e-001,3.2595357e-002 +9.3787575e-001,3.1560146e-002 +9.3987976e-001,3.0526040e-002 +9.4188377e-001,2.9493036e-002 +9.4188377e-002,6.9309875e-001 +9.4388778e-001,2.8461130e-002 +9.4589178e-001,2.7430319e-002 +9.4789579e-001,2.6400600e-002 +9.4989980e-001,2.5371969e-002 +9.5190381e-001,2.4344422e-002 +9.5390782e-001,2.3317956e-002 +9.5591182e-001,2.2292567e-002 +9.5791583e-001,2.1268253e-002 +9.5991984e-001,2.0245010e-002 +9.6192385e-001,1.9222835e-002 +9.6192385e-002,6.8985103e-001 +9.6392786e-001,1.8201724e-002 +9.6593186e-001,1.7181673e-002 +9.6793587e-001,1.6162680e-002 +9.6993988e-001,1.5144742e-002 +9.7194389e-001,1.4127854e-002 +9.7394790e-001,1.3112015e-002 +9.7595190e-001,1.2097219e-002 +9.7795591e-001,1.1083466e-002 +9.7995992e-001,1.0070750e-002 +9.8196393e-001,9.0590694e-003 +9.8196393e-002,6.8663696e-001 +9.8396794e-001,8.0484206e-003 +9.8597194e-001,7.0388004e-003 +9.8797595e-001,6.0302057e-003 +9.8997996e-001,5.0226335e-003 +9.9198397e-001,4.0160805e-003 +9.9398798e-001,3.0105437e-003 +9.9599198e-001,2.0060201e-003 +9.9799599e-001,1.0025065e-003 diff --git a/resources/referenceFrontsCSV/LZ09_F5.pf b/resources/referenceFrontsCSV/LZ09_F5.pf new file mode 100644 index 0000000000..88feaa0ed2 --- /dev/null +++ b/resources/referenceFrontsCSV/LZ09_F5.pf @@ -0,0 +1,500 @@ +0.0000000e+000,1.0000000e+000 +1.0000000e+000,0.0000000e+000 +1.0020040e-001,6.8345553e-001 +1.0020040e-002,8.9989985e-001 +1.0220441e-001,6.8030576e-001 +1.0420842e-001,6.7718672e-001 +1.0621242e-001,6.7409752e-001 +1.0821643e-001,6.7103734e-001 +1.1022044e-001,6.6800536e-001 +1.1222445e-001,6.6500082e-001 +1.1422846e-001,6.6202299e-001 +1.1623246e-001,6.5907117e-001 +1.1823647e-001,6.5614469e-001 +1.2024048e-001,6.5324291e-001 +1.2024048e-002,8.9034578e-001 +1.2224449e-001,6.5036521e-001 +1.2424850e-001,6.4751100e-001 +1.2625251e-001,6.4467971e-001 +1.2825651e-001,6.4187082e-001 +1.3026052e-001,6.3908378e-001 +1.3226453e-001,6.3631809e-001 +1.3426854e-001,6.3357329e-001 +1.3627255e-001,6.3084889e-001 +1.3827655e-001,6.2814445e-001 +1.4028056e-001,6.2545953e-001 +1.4028056e-002,8.8155990e-001 +1.4228457e-001,6.2279373e-001 +1.4428858e-001,6.2014664e-001 +1.4629259e-001,6.1751786e-001 +1.4829659e-001,6.1490703e-001 +1.5030060e-001,6.1231379e-001 +1.5230461e-001,6.0973777e-001 +1.5430862e-001,6.0717864e-001 +1.5631263e-001,6.0463609e-001 +1.5831663e-001,6.0210977e-001 +1.6032064e-001,5.9959940e-001 +1.6032064e-002,8.7338221e-001 +1.6232465e-001,5.9710467e-001 +1.6432866e-001,5.9462529e-001 +1.6633267e-001,5.9216098e-001 +1.6833667e-001,5.8971148e-001 +1.7034068e-001,5.8727651e-001 +1.7234469e-001,5.8485582e-001 +1.7434870e-001,5.8244917e-001 +1.7635271e-001,5.8005631e-001 +1.7835671e-001,5.7767700e-001 +1.8036072e-001,5.7531103e-001 +1.8036072e-002,8.6570156e-001 +1.8236473e-001,5.7295816e-001 +1.8436874e-001,5.7061819e-001 +1.8637275e-001,5.6829090e-001 +1.8837675e-001,5.6597609e-001 +1.9038076e-001,5.6367356e-001 +1.9238477e-001,5.6138312e-001 +1.9438878e-001,5.5910457e-001 +1.9639279e-001,5.5683774e-001 +1.9839679e-001,5.5458245e-001 +2.0040080e-001,5.5233852e-001 +2.0040080e-002,8.5843701e-001 +2.0040080e-003,9.5523385e-001 +2.0240481e-001,5.5010578e-001 +2.0440882e-001,5.4788407e-001 +2.0641283e-001,5.4567322e-001 +2.0841683e-001,5.4347307e-001 +2.1042084e-001,5.4128348e-001 +2.1242485e-001,5.3910430e-001 +2.1442886e-001,5.3693536e-001 +2.1643287e-001,5.3477654e-001 +2.1843687e-001,5.3262769e-001 +2.2044088e-001,5.3048868e-001 +2.2044088e-002,8.5152748e-001 +2.2244489e-001,5.2835936e-001 +2.2444890e-001,5.2623962e-001 +2.2645291e-001,5.2412932e-001 +2.2845691e-001,5.2202833e-001 +2.3046092e-001,5.1993654e-001 +2.3246493e-001,5.1785383e-001 +2.3446894e-001,5.1578007e-001 +2.3647295e-001,5.1371516e-001 +2.3847695e-001,5.1165898e-001 +2.4048096e-001,5.0961142e-001 +2.4048096e-002,8.4492551e-001 +2.4248497e-001,5.0757237e-001 +2.4448898e-001,5.0554173e-001 +2.4649299e-001,5.0351940e-001 +2.4849699e-001,5.0150527e-001 +2.5050100e-001,4.9949925e-001 +2.5250501e-001,4.9750123e-001 +2.5450902e-001,4.9551113e-001 +2.5651303e-001,4.9352885e-001 +2.5851703e-001,4.9155430e-001 +2.6052104e-001,4.8958738e-001 +2.6052104e-002,8.3859336e-001 +2.6252505e-001,4.8762802e-001 +2.6452906e-001,4.8567612e-001 +2.6653307e-001,4.8373159e-001 +2.6853707e-001,4.8179437e-001 +2.7054108e-001,4.7986436e-001 +2.7254509e-001,4.7794149e-001 +2.7454910e-001,4.7602567e-001 +2.7655311e-001,4.7411683e-001 +2.7855711e-001,4.7221490e-001 +2.8056112e-001,4.7031979e-001 +2.8056112e-002,8.3250041e-001 +2.8256513e-001,4.6843144e-001 +2.8456914e-001,4.6654978e-001 +2.8657315e-001,4.6467473e-001 +2.8857715e-001,4.6280622e-001 +2.9058116e-001,4.6094419e-001 +2.9258517e-001,4.5908857e-001 +2.9458918e-001,4.5723930e-001 +2.9659319e-001,4.5539630e-001 +2.9859719e-001,4.5355952e-001 +3.0060120e-001,4.5172890e-001 +3.0060120e-002,8.2662145e-001 +3.0260521e-001,4.4990436e-001 +3.0460922e-001,4.4808586e-001 +3.0661323e-001,4.4627333e-001 +3.0861723e-001,4.4446671e-001 +3.1062124e-001,4.4266595e-001 +3.1262525e-001,4.4087099e-001 +3.1462926e-001,4.3908177e-001 +3.1663327e-001,4.3729824e-001 +3.1863727e-001,4.3552035e-001 +3.2064128e-001,4.3374804e-001 +3.2064128e-002,8.2093541e-001 +3.2264529e-001,4.3198126e-001 +3.2464930e-001,4.3021996e-001 +3.2665331e-001,4.2846408e-001 +3.2865731e-001,4.2671358e-001 +3.3066132e-001,4.2496842e-001 +3.3266533e-001,4.2322853e-001 +3.3466934e-001,4.2149387e-001 +3.3667335e-001,4.1976440e-001 +3.3867735e-001,4.1804007e-001 +3.4068136e-001,4.1632084e-001 +3.4068136e-002,8.1542444e-001 +3.4268537e-001,4.1460665e-001 +3.4468938e-001,4.1289747e-001 +3.4669339e-001,4.1119325e-001 +3.4869739e-001,4.0949395e-001 +3.5070140e-001,4.0779952e-001 +3.5270541e-001,4.0610993e-001 +3.5470942e-001,4.0442514e-001 +3.5671343e-001,4.0274509e-001 +3.5871743e-001,4.0106976e-001 +3.6072144e-001,3.9939910e-001 +3.6072144e-002,8.1007332e-001 +3.6272545e-001,3.9773307e-001 +3.6472946e-001,3.9607164e-001 +3.6673347e-001,3.9441477e-001 +3.6873747e-001,3.9276242e-001 +3.7074148e-001,3.9111456e-001 +3.7274549e-001,3.8947114e-001 +3.7474950e-001,3.8783213e-001 +3.7675351e-001,3.8619750e-001 +3.7875752e-001,3.8456721e-001 +3.8076152e-001,3.8294123e-001 +3.8076152e-002,8.0486888e-001 +3.8276553e-001,3.8131952e-001 +3.8476954e-001,3.7970206e-001 +3.8677355e-001,3.7808879e-001 +3.8877756e-001,3.7647971e-001 +3.9078156e-001,3.7487476e-001 +3.9278557e-001,3.7327393e-001 +3.9478958e-001,3.7167717e-001 +3.9679359e-001,3.7008446e-001 +3.9879760e-001,3.6849577e-001 +4.0080160e-001,3.6691106e-001 +4.0080160e-002,7.9979970e-001 +4.0080160e-003,9.3669111e-001 +4.0280561e-001,3.6533031e-001 +4.0480962e-001,3.6375349e-001 +4.0681363e-001,3.6218057e-001 +4.0881764e-001,3.6061151e-001 +4.1082164e-001,3.5904630e-001 +4.1282565e-001,3.5748490e-001 +4.1482966e-001,3.5592729e-001 +4.1683367e-001,3.5437343e-001 +4.1883768e-001,3.5282330e-001 +4.2084168e-001,3.5127688e-001 +4.2084168e-002,7.9485574e-001 +4.2284569e-001,3.4973414e-001 +4.2484970e-001,3.4819504e-001 +4.2685371e-001,3.4665958e-001 +4.2885772e-001,3.4512771e-001 +4.3086172e-001,3.4359942e-001 +4.3286573e-001,3.4207468e-001 +4.3486974e-001,3.4055346e-001 +4.3687375e-001,3.3903574e-001 +4.3887776e-001,3.3752151e-001 +4.4088176e-001,3.3601072e-001 +4.4088176e-002,7.9002815e-001 +4.4288577e-001,3.3450336e-001 +4.4488978e-001,3.3299942e-001 +4.4689379e-001,3.3149885e-001 +4.4889780e-001,3.3000165e-001 +4.5090180e-001,3.2850778e-001 +4.5290581e-001,3.2701723e-001 +4.5490982e-001,3.2552997e-001 +4.5691383e-001,3.2404599e-001 +4.5891784e-001,3.2256525e-001 +4.6092184e-001,3.2108775e-001 +4.6092184e-002,7.8530910e-001 +4.6292585e-001,3.1961345e-001 +4.6492986e-001,3.1814235e-001 +4.6693387e-001,3.1667441e-001 +4.6893788e-001,3.1520961e-001 +4.7094188e-001,3.1374794e-001 +4.7294589e-001,3.1228938e-001 +4.7494990e-001,3.1083391e-001 +4.7695391e-001,3.0938150e-001 +4.7895792e-001,3.0793215e-001 +4.8096192e-001,3.0648582e-001 +4.8096192e-002,7.8069156e-001 +4.8296593e-001,3.0504250e-001 +4.8496994e-001,3.0360217e-001 +4.8697395e-001,3.0216481e-001 +4.8897796e-001,3.0073041e-001 +4.9098196e-001,2.9929895e-001 +4.9298597e-001,2.9787040e-001 +4.9498998e-001,2.9644476e-001 +4.9699399e-001,2.9502199e-001 +4.9899800e-001,2.9360210e-001 +5.0100200e-001,2.9218505e-001 +5.0100200e-002,7.7616926e-001 +5.0300601e-001,2.9077083e-001 +5.0501002e-001,2.8935943e-001 +5.0701403e-001,2.8795082e-001 +5.0901804e-001,2.8654500e-001 +5.1102204e-001,2.8514194e-001 +5.1302605e-001,2.8374163e-001 +5.1503006e-001,2.8234405e-001 +5.1703407e-001,2.8094919e-001 +5.1903808e-001,2.7955703e-001 +5.2104208e-001,2.7816755e-001 +5.2104208e-002,7.7173654e-001 +5.2304609e-001,2.7678074e-001 +5.2505010e-001,2.7539659e-001 +5.2705411e-001,2.7401508e-001 +5.2905812e-001,2.7263619e-001 +5.3106212e-001,2.7125991e-001 +5.3306613e-001,2.6988622e-001 +5.3507014e-001,2.6851511e-001 +5.3707415e-001,2.6714657e-001 +5.3907816e-001,2.6578058e-001 +5.4108216e-001,2.6441713e-001 +5.4108216e-002,7.6738827e-001 +5.4308617e-001,2.6305619e-001 +5.4509018e-001,2.6169777e-001 +5.4709419e-001,2.6034184e-001 +5.4909820e-001,2.5898840e-001 +5.5110220e-001,2.5763742e-001 +5.5310621e-001,2.5628889e-001 +5.5511022e-001,2.5494281e-001 +5.5711423e-001,2.5359915e-001 +5.5911824e-001,2.5225791e-001 +5.6112224e-001,2.5091907e-001 +5.6112224e-002,7.6311981e-001 +5.6312625e-001,2.4958261e-001 +5.6513026e-001,2.4824854e-001 +5.6713427e-001,2.4691682e-001 +5.6913828e-001,2.4558746e-001 +5.7114228e-001,2.4426044e-001 +5.7314629e-001,2.4293574e-001 +5.7515030e-001,2.4161336e-001 +5.7715431e-001,2.4029327e-001 +5.7915832e-001,2.3897548e-001 +5.8116232e-001,2.3765997e-001 +5.8116232e-002,7.5892691e-001 +5.8316633e-001,2.3634672e-001 +5.8517034e-001,2.3503573e-001 +5.8717435e-001,2.3372698e-001 +5.8917836e-001,2.3242046e-001 +5.9118236e-001,2.3111616e-001 +5.9318637e-001,2.2981407e-001 +5.9519038e-001,2.2851417e-001 +5.9719439e-001,2.2721647e-001 +5.9919840e-001,2.2592094e-001 +6.0120240e-001,2.2462757e-001 +6.0120240e-002,7.5480571e-001 +6.0120240e-003,9.2246276e-001 +6.0320641e-001,2.2333636e-001 +6.0521042e-001,2.2204729e-001 +6.0721443e-001,2.2076035e-001 +6.0921844e-001,2.1947554e-001 +6.1122244e-001,2.1819283e-001 +6.1322645e-001,2.1691223e-001 +6.1523046e-001,2.1563372e-001 +6.1723447e-001,2.1435729e-001 +6.1923848e-001,2.1308293e-001 +6.2124248e-001,2.1181063e-001 +6.2124248e-002,7.5075264e-001 +6.2324649e-001,2.1054038e-001 +6.2525050e-001,2.0927217e-001 +6.2725451e-001,2.0800599e-001 +6.2925852e-001,2.0674183e-001 +6.3126253e-001,2.0547969e-001 +6.3326653e-001,2.0421954e-001 +6.3527054e-001,2.0296139e-001 +6.3727455e-001,2.0170522e-001 +6.3927856e-001,2.0045103e-001 +6.4128257e-001,1.9919880e-001 +6.4128257e-002,7.4676442e-001 +6.4328657e-001,1.9794852e-001 +6.4529058e-001,1.9670019e-001 +6.4729459e-001,1.9545380e-001 +6.4929860e-001,1.9420933e-001 +6.5130261e-001,1.9296679e-001 +6.5330661e-001,1.9172615e-001 +6.5531062e-001,1.9048742e-001 +6.5731463e-001,1.8925058e-001 +6.5931864e-001,1.8801562e-001 +6.6132265e-001,1.8678254e-001 +6.6132265e-002,7.4283806e-001 +6.6332665e-001,1.8555132e-001 +6.6533066e-001,1.8432196e-001 +6.6733467e-001,1.8309446e-001 +6.6933868e-001,1.8186879e-001 +6.7134269e-001,1.8064496e-001 +6.7334669e-001,1.7942295e-001 +6.7535070e-001,1.7820276e-001 +6.7735471e-001,1.7698438e-001 +6.7935872e-001,1.7576780e-001 +6.8136273e-001,1.7455301e-001 +6.8136273e-002,7.3897074e-001 +6.8336673e-001,1.7334001e-001 +6.8537074e-001,1.7212879e-001 +6.8737475e-001,1.7091933e-001 +6.8937876e-001,1.6971164e-001 +6.9138277e-001,1.6850570e-001 +6.9338677e-001,1.6730151e-001 +6.9539078e-001,1.6609906e-001 +6.9739479e-001,1.6489834e-001 +6.9939880e-001,1.6369934e-001 +7.0140281e-001,1.6250206e-001 +7.0140281e-002,7.3515990e-001 +7.0340681e-001,1.6130648e-001 +7.0541082e-001,1.6011261e-001 +7.0741483e-001,1.5892044e-001 +7.0941884e-001,1.5772995e-001 +7.1142285e-001,1.5654114e-001 +7.1342685e-001,1.5535401e-001 +7.1543086e-001,1.5416854e-001 +7.1743487e-001,1.5298473e-001 +7.1943888e-001,1.5180257e-001 +7.2144289e-001,1.5062206e-001 +7.2144289e-002,7.3140311e-001 +7.2344689e-001,1.4944319e-001 +7.2545090e-001,1.4826594e-001 +7.2745491e-001,1.4709033e-001 +7.2945892e-001,1.4591633e-001 +7.3146293e-001,1.4474394e-001 +7.3346693e-001,1.4357316e-001 +7.3547094e-001,1.4240398e-001 +7.3747495e-001,1.4123638e-001 +7.3947896e-001,1.4007038e-001 +7.4148297e-001,1.3890595e-001 +7.4148297e-002,7.2769815e-001 +7.4348697e-001,1.3774309e-001 +7.4549098e-001,1.3658180e-001 +7.4749499e-001,1.3542207e-001 +7.4949900e-001,1.3426390e-001 +7.5150301e-001,1.3310727e-001 +7.5350701e-001,1.3195218e-001 +7.5551102e-001,1.3079863e-001 +7.5751503e-001,1.2964661e-001 +7.5951904e-001,1.2849611e-001 +7.6152305e-001,1.2734712e-001 +7.6152305e-002,7.2404293e-001 +7.6352705e-001,1.2619965e-001 +7.6553106e-001,1.2505368e-001 +7.6753507e-001,1.2390921e-001 +7.6953908e-001,1.2276624e-001 +7.7154309e-001,1.2162475e-001 +7.7354709e-001,1.2048474e-001 +7.7555110e-001,1.1934621e-001 +7.7755511e-001,1.1820915e-001 +7.7955912e-001,1.1707355e-001 +7.8156313e-001,1.1593941e-001 +7.8156313e-002,7.2043549e-001 +7.8356713e-001,1.1480672e-001 +7.8557114e-001,1.1367549e-001 +7.8757515e-001,1.1254569e-001 +7.8957916e-001,1.1141733e-001 +7.9158317e-001,1.1029040e-001 +7.9358717e-001,1.0916490e-001 +7.9559118e-001,1.0804082e-001 +7.9759519e-001,1.0691815e-001 +7.9959920e-001,1.0579689e-001 +8.0160321e-001,1.0467704e-001 +8.0160321e-002,7.1687402e-001 +8.0160321e-003,9.1046770e-001 +8.0360721e-001,1.0355858e-001 +8.0561122e-001,1.0244152e-001 +8.0761523e-001,1.0132585e-001 +8.0961924e-001,1.0021156e-001 +8.1162325e-001,9.9098648e-002 +8.1362725e-001,9.7987110e-002 +8.1563126e-001,9.6876939e-002 +8.1763527e-001,9.5768132e-002 +8.1963928e-001,9.4660683e-002 +8.2164329e-001,9.3554587e-002 +8.2164329e-002,7.1335679e-001 +8.2364729e-001,9.2449839e-002 +8.2565130e-001,9.1346434e-002 +8.2765531e-001,9.0244368e-002 +8.2965932e-001,8.9143634e-002 +8.3166333e-001,8.8044230e-002 +8.3366733e-001,8.6946149e-002 +8.3567134e-001,8.5849387e-002 +8.3767535e-001,8.4753940e-002 +8.3967936e-001,8.3659802e-002 +8.4168337e-001,8.2566969e-002 +8.4168337e-002,7.0988220e-001 +8.4368737e-001,8.1475436e-002 +8.4569138e-001,8.0385199e-002 +8.4769539e-001,7.9296252e-002 +8.4969940e-001,7.8208593e-002 +8.5170341e-001,7.7122215e-002 +8.5370741e-001,7.6037114e-002 +8.5571142e-001,7.4953286e-002 +8.5771543e-001,7.3870727e-002 +8.5971944e-001,7.2789431e-002 +8.6172345e-001,7.1709395e-002 +8.6172345e-002,7.0644874e-001 +8.6372745e-001,7.0630614e-002 +8.6573146e-001,6.9553084e-002 +8.6773547e-001,6.8476801e-002 +8.6973948e-001,6.7401759e-002 +8.7174349e-001,6.6327955e-002 +8.7374749e-001,6.5255385e-002 +8.7575150e-001,6.4184044e-002 +8.7775551e-001,6.3113928e-002 +8.7975952e-001,6.2045034e-002 +8.8176353e-001,6.0977355e-002 +8.8176353e-002,7.0305497e-001 +8.8376754e-001,5.9910890e-002 +8.8577154e-001,5.8845633e-002 +8.8777555e-001,5.7781580e-002 +8.8977956e-001,5.6718727e-002 +8.9178357e-001,5.5657071e-002 +8.9378758e-001,5.4596607e-002 +8.9579158e-001,5.3537331e-002 +8.9779559e-001,5.2479240e-002 +8.9979960e-001,5.1422328e-002 +9.0180361e-001,5.0366593e-002 +9.0180361e-002,6.9969955e-001 +9.0380762e-001,4.9312031e-002 +9.0581162e-001,4.8258636e-002 +9.0781563e-001,4.7206407e-002 +9.0981964e-001,4.6155338e-002 +9.1182365e-001,4.5105426e-002 +9.1382766e-001,4.4056667e-002 +9.1583166e-001,4.3009058e-002 +9.1783567e-001,4.1962594e-002 +9.1983968e-001,4.0917272e-002 +9.2184369e-001,3.9873088e-002 +9.2184369e-002,6.9638121e-001 +9.2384770e-001,3.8830038e-002 +9.2585170e-001,3.7788119e-002 +9.2785571e-001,3.6747327e-002 +9.2985972e-001,3.5707659e-002 +9.3186373e-001,3.4669110e-002 +9.3386774e-001,3.3631677e-002 +9.3587174e-001,3.2595357e-002 +9.3787575e-001,3.1560146e-002 +9.3987976e-001,3.0526040e-002 +9.4188377e-001,2.9493036e-002 +9.4188377e-002,6.9309875e-001 +9.4388778e-001,2.8461130e-002 +9.4589178e-001,2.7430319e-002 +9.4789579e-001,2.6400600e-002 +9.4989980e-001,2.5371969e-002 +9.5190381e-001,2.4344422e-002 +9.5390782e-001,2.3317956e-002 +9.5591182e-001,2.2292567e-002 +9.5791583e-001,2.1268253e-002 +9.5991984e-001,2.0245010e-002 +9.6192385e-001,1.9222835e-002 +9.6192385e-002,6.8985103e-001 +9.6392786e-001,1.8201724e-002 +9.6593186e-001,1.7181673e-002 +9.6793587e-001,1.6162680e-002 +9.6993988e-001,1.5144742e-002 +9.7194389e-001,1.4127854e-002 +9.7394790e-001,1.3112015e-002 +9.7595190e-001,1.2097219e-002 +9.7795591e-001,1.1083466e-002 +9.7995992e-001,1.0070750e-002 +9.8196393e-001,9.0590694e-003 +9.8196393e-002,6.8663696e-001 +9.8396794e-001,8.0484206e-003 +9.8597194e-001,7.0388004e-003 +9.8797595e-001,6.0302057e-003 +9.8997996e-001,5.0226335e-003 +9.9198397e-001,4.0160805e-003 +9.9398798e-001,3.0105437e-003 +9.9599198e-001,2.0060201e-003 +9.9799599e-001,1.0025065e-003 diff --git a/resources/referenceFrontsCSV/LZ09_F6.pf b/resources/referenceFrontsCSV/LZ09_F6.pf new file mode 100644 index 0000000000..6875aa92e5 --- /dev/null +++ b/resources/referenceFrontsCSV/LZ09_F6.pf @@ -0,0 +1,990 @@ +0.0000000e+000,0.0000000e+000,1.0000000e+000 +0.0000000e+000,1.0000000e+000,0.0000000e+000 +0.0000000e+000,1.0202888e-001,9.9478144e-001 +0.0000000e+000,1.3045443e-001,9.9145431e-001 +0.0000000e+000,1.6007131e-001,9.8710545e-001 +0.0000000e+000,1.9087007e-001,9.8161531e-001 +0.0000000e+000,2.2282548e-001,9.7485835e-001 +0.0000000e+000,2.3802768e-002,9.9971667e-001 +0.0000000e+000,2.5589209e-001,9.6670535e-001 +0.0000000e+000,2.9000719e-001,9.5702447e-001 +0.0000000e+000,3.2507984e-001,9.4568657e-001 +0.0000000e+000,3.6099447e-001,9.3256796e-001 +0.0000000e+000,3.9760810e-001,9.1755534e-001 +0.0000000e+000,4.3474843e-001,9.0055194e-001 +0.0000000e+000,4.7222107e-001,8.8148015e-001 +0.0000000e+000,4.8722544e-002,9.9881235e-001 +0.0000000e+000,5.0980235e-001,8.6029156e-001 +0.0000000e+000,5.4724962e-001,8.3696944e-001 +0.0000000e+000,5.8430528e-001,8.1153394e-001 +0.0000000e+000,6.2070222e-001,7.8404639e-001 +0.0000000e+000,6.5617830e-001,7.5460589e-001 +0.0000000e+000,6.9047561e-001,7.2335567e-001 +0.0000000e+000,7.2335567e-001,6.9047561e-001 +0.0000000e+000,7.4789868e-002,9.9719932e-001 +0.0000000e+000,7.5460589e-001,6.5617830e-001 +0.0000000e+000,7.8404639e-001,6.2070222e-001 +0.0000000e+000,8.1153394e-001,5.8430528e-001 +0.0000000e+000,8.3696944e-001,5.4724962e-001 +0.0000000e+000,8.6029156e-001,5.0980235e-001 +0.0000000e+000,8.8148015e-001,4.7222107e-001 +0.0000000e+000,9.0055194e-001,4.3474843e-001 +0.0000000e+000,9.1755534e-001,3.9760810e-001 +0.0000000e+000,9.3256796e-001,3.6099447e-001 +0.0000000e+000,9.4568657e-001,3.2507984e-001 +0.0000000e+000,9.5702447e-001,2.9000719e-001 +0.0000000e+000,9.6670535e-001,2.5589209e-001 +0.0000000e+000,9.7485835e-001,2.2282548e-001 +0.0000000e+000,9.8161531e-001,1.9087007e-001 +0.0000000e+000,9.8710545e-001,1.6007131e-001 +0.0000000e+000,9.9145431e-001,1.3045443e-001 +0.0000000e+000,9.9478144e-001,1.0202888e-001 +0.0000000e+000,9.9719932e-001,7.4789868e-002 +0.0000000e+000,9.9881235e-001,4.8722544e-002 +0.0000000e+000,9.9971667e-001,2.3802768e-002 +1.0000000e+000,0.0000000e+000,0.0000000e+000 +1.0107256e-001,4.7167164e-001,8.7596244e-001 +1.0107256e-001,8.7596244e-001,4.7167164e-001 +1.0202888e-001,0.0000000e+000,9.9478144e-001 +1.0202888e-001,9.9478144e-001,0.0000000e+000 +1.0235868e-001,5.1179340e-001,8.5298899e-001 +1.0235868e-001,8.5298899e-001,5.1179340e-001 +1.0344816e-001,5.5172380e-001,8.2758645e-001 +1.0344816e-001,8.2758645e-001,5.5172380e-001 +1.0432011e-001,5.9114789e-001,7.9978840e-001 +1.0432011e-001,7.9978840e-001,5.9114789e-001 +1.0464899e-001,2.6162220e-002,9.9416504e-001 +1.0464899e-001,9.9416504e-001,2.6162220e-002 +1.0495661e-001,6.2974054e-001,7.6968238e-001 +1.0495661e-001,7.6968238e-001,6.2974054e-001 +1.0534425e-001,6.6717992e-001,7.3741002e-001 +1.0534425e-001,7.3741002e-001,6.6717992e-001 +1.0547438e-001,7.0316255e-001,7.0316255e-001 +1.0732703e-001,5.3663460e-002,9.9277447e-001 +1.0732703e-001,9.9277447e-001,5.3663460e-002 +1.1005479e-001,8.2541002e-002,9.9049226e-001 +1.1005479e-001,9.9049226e-001,8.2541002e-002 +1.1282174e-001,1.1282174e-001,9.8718920e-001 +1.1282174e-001,9.8718920e-001,1.1282174e-001 +1.1561467e-001,1.4451818e-001,9.8272465e-001 +1.1561467e-001,9.8272465e-001,1.4451818e-001 +1.1841788e-001,1.7762689e-001,9.7694723e-001 +1.1841788e-001,9.7694723e-001,1.7762689e-001 +1.2121217e-001,2.1212160e-001,9.6969688e-001 +1.2121217e-001,9.6969688e-001,2.1212160e-001 +1.2397522e-001,2.4795097e-001,9.6080719e-001 +1.2397522e-001,9.6080719e-001,2.4795097e-001 +1.2668141e-001,2.8503260e-001,9.5010959e-001 +1.2668141e-001,9.5010959e-001,2.8503260e-001 +1.2930164e-001,3.2325375e-001,9.3743698e-001 +1.2930164e-001,9.3743698e-001,3.2325375e-001 +1.3045443e-001,0.0000000e+000,9.9145431e-001 +1.3045443e-001,9.9145431e-001,0.0000000e+000 +1.3180450e-001,3.6246228e-001,9.2263138e-001 +1.3180450e-001,9.2263138e-001,3.6246228e-001 +1.3386983e-001,2.6773965e-002,9.9063718e-001 +1.3386983e-001,9.9063718e-001,2.6773965e-002 +1.3415573e-001,4.0246735e-001,9.0555081e-001 +1.3415573e-001,9.0555081e-001,4.0246735e-001 +1.3631969e-001,4.4303940e-001,8.8607733e-001 +1.3631969e-001,8.8607733e-001,4.4303940e-001 +1.3736053e-001,5.4944213e-002,9.8899607e-001 +1.3736053e-001,9.8899607e-001,5.4944213e-002 +1.3826039e-001,4.8391055e-001,8.6412652e-001 +1.3826039e-001,8.6412652e-001,4.8391055e-001 +1.3994229e-001,5.2478303e-001,8.3965405e-001 +1.3994229e-001,8.3965405e-001,5.2478303e-001 +1.4091497e-001,8.4548983e-002,9.8640481e-001 +1.4091497e-001,9.8640481e-001,8.4548983e-002 +1.4133307e-001,5.6533198e-001,8.1266519e-001 +1.4133307e-001,8.1266519e-001,5.6533198e-001 +1.4240380e-001,6.0521611e-001,7.8322067e-001 +1.4240380e-001,7.8322067e-001,6.0521611e-001 +1.4313129e-001,6.4409102e-001,7.5143875e-001 +1.4313129e-001,7.5143875e-001,6.4409102e-001 +1.4349938e-001,6.8162102e-001,7.1749614e-001 +1.4349938e-001,7.1749614e-001,6.8162102e-001 +1.4451818e-001,1.1561467e-001,9.8272465e-001 +1.4451818e-001,9.8272465e-001,1.1561467e-001 +1.4815210e-001,1.4815210e-001,9.7780464e-001 +1.4815210e-001,9.7780464e-001,1.4815210e-001 +1.5179410e-001,1.8215318e-001,9.7148277e-001 +1.5179410e-001,9.7148277e-001,1.8215318e-001 +1.5541741e-001,2.1758491e-001,9.6358821e-001 +1.5541741e-001,9.6358821e-001,2.1758491e-001 +1.5899072e-001,2.5438597e-001,9.5394430e-001 +1.5899072e-001,9.5394430e-001,2.5438597e-001 +1.6007131e-001,0.0000000e+000,9.8710545e-001 +1.6007131e-001,9.8710545e-001,0.0000000e+000 +1.6247801e-001,2.9246014e-001,9.4237358e-001 +1.6247801e-001,9.4237358e-001,2.9246014e-001 +1.6433750e-001,2.7389544e-002,9.8602383e-001 +1.6433750e-001,9.8602383e-001,2.7389544e-002 +1.6583940e-001,3.3167880e-001,9.2870150e-001 +1.6583940e-001,9.2870150e-001,3.3167880e-001 +1.6869670e-001,5.6232153e-002,9.8406268e-001 +1.6869670e-001,9.8406268e-001,5.6232153e-002 +1.6903074e-001,3.7186793e-001,9.1276659e-001 +1.6903074e-001,9.1276659e-001,3.7186793e-001 +1.7200514e-001,4.1281293e-001,8.9442703e-001 +1.7200514e-001,8.9442703e-001,4.1281293e-001 +1.7313303e-001,8.6566391e-002,9.8108675e-001 +1.7313303e-001,9.8108675e-001,8.6566391e-002 +1.7471407e-001,4.5425748e-001,8.7357034e-001 +1.7471407e-001,8.7357034e-001,4.5425748e-001 +1.7710893e-001,4.9590470e-001,8.5012408e-001 +1.7710893e-001,8.5012408e-001,4.9590470e-001 +1.7762689e-001,1.1841788e-001,9.7694723e-001 +1.7762689e-001,9.7694723e-001,1.1841788e-001 +1.7914345e-001,5.3743036e-001,8.2406082e-001 +1.7914345e-001,8.2406082e-001,5.3743036e-001 +1.8077526e-001,5.7848114e-001,7.9541176e-001 +1.8077526e-001,7.9541176e-001,5.7848114e-001 +1.8196852e-001,6.1869358e-001,7.6426809e-001 +1.8196852e-001,7.6426809e-001,6.1869358e-001 +1.8215318e-001,1.5179410e-001,9.7148277e-001 +1.8215318e-001,9.7148277e-001,1.5179410e-001 +1.8269591e-001,6.5770622e-001,7.3078364e-001 +1.8269591e-001,7.3078364e-001,6.5770622e-001 +1.8294051e-001,6.9517364e-001,6.9517364e-001 +1.8668162e-001,1.8668162e-001,9.6452058e-001 +1.8668162e-001,9.6452058e-001,1.8668162e-001 +1.9087007e-001,0.0000000e+000,9.8161531e-001 +1.9087007e-001,9.8161531e-001,0.0000000e+000 +1.9117614e-001,2.2303905e-001,9.5587931e-001 +1.9117614e-001,9.5587931e-001,2.2303905e-001 +1.9559443e-001,2.6079304e-001,9.4537284e-001 +1.9559443e-001,9.4537284e-001,2.6079304e-001 +1.9603967e-001,2.8005599e-002,9.8019597e-001 +1.9603967e-001,9.8019597e-001,2.8005599e-002 +1.9988911e-001,2.9983295e-001,9.3281538e-001 +1.9988911e-001,9.3281538e-001,2.9983295e-001 +2.0131934e-001,5.7519669e-002,9.7783537e-001 +2.0131934e-001,9.7783537e-001,5.7519669e-002 +2.0400629e-001,3.4001000e-001,9.1802758e-001 +2.0400629e-001,9.1802758e-001,3.4001000e-001 +2.0668884e-001,8.8580714e-002,9.7438862e-001 +2.0668884e-001,9.7438862e-001,8.8580714e-002 +2.0788788e-001,3.8112754e-001,9.0084651e-001 +2.0788788e-001,9.0084651e-001,3.8112754e-001 +2.1147245e-001,4.2294490e-001,8.8113394e-001 +2.1147245e-001,8.8113394e-001,4.2294490e-001 +2.1212160e-001,1.2121217e-001,9.6969688e-001 +2.1212160e-001,9.6969688e-001,1.2121217e-001 +2.1469685e-001,4.6517677e-001,8.5878742e-001 +2.1469685e-001,8.5878742e-001,4.6517677e-001 +2.1749999e-001,5.0749894e-001,8.3374971e-001 +2.1749999e-001,8.3374971e-001,5.0749894e-001 +2.1758491e-001,1.5541741e-001,9.6358821e-001 +2.1758491e-001,9.6358821e-001,1.5541741e-001 +2.1982318e-001,5.4955716e-001,8.0601780e-001 +2.1982318e-001,8.0601780e-001,5.4955716e-001 +2.2161526e-001,5.9097350e-001,7.7565262e-001 +2.2161526e-001,7.7565262e-001,5.9097350e-001 +2.2282548e-001,0.0000000e+000,9.7485835e-001 +2.2282548e-001,9.7485835e-001,0.0000000e+000 +2.2283462e-001,6.3136449e-001,7.4278100e-001 +2.2283462e-001,7.4278100e-001,6.3136449e-001 +2.2303905e-001,1.9117614e-001,9.5587931e-001 +2.2303905e-001,9.5587931e-001,1.9117614e-001 +2.2345189e-001,6.7035566e-001,7.0759631e-001 +2.2345189e-001,7.0759631e-001,6.7035566e-001 +2.2843663e-001,2.2843663e-001,9.4637911e-001 +2.2843663e-001,9.4637911e-001,2.2843663e-001 +2.2894600e-001,2.8618158e-002,9.7301836e-001 +2.2894600e-001,9.7301836e-001,2.8618158e-002 +2.3372350e-001,2.6711277e-001,9.3489256e-001 +2.3372350e-001,9.3489256e-001,2.6711277e-001 +2.3519296e-001,5.8798049e-002,9.7016857e-001 +2.3519296e-001,9.7016857e-001,5.8798049e-002 +2.3802768e-002,0.0000000e+000,9.9971667e-001 +2.3802768e-002,9.9971667e-001,0.0000000e+000 +2.3883736e-001,3.0707556e-001,9.2122815e-001 +2.3883736e-001,9.2122815e-001,3.0707556e-001 +2.4153928e-001,9.0576939e-002,9.6615454e-001 +2.4153928e-001,9.6615454e-001,9.0576939e-002 +2.4370922e-001,3.4815517e-001,9.0520373e-001 +2.4370922e-001,9.0520373e-001,3.4815517e-001 +2.4375742e-002,2.4375742e-002,9.9940565e-001 +2.4375742e-002,9.9940565e-001,2.4375742e-002 +2.4795097e-001,1.2397522e-001,9.6080719e-001 +2.4795097e-001,9.6080719e-001,1.2397522e-001 +2.4826496e-001,3.9013000e-001,8.8665839e-001 +2.4826496e-001,8.8665839e-001,3.9013000e-001 +2.4961002e-002,4.9922004e-002,9.9844116e-001 +2.4961002e-002,9.9844116e-001,4.9922004e-002 +2.5242670e-001,4.3273104e-001,8.6546208e-001 +2.5242670e-001,8.6546208e-001,4.3273104e-001 +2.5438597e-001,1.5899072e-001,9.5394430e-001 +2.5438597e-001,9.5394430e-001,1.5899072e-001 +2.5557127e-002,7.6671380e-002,9.9672882e-001 +2.5557127e-002,9.9672882e-001,7.6671380e-002 +2.5589209e-001,0.0000000e+000,9.6670535e-001 +2.5589209e-001,9.6670535e-001,0.0000000e+000 +2.5611688e-001,4.7564540e-001,8.4152576e-001 +2.5611688e-001,8.4152576e-001,4.7564540e-001 +2.5925976e-001,5.1851793e-001,8.1481503e-001 +2.5925976e-001,8.1481503e-001,5.1851793e-001 +2.6079304e-001,1.9559443e-001,9.4537284e-001 +2.6079304e-001,9.4537284e-001,1.9559443e-001 +2.6162220e-002,1.0464899e-001,9.9416504e-001 +2.6162220e-002,9.9416504e-001,1.0464899e-001 +2.6178569e-001,5.6096796e-001,7.8535546e-001 +2.6178569e-001,7.8535546e-001,5.6096796e-001 +2.6300461e-001,2.9222762e-002,9.6435191e-001 +2.6300461e-001,9.6435191e-001,2.9222762e-002 +2.6363580e-001,6.0259497e-001,7.5324330e-001 +2.6363580e-001,7.5324330e-001,6.0259497e-001 +2.6476487e-001,6.4299947e-001,7.1864542e-001 +2.6476487e-001,7.1864542e-001,6.4299947e-001 +2.6514416e-001,6.8179857e-001,6.8179857e-001 +2.6711277e-001,2.3372350e-001,9.3489256e-001 +2.6711277e-001,9.3489256e-001,2.3372350e-001 +2.6773965e-002,1.3386983e-001,9.9063718e-001 +2.6773965e-002,9.9063718e-001,1.3386983e-001 +2.7025649e-001,6.0057056e-002,9.6091341e-001 +2.7025649e-001,9.6091341e-001,6.0057056e-002 +2.7327540e-001,2.7327540e-001,9.2230207e-001 +2.7327540e-001,9.2230207e-001,2.7327540e-001 +2.7389544e-002,1.6433750e-001,9.8602383e-001 +2.7389544e-002,9.8602383e-001,1.6433750e-001 +2.7761355e-001,9.2537938e-002,9.5622563e-001 +2.7761355e-001,9.5622563e-001,9.2537938e-002 +2.7920271e-001,3.1410173e-001,9.0740617e-001 +2.7920271e-001,9.0740617e-001,3.1410173e-001 +2.8005599e-002,1.9603967e-001,9.8019597e-001 +2.8005599e-002,9.8019597e-001,1.9603967e-001 +2.8480839e-001,3.5600933e-001,8.9002334e-001 +2.8480839e-001,8.9002334e-001,3.5600933e-001 +2.8503260e-001,1.2668141e-001,9.5010959e-001 +2.8503260e-001,9.5010959e-001,1.2668141e-001 +2.8618158e-002,2.2894600e-001,9.7301836e-001 +2.8618158e-002,9.7301836e-001,2.2894600e-001 +2.9000028e-001,3.9874941e-001,8.6999928e-001 +2.9000028e-001,8.6999928e-001,3.9874941e-001 +2.9000719e-001,0.0000000e+000,9.5702447e-001 +2.9000719e-001,9.5702447e-001,0.0000000e+000 +2.9222762e-002,2.6300461e-001,9.6435191e-001 +2.9222762e-002,9.6435191e-001,2.6300461e-001 +2.9246014e-001,1.6247801e-001,9.4237358e-001 +2.9246014e-001,9.4237358e-001,1.6247801e-001 +2.9468434e-001,4.4202571e-001,8.4721568e-001 +2.9468434e-001,8.4721568e-001,4.4202571e-001 +2.9814225e-001,2.9814225e-002,9.5405572e-001 +2.9814225e-001,9.5405572e-001,2.9814225e-002 +2.9814225e-002,2.9814225e-001,9.5405572e-001 +2.9814225e-002,9.5405572e-001,2.9814225e-001 +2.9876605e-001,4.8549424e-001,8.2160464e-001 +2.9876605e-001,8.2160464e-001,4.8549424e-001 +2.9983295e-001,1.9988911e-001,9.3281538e-001 +2.9983295e-001,9.3281538e-001,1.9988911e-001 +3.0215669e-001,5.2877218e-001,7.9315908e-001 +3.0215669e-001,7.9315908e-001,5.2877218e-001 +3.0386846e-002,3.3425557e-001,9.4199249e-001 +3.0386846e-002,9.4199249e-001,3.3425557e-001 +3.0477662e-001,5.7145432e-001,7.6193909e-001 +3.0477662e-001,7.6193909e-001,5.7145432e-001 +3.0642563e-001,6.1285126e-002,9.4991972e-001 +3.0642563e-001,9.4991972e-001,6.1285126e-002 +3.0656157e-001,6.1312150e-001,7.2808106e-001 +3.0656157e-001,7.2808106e-001,6.1312150e-001 +3.0707556e-001,2.3883736e-001,9.2122815e-001 +3.0707556e-001,9.2122815e-001,2.3883736e-001 +3.0746553e-001,6.5336281e-001,6.9179621e-001 +3.0746553e-001,6.9179621e-001,6.5336281e-001 +3.0934405e-002,3.7121339e-001,9.2803215e-001 +3.0934405e-002,9.2803215e-001,3.7121339e-001 +3.1410173e-001,2.7920271e-001,9.0740617e-001 +3.1410173e-001,9.0740617e-001,2.7920271e-001 +3.1450232e-002,4.0885382e-001,9.1205780e-001 +3.1450232e-002,9.1205780e-001,4.0885382e-001 +3.1481428e-001,9.4444283e-001,9.4444283e-002 +3.1481428e-001,9.4444283e-002,9.4444283e-001 +3.1927523e-002,4.4698505e-001,8.9397147e-001 +3.1927523e-002,8.9397147e-001,4.4698505e-001 +3.2081511e-001,3.2081511e-001,8.9115393e-001 +3.2081511e-001,8.9115393e-001,3.2081511e-001 +3.2325375e-001,1.2930164e-001,9.3743698e-001 +3.2325375e-001,9.3743698e-001,1.2930164e-001 +3.2359224e-002,4.8538837e-001,8.7369961e-001 +3.2359224e-002,8.7369961e-001,4.8538837e-001 +3.2507984e-001,0.0000000e+000,9.4568657e-001 +3.2507984e-001,9.4568657e-001,0.0000000e+000 +3.2710993e-001,3.6345582e-001,8.7229523e-001 +3.2710993e-001,8.7229523e-001,3.6345582e-001 +3.2738518e-002,5.2381656e-001,8.5120174e-001 +3.2738518e-002,8.5120174e-001,5.2381656e-001 +3.3058970e-002,5.6200305e-001,8.2647424e-001 +3.3058970e-002,8.2647424e-001,5.6200305e-001 +3.3167880e-001,1.6583940e-001,9.2870150e-001 +3.3167880e-001,9.2870150e-001,1.6583940e-001 +3.3287643e-001,4.0684968e-001,8.5068597e-001 +3.3287643e-001,8.5068597e-001,4.0684968e-001 +3.3314783e-002,5.9966695e-001,7.9955593e-001 +3.3314783e-002,7.9955593e-001,5.9966695e-001 +3.3425557e-001,3.0386846e-002,9.4199249e-001 +3.3425557e-001,9.4199249e-001,3.0386846e-002 +3.3501244e-002,6.3652335e-001,7.7052948e-001 +3.3501244e-002,7.7052948e-001,6.3652335e-001 +3.3614618e-002,6.7229236e-001,7.3952217e-001 +3.3614618e-002,7.3952217e-001,6.7229236e-001 +3.3652666e-002,7.0670627e-001,7.0670627e-001 +3.3800153e-001,4.5066978e-001,8.2622740e-001 +3.3800153e-001,8.2622740e-001,4.5066978e-001 +3.4001000e-001,2.0400629e-001,9.1802758e-001 +3.4001000e-001,9.1802758e-001,2.0400629e-001 +3.4237559e-001,4.9454397e-001,7.9887747e-001 +3.4237559e-001,7.9887747e-001,4.9454397e-001 +3.4358251e-001,6.2469499e-002,9.3704248e-001 +3.4358251e-001,9.3704248e-001,6.2469499e-002 +3.4589787e-001,5.3806354e-001,7.6866267e-001 +3.4589787e-001,7.6866267e-001,5.3806354e-001 +3.4815517e-001,2.4370922e-001,9.0520373e-001 +3.4815517e-001,9.0520373e-001,2.4370922e-001 +3.4848118e-001,5.8080253e-001,7.3568287e-001 +3.4848118e-001,7.3568287e-001,5.8080253e-001 +3.5005882e-001,6.2232771e-001,7.0011931e-001 +3.5005882e-001,7.0011931e-001,6.2232771e-001 +3.5058962e-001,6.6222614e-001,6.6222614e-001 +3.5300668e-001,9.3065435e-001,9.6274473e-002 +3.5300668e-001,9.6274473e-002,9.3065435e-001 +3.5600933e-001,2.8480839e-001,8.9002334e-001 +3.5600933e-001,8.9002334e-001,2.8480839e-001 +3.6099447e-001,0.0000000e+000,9.3256796e-001 +3.6099447e-001,9.3256796e-001,0.0000000e+000 +3.6246228e-001,1.3180450e-001,9.2263138e-001 +3.6246228e-001,9.2263138e-001,1.3180450e-001 +3.6345582e-001,3.2710993e-001,8.7229523e-001 +3.6345582e-001,8.7229523e-001,3.2710993e-001 +3.7037007e-001,3.7037007e-001,8.5185211e-001 +3.7037007e-001,8.5185211e-001,3.7037007e-001 +3.7121339e-001,3.0934405e-002,9.2803215e-001 +3.7121339e-001,9.2803215e-001,3.0934405e-002 +3.7186793e-001,1.6903074e-001,9.1276659e-001 +3.7186793e-001,9.1276659e-001,1.6903074e-001 +3.7662154e-001,4.1428401e-001,8.2856803e-001 +3.7662154e-001,8.2856803e-001,4.1428401e-001 +3.8112754e-001,2.0788788e-001,9.0084651e-001 +3.8112754e-001,9.0084651e-001,2.0788788e-001 +3.8157788e-001,6.3596223e-002,9.2214632e-001 +3.8157788e-001,9.2214632e-001,6.3596223e-002 +3.8208014e-001,4.5849683e-001,8.0236863e-001 +3.8208014e-001,8.0236863e-001,4.5849683e-001 +3.8662214e-001,5.0260978e-001,7.7324429e-001 +3.8662214e-001,7.7324429e-001,5.0260978e-001 +3.9013000e-001,2.4826496e-001,8.8665839e-001 +3.9013000e-001,8.8665839e-001,2.4826496e-001 +3.9013733e-001,5.4619192e-001,7.4126058e-001 +3.9013733e-001,7.4126058e-001,5.4619192e-001 +3.9202309e-001,9.1472006e-001,9.8005631e-002 +3.9202309e-001,9.8005631e-002,9.1472006e-001 +3.9253406e-001,5.8880108e-001,7.0656231e-001 +3.9253406e-001,7.0656231e-001,5.8880108e-001 +3.9374935e-001,6.2999930e-001,6.6937458e-001 +3.9374935e-001,6.6937458e-001,6.2999930e-001 +3.9760810e-001,0.0000000e+000,9.1755534e-001 +3.9760810e-001,9.1755534e-001,0.0000000e+000 +3.9874941e-001,2.9000028e-001,8.6999928e-001 +3.9874941e-001,8.6999928e-001,2.9000028e-001 +4.0246735e-001,1.3415573e-001,9.0555081e-001 +4.0246735e-001,9.0555081e-001,1.3415573e-001 +4.0684968e-001,3.3287643e-001,8.5068597e-001 +4.0684968e-001,8.5068597e-001,3.3287643e-001 +4.0885382e-001,3.1450232e-002,9.1205780e-001 +4.0885382e-001,9.1205780e-001,3.1450232e-002 +4.1281293e-001,1.7200514e-001,8.9442703e-001 +4.1281293e-001,8.9442703e-001,1.7200514e-001 +4.1428401e-001,3.7662154e-001,8.2856803e-001 +4.1428401e-001,8.2856803e-001,3.7662154e-001 +4.2023069e-001,6.4650747e-002,9.0511129e-001 +4.2023069e-001,9.0511129e-001,6.4650747e-002 +4.2090340e-001,4.2090340e-001,8.0354256e-001 +4.2090340e-001,8.0354256e-001,4.2090340e-001 +4.2294490e-001,2.1147245e-001,8.8113394e-001 +4.2294490e-001,8.8113394e-001,2.1147245e-001 +4.2656184e-001,4.6534050e-001,7.7556638e-001 +4.2656184e-001,7.7556638e-001,4.6534050e-001 +4.3112415e-001,5.0951097e-001,7.4466807e-001 +4.3112415e-001,7.4466807e-001,5.0951097e-001 +4.3165839e-001,8.9652007e-001,9.9613277e-002 +4.3165839e-001,9.9613277e-002,8.9652007e-001 +4.3273104e-001,2.5242670e-001,8.6546208e-001 +4.3273104e-001,8.6546208e-001,2.5242670e-001 +4.3447392e-001,5.5296604e-001,7.1095779e-001 +4.3447392e-001,7.1095779e-001,5.5296604e-001 +4.3474843e-001,0.0000000e+000,9.0055194e-001 +4.3474843e-001,9.0055194e-001,0.0000000e+000 +4.3652176e-001,5.9525648e-001,6.7462469e-001 +4.3652176e-001,6.7462469e-001,5.9525648e-001 +4.3721083e-001,6.3594288e-001,6.3594288e-001 +4.4202571e-001,2.9468434e-001,8.4721568e-001 +4.4202571e-001,8.4721568e-001,2.9468434e-001 +4.4303940e-001,1.3631969e-001,8.8607733e-001 +4.4303940e-001,8.8607733e-001,1.3631969e-001 +4.4698505e-001,3.1927523e-002,8.9397147e-001 +4.4698505e-001,8.9397147e-001,3.1927523e-002 +4.5066978e-001,3.3800153e-001,8.2622740e-001 +4.5066978e-001,8.2622740e-001,3.3800153e-001 +4.5425748e-001,1.7471407e-001,8.7357034e-001 +4.5425748e-001,8.7357034e-001,1.7471407e-001 +4.5849683e-001,3.8208014e-001,8.0236863e-001 +4.5849683e-001,8.0236863e-001,3.8208014e-001 +4.5932465e-001,6.5617847e-002,8.8584150e-001 +4.5932465e-001,8.8584150e-001,6.5617847e-002 +4.6517677e-001,2.1469685e-001,8.5878742e-001 +4.6517677e-001,8.5878742e-001,2.1469685e-001 +4.6534050e-001,4.2656184e-001,7.7556638e-001 +4.6534050e-001,7.7556638e-001,4.2656184e-001 +4.7104170e-001,4.7104170e-001,7.4581461e-001 +4.7104170e-001,7.4581461e-001,4.7104170e-001 +4.7167164e-001,1.0107256e-001,8.7596244e-001 +4.7167164e-001,8.7596244e-001,1.0107256e-001 +4.7222107e-001,0.0000000e+000,8.8148015e-001 +4.7222107e-001,8.8148015e-001,0.0000000e+000 +4.7545724e-001,5.1507896e-001,7.1318586e-001 +4.7545724e-001,7.1318586e-001,5.1507896e-001 +4.7564540e-001,2.5611688e-001,8.4152576e-001 +4.7564540e-001,8.4152576e-001,2.5611688e-001 +4.7847173e-001,5.5821588e-001,6.7783467e-001 +4.7847173e-001,6.7783467e-001,5.5821588e-001 +4.8000042e-001,5.9999967e-001,6.3999999e-001 +4.8000042e-001,6.3999999e-001,5.9999967e-001 +4.8391055e-001,1.3826039e-001,8.6412652e-001 +4.8391055e-001,8.6412652e-001,1.3826039e-001 +4.8538837e-001,3.2359224e-002,8.7369961e-001 +4.8538837e-001,8.7369961e-001,3.2359224e-002 +4.8549424e-001,2.9876605e-001,8.2160464e-001 +4.8549424e-001,8.2160464e-001,2.9876605e-001 +4.8722544e-002,0.0000000e+000,9.9881235e-001 +4.8722544e-002,9.9881235e-001,0.0000000e+000 +4.9454397e-001,3.4237559e-001,7.9887747e-001 +4.9454397e-001,7.9887747e-001,3.4237559e-001 +4.9590470e-001,1.7710893e-001,8.5012408e-001 +4.9590470e-001,8.5012408e-001,1.7710893e-001 +4.9861675e-001,6.6482233e-002,8.6426932e-001 +4.9861675e-001,8.6426932e-001,6.6482233e-002 +4.9922004e-002,2.4961002e-002,9.9844116e-001 +4.9922004e-002,9.9844116e-001,2.4961002e-002 +5.0260978e-001,3.8662214e-001,7.7324429e-001 +5.0260978e-001,7.7324429e-001,3.8662214e-001 +5.0749894e-001,2.1749999e-001,8.3374971e-001 +5.0749894e-001,8.3374971e-001,2.1749999e-001 +5.0951097e-001,4.3112415e-001,7.4466807e-001 +5.0951097e-001,7.4466807e-001,4.3112415e-001 +5.0980235e-001,0.0000000e+000,8.6029156e-001 +5.0980235e-001,8.6029156e-001,0.0000000e+000 +5.1147672e-002,5.1147672e-002,9.9738048e-001 +5.1147672e-002,9.9738048e-001,5.1147672e-002 +5.1179340e-001,1.0235868e-001,8.5298899e-001 +5.1179340e-001,8.5298899e-001,1.0235868e-001 +5.1507896e-001,4.7545724e-001,7.1318586e-001 +5.1507896e-001,7.1318586e-001,4.7545724e-001 +5.1851793e-001,2.5925976e-001,8.1481503e-001 +5.1851793e-001,8.1481503e-001,2.5925976e-001 +5.1917022e-001,5.1917022e-001,6.7891425e-001 +5.1917022e-001,6.7891425e-001,5.1917022e-001 +5.2167277e-001,5.6179998e-001,6.4205786e-001 +5.2167277e-001,6.4205786e-001,5.6179998e-001 +5.2251487e-001,6.0290058e-001,6.0290058e-001 +5.2381656e-001,3.2738518e-002,8.5120174e-001 +5.2381656e-001,8.5120174e-001,3.2738518e-002 +5.2396216e-002,7.8594325e-002,9.9552879e-001 +5.2396216e-002,9.9552879e-001,7.8594325e-002 +5.2478303e-001,1.3994229e-001,8.3965405e-001 +5.2478303e-001,8.3965405e-001,1.3994229e-001 +5.2877218e-001,3.0215669e-001,7.9315908e-001 +5.2877218e-001,7.9315908e-001,3.0215669e-001 +5.3663460e-002,1.0732703e-001,9.9277447e-001 +5.3663460e-002,9.9277447e-001,1.0732703e-001 +5.3743036e-001,1.7914345e-001,8.2406082e-001 +5.3743036e-001,8.2406082e-001,1.7914345e-001 +5.3783432e-001,6.7229254e-002,8.4036568e-001 +5.3783432e-001,8.4036568e-001,6.7229254e-002 +5.3806354e-001,3.4589787e-001,7.6866267e-001 +5.3806354e-001,7.6866267e-001,3.4589787e-001 +5.4619192e-001,3.9013733e-001,7.4126058e-001 +5.4619192e-001,7.4126058e-001,3.9013733e-001 +5.4724962e-001,0.0000000e+000,8.3696944e-001 +5.4724962e-001,8.3696944e-001,0.0000000e+000 +5.4944213e-002,1.3736053e-001,9.8899607e-001 +5.4944213e-002,9.8899607e-001,1.3736053e-001 +5.4955716e-001,2.1982318e-001,8.0601780e-001 +5.4955716e-001,8.0601780e-001,2.1982318e-001 +5.5172380e-001,1.0344816e-001,8.2758645e-001 +5.5172380e-001,8.2758645e-001,1.0344816e-001 +5.5296604e-001,4.3447392e-001,7.1095779e-001 +5.5296604e-001,7.1095779e-001,4.3447392e-001 +5.5821588e-001,4.7847173e-001,6.7783467e-001 +5.5821588e-001,6.7783467e-001,4.7847173e-001 +5.6096796e-001,2.6178569e-001,7.8535546e-001 +5.6096796e-001,7.8535546e-001,2.6178569e-001 +5.6179998e-001,5.2167277e-001,6.4205786e-001 +5.6179998e-001,6.4205786e-001,5.2167277e-001 +5.6200305e-001,3.3058970e-002,8.2647424e-001 +5.6200305e-001,8.2647424e-001,3.3058970e-002 +5.6232153e-002,1.6869670e-001,9.8406268e-001 +5.6232153e-002,9.8406268e-001,1.6869670e-001 +5.6361865e-001,5.6361865e-001,6.0387750e-001 +5.6361865e-001,6.0387750e-001,5.6361865e-001 +5.6533198e-001,1.4133307e-001,8.1266519e-001 +5.6533198e-001,8.1266519e-001,1.4133307e-001 +5.7145432e-001,3.0477662e-001,7.6193909e-001 +5.7145432e-001,7.6193909e-001,3.0477662e-001 +5.7519669e-002,2.0131934e-001,9.7783537e-001 +5.7519669e-002,9.7783537e-001,2.0131934e-001 +5.7668534e-001,6.7845266e-002,8.1414436e-001 +5.7668534e-001,8.1414436e-001,6.7845266e-002 +5.7848114e-001,1.8077526e-001,7.9541176e-001 +5.7848114e-001,7.9541176e-001,1.8077526e-001 +5.8080253e-001,3.4848118e-001,7.3568287e-001 +5.8080253e-001,7.3568287e-001,3.4848118e-001 +5.8430528e-001,0.0000000e+000,8.1153394e-001 +5.8430528e-001,8.1153394e-001,0.0000000e+000 +5.8798049e-002,2.3519296e-001,9.7016857e-001 +5.8798049e-002,9.7016857e-001,2.3519296e-001 +5.8880108e-001,3.9253406e-001,7.0656231e-001 +5.8880108e-001,7.0656231e-001,3.9253406e-001 +5.9097350e-001,2.2161526e-001,7.7565262e-001 +5.9097350e-001,7.7565262e-001,2.2161526e-001 +5.9114789e-001,1.0432011e-001,7.9978840e-001 +5.9114789e-001,7.9978840e-001,1.0432011e-001 +5.9525648e-001,4.3652176e-001,6.7462469e-001 +5.9525648e-001,6.7462469e-001,4.3652176e-001 +5.9966695e-001,3.3314783e-002,7.9955593e-001 +5.9966695e-001,7.9955593e-001,3.3314783e-002 +5.9999967e-001,4.8000042e-001,6.3999999e-001 +5.9999967e-001,6.3999999e-001,4.8000042e-001 +6.0057056e-002,2.7025649e-001,9.6091341e-001 +6.0057056e-002,9.6091341e-001,2.7025649e-001 +6.0259497e-001,2.6363580e-001,7.5324330e-001 +6.0259497e-001,7.5324330e-001,2.6363580e-001 +6.0290058e-001,5.2251487e-001,6.0290058e-001 +6.0290058e-001,6.0290058e-001,5.2251487e-001 +6.0387750e-001,5.6361865e-001,5.6361865e-001 +6.0521611e-001,1.4240380e-001,7.8322067e-001 +6.0521611e-001,7.8322067e-001,1.4240380e-001 +6.1285126e-002,3.0642563e-001,9.4991972e-001 +6.1285126e-002,9.4991972e-001,3.0642563e-001 +6.1312150e-001,3.0656157e-001,7.2808106e-001 +6.1312150e-001,7.2808106e-001,3.0656157e-001 +6.1486841e-001,6.8318614e-002,7.8566495e-001 +6.1486841e-001,7.8566495e-001,6.8318614e-002 +6.1869358e-001,1.8196852e-001,7.6426809e-001 +6.1869358e-001,7.6426809e-001,1.8196852e-001 +6.2070222e-001,0.0000000e+000,7.8404639e-001 +6.2070222e-001,7.8404639e-001,0.0000000e+000 +6.2232771e-001,3.5005882e-001,7.0011931e-001 +6.2232771e-001,7.0011931e-001,3.5005882e-001 +6.2469499e-002,3.4358251e-001,9.3704248e-001 +6.2469499e-002,9.3704248e-001,3.4358251e-001 +6.2974054e-001,1.0495661e-001,7.6968238e-001 +6.2974054e-001,7.6968238e-001,1.0495661e-001 +6.2999930e-001,3.9374935e-001,6.6937458e-001 +6.2999930e-001,6.6937458e-001,3.9374935e-001 +6.3136449e-001,2.2283462e-001,7.4278100e-001 +6.3136449e-001,7.4278100e-001,2.2283462e-001 +6.3594288e-001,4.3721083e-001,6.3594288e-001 +6.3594288e-001,6.3594288e-001,4.3721083e-001 +6.3596223e-002,3.8157788e-001,9.2214632e-001 +6.3596223e-002,9.2214632e-001,3.8157788e-001 +6.3652335e-001,3.3501244e-002,7.7052948e-001 +6.3652335e-001,7.7052948e-001,3.3501244e-002 +6.3999999e-001,4.8000042e-001,5.9999967e-001 +6.3999999e-001,5.9999967e-001,4.8000042e-001 +6.4205786e-001,5.2167277e-001,5.6179998e-001 +6.4205786e-001,5.6179998e-001,5.2167277e-001 +6.4299947e-001,2.6476487e-001,7.1864542e-001 +6.4299947e-001,7.1864542e-001,2.6476487e-001 +6.4409102e-001,1.4313129e-001,7.5143875e-001 +6.4409102e-001,7.5143875e-001,1.4313129e-001 +6.4650747e-002,4.2023069e-001,9.0511129e-001 +6.4650747e-002,9.0511129e-001,4.2023069e-001 +6.5207785e-001,6.8639805e-002,7.5503844e-001 +6.5207785e-001,7.5503844e-001,6.8639805e-002 +6.5336281e-001,3.0746553e-001,6.9179621e-001 +6.5336281e-001,6.9179621e-001,3.0746553e-001 +6.5617830e-001,0.0000000e+000,7.5460589e-001 +6.5617830e-001,7.5460589e-001,0.0000000e+000 +6.5617847e-002,4.5932465e-001,8.8584150e-001 +6.5617847e-002,8.8584150e-001,4.5932465e-001 +6.5770622e-001,1.8269591e-001,7.3078364e-001 +6.5770622e-001,7.3078364e-001,1.8269591e-001 +6.6222614e-001,3.5058962e-001,6.6222614e-001 +6.6222614e-001,6.6222614e-001,3.5058962e-001 +6.6482233e-002,4.9861675e-001,8.6426932e-001 +6.6482233e-002,8.6426932e-001,4.9861675e-001 +6.6717992e-001,1.0534425e-001,7.3741002e-001 +6.6717992e-001,7.3741002e-001,1.0534425e-001 +6.6937458e-001,3.9374935e-001,6.2999930e-001 +6.6937458e-001,6.2999930e-001,3.9374935e-001 +6.7035566e-001,2.2345189e-001,7.0759631e-001 +6.7035566e-001,7.0759631e-001,2.2345189e-001 +6.7229236e-001,3.3614618e-002,7.3952217e-001 +6.7229236e-001,7.3952217e-001,3.3614618e-002 +6.7229254e-002,5.3783432e-001,8.4036568e-001 +6.7229254e-002,8.4036568e-001,5.3783432e-001 +6.7462469e-001,4.3652176e-001,5.9525648e-001 +6.7462469e-001,5.9525648e-001,4.3652176e-001 +6.7783467e-001,4.7847173e-001,5.5821588e-001 +6.7783467e-001,5.5821588e-001,4.7847173e-001 +6.7845266e-002,5.7668534e-001,8.1414436e-001 +6.7845266e-002,8.1414436e-001,5.7668534e-001 +6.7891425e-001,5.1917022e-001,5.1917022e-001 +6.8162102e-001,1.4349938e-001,7.1749614e-001 +6.8162102e-001,7.1749614e-001,1.4349938e-001 +6.8179857e-001,2.6514416e-001,6.8179857e-001 +6.8179857e-001,6.8179857e-001,2.6514416e-001 +6.8318614e-002,6.1486841e-001,7.8566495e-001 +6.8318614e-002,7.8566495e-001,6.1486841e-001 +6.8639805e-002,6.5207785e-001,7.5503844e-001 +6.8639805e-002,7.5503844e-001,6.5207785e-001 +6.8802077e-001,6.8802077e-002,7.2242210e-001 +6.8802077e-001,7.2242210e-001,6.8802077e-002 +6.8802077e-002,6.8802077e-001,7.2242210e-001 +6.8802077e-002,7.2242210e-001,6.8802077e-001 +6.9047561e-001,0.0000000e+000,7.2335567e-001 +6.9047561e-001,7.2335567e-001,0.0000000e+000 +6.9179621e-001,3.0746553e-001,6.5336281e-001 +6.9179621e-001,6.5336281e-001,3.0746553e-001 +6.9517364e-001,1.8294051e-001,6.9517364e-001 +6.9517364e-001,6.9517364e-001,1.8294051e-001 +7.0011931e-001,3.5005882e-001,6.2232771e-001 +7.0011931e-001,6.2232771e-001,3.5005882e-001 +7.0316255e-001,1.0547438e-001,7.0316255e-001 +7.0316255e-001,7.0316255e-001,1.0547438e-001 +7.0656231e-001,3.9253406e-001,5.8880108e-001 +7.0656231e-001,5.8880108e-001,3.9253406e-001 +7.0670627e-001,3.3652666e-002,7.0670627e-001 +7.0670627e-001,7.0670627e-001,3.3652666e-002 +7.0759631e-001,2.2345189e-001,6.7035566e-001 +7.0759631e-001,6.7035566e-001,2.2345189e-001 +7.1095779e-001,4.3447392e-001,5.5296604e-001 +7.1095779e-001,5.5296604e-001,4.3447392e-001 +7.1318586e-001,4.7545724e-001,5.1507896e-001 +7.1318586e-001,5.1507896e-001,4.7545724e-001 +7.1749614e-001,1.4349938e-001,6.8162102e-001 +7.1749614e-001,6.8162102e-001,1.4349938e-001 +7.1864542e-001,2.6476487e-001,6.4299947e-001 +7.1864542e-001,6.4299947e-001,2.6476487e-001 +7.2242210e-001,6.8802077e-001,6.8802077e-002 +7.2242210e-001,6.8802077e-002,6.8802077e-001 +7.2335567e-001,0.0000000e+000,6.9047561e-001 +7.2335567e-001,6.9047561e-001,0.0000000e+000 +7.2808106e-001,3.0656157e-001,6.1312150e-001 +7.2808106e-001,6.1312150e-001,3.0656157e-001 +7.3078364e-001,1.8269591e-001,6.5770622e-001 +7.3078364e-001,6.5770622e-001,1.8269591e-001 +7.3568287e-001,3.4848118e-001,5.8080253e-001 +7.3568287e-001,5.8080253e-001,3.4848118e-001 +7.3741002e-001,1.0534425e-001,6.6717992e-001 +7.3741002e-001,6.6717992e-001,1.0534425e-001 +7.3952217e-001,3.3614618e-002,6.7229236e-001 +7.3952217e-001,6.7229236e-001,3.3614618e-002 +7.4126058e-001,3.9013733e-001,5.4619192e-001 +7.4126058e-001,5.4619192e-001,3.9013733e-001 +7.4278100e-001,2.2283462e-001,6.3136449e-001 +7.4278100e-001,6.3136449e-001,2.2283462e-001 +7.4466807e-001,4.3112415e-001,5.0951097e-001 +7.4466807e-001,5.0951097e-001,4.3112415e-001 +7.4581461e-001,4.7104170e-001,4.7104170e-001 +7.4789868e-002,0.0000000e+000,9.9719932e-001 +7.4789868e-002,9.9719932e-001,0.0000000e+000 +7.5143875e-001,1.4313129e-001,6.4409102e-001 +7.5143875e-001,6.4409102e-001,1.4313129e-001 +7.5324330e-001,2.6363580e-001,6.0259497e-001 +7.5324330e-001,6.0259497e-001,2.6363580e-001 +7.5460589e-001,0.0000000e+000,6.5617830e-001 +7.5460589e-001,6.5617830e-001,0.0000000e+000 +7.5503844e-001,6.5207785e-001,6.8639805e-002 +7.5503844e-001,6.8639805e-002,6.5207785e-001 +7.6193909e-001,3.0477662e-001,5.7145432e-001 +7.6193909e-001,5.7145432e-001,3.0477662e-001 +7.6426809e-001,1.8196852e-001,6.1869358e-001 +7.6426809e-001,6.1869358e-001,1.8196852e-001 +7.6671380e-002,2.5557127e-002,9.9672882e-001 +7.6671380e-002,9.9672882e-001,2.5557127e-002 +7.6866267e-001,3.4589787e-001,5.3806354e-001 +7.6866267e-001,5.3806354e-001,3.4589787e-001 +7.6968238e-001,1.0495661e-001,6.2974054e-001 +7.6968238e-001,6.2974054e-001,1.0495661e-001 +7.7052948e-001,3.3501244e-002,6.3652335e-001 +7.7052948e-001,6.3652335e-001,3.3501244e-002 +7.7324429e-001,3.8662214e-001,5.0260978e-001 +7.7324429e-001,5.0260978e-001,3.8662214e-001 +7.7556638e-001,4.2656184e-001,4.6534050e-001 +7.7556638e-001,4.6534050e-001,4.2656184e-001 +7.7565262e-001,2.2161526e-001,5.9097350e-001 +7.7565262e-001,5.9097350e-001,2.2161526e-001 +7.8322067e-001,1.4240380e-001,6.0521611e-001 +7.8322067e-001,6.0521611e-001,1.4240380e-001 +7.8404639e-001,0.0000000e+000,6.2070222e-001 +7.8404639e-001,6.2070222e-001,0.0000000e+000 +7.8535546e-001,2.6178569e-001,5.6096796e-001 +7.8535546e-001,5.6096796e-001,2.6178569e-001 +7.8566495e-001,6.1486841e-001,6.8318614e-002 +7.8566495e-001,6.8318614e-002,6.1486841e-001 +7.8594325e-002,5.2396216e-002,9.9552879e-001 +7.8594325e-002,9.9552879e-001,5.2396216e-002 +7.9315908e-001,3.0215669e-001,5.2877218e-001 +7.9315908e-001,5.2877218e-001,3.0215669e-001 +7.9541176e-001,1.8077526e-001,5.7848114e-001 +7.9541176e-001,5.7848114e-001,1.8077526e-001 +7.9887747e-001,3.4237559e-001,4.9454397e-001 +7.9887747e-001,4.9454397e-001,3.4237559e-001 +7.9955593e-001,3.3314783e-002,5.9966695e-001 +7.9955593e-001,5.9966695e-001,3.3314783e-002 +7.9978840e-001,1.0432011e-001,5.9114789e-001 +7.9978840e-001,5.9114789e-001,1.0432011e-001 +8.0236863e-001,3.8208014e-001,4.5849683e-001 +8.0236863e-001,4.5849683e-001,3.8208014e-001 +8.0354256e-001,4.2090340e-001,4.2090340e-001 +8.0553205e-002,8.0553205e-002,9.9348999e-001 +8.0553205e-002,9.9348999e-001,8.0553205e-002 +8.0601780e-001,2.1982318e-001,5.4955716e-001 +8.0601780e-001,5.4955716e-001,2.1982318e-001 +8.1153394e-001,0.0000000e+000,5.8430528e-001 +8.1153394e-001,5.8430528e-001,0.0000000e+000 +8.1266519e-001,1.4133307e-001,5.6533198e-001 +8.1266519e-001,5.6533198e-001,1.4133307e-001 +8.1414436e-001,5.7668534e-001,6.7845266e-002 +8.1414436e-001,6.7845266e-002,5.7668534e-001 +8.1481503e-001,2.5925976e-001,5.1851793e-001 +8.1481503e-001,5.1851793e-001,2.5925976e-001 +8.2160464e-001,2.9876605e-001,4.8549424e-001 +8.2160464e-001,4.8549424e-001,2.9876605e-001 +8.2406082e-001,1.7914345e-001,5.3743036e-001 +8.2406082e-001,5.3743036e-001,1.7914345e-001 +8.2541002e-002,1.1005479e-001,9.9049226e-001 +8.2541002e-002,9.9049226e-001,1.1005479e-001 +8.2622740e-001,3.3800153e-001,4.5066978e-001 +8.2622740e-001,4.5066978e-001,3.3800153e-001 +8.2647424e-001,3.3058970e-002,5.6200305e-001 +8.2647424e-001,5.6200305e-001,3.3058970e-002 +8.2758645e-001,1.0344816e-001,5.5172380e-001 +8.2758645e-001,5.5172380e-001,1.0344816e-001 +8.2856803e-001,3.7662154e-001,4.1428401e-001 +8.2856803e-001,4.1428401e-001,3.7662154e-001 +8.3374971e-001,2.1749999e-001,5.0749894e-001 +8.3374971e-001,5.0749894e-001,2.1749999e-001 +8.3696944e-001,0.0000000e+000,5.4724962e-001 +8.3696944e-001,5.4724962e-001,0.0000000e+000 +8.3965405e-001,1.3994229e-001,5.2478303e-001 +8.3965405e-001,5.2478303e-001,1.3994229e-001 +8.4036568e-001,5.3783432e-001,6.7229254e-002 +8.4036568e-001,6.7229254e-002,5.3783432e-001 +8.4152576e-001,2.5611688e-001,4.7564540e-001 +8.4152576e-001,4.7564540e-001,2.5611688e-001 +8.4548983e-002,1.4091497e-001,9.8640481e-001 +8.4548983e-002,9.8640481e-001,1.4091497e-001 +8.4721568e-001,2.9468434e-001,4.4202571e-001 +8.4721568e-001,4.4202571e-001,2.9468434e-001 +8.5012408e-001,1.7710893e-001,4.9590470e-001 +8.5012408e-001,4.9590470e-001,1.7710893e-001 +8.5068597e-001,3.3287643e-001,4.0684968e-001 +8.5068597e-001,4.0684968e-001,3.3287643e-001 +8.5120174e-001,3.2738518e-002,5.2381656e-001 +8.5120174e-001,5.2381656e-001,3.2738518e-002 +8.5185211e-001,3.7037007e-001,3.7037007e-001 +8.5298899e-001,1.0235868e-001,5.1179340e-001 +8.5298899e-001,5.1179340e-001,1.0235868e-001 +8.5878742e-001,2.1469685e-001,4.6517677e-001 +8.5878742e-001,4.6517677e-001,2.1469685e-001 +8.6029156e-001,0.0000000e+000,5.0980235e-001 +8.6029156e-001,5.0980235e-001,0.0000000e+000 +8.6412652e-001,1.3826039e-001,4.8391055e-001 +8.6412652e-001,4.8391055e-001,1.3826039e-001 +8.6426932e-001,4.9861675e-001,6.6482233e-002 +8.6426932e-001,6.6482233e-002,4.9861675e-001 +8.6546208e-001,2.5242670e-001,4.3273104e-001 +8.6546208e-001,4.3273104e-001,2.5242670e-001 +8.6566391e-002,1.7313303e-001,9.8108675e-001 +8.6566391e-002,9.8108675e-001,1.7313303e-001 +8.6999928e-001,2.9000028e-001,3.9874941e-001 +8.6999928e-001,3.9874941e-001,2.9000028e-001 +8.7229523e-001,3.2710993e-001,3.6345582e-001 +8.7229523e-001,3.6345582e-001,3.2710993e-001 +8.7357034e-001,1.7471407e-001,4.5425748e-001 +8.7357034e-001,4.5425748e-001,1.7471407e-001 +8.7369961e-001,3.2359224e-002,4.8538837e-001 +8.7369961e-001,4.8538837e-001,3.2359224e-002 +8.7596244e-001,1.0107256e-001,4.7167164e-001 +8.7596244e-001,4.7167164e-001,1.0107256e-001 +8.8113394e-001,2.1147245e-001,4.2294490e-001 +8.8113394e-001,4.2294490e-001,2.1147245e-001 +8.8148015e-001,0.0000000e+000,4.7222107e-001 +8.8148015e-001,4.7222107e-001,0.0000000e+000 +8.8580714e-002,2.0668884e-001,9.7438862e-001 +8.8580714e-002,9.7438862e-001,2.0668884e-001 +8.8584150e-001,4.5932465e-001,6.5617847e-002 +8.8584150e-001,6.5617847e-002,4.5932465e-001 +8.8607733e-001,1.3631969e-001,4.4303940e-001 +8.8607733e-001,4.4303940e-001,1.3631969e-001 +8.8665839e-001,2.4826496e-001,3.9013000e-001 +8.8665839e-001,3.9013000e-001,2.4826496e-001 +8.9002334e-001,2.8480839e-001,3.5600933e-001 +8.9002334e-001,3.5600933e-001,2.8480839e-001 +8.9115393e-001,3.2081511e-001,3.2081511e-001 +8.9397147e-001,3.1927523e-002,4.4698505e-001 +8.9397147e-001,4.4698505e-001,3.1927523e-002 +8.9442703e-001,1.7200514e-001,4.1281293e-001 +8.9442703e-001,4.1281293e-001,1.7200514e-001 +8.9652007e-001,4.3165839e-001,9.9613277e-002 +8.9652007e-001,9.9613277e-002,4.3165839e-001 +9.0055194e-001,0.0000000e+000,4.3474843e-001 +9.0055194e-001,4.3474843e-001,0.0000000e+000 +9.0084651e-001,2.0788788e-001,3.8112754e-001 +9.0084651e-001,3.8112754e-001,2.0788788e-001 +9.0511129e-001,4.2023069e-001,6.4650747e-002 +9.0511129e-001,6.4650747e-002,4.2023069e-001 +9.0520373e-001,2.4370922e-001,3.4815517e-001 +9.0520373e-001,3.4815517e-001,2.4370922e-001 +9.0555081e-001,1.3415573e-001,4.0246735e-001 +9.0555081e-001,4.0246735e-001,1.3415573e-001 +9.0576939e-002,2.4153928e-001,9.6615454e-001 +9.0576939e-002,9.6615454e-001,2.4153928e-001 +9.0740617e-001,2.7920271e-001,3.1410173e-001 +9.0740617e-001,3.1410173e-001,2.7920271e-001 +9.1205780e-001,3.1450232e-002,4.0885382e-001 +9.1205780e-001,4.0885382e-001,3.1450232e-002 +9.1276659e-001,1.6903074e-001,3.7186793e-001 +9.1276659e-001,3.7186793e-001,1.6903074e-001 +9.1472006e-001,3.9202309e-001,9.8005631e-002 +9.1472006e-001,9.8005631e-002,3.9202309e-001 +9.1755534e-001,0.0000000e+000,3.9760810e-001 +9.1755534e-001,3.9760810e-001,0.0000000e+000 +9.1802758e-001,2.0400629e-001,3.4001000e-001 +9.1802758e-001,3.4001000e-001,2.0400629e-001 +9.2122815e-001,2.3883736e-001,3.0707556e-001 +9.2122815e-001,3.0707556e-001,2.3883736e-001 +9.2214632e-001,3.8157788e-001,6.3596223e-002 +9.2214632e-001,6.3596223e-002,3.8157788e-001 +9.2230207e-001,2.7327540e-001,2.7327540e-001 +9.2263138e-001,1.3180450e-001,3.6246228e-001 +9.2263138e-001,3.6246228e-001,1.3180450e-001 +9.2537938e-002,2.7761355e-001,9.5622563e-001 +9.2537938e-002,9.5622563e-001,2.7761355e-001 +9.2803215e-001,3.0934405e-002,3.7121339e-001 +9.2803215e-001,3.7121339e-001,3.0934405e-002 +9.2870150e-001,1.6583940e-001,3.3167880e-001 +9.2870150e-001,3.3167880e-001,1.6583940e-001 +9.3065435e-001,3.5300668e-001,9.6274473e-002 +9.3065435e-001,9.6274473e-002,3.5300668e-001 +9.3256796e-001,0.0000000e+000,3.6099447e-001 +9.3256796e-001,3.6099447e-001,0.0000000e+000 +9.3281538e-001,1.9988911e-001,2.9983295e-001 +9.3281538e-001,2.9983295e-001,1.9988911e-001 +9.3489256e-001,2.3372350e-001,2.6711277e-001 +9.3489256e-001,2.6711277e-001,2.3372350e-001 +9.3704248e-001,3.4358251e-001,6.2469499e-002 +9.3704248e-001,6.2469499e-002,3.4358251e-001 +9.3743698e-001,1.2930164e-001,3.2325375e-001 +9.3743698e-001,3.2325375e-001,1.2930164e-001 +9.4199249e-001,3.0386846e-002,3.3425557e-001 +9.4199249e-001,3.3425557e-001,3.0386846e-002 +9.4237358e-001,1.6247801e-001,2.9246014e-001 +9.4237358e-001,2.9246014e-001,1.6247801e-001 +9.4444283e-001,3.1481428e-001,9.4444283e-002 +9.4444283e-001,9.4444283e-002,3.1481428e-001 +9.4444283e-002,3.1481428e-001,9.4444283e-001 +9.4444283e-002,9.4444283e-001,3.1481428e-001 +9.4537284e-001,1.9559443e-001,2.6079304e-001 +9.4537284e-001,2.6079304e-001,1.9559443e-001 +9.4568657e-001,0.0000000e+000,3.2507984e-001 +9.4568657e-001,3.2507984e-001,0.0000000e+000 +9.4637911e-001,2.2843663e-001,2.2843663e-001 +9.4991972e-001,3.0642563e-001,6.1285126e-002 +9.4991972e-001,6.1285126e-002,3.0642563e-001 +9.5010959e-001,1.2668141e-001,2.8503260e-001 +9.5010959e-001,2.8503260e-001,1.2668141e-001 +9.5394430e-001,1.5899072e-001,2.5438597e-001 +9.5394430e-001,2.5438597e-001,1.5899072e-001 +9.5405572e-001,2.9814225e-001,2.9814225e-002 +9.5405572e-001,2.9814225e-002,2.9814225e-001 +9.5587931e-001,1.9117614e-001,2.2303905e-001 +9.5587931e-001,2.2303905e-001,1.9117614e-001 +9.5622563e-001,2.7761355e-001,9.2537938e-002 +9.5622563e-001,9.2537938e-002,2.7761355e-001 +9.5702447e-001,0.0000000e+000,2.9000719e-001 +9.5702447e-001,2.9000719e-001,0.0000000e+000 +9.6080719e-001,1.2397522e-001,2.4795097e-001 +9.6080719e-001,2.4795097e-001,1.2397522e-001 +9.6091341e-001,2.7025649e-001,6.0057056e-002 +9.6091341e-001,6.0057056e-002,2.7025649e-001 +9.6274473e-002,3.5300668e-001,9.3065435e-001 +9.6274473e-002,9.3065435e-001,3.5300668e-001 +9.6358821e-001,1.5541741e-001,2.1758491e-001 +9.6358821e-001,2.1758491e-001,1.5541741e-001 +9.6435191e-001,2.6300461e-001,2.9222762e-002 +9.6435191e-001,2.9222762e-002,2.6300461e-001 +9.6452058e-001,1.8668162e-001,1.8668162e-001 +9.6615454e-001,2.4153928e-001,9.0576939e-002 +9.6615454e-001,9.0576939e-002,2.4153928e-001 +9.6670535e-001,0.0000000e+000,2.5589209e-001 +9.6670535e-001,2.5589209e-001,0.0000000e+000 +9.6969688e-001,1.2121217e-001,2.1212160e-001 +9.6969688e-001,2.1212160e-001,1.2121217e-001 +9.7016857e-001,2.3519296e-001,5.8798049e-002 +9.7016857e-001,5.8798049e-002,2.3519296e-001 +9.7148277e-001,1.5179410e-001,1.8215318e-001 +9.7148277e-001,1.8215318e-001,1.5179410e-001 +9.7301836e-001,2.2894600e-001,2.8618158e-002 +9.7301836e-001,2.8618158e-002,2.2894600e-001 +9.7438862e-001,2.0668884e-001,8.8580714e-002 +9.7438862e-001,8.8580714e-002,2.0668884e-001 +9.7485835e-001,0.0000000e+000,2.2282548e-001 +9.7485835e-001,2.2282548e-001,0.0000000e+000 +9.7694723e-001,1.1841788e-001,1.7762689e-001 +9.7694723e-001,1.7762689e-001,1.1841788e-001 +9.7780464e-001,1.4815210e-001,1.4815210e-001 +9.7783537e-001,2.0131934e-001,5.7519669e-002 +9.7783537e-001,5.7519669e-002,2.0131934e-001 +9.8005631e-002,3.9202309e-001,9.1472006e-001 +9.8005631e-002,9.1472006e-001,3.9202309e-001 +9.8019597e-001,1.9603967e-001,2.8005599e-002 +9.8019597e-001,2.8005599e-002,1.9603967e-001 +9.8108675e-001,1.7313303e-001,8.6566391e-002 +9.8108675e-001,8.6566391e-002,1.7313303e-001 +9.8161531e-001,0.0000000e+000,1.9087007e-001 +9.8161531e-001,1.9087007e-001,0.0000000e+000 +9.8272465e-001,1.1561467e-001,1.4451818e-001 +9.8272465e-001,1.4451818e-001,1.1561467e-001 +9.8406268e-001,1.6869670e-001,5.6232153e-002 +9.8406268e-001,5.6232153e-002,1.6869670e-001 +9.8602383e-001,1.6433750e-001,2.7389544e-002 +9.8602383e-001,2.7389544e-002,1.6433750e-001 +9.8640481e-001,1.4091497e-001,8.4548983e-002 +9.8640481e-001,8.4548983e-002,1.4091497e-001 +9.8710545e-001,0.0000000e+000,1.6007131e-001 +9.8710545e-001,1.6007131e-001,0.0000000e+000 +9.8718920e-001,1.1282174e-001,1.1282174e-001 +9.8899607e-001,1.3736053e-001,5.4944213e-002 +9.8899607e-001,5.4944213e-002,1.3736053e-001 +9.9049226e-001,1.1005479e-001,8.2541002e-002 +9.9049226e-001,8.2541002e-002,1.1005479e-001 +9.9063718e-001,1.3386983e-001,2.6773965e-002 +9.9063718e-001,2.6773965e-002,1.3386983e-001 +9.9145431e-001,0.0000000e+000,1.3045443e-001 +9.9145431e-001,1.3045443e-001,0.0000000e+000 +9.9277447e-001,1.0732703e-001,5.3663460e-002 +9.9277447e-001,5.3663460e-002,1.0732703e-001 +9.9348999e-001,8.0553205e-002,8.0553205e-002 +9.9416504e-001,1.0464899e-001,2.6162220e-002 +9.9416504e-001,2.6162220e-002,1.0464899e-001 +9.9478144e-001,0.0000000e+000,1.0202888e-001 +9.9478144e-001,1.0202888e-001,0.0000000e+000 +9.9552879e-001,5.2396216e-002,7.8594325e-002 +9.9552879e-001,7.8594325e-002,5.2396216e-002 +9.9613277e-002,4.3165839e-001,8.9652007e-001 +9.9613277e-002,8.9652007e-001,4.3165839e-001 +9.9672882e-001,2.5557127e-002,7.6671380e-002 +9.9672882e-001,7.6671380e-002,2.5557127e-002 +9.9719932e-001,0.0000000e+000,7.4789868e-002 +9.9719932e-001,7.4789868e-002,0.0000000e+000 +9.9738048e-001,5.1147672e-002,5.1147672e-002 +9.9844116e-001,2.4961002e-002,4.9922004e-002 +9.9844116e-001,4.9922004e-002,2.4961002e-002 +9.9881235e-001,0.0000000e+000,4.8722544e-002 +9.9881235e-001,4.8722544e-002,0.0000000e+000 +9.9940565e-001,2.4375742e-002,2.4375742e-002 +9.9971667e-001,0.0000000e+000,2.3802768e-002 +9.9971667e-001,2.3802768e-002,0.0000000e+000 diff --git a/resources/referenceFrontsCSV/LZ09_F7.pf b/resources/referenceFrontsCSV/LZ09_F7.pf new file mode 100644 index 0000000000..88feaa0ed2 --- /dev/null +++ b/resources/referenceFrontsCSV/LZ09_F7.pf @@ -0,0 +1,500 @@ +0.0000000e+000,1.0000000e+000 +1.0000000e+000,0.0000000e+000 +1.0020040e-001,6.8345553e-001 +1.0020040e-002,8.9989985e-001 +1.0220441e-001,6.8030576e-001 +1.0420842e-001,6.7718672e-001 +1.0621242e-001,6.7409752e-001 +1.0821643e-001,6.7103734e-001 +1.1022044e-001,6.6800536e-001 +1.1222445e-001,6.6500082e-001 +1.1422846e-001,6.6202299e-001 +1.1623246e-001,6.5907117e-001 +1.1823647e-001,6.5614469e-001 +1.2024048e-001,6.5324291e-001 +1.2024048e-002,8.9034578e-001 +1.2224449e-001,6.5036521e-001 +1.2424850e-001,6.4751100e-001 +1.2625251e-001,6.4467971e-001 +1.2825651e-001,6.4187082e-001 +1.3026052e-001,6.3908378e-001 +1.3226453e-001,6.3631809e-001 +1.3426854e-001,6.3357329e-001 +1.3627255e-001,6.3084889e-001 +1.3827655e-001,6.2814445e-001 +1.4028056e-001,6.2545953e-001 +1.4028056e-002,8.8155990e-001 +1.4228457e-001,6.2279373e-001 +1.4428858e-001,6.2014664e-001 +1.4629259e-001,6.1751786e-001 +1.4829659e-001,6.1490703e-001 +1.5030060e-001,6.1231379e-001 +1.5230461e-001,6.0973777e-001 +1.5430862e-001,6.0717864e-001 +1.5631263e-001,6.0463609e-001 +1.5831663e-001,6.0210977e-001 +1.6032064e-001,5.9959940e-001 +1.6032064e-002,8.7338221e-001 +1.6232465e-001,5.9710467e-001 +1.6432866e-001,5.9462529e-001 +1.6633267e-001,5.9216098e-001 +1.6833667e-001,5.8971148e-001 +1.7034068e-001,5.8727651e-001 +1.7234469e-001,5.8485582e-001 +1.7434870e-001,5.8244917e-001 +1.7635271e-001,5.8005631e-001 +1.7835671e-001,5.7767700e-001 +1.8036072e-001,5.7531103e-001 +1.8036072e-002,8.6570156e-001 +1.8236473e-001,5.7295816e-001 +1.8436874e-001,5.7061819e-001 +1.8637275e-001,5.6829090e-001 +1.8837675e-001,5.6597609e-001 +1.9038076e-001,5.6367356e-001 +1.9238477e-001,5.6138312e-001 +1.9438878e-001,5.5910457e-001 +1.9639279e-001,5.5683774e-001 +1.9839679e-001,5.5458245e-001 +2.0040080e-001,5.5233852e-001 +2.0040080e-002,8.5843701e-001 +2.0040080e-003,9.5523385e-001 +2.0240481e-001,5.5010578e-001 +2.0440882e-001,5.4788407e-001 +2.0641283e-001,5.4567322e-001 +2.0841683e-001,5.4347307e-001 +2.1042084e-001,5.4128348e-001 +2.1242485e-001,5.3910430e-001 +2.1442886e-001,5.3693536e-001 +2.1643287e-001,5.3477654e-001 +2.1843687e-001,5.3262769e-001 +2.2044088e-001,5.3048868e-001 +2.2044088e-002,8.5152748e-001 +2.2244489e-001,5.2835936e-001 +2.2444890e-001,5.2623962e-001 +2.2645291e-001,5.2412932e-001 +2.2845691e-001,5.2202833e-001 +2.3046092e-001,5.1993654e-001 +2.3246493e-001,5.1785383e-001 +2.3446894e-001,5.1578007e-001 +2.3647295e-001,5.1371516e-001 +2.3847695e-001,5.1165898e-001 +2.4048096e-001,5.0961142e-001 +2.4048096e-002,8.4492551e-001 +2.4248497e-001,5.0757237e-001 +2.4448898e-001,5.0554173e-001 +2.4649299e-001,5.0351940e-001 +2.4849699e-001,5.0150527e-001 +2.5050100e-001,4.9949925e-001 +2.5250501e-001,4.9750123e-001 +2.5450902e-001,4.9551113e-001 +2.5651303e-001,4.9352885e-001 +2.5851703e-001,4.9155430e-001 +2.6052104e-001,4.8958738e-001 +2.6052104e-002,8.3859336e-001 +2.6252505e-001,4.8762802e-001 +2.6452906e-001,4.8567612e-001 +2.6653307e-001,4.8373159e-001 +2.6853707e-001,4.8179437e-001 +2.7054108e-001,4.7986436e-001 +2.7254509e-001,4.7794149e-001 +2.7454910e-001,4.7602567e-001 +2.7655311e-001,4.7411683e-001 +2.7855711e-001,4.7221490e-001 +2.8056112e-001,4.7031979e-001 +2.8056112e-002,8.3250041e-001 +2.8256513e-001,4.6843144e-001 +2.8456914e-001,4.6654978e-001 +2.8657315e-001,4.6467473e-001 +2.8857715e-001,4.6280622e-001 +2.9058116e-001,4.6094419e-001 +2.9258517e-001,4.5908857e-001 +2.9458918e-001,4.5723930e-001 +2.9659319e-001,4.5539630e-001 +2.9859719e-001,4.5355952e-001 +3.0060120e-001,4.5172890e-001 +3.0060120e-002,8.2662145e-001 +3.0260521e-001,4.4990436e-001 +3.0460922e-001,4.4808586e-001 +3.0661323e-001,4.4627333e-001 +3.0861723e-001,4.4446671e-001 +3.1062124e-001,4.4266595e-001 +3.1262525e-001,4.4087099e-001 +3.1462926e-001,4.3908177e-001 +3.1663327e-001,4.3729824e-001 +3.1863727e-001,4.3552035e-001 +3.2064128e-001,4.3374804e-001 +3.2064128e-002,8.2093541e-001 +3.2264529e-001,4.3198126e-001 +3.2464930e-001,4.3021996e-001 +3.2665331e-001,4.2846408e-001 +3.2865731e-001,4.2671358e-001 +3.3066132e-001,4.2496842e-001 +3.3266533e-001,4.2322853e-001 +3.3466934e-001,4.2149387e-001 +3.3667335e-001,4.1976440e-001 +3.3867735e-001,4.1804007e-001 +3.4068136e-001,4.1632084e-001 +3.4068136e-002,8.1542444e-001 +3.4268537e-001,4.1460665e-001 +3.4468938e-001,4.1289747e-001 +3.4669339e-001,4.1119325e-001 +3.4869739e-001,4.0949395e-001 +3.5070140e-001,4.0779952e-001 +3.5270541e-001,4.0610993e-001 +3.5470942e-001,4.0442514e-001 +3.5671343e-001,4.0274509e-001 +3.5871743e-001,4.0106976e-001 +3.6072144e-001,3.9939910e-001 +3.6072144e-002,8.1007332e-001 +3.6272545e-001,3.9773307e-001 +3.6472946e-001,3.9607164e-001 +3.6673347e-001,3.9441477e-001 +3.6873747e-001,3.9276242e-001 +3.7074148e-001,3.9111456e-001 +3.7274549e-001,3.8947114e-001 +3.7474950e-001,3.8783213e-001 +3.7675351e-001,3.8619750e-001 +3.7875752e-001,3.8456721e-001 +3.8076152e-001,3.8294123e-001 +3.8076152e-002,8.0486888e-001 +3.8276553e-001,3.8131952e-001 +3.8476954e-001,3.7970206e-001 +3.8677355e-001,3.7808879e-001 +3.8877756e-001,3.7647971e-001 +3.9078156e-001,3.7487476e-001 +3.9278557e-001,3.7327393e-001 +3.9478958e-001,3.7167717e-001 +3.9679359e-001,3.7008446e-001 +3.9879760e-001,3.6849577e-001 +4.0080160e-001,3.6691106e-001 +4.0080160e-002,7.9979970e-001 +4.0080160e-003,9.3669111e-001 +4.0280561e-001,3.6533031e-001 +4.0480962e-001,3.6375349e-001 +4.0681363e-001,3.6218057e-001 +4.0881764e-001,3.6061151e-001 +4.1082164e-001,3.5904630e-001 +4.1282565e-001,3.5748490e-001 +4.1482966e-001,3.5592729e-001 +4.1683367e-001,3.5437343e-001 +4.1883768e-001,3.5282330e-001 +4.2084168e-001,3.5127688e-001 +4.2084168e-002,7.9485574e-001 +4.2284569e-001,3.4973414e-001 +4.2484970e-001,3.4819504e-001 +4.2685371e-001,3.4665958e-001 +4.2885772e-001,3.4512771e-001 +4.3086172e-001,3.4359942e-001 +4.3286573e-001,3.4207468e-001 +4.3486974e-001,3.4055346e-001 +4.3687375e-001,3.3903574e-001 +4.3887776e-001,3.3752151e-001 +4.4088176e-001,3.3601072e-001 +4.4088176e-002,7.9002815e-001 +4.4288577e-001,3.3450336e-001 +4.4488978e-001,3.3299942e-001 +4.4689379e-001,3.3149885e-001 +4.4889780e-001,3.3000165e-001 +4.5090180e-001,3.2850778e-001 +4.5290581e-001,3.2701723e-001 +4.5490982e-001,3.2552997e-001 +4.5691383e-001,3.2404599e-001 +4.5891784e-001,3.2256525e-001 +4.6092184e-001,3.2108775e-001 +4.6092184e-002,7.8530910e-001 +4.6292585e-001,3.1961345e-001 +4.6492986e-001,3.1814235e-001 +4.6693387e-001,3.1667441e-001 +4.6893788e-001,3.1520961e-001 +4.7094188e-001,3.1374794e-001 +4.7294589e-001,3.1228938e-001 +4.7494990e-001,3.1083391e-001 +4.7695391e-001,3.0938150e-001 +4.7895792e-001,3.0793215e-001 +4.8096192e-001,3.0648582e-001 +4.8096192e-002,7.8069156e-001 +4.8296593e-001,3.0504250e-001 +4.8496994e-001,3.0360217e-001 +4.8697395e-001,3.0216481e-001 +4.8897796e-001,3.0073041e-001 +4.9098196e-001,2.9929895e-001 +4.9298597e-001,2.9787040e-001 +4.9498998e-001,2.9644476e-001 +4.9699399e-001,2.9502199e-001 +4.9899800e-001,2.9360210e-001 +5.0100200e-001,2.9218505e-001 +5.0100200e-002,7.7616926e-001 +5.0300601e-001,2.9077083e-001 +5.0501002e-001,2.8935943e-001 +5.0701403e-001,2.8795082e-001 +5.0901804e-001,2.8654500e-001 +5.1102204e-001,2.8514194e-001 +5.1302605e-001,2.8374163e-001 +5.1503006e-001,2.8234405e-001 +5.1703407e-001,2.8094919e-001 +5.1903808e-001,2.7955703e-001 +5.2104208e-001,2.7816755e-001 +5.2104208e-002,7.7173654e-001 +5.2304609e-001,2.7678074e-001 +5.2505010e-001,2.7539659e-001 +5.2705411e-001,2.7401508e-001 +5.2905812e-001,2.7263619e-001 +5.3106212e-001,2.7125991e-001 +5.3306613e-001,2.6988622e-001 +5.3507014e-001,2.6851511e-001 +5.3707415e-001,2.6714657e-001 +5.3907816e-001,2.6578058e-001 +5.4108216e-001,2.6441713e-001 +5.4108216e-002,7.6738827e-001 +5.4308617e-001,2.6305619e-001 +5.4509018e-001,2.6169777e-001 +5.4709419e-001,2.6034184e-001 +5.4909820e-001,2.5898840e-001 +5.5110220e-001,2.5763742e-001 +5.5310621e-001,2.5628889e-001 +5.5511022e-001,2.5494281e-001 +5.5711423e-001,2.5359915e-001 +5.5911824e-001,2.5225791e-001 +5.6112224e-001,2.5091907e-001 +5.6112224e-002,7.6311981e-001 +5.6312625e-001,2.4958261e-001 +5.6513026e-001,2.4824854e-001 +5.6713427e-001,2.4691682e-001 +5.6913828e-001,2.4558746e-001 +5.7114228e-001,2.4426044e-001 +5.7314629e-001,2.4293574e-001 +5.7515030e-001,2.4161336e-001 +5.7715431e-001,2.4029327e-001 +5.7915832e-001,2.3897548e-001 +5.8116232e-001,2.3765997e-001 +5.8116232e-002,7.5892691e-001 +5.8316633e-001,2.3634672e-001 +5.8517034e-001,2.3503573e-001 +5.8717435e-001,2.3372698e-001 +5.8917836e-001,2.3242046e-001 +5.9118236e-001,2.3111616e-001 +5.9318637e-001,2.2981407e-001 +5.9519038e-001,2.2851417e-001 +5.9719439e-001,2.2721647e-001 +5.9919840e-001,2.2592094e-001 +6.0120240e-001,2.2462757e-001 +6.0120240e-002,7.5480571e-001 +6.0120240e-003,9.2246276e-001 +6.0320641e-001,2.2333636e-001 +6.0521042e-001,2.2204729e-001 +6.0721443e-001,2.2076035e-001 +6.0921844e-001,2.1947554e-001 +6.1122244e-001,2.1819283e-001 +6.1322645e-001,2.1691223e-001 +6.1523046e-001,2.1563372e-001 +6.1723447e-001,2.1435729e-001 +6.1923848e-001,2.1308293e-001 +6.2124248e-001,2.1181063e-001 +6.2124248e-002,7.5075264e-001 +6.2324649e-001,2.1054038e-001 +6.2525050e-001,2.0927217e-001 +6.2725451e-001,2.0800599e-001 +6.2925852e-001,2.0674183e-001 +6.3126253e-001,2.0547969e-001 +6.3326653e-001,2.0421954e-001 +6.3527054e-001,2.0296139e-001 +6.3727455e-001,2.0170522e-001 +6.3927856e-001,2.0045103e-001 +6.4128257e-001,1.9919880e-001 +6.4128257e-002,7.4676442e-001 +6.4328657e-001,1.9794852e-001 +6.4529058e-001,1.9670019e-001 +6.4729459e-001,1.9545380e-001 +6.4929860e-001,1.9420933e-001 +6.5130261e-001,1.9296679e-001 +6.5330661e-001,1.9172615e-001 +6.5531062e-001,1.9048742e-001 +6.5731463e-001,1.8925058e-001 +6.5931864e-001,1.8801562e-001 +6.6132265e-001,1.8678254e-001 +6.6132265e-002,7.4283806e-001 +6.6332665e-001,1.8555132e-001 +6.6533066e-001,1.8432196e-001 +6.6733467e-001,1.8309446e-001 +6.6933868e-001,1.8186879e-001 +6.7134269e-001,1.8064496e-001 +6.7334669e-001,1.7942295e-001 +6.7535070e-001,1.7820276e-001 +6.7735471e-001,1.7698438e-001 +6.7935872e-001,1.7576780e-001 +6.8136273e-001,1.7455301e-001 +6.8136273e-002,7.3897074e-001 +6.8336673e-001,1.7334001e-001 +6.8537074e-001,1.7212879e-001 +6.8737475e-001,1.7091933e-001 +6.8937876e-001,1.6971164e-001 +6.9138277e-001,1.6850570e-001 +6.9338677e-001,1.6730151e-001 +6.9539078e-001,1.6609906e-001 +6.9739479e-001,1.6489834e-001 +6.9939880e-001,1.6369934e-001 +7.0140281e-001,1.6250206e-001 +7.0140281e-002,7.3515990e-001 +7.0340681e-001,1.6130648e-001 +7.0541082e-001,1.6011261e-001 +7.0741483e-001,1.5892044e-001 +7.0941884e-001,1.5772995e-001 +7.1142285e-001,1.5654114e-001 +7.1342685e-001,1.5535401e-001 +7.1543086e-001,1.5416854e-001 +7.1743487e-001,1.5298473e-001 +7.1943888e-001,1.5180257e-001 +7.2144289e-001,1.5062206e-001 +7.2144289e-002,7.3140311e-001 +7.2344689e-001,1.4944319e-001 +7.2545090e-001,1.4826594e-001 +7.2745491e-001,1.4709033e-001 +7.2945892e-001,1.4591633e-001 +7.3146293e-001,1.4474394e-001 +7.3346693e-001,1.4357316e-001 +7.3547094e-001,1.4240398e-001 +7.3747495e-001,1.4123638e-001 +7.3947896e-001,1.4007038e-001 +7.4148297e-001,1.3890595e-001 +7.4148297e-002,7.2769815e-001 +7.4348697e-001,1.3774309e-001 +7.4549098e-001,1.3658180e-001 +7.4749499e-001,1.3542207e-001 +7.4949900e-001,1.3426390e-001 +7.5150301e-001,1.3310727e-001 +7.5350701e-001,1.3195218e-001 +7.5551102e-001,1.3079863e-001 +7.5751503e-001,1.2964661e-001 +7.5951904e-001,1.2849611e-001 +7.6152305e-001,1.2734712e-001 +7.6152305e-002,7.2404293e-001 +7.6352705e-001,1.2619965e-001 +7.6553106e-001,1.2505368e-001 +7.6753507e-001,1.2390921e-001 +7.6953908e-001,1.2276624e-001 +7.7154309e-001,1.2162475e-001 +7.7354709e-001,1.2048474e-001 +7.7555110e-001,1.1934621e-001 +7.7755511e-001,1.1820915e-001 +7.7955912e-001,1.1707355e-001 +7.8156313e-001,1.1593941e-001 +7.8156313e-002,7.2043549e-001 +7.8356713e-001,1.1480672e-001 +7.8557114e-001,1.1367549e-001 +7.8757515e-001,1.1254569e-001 +7.8957916e-001,1.1141733e-001 +7.9158317e-001,1.1029040e-001 +7.9358717e-001,1.0916490e-001 +7.9559118e-001,1.0804082e-001 +7.9759519e-001,1.0691815e-001 +7.9959920e-001,1.0579689e-001 +8.0160321e-001,1.0467704e-001 +8.0160321e-002,7.1687402e-001 +8.0160321e-003,9.1046770e-001 +8.0360721e-001,1.0355858e-001 +8.0561122e-001,1.0244152e-001 +8.0761523e-001,1.0132585e-001 +8.0961924e-001,1.0021156e-001 +8.1162325e-001,9.9098648e-002 +8.1362725e-001,9.7987110e-002 +8.1563126e-001,9.6876939e-002 +8.1763527e-001,9.5768132e-002 +8.1963928e-001,9.4660683e-002 +8.2164329e-001,9.3554587e-002 +8.2164329e-002,7.1335679e-001 +8.2364729e-001,9.2449839e-002 +8.2565130e-001,9.1346434e-002 +8.2765531e-001,9.0244368e-002 +8.2965932e-001,8.9143634e-002 +8.3166333e-001,8.8044230e-002 +8.3366733e-001,8.6946149e-002 +8.3567134e-001,8.5849387e-002 +8.3767535e-001,8.4753940e-002 +8.3967936e-001,8.3659802e-002 +8.4168337e-001,8.2566969e-002 +8.4168337e-002,7.0988220e-001 +8.4368737e-001,8.1475436e-002 +8.4569138e-001,8.0385199e-002 +8.4769539e-001,7.9296252e-002 +8.4969940e-001,7.8208593e-002 +8.5170341e-001,7.7122215e-002 +8.5370741e-001,7.6037114e-002 +8.5571142e-001,7.4953286e-002 +8.5771543e-001,7.3870727e-002 +8.5971944e-001,7.2789431e-002 +8.6172345e-001,7.1709395e-002 +8.6172345e-002,7.0644874e-001 +8.6372745e-001,7.0630614e-002 +8.6573146e-001,6.9553084e-002 +8.6773547e-001,6.8476801e-002 +8.6973948e-001,6.7401759e-002 +8.7174349e-001,6.6327955e-002 +8.7374749e-001,6.5255385e-002 +8.7575150e-001,6.4184044e-002 +8.7775551e-001,6.3113928e-002 +8.7975952e-001,6.2045034e-002 +8.8176353e-001,6.0977355e-002 +8.8176353e-002,7.0305497e-001 +8.8376754e-001,5.9910890e-002 +8.8577154e-001,5.8845633e-002 +8.8777555e-001,5.7781580e-002 +8.8977956e-001,5.6718727e-002 +8.9178357e-001,5.5657071e-002 +8.9378758e-001,5.4596607e-002 +8.9579158e-001,5.3537331e-002 +8.9779559e-001,5.2479240e-002 +8.9979960e-001,5.1422328e-002 +9.0180361e-001,5.0366593e-002 +9.0180361e-002,6.9969955e-001 +9.0380762e-001,4.9312031e-002 +9.0581162e-001,4.8258636e-002 +9.0781563e-001,4.7206407e-002 +9.0981964e-001,4.6155338e-002 +9.1182365e-001,4.5105426e-002 +9.1382766e-001,4.4056667e-002 +9.1583166e-001,4.3009058e-002 +9.1783567e-001,4.1962594e-002 +9.1983968e-001,4.0917272e-002 +9.2184369e-001,3.9873088e-002 +9.2184369e-002,6.9638121e-001 +9.2384770e-001,3.8830038e-002 +9.2585170e-001,3.7788119e-002 +9.2785571e-001,3.6747327e-002 +9.2985972e-001,3.5707659e-002 +9.3186373e-001,3.4669110e-002 +9.3386774e-001,3.3631677e-002 +9.3587174e-001,3.2595357e-002 +9.3787575e-001,3.1560146e-002 +9.3987976e-001,3.0526040e-002 +9.4188377e-001,2.9493036e-002 +9.4188377e-002,6.9309875e-001 +9.4388778e-001,2.8461130e-002 +9.4589178e-001,2.7430319e-002 +9.4789579e-001,2.6400600e-002 +9.4989980e-001,2.5371969e-002 +9.5190381e-001,2.4344422e-002 +9.5390782e-001,2.3317956e-002 +9.5591182e-001,2.2292567e-002 +9.5791583e-001,2.1268253e-002 +9.5991984e-001,2.0245010e-002 +9.6192385e-001,1.9222835e-002 +9.6192385e-002,6.8985103e-001 +9.6392786e-001,1.8201724e-002 +9.6593186e-001,1.7181673e-002 +9.6793587e-001,1.6162680e-002 +9.6993988e-001,1.5144742e-002 +9.7194389e-001,1.4127854e-002 +9.7394790e-001,1.3112015e-002 +9.7595190e-001,1.2097219e-002 +9.7795591e-001,1.1083466e-002 +9.7995992e-001,1.0070750e-002 +9.8196393e-001,9.0590694e-003 +9.8196393e-002,6.8663696e-001 +9.8396794e-001,8.0484206e-003 +9.8597194e-001,7.0388004e-003 +9.8797595e-001,6.0302057e-003 +9.8997996e-001,5.0226335e-003 +9.9198397e-001,4.0160805e-003 +9.9398798e-001,3.0105437e-003 +9.9599198e-001,2.0060201e-003 +9.9799599e-001,1.0025065e-003 diff --git a/resources/referenceFrontsCSV/LZ09_F8.pf b/resources/referenceFrontsCSV/LZ09_F8.pf new file mode 100644 index 0000000000..88feaa0ed2 --- /dev/null +++ b/resources/referenceFrontsCSV/LZ09_F8.pf @@ -0,0 +1,500 @@ +0.0000000e+000,1.0000000e+000 +1.0000000e+000,0.0000000e+000 +1.0020040e-001,6.8345553e-001 +1.0020040e-002,8.9989985e-001 +1.0220441e-001,6.8030576e-001 +1.0420842e-001,6.7718672e-001 +1.0621242e-001,6.7409752e-001 +1.0821643e-001,6.7103734e-001 +1.1022044e-001,6.6800536e-001 +1.1222445e-001,6.6500082e-001 +1.1422846e-001,6.6202299e-001 +1.1623246e-001,6.5907117e-001 +1.1823647e-001,6.5614469e-001 +1.2024048e-001,6.5324291e-001 +1.2024048e-002,8.9034578e-001 +1.2224449e-001,6.5036521e-001 +1.2424850e-001,6.4751100e-001 +1.2625251e-001,6.4467971e-001 +1.2825651e-001,6.4187082e-001 +1.3026052e-001,6.3908378e-001 +1.3226453e-001,6.3631809e-001 +1.3426854e-001,6.3357329e-001 +1.3627255e-001,6.3084889e-001 +1.3827655e-001,6.2814445e-001 +1.4028056e-001,6.2545953e-001 +1.4028056e-002,8.8155990e-001 +1.4228457e-001,6.2279373e-001 +1.4428858e-001,6.2014664e-001 +1.4629259e-001,6.1751786e-001 +1.4829659e-001,6.1490703e-001 +1.5030060e-001,6.1231379e-001 +1.5230461e-001,6.0973777e-001 +1.5430862e-001,6.0717864e-001 +1.5631263e-001,6.0463609e-001 +1.5831663e-001,6.0210977e-001 +1.6032064e-001,5.9959940e-001 +1.6032064e-002,8.7338221e-001 +1.6232465e-001,5.9710467e-001 +1.6432866e-001,5.9462529e-001 +1.6633267e-001,5.9216098e-001 +1.6833667e-001,5.8971148e-001 +1.7034068e-001,5.8727651e-001 +1.7234469e-001,5.8485582e-001 +1.7434870e-001,5.8244917e-001 +1.7635271e-001,5.8005631e-001 +1.7835671e-001,5.7767700e-001 +1.8036072e-001,5.7531103e-001 +1.8036072e-002,8.6570156e-001 +1.8236473e-001,5.7295816e-001 +1.8436874e-001,5.7061819e-001 +1.8637275e-001,5.6829090e-001 +1.8837675e-001,5.6597609e-001 +1.9038076e-001,5.6367356e-001 +1.9238477e-001,5.6138312e-001 +1.9438878e-001,5.5910457e-001 +1.9639279e-001,5.5683774e-001 +1.9839679e-001,5.5458245e-001 +2.0040080e-001,5.5233852e-001 +2.0040080e-002,8.5843701e-001 +2.0040080e-003,9.5523385e-001 +2.0240481e-001,5.5010578e-001 +2.0440882e-001,5.4788407e-001 +2.0641283e-001,5.4567322e-001 +2.0841683e-001,5.4347307e-001 +2.1042084e-001,5.4128348e-001 +2.1242485e-001,5.3910430e-001 +2.1442886e-001,5.3693536e-001 +2.1643287e-001,5.3477654e-001 +2.1843687e-001,5.3262769e-001 +2.2044088e-001,5.3048868e-001 +2.2044088e-002,8.5152748e-001 +2.2244489e-001,5.2835936e-001 +2.2444890e-001,5.2623962e-001 +2.2645291e-001,5.2412932e-001 +2.2845691e-001,5.2202833e-001 +2.3046092e-001,5.1993654e-001 +2.3246493e-001,5.1785383e-001 +2.3446894e-001,5.1578007e-001 +2.3647295e-001,5.1371516e-001 +2.3847695e-001,5.1165898e-001 +2.4048096e-001,5.0961142e-001 +2.4048096e-002,8.4492551e-001 +2.4248497e-001,5.0757237e-001 +2.4448898e-001,5.0554173e-001 +2.4649299e-001,5.0351940e-001 +2.4849699e-001,5.0150527e-001 +2.5050100e-001,4.9949925e-001 +2.5250501e-001,4.9750123e-001 +2.5450902e-001,4.9551113e-001 +2.5651303e-001,4.9352885e-001 +2.5851703e-001,4.9155430e-001 +2.6052104e-001,4.8958738e-001 +2.6052104e-002,8.3859336e-001 +2.6252505e-001,4.8762802e-001 +2.6452906e-001,4.8567612e-001 +2.6653307e-001,4.8373159e-001 +2.6853707e-001,4.8179437e-001 +2.7054108e-001,4.7986436e-001 +2.7254509e-001,4.7794149e-001 +2.7454910e-001,4.7602567e-001 +2.7655311e-001,4.7411683e-001 +2.7855711e-001,4.7221490e-001 +2.8056112e-001,4.7031979e-001 +2.8056112e-002,8.3250041e-001 +2.8256513e-001,4.6843144e-001 +2.8456914e-001,4.6654978e-001 +2.8657315e-001,4.6467473e-001 +2.8857715e-001,4.6280622e-001 +2.9058116e-001,4.6094419e-001 +2.9258517e-001,4.5908857e-001 +2.9458918e-001,4.5723930e-001 +2.9659319e-001,4.5539630e-001 +2.9859719e-001,4.5355952e-001 +3.0060120e-001,4.5172890e-001 +3.0060120e-002,8.2662145e-001 +3.0260521e-001,4.4990436e-001 +3.0460922e-001,4.4808586e-001 +3.0661323e-001,4.4627333e-001 +3.0861723e-001,4.4446671e-001 +3.1062124e-001,4.4266595e-001 +3.1262525e-001,4.4087099e-001 +3.1462926e-001,4.3908177e-001 +3.1663327e-001,4.3729824e-001 +3.1863727e-001,4.3552035e-001 +3.2064128e-001,4.3374804e-001 +3.2064128e-002,8.2093541e-001 +3.2264529e-001,4.3198126e-001 +3.2464930e-001,4.3021996e-001 +3.2665331e-001,4.2846408e-001 +3.2865731e-001,4.2671358e-001 +3.3066132e-001,4.2496842e-001 +3.3266533e-001,4.2322853e-001 +3.3466934e-001,4.2149387e-001 +3.3667335e-001,4.1976440e-001 +3.3867735e-001,4.1804007e-001 +3.4068136e-001,4.1632084e-001 +3.4068136e-002,8.1542444e-001 +3.4268537e-001,4.1460665e-001 +3.4468938e-001,4.1289747e-001 +3.4669339e-001,4.1119325e-001 +3.4869739e-001,4.0949395e-001 +3.5070140e-001,4.0779952e-001 +3.5270541e-001,4.0610993e-001 +3.5470942e-001,4.0442514e-001 +3.5671343e-001,4.0274509e-001 +3.5871743e-001,4.0106976e-001 +3.6072144e-001,3.9939910e-001 +3.6072144e-002,8.1007332e-001 +3.6272545e-001,3.9773307e-001 +3.6472946e-001,3.9607164e-001 +3.6673347e-001,3.9441477e-001 +3.6873747e-001,3.9276242e-001 +3.7074148e-001,3.9111456e-001 +3.7274549e-001,3.8947114e-001 +3.7474950e-001,3.8783213e-001 +3.7675351e-001,3.8619750e-001 +3.7875752e-001,3.8456721e-001 +3.8076152e-001,3.8294123e-001 +3.8076152e-002,8.0486888e-001 +3.8276553e-001,3.8131952e-001 +3.8476954e-001,3.7970206e-001 +3.8677355e-001,3.7808879e-001 +3.8877756e-001,3.7647971e-001 +3.9078156e-001,3.7487476e-001 +3.9278557e-001,3.7327393e-001 +3.9478958e-001,3.7167717e-001 +3.9679359e-001,3.7008446e-001 +3.9879760e-001,3.6849577e-001 +4.0080160e-001,3.6691106e-001 +4.0080160e-002,7.9979970e-001 +4.0080160e-003,9.3669111e-001 +4.0280561e-001,3.6533031e-001 +4.0480962e-001,3.6375349e-001 +4.0681363e-001,3.6218057e-001 +4.0881764e-001,3.6061151e-001 +4.1082164e-001,3.5904630e-001 +4.1282565e-001,3.5748490e-001 +4.1482966e-001,3.5592729e-001 +4.1683367e-001,3.5437343e-001 +4.1883768e-001,3.5282330e-001 +4.2084168e-001,3.5127688e-001 +4.2084168e-002,7.9485574e-001 +4.2284569e-001,3.4973414e-001 +4.2484970e-001,3.4819504e-001 +4.2685371e-001,3.4665958e-001 +4.2885772e-001,3.4512771e-001 +4.3086172e-001,3.4359942e-001 +4.3286573e-001,3.4207468e-001 +4.3486974e-001,3.4055346e-001 +4.3687375e-001,3.3903574e-001 +4.3887776e-001,3.3752151e-001 +4.4088176e-001,3.3601072e-001 +4.4088176e-002,7.9002815e-001 +4.4288577e-001,3.3450336e-001 +4.4488978e-001,3.3299942e-001 +4.4689379e-001,3.3149885e-001 +4.4889780e-001,3.3000165e-001 +4.5090180e-001,3.2850778e-001 +4.5290581e-001,3.2701723e-001 +4.5490982e-001,3.2552997e-001 +4.5691383e-001,3.2404599e-001 +4.5891784e-001,3.2256525e-001 +4.6092184e-001,3.2108775e-001 +4.6092184e-002,7.8530910e-001 +4.6292585e-001,3.1961345e-001 +4.6492986e-001,3.1814235e-001 +4.6693387e-001,3.1667441e-001 +4.6893788e-001,3.1520961e-001 +4.7094188e-001,3.1374794e-001 +4.7294589e-001,3.1228938e-001 +4.7494990e-001,3.1083391e-001 +4.7695391e-001,3.0938150e-001 +4.7895792e-001,3.0793215e-001 +4.8096192e-001,3.0648582e-001 +4.8096192e-002,7.8069156e-001 +4.8296593e-001,3.0504250e-001 +4.8496994e-001,3.0360217e-001 +4.8697395e-001,3.0216481e-001 +4.8897796e-001,3.0073041e-001 +4.9098196e-001,2.9929895e-001 +4.9298597e-001,2.9787040e-001 +4.9498998e-001,2.9644476e-001 +4.9699399e-001,2.9502199e-001 +4.9899800e-001,2.9360210e-001 +5.0100200e-001,2.9218505e-001 +5.0100200e-002,7.7616926e-001 +5.0300601e-001,2.9077083e-001 +5.0501002e-001,2.8935943e-001 +5.0701403e-001,2.8795082e-001 +5.0901804e-001,2.8654500e-001 +5.1102204e-001,2.8514194e-001 +5.1302605e-001,2.8374163e-001 +5.1503006e-001,2.8234405e-001 +5.1703407e-001,2.8094919e-001 +5.1903808e-001,2.7955703e-001 +5.2104208e-001,2.7816755e-001 +5.2104208e-002,7.7173654e-001 +5.2304609e-001,2.7678074e-001 +5.2505010e-001,2.7539659e-001 +5.2705411e-001,2.7401508e-001 +5.2905812e-001,2.7263619e-001 +5.3106212e-001,2.7125991e-001 +5.3306613e-001,2.6988622e-001 +5.3507014e-001,2.6851511e-001 +5.3707415e-001,2.6714657e-001 +5.3907816e-001,2.6578058e-001 +5.4108216e-001,2.6441713e-001 +5.4108216e-002,7.6738827e-001 +5.4308617e-001,2.6305619e-001 +5.4509018e-001,2.6169777e-001 +5.4709419e-001,2.6034184e-001 +5.4909820e-001,2.5898840e-001 +5.5110220e-001,2.5763742e-001 +5.5310621e-001,2.5628889e-001 +5.5511022e-001,2.5494281e-001 +5.5711423e-001,2.5359915e-001 +5.5911824e-001,2.5225791e-001 +5.6112224e-001,2.5091907e-001 +5.6112224e-002,7.6311981e-001 +5.6312625e-001,2.4958261e-001 +5.6513026e-001,2.4824854e-001 +5.6713427e-001,2.4691682e-001 +5.6913828e-001,2.4558746e-001 +5.7114228e-001,2.4426044e-001 +5.7314629e-001,2.4293574e-001 +5.7515030e-001,2.4161336e-001 +5.7715431e-001,2.4029327e-001 +5.7915832e-001,2.3897548e-001 +5.8116232e-001,2.3765997e-001 +5.8116232e-002,7.5892691e-001 +5.8316633e-001,2.3634672e-001 +5.8517034e-001,2.3503573e-001 +5.8717435e-001,2.3372698e-001 +5.8917836e-001,2.3242046e-001 +5.9118236e-001,2.3111616e-001 +5.9318637e-001,2.2981407e-001 +5.9519038e-001,2.2851417e-001 +5.9719439e-001,2.2721647e-001 +5.9919840e-001,2.2592094e-001 +6.0120240e-001,2.2462757e-001 +6.0120240e-002,7.5480571e-001 +6.0120240e-003,9.2246276e-001 +6.0320641e-001,2.2333636e-001 +6.0521042e-001,2.2204729e-001 +6.0721443e-001,2.2076035e-001 +6.0921844e-001,2.1947554e-001 +6.1122244e-001,2.1819283e-001 +6.1322645e-001,2.1691223e-001 +6.1523046e-001,2.1563372e-001 +6.1723447e-001,2.1435729e-001 +6.1923848e-001,2.1308293e-001 +6.2124248e-001,2.1181063e-001 +6.2124248e-002,7.5075264e-001 +6.2324649e-001,2.1054038e-001 +6.2525050e-001,2.0927217e-001 +6.2725451e-001,2.0800599e-001 +6.2925852e-001,2.0674183e-001 +6.3126253e-001,2.0547969e-001 +6.3326653e-001,2.0421954e-001 +6.3527054e-001,2.0296139e-001 +6.3727455e-001,2.0170522e-001 +6.3927856e-001,2.0045103e-001 +6.4128257e-001,1.9919880e-001 +6.4128257e-002,7.4676442e-001 +6.4328657e-001,1.9794852e-001 +6.4529058e-001,1.9670019e-001 +6.4729459e-001,1.9545380e-001 +6.4929860e-001,1.9420933e-001 +6.5130261e-001,1.9296679e-001 +6.5330661e-001,1.9172615e-001 +6.5531062e-001,1.9048742e-001 +6.5731463e-001,1.8925058e-001 +6.5931864e-001,1.8801562e-001 +6.6132265e-001,1.8678254e-001 +6.6132265e-002,7.4283806e-001 +6.6332665e-001,1.8555132e-001 +6.6533066e-001,1.8432196e-001 +6.6733467e-001,1.8309446e-001 +6.6933868e-001,1.8186879e-001 +6.7134269e-001,1.8064496e-001 +6.7334669e-001,1.7942295e-001 +6.7535070e-001,1.7820276e-001 +6.7735471e-001,1.7698438e-001 +6.7935872e-001,1.7576780e-001 +6.8136273e-001,1.7455301e-001 +6.8136273e-002,7.3897074e-001 +6.8336673e-001,1.7334001e-001 +6.8537074e-001,1.7212879e-001 +6.8737475e-001,1.7091933e-001 +6.8937876e-001,1.6971164e-001 +6.9138277e-001,1.6850570e-001 +6.9338677e-001,1.6730151e-001 +6.9539078e-001,1.6609906e-001 +6.9739479e-001,1.6489834e-001 +6.9939880e-001,1.6369934e-001 +7.0140281e-001,1.6250206e-001 +7.0140281e-002,7.3515990e-001 +7.0340681e-001,1.6130648e-001 +7.0541082e-001,1.6011261e-001 +7.0741483e-001,1.5892044e-001 +7.0941884e-001,1.5772995e-001 +7.1142285e-001,1.5654114e-001 +7.1342685e-001,1.5535401e-001 +7.1543086e-001,1.5416854e-001 +7.1743487e-001,1.5298473e-001 +7.1943888e-001,1.5180257e-001 +7.2144289e-001,1.5062206e-001 +7.2144289e-002,7.3140311e-001 +7.2344689e-001,1.4944319e-001 +7.2545090e-001,1.4826594e-001 +7.2745491e-001,1.4709033e-001 +7.2945892e-001,1.4591633e-001 +7.3146293e-001,1.4474394e-001 +7.3346693e-001,1.4357316e-001 +7.3547094e-001,1.4240398e-001 +7.3747495e-001,1.4123638e-001 +7.3947896e-001,1.4007038e-001 +7.4148297e-001,1.3890595e-001 +7.4148297e-002,7.2769815e-001 +7.4348697e-001,1.3774309e-001 +7.4549098e-001,1.3658180e-001 +7.4749499e-001,1.3542207e-001 +7.4949900e-001,1.3426390e-001 +7.5150301e-001,1.3310727e-001 +7.5350701e-001,1.3195218e-001 +7.5551102e-001,1.3079863e-001 +7.5751503e-001,1.2964661e-001 +7.5951904e-001,1.2849611e-001 +7.6152305e-001,1.2734712e-001 +7.6152305e-002,7.2404293e-001 +7.6352705e-001,1.2619965e-001 +7.6553106e-001,1.2505368e-001 +7.6753507e-001,1.2390921e-001 +7.6953908e-001,1.2276624e-001 +7.7154309e-001,1.2162475e-001 +7.7354709e-001,1.2048474e-001 +7.7555110e-001,1.1934621e-001 +7.7755511e-001,1.1820915e-001 +7.7955912e-001,1.1707355e-001 +7.8156313e-001,1.1593941e-001 +7.8156313e-002,7.2043549e-001 +7.8356713e-001,1.1480672e-001 +7.8557114e-001,1.1367549e-001 +7.8757515e-001,1.1254569e-001 +7.8957916e-001,1.1141733e-001 +7.9158317e-001,1.1029040e-001 +7.9358717e-001,1.0916490e-001 +7.9559118e-001,1.0804082e-001 +7.9759519e-001,1.0691815e-001 +7.9959920e-001,1.0579689e-001 +8.0160321e-001,1.0467704e-001 +8.0160321e-002,7.1687402e-001 +8.0160321e-003,9.1046770e-001 +8.0360721e-001,1.0355858e-001 +8.0561122e-001,1.0244152e-001 +8.0761523e-001,1.0132585e-001 +8.0961924e-001,1.0021156e-001 +8.1162325e-001,9.9098648e-002 +8.1362725e-001,9.7987110e-002 +8.1563126e-001,9.6876939e-002 +8.1763527e-001,9.5768132e-002 +8.1963928e-001,9.4660683e-002 +8.2164329e-001,9.3554587e-002 +8.2164329e-002,7.1335679e-001 +8.2364729e-001,9.2449839e-002 +8.2565130e-001,9.1346434e-002 +8.2765531e-001,9.0244368e-002 +8.2965932e-001,8.9143634e-002 +8.3166333e-001,8.8044230e-002 +8.3366733e-001,8.6946149e-002 +8.3567134e-001,8.5849387e-002 +8.3767535e-001,8.4753940e-002 +8.3967936e-001,8.3659802e-002 +8.4168337e-001,8.2566969e-002 +8.4168337e-002,7.0988220e-001 +8.4368737e-001,8.1475436e-002 +8.4569138e-001,8.0385199e-002 +8.4769539e-001,7.9296252e-002 +8.4969940e-001,7.8208593e-002 +8.5170341e-001,7.7122215e-002 +8.5370741e-001,7.6037114e-002 +8.5571142e-001,7.4953286e-002 +8.5771543e-001,7.3870727e-002 +8.5971944e-001,7.2789431e-002 +8.6172345e-001,7.1709395e-002 +8.6172345e-002,7.0644874e-001 +8.6372745e-001,7.0630614e-002 +8.6573146e-001,6.9553084e-002 +8.6773547e-001,6.8476801e-002 +8.6973948e-001,6.7401759e-002 +8.7174349e-001,6.6327955e-002 +8.7374749e-001,6.5255385e-002 +8.7575150e-001,6.4184044e-002 +8.7775551e-001,6.3113928e-002 +8.7975952e-001,6.2045034e-002 +8.8176353e-001,6.0977355e-002 +8.8176353e-002,7.0305497e-001 +8.8376754e-001,5.9910890e-002 +8.8577154e-001,5.8845633e-002 +8.8777555e-001,5.7781580e-002 +8.8977956e-001,5.6718727e-002 +8.9178357e-001,5.5657071e-002 +8.9378758e-001,5.4596607e-002 +8.9579158e-001,5.3537331e-002 +8.9779559e-001,5.2479240e-002 +8.9979960e-001,5.1422328e-002 +9.0180361e-001,5.0366593e-002 +9.0180361e-002,6.9969955e-001 +9.0380762e-001,4.9312031e-002 +9.0581162e-001,4.8258636e-002 +9.0781563e-001,4.7206407e-002 +9.0981964e-001,4.6155338e-002 +9.1182365e-001,4.5105426e-002 +9.1382766e-001,4.4056667e-002 +9.1583166e-001,4.3009058e-002 +9.1783567e-001,4.1962594e-002 +9.1983968e-001,4.0917272e-002 +9.2184369e-001,3.9873088e-002 +9.2184369e-002,6.9638121e-001 +9.2384770e-001,3.8830038e-002 +9.2585170e-001,3.7788119e-002 +9.2785571e-001,3.6747327e-002 +9.2985972e-001,3.5707659e-002 +9.3186373e-001,3.4669110e-002 +9.3386774e-001,3.3631677e-002 +9.3587174e-001,3.2595357e-002 +9.3787575e-001,3.1560146e-002 +9.3987976e-001,3.0526040e-002 +9.4188377e-001,2.9493036e-002 +9.4188377e-002,6.9309875e-001 +9.4388778e-001,2.8461130e-002 +9.4589178e-001,2.7430319e-002 +9.4789579e-001,2.6400600e-002 +9.4989980e-001,2.5371969e-002 +9.5190381e-001,2.4344422e-002 +9.5390782e-001,2.3317956e-002 +9.5591182e-001,2.2292567e-002 +9.5791583e-001,2.1268253e-002 +9.5991984e-001,2.0245010e-002 +9.6192385e-001,1.9222835e-002 +9.6192385e-002,6.8985103e-001 +9.6392786e-001,1.8201724e-002 +9.6593186e-001,1.7181673e-002 +9.6793587e-001,1.6162680e-002 +9.6993988e-001,1.5144742e-002 +9.7194389e-001,1.4127854e-002 +9.7394790e-001,1.3112015e-002 +9.7595190e-001,1.2097219e-002 +9.7795591e-001,1.1083466e-002 +9.7995992e-001,1.0070750e-002 +9.8196393e-001,9.0590694e-003 +9.8196393e-002,6.8663696e-001 +9.8396794e-001,8.0484206e-003 +9.8597194e-001,7.0388004e-003 +9.8797595e-001,6.0302057e-003 +9.8997996e-001,5.0226335e-003 +9.9198397e-001,4.0160805e-003 +9.9398798e-001,3.0105437e-003 +9.9599198e-001,2.0060201e-003 +9.9799599e-001,1.0025065e-003 diff --git a/resources/referenceFrontsCSV/LZ09_F9.pf b/resources/referenceFrontsCSV/LZ09_F9.pf new file mode 100644 index 0000000000..6d7133a8cd --- /dev/null +++ b/resources/referenceFrontsCSV/LZ09_F9.pf @@ -0,0 +1,500 @@ +0.0000000e+000,1.0000000e+000 +1.0000000e+000,0.0000000e+000 +1.0020040e-001,9.8995988e-001 +1.0020040e-002,9.9989960e-001 +1.0220441e-001,9.8955426e-001 +1.0420842e-001,9.8914061e-001 +1.0621242e-001,9.8871892e-001 +1.0821643e-001,9.8828920e-001 +1.1022044e-001,9.8785145e-001 +1.1222445e-001,9.8740567e-001 +1.1422846e-001,9.8695186e-001 +1.1623246e-001,9.8649001e-001 +1.1823647e-001,9.8602014e-001 +1.2024048e-001,9.8554223e-001 +1.2024048e-002,9.9985542e-001 +1.2224449e-001,9.8505628e-001 +1.2424850e-001,9.8456231e-001 +1.2625251e-001,9.8406030e-001 +1.2825651e-001,9.8355027e-001 +1.3026052e-001,9.8303220e-001 +1.3226453e-001,9.8250609e-001 +1.3426854e-001,9.8197196e-001 +1.3627255e-001,9.8142979e-001 +1.3827655e-001,9.8087959e-001 +1.4028056e-001,9.8032136e-001 +1.4028056e-002,9.9980321e-001 +1.4228457e-001,9.7975510e-001 +1.4428858e-001,9.7918081e-001 +1.4629259e-001,9.7859848e-001 +1.4829659e-001,9.7800812e-001 +1.5030060e-001,9.7740973e-001 +1.5230461e-001,9.7680331e-001 +1.5430862e-001,9.7618885e-001 +1.5631263e-001,9.7556636e-001 +1.5831663e-001,9.7493584e-001 +1.6032064e-001,9.7429729e-001 +1.6032064e-002,9.9974297e-001 +1.6232465e-001,9.7365071e-001 +1.6432866e-001,9.7299609e-001 +1.6633267e-001,9.7233344e-001 +1.6833667e-001,9.7166276e-001 +1.7034068e-001,9.7098405e-001 +1.7234469e-001,9.7029731e-001 +1.7434870e-001,9.6960253e-001 +1.7635271e-001,9.6889972e-001 +1.7835671e-001,9.6818888e-001 +1.8036072e-001,9.6747001e-001 +1.8036072e-002,9.9967470e-001 +1.8236473e-001,9.6674311e-001 +1.8436874e-001,9.6600817e-001 +1.8637275e-001,9.6526520e-001 +1.8837675e-001,9.6451420e-001 +1.9038076e-001,9.6375517e-001 +1.9238477e-001,9.6298810e-001 +1.9438878e-001,9.6221300e-001 +1.9639279e-001,9.6142987e-001 +1.9839679e-001,9.6063871e-001 +2.0040080e-001,9.5983952e-001 +2.0040080e-002,9.9959840e-001 +2.0040080e-003,9.9999598e-001 +2.0240481e-001,9.5903229e-001 +2.0440882e-001,9.5821704e-001 +2.0641283e-001,9.5739375e-001 +2.0841683e-001,9.5656242e-001 +2.1042084e-001,9.5572307e-001 +2.1242485e-001,9.5487568e-001 +2.1442886e-001,9.5402026e-001 +2.1643287e-001,9.5315681e-001 +2.1843687e-001,9.5228533e-001 +2.2044088e-001,9.5140582e-001 +2.2044088e-002,9.9951406e-001 +2.2244489e-001,9.5051827e-001 +2.2444890e-001,9.4962269e-001 +2.2645291e-001,9.4871908e-001 +2.2845691e-001,9.4780744e-001 +2.3046092e-001,9.4688776e-001 +2.3246493e-001,9.4596006e-001 +2.3446894e-001,9.4502432e-001 +2.3647295e-001,9.4408055e-001 +2.3847695e-001,9.4312874e-001 +2.4048096e-001,9.4216891e-001 +2.4048096e-002,9.9942169e-001 +2.4248497e-001,9.4120104e-001 +2.4448898e-001,9.4022514e-001 +2.4649299e-001,9.3924121e-001 +2.4849699e-001,9.3824924e-001 +2.5050100e-001,9.3724925e-001 +2.5250501e-001,9.3624122e-001 +2.5450902e-001,9.3522516e-001 +2.5651303e-001,9.3420107e-001 +2.5851703e-001,9.3316894e-001 +2.6052104e-001,9.3212879e-001 +2.6052104e-002,9.9932129e-001 +2.6252505e-001,9.3108060e-001 +2.6452906e-001,9.3002438e-001 +2.6653307e-001,9.2896012e-001 +2.6853707e-001,9.2788784e-001 +2.7054108e-001,9.2680752e-001 +2.7254509e-001,9.2571917e-001 +2.7454910e-001,9.2462279e-001 +2.7655311e-001,9.2351838e-001 +2.7855711e-001,9.2240593e-001 +2.8056112e-001,9.2128546e-001 +2.8056112e-002,9.9921285e-001 +2.8256513e-001,9.2015695e-001 +2.8456914e-001,9.1902041e-001 +2.8657315e-001,9.1787583e-001 +2.8857715e-001,9.1672323e-001 +2.9058116e-001,9.1556259e-001 +2.9258517e-001,9.1439392e-001 +2.9458918e-001,9.1321722e-001 +2.9659319e-001,9.1203248e-001 +2.9859719e-001,9.1083972e-001 +3.0060120e-001,9.0963892e-001 +3.0060120e-002,9.9909639e-001 +3.0260521e-001,9.0843009e-001 +3.0460922e-001,9.0721322e-001 +3.0661323e-001,9.0598833e-001 +3.0861723e-001,9.0475540e-001 +3.1062124e-001,9.0351444e-001 +3.1262525e-001,9.0226545e-001 +3.1462926e-001,9.0100843e-001 +3.1663327e-001,8.9974337e-001 +3.1863727e-001,8.9847029e-001 +3.2064128e-001,8.9718917e-001 +3.2064128e-002,9.9897189e-001 +3.2264529e-001,8.9590002e-001 +3.2464930e-001,8.9460283e-001 +3.2665331e-001,8.9329762e-001 +3.2865731e-001,8.9198437e-001 +3.3066132e-001,8.9066309e-001 +3.3266533e-001,8.8933378e-001 +3.3466934e-001,8.8799643e-001 +3.3667335e-001,8.8665106e-001 +3.3867735e-001,8.8529765e-001 +3.4068136e-001,8.8393621e-001 +3.4068136e-002,9.9883936e-001 +3.4268537e-001,8.8256674e-001 +3.4468938e-001,8.8118923e-001 +3.4669339e-001,8.7980370e-001 +3.4869739e-001,8.7841013e-001 +3.5070140e-001,8.7700853e-001 +3.5270541e-001,8.7559889e-001 +3.5470942e-001,8.7418123e-001 +3.5671343e-001,8.7275553e-001 +3.5871743e-001,8.7132180e-001 +3.6072144e-001,8.6988004e-001 +3.6072144e-002,9.9869880e-001 +3.6272545e-001,8.6843025e-001 +3.6472946e-001,8.6697242e-001 +3.6673347e-001,8.6550656e-001 +3.6873747e-001,8.6403267e-001 +3.7074148e-001,8.6255075e-001 +3.7274549e-001,8.6106080e-001 +3.7474950e-001,8.5956281e-001 +3.7675351e-001,8.5805679e-001 +3.7875752e-001,8.5654274e-001 +3.8076152e-001,8.5502066e-001 +3.8076152e-002,9.9855021e-001 +3.8276553e-001,8.5349055e-001 +3.8476954e-001,8.5195240e-001 +3.8677355e-001,8.5040622e-001 +3.8877756e-001,8.4885201e-001 +3.9078156e-001,8.4728977e-001 +3.9278557e-001,8.4571950e-001 +3.9478958e-001,8.4414119e-001 +3.9679359e-001,8.4255485e-001 +3.9879760e-001,8.4096048e-001 +4.0080160e-001,8.3935807e-001 +4.0080160e-002,9.9839358e-001 +4.0080160e-003,9.9998394e-001 +4.0280561e-001,8.3774764e-001 +4.0480962e-001,8.3612917e-001 +4.0681363e-001,8.3450267e-001 +4.0881764e-001,8.3286814e-001 +4.1082164e-001,8.3122558e-001 +4.1282565e-001,8.2957498e-001 +4.1482966e-001,8.2791635e-001 +4.1683367e-001,8.2624969e-001 +4.1883768e-001,8.2457500e-001 +4.2084168e-001,8.2289228e-001 +4.2084168e-002,9.9822892e-001 +4.2284569e-001,8.2120152e-001 +4.2484970e-001,8.1950273e-001 +4.2685371e-001,8.1779591e-001 +4.2885772e-001,8.1608106e-001 +4.3086172e-001,8.1435818e-001 +4.3286573e-001,8.1262726e-001 +4.3486974e-001,8.1088831e-001 +4.3687375e-001,8.0914133e-001 +4.3887776e-001,8.0738632e-001 +4.4088176e-001,8.0562327e-001 +4.4088176e-002,9.9805623e-001 +4.4288577e-001,8.0385219e-001 +4.4488978e-001,8.0207308e-001 +4.4689379e-001,8.0028594e-001 +4.4889780e-001,7.9849077e-001 +4.5090180e-001,7.9668756e-001 +4.5290581e-001,7.9487633e-001 +4.5490982e-001,7.9305706e-001 +4.5691383e-001,7.9122975e-001 +4.5891784e-001,7.8939442e-001 +4.6092184e-001,7.8755105e-001 +4.6092184e-002,9.9787551e-001 +4.6292585e-001,7.8569966e-001 +4.6492986e-001,7.8384023e-001 +4.6693387e-001,7.8197276e-001 +4.6893788e-001,7.8009727e-001 +4.7094188e-001,7.7821374e-001 +4.7294589e-001,7.7632218e-001 +4.7494990e-001,7.7442259e-001 +4.7695391e-001,7.7251497e-001 +4.7895792e-001,7.7059931e-001 +4.8096192e-001,7.6867563e-001 +4.8096192e-002,9.9768676e-001 +4.8296593e-001,7.6674391e-001 +4.8496994e-001,7.6480416e-001 +4.8697395e-001,7.6285637e-001 +4.8897796e-001,7.6090056e-001 +4.9098196e-001,7.5893671e-001 +4.9298597e-001,7.5696483e-001 +4.9498998e-001,7.5498492e-001 +4.9699399e-001,7.5299698e-001 +4.9899800e-001,7.5100100e-001 +5.0100200e-001,7.4899699e-001 +5.0100200e-002,9.9748997e-001 +5.0300601e-001,7.4698495e-001 +5.0501002e-001,7.4496488e-001 +5.0701403e-001,7.4293678e-001 +5.0901804e-001,7.4090064e-001 +5.1102204e-001,7.3885647e-001 +5.1302605e-001,7.3680427e-001 +5.1503006e-001,7.3474404e-001 +5.1703407e-001,7.3267577e-001 +5.1903808e-001,7.3059948e-001 +5.2104208e-001,7.2851515e-001 +5.2104208e-002,9.9728515e-001 +5.2304609e-001,7.2642279e-001 +5.2505010e-001,7.2432239e-001 +5.2705411e-001,7.2221397e-001 +5.2905812e-001,7.2009751e-001 +5.3106212e-001,7.1797302e-001 +5.3306613e-001,7.1584050e-001 +5.3507014e-001,7.1369994e-001 +5.3707415e-001,7.1155136e-001 +5.3907816e-001,7.0939474e-001 +5.4108216e-001,7.0723009e-001 +5.4108216e-002,9.9707230e-001 +5.4308617e-001,7.0505741e-001 +5.4509018e-001,7.0287670e-001 +5.4709419e-001,7.0068795e-001 +5.4909820e-001,6.9849117e-001 +5.5110220e-001,6.9628636e-001 +5.5310621e-001,6.9407352e-001 +5.5511022e-001,6.9185264e-001 +5.5711423e-001,6.8962374e-001 +5.5911824e-001,6.8738680e-001 +5.6112224e-001,6.8514183e-001 +5.6112224e-002,9.9685142e-001 +5.6312625e-001,6.8288882e-001 +5.6513026e-001,6.8062779e-001 +5.6713427e-001,6.7835872e-001 +5.6913828e-001,6.7608162e-001 +5.7114228e-001,6.7379649e-001 +5.7314629e-001,6.7150333e-001 +5.7515030e-001,6.6920213e-001 +5.7715431e-001,6.6689290e-001 +5.7915832e-001,6.6457564e-001 +5.8116232e-001,6.6225035e-001 +5.8116232e-002,9.9662250e-001 +5.8316633e-001,6.5991703e-001 +5.8517034e-001,6.5757567e-001 +5.8717435e-001,6.5522628e-001 +5.8917836e-001,6.5286886e-001 +5.9118236e-001,6.5050341e-001 +5.9318637e-001,6.4812993e-001 +5.9519038e-001,6.4574841e-001 +5.9719439e-001,6.4335886e-001 +5.9919840e-001,6.4096128e-001 +6.0120240e-001,6.3855567e-001 +6.0120240e-002,9.9638556e-001 +6.0120240e-003,9.9996386e-001 +6.0320641e-001,6.3614202e-001 +6.0521042e-001,6.3372035e-001 +6.0721443e-001,6.3129064e-001 +6.0921844e-001,6.2885290e-001 +6.1122244e-001,6.2640712e-001 +6.1322645e-001,6.2395332e-001 +6.1523046e-001,6.2149148e-001 +6.1723447e-001,6.1902161e-001 +6.1923848e-001,6.1654371e-001 +6.2124248e-001,6.1405777e-001 +6.2124248e-002,9.9614058e-001 +6.2324649e-001,6.1156381e-001 +6.2525050e-001,6.0906181e-001 +6.2725451e-001,6.0655178e-001 +6.2925852e-001,6.0403372e-001 +6.3126253e-001,6.0150762e-001 +6.3326653e-001,5.9897350e-001 +6.3527054e-001,5.9643134e-001 +6.3727455e-001,5.9388115e-001 +6.3927856e-001,5.9132293e-001 +6.4128257e-001,5.8875667e-001 +6.4128257e-002,9.9588757e-001 +6.4328657e-001,5.8618238e-001 +6.4529058e-001,5.8360007e-001 +6.4729459e-001,5.8100971e-001 +6.4929860e-001,5.7841133e-001 +6.5130261e-001,5.7580492e-001 +6.5330661e-001,5.7319047e-001 +6.5531062e-001,5.7056799e-001 +6.5731463e-001,5.6793748e-001 +6.5931864e-001,5.6529893e-001 +6.6132265e-001,5.6265236e-001 +6.6132265e-002,9.9562652e-001 +6.6332665e-001,5.5999775e-001 +6.6533066e-001,5.5733511e-001 +6.6733467e-001,5.5466444e-001 +6.6933868e-001,5.5198573e-001 +6.7134269e-001,5.4929900e-001 +6.7334669e-001,5.4660423e-001 +6.7535070e-001,5.4390143e-001 +6.7735471e-001,5.4119060e-001 +6.7935872e-001,5.3847173e-001 +6.8136273e-001,5.3574484e-001 +6.8136273e-002,9.9535745e-001 +6.8336673e-001,5.3300991e-001 +6.8537074e-001,5.3026695e-001 +6.8737475e-001,5.2751595e-001 +6.8937876e-001,5.2475693e-001 +6.9138277e-001,5.2198987e-001 +6.9338677e-001,5.1921478e-001 +6.9539078e-001,5.1643166e-001 +6.9739479e-001,5.1364051e-001 +6.9939880e-001,5.1084132e-001 +7.0140281e-001,5.0803410e-001 +7.0140281e-002,9.9508034e-001 +7.0340681e-001,5.0521885e-001 +7.0541082e-001,5.0239557e-001 +7.0741483e-001,4.9956426e-001 +7.0941884e-001,4.9672491e-001 +7.1142285e-001,4.9387753e-001 +7.1342685e-001,4.9102212e-001 +7.1543086e-001,4.8815868e-001 +7.1743487e-001,4.8528721e-001 +7.1943888e-001,4.8240770e-001 +7.2144289e-001,4.7952016e-001 +7.2144289e-002,9.9479520e-001 +7.2344689e-001,4.7662459e-001 +7.2545090e-001,4.7372099e-001 +7.2745491e-001,4.7080935e-001 +7.2945892e-001,4.6788969e-001 +7.3146293e-001,4.6496199e-001 +7.3346693e-001,4.6202626e-001 +7.3547094e-001,4.5908249e-001 +7.3747495e-001,4.5613070e-001 +7.3947896e-001,4.5317087e-001 +7.4148297e-001,4.5020301e-001 +7.4148297e-002,9.9450203e-001 +7.4348697e-001,4.4722712e-001 +7.4549098e-001,4.4424320e-001 +7.4749499e-001,4.4125124e-001 +7.4949900e-001,4.3825125e-001 +7.5150301e-001,4.3524323e-001 +7.5350701e-001,4.3222718e-001 +7.5551102e-001,4.2920310e-001 +7.5751503e-001,4.2617098e-001 +7.5951904e-001,4.2313083e-001 +7.6152305e-001,4.2008265e-001 +7.6152305e-002,9.9420083e-001 +7.6352705e-001,4.1702644e-001 +7.6553106e-001,4.1396219e-001 +7.6753507e-001,4.1088992e-001 +7.6953908e-001,4.0780961e-001 +7.7154309e-001,4.0472127e-001 +7.7354709e-001,4.0162489e-001 +7.7555110e-001,3.9852049e-001 +7.7755511e-001,3.9540805e-001 +7.7955912e-001,3.9228758e-001 +7.8156313e-001,3.8915908e-001 +7.8156313e-002,9.9389159e-001 +7.8356713e-001,3.8602255e-001 +7.8557114e-001,3.8287798e-001 +7.8757515e-001,3.7972538e-001 +7.8957916e-001,3.7656475e-001 +7.9158317e-001,3.7339609e-001 +7.9358717e-001,3.7021940e-001 +7.9559118e-001,3.6703467e-001 +7.9759519e-001,3.6384191e-001 +7.9959920e-001,3.6064112e-001 +8.0160321e-001,3.5743230e-001 +8.0160321e-002,9.9357432e-001 +8.0160321e-003,9.9993574e-001 +8.0360721e-001,3.5421544e-001 +8.0561122e-001,3.5099056e-001 +8.0761523e-001,3.4775764e-001 +8.0961924e-001,3.4451669e-001 +8.1162325e-001,3.4126771e-001 +8.1362725e-001,3.3801069e-001 +8.1563126e-001,3.3474564e-001 +8.1763527e-001,3.3147256e-001 +8.1963928e-001,3.2819145e-001 +8.2164329e-001,3.2490231e-001 +8.2164329e-002,9.9324902e-001 +8.2364729e-001,3.2160513e-001 +8.2565130e-001,3.1829993e-001 +8.2765531e-001,3.1498669e-001 +8.2965932e-001,3.1166541e-001 +8.3166333e-001,3.0833611e-001 +8.3366733e-001,3.0499878e-001 +8.3567134e-001,3.0165341e-001 +8.3767535e-001,2.9830001e-001 +8.3967936e-001,2.9493857e-001 +8.4168337e-001,2.9156911e-001 +8.4168337e-002,9.9291569e-001 +8.4368737e-001,2.8819161e-001 +8.4569138e-001,2.8480609e-001 +8.4769539e-001,2.8141252e-001 +8.4969940e-001,2.7801093e-001 +8.5170341e-001,2.7460131e-001 +8.5370741e-001,2.7118365e-001 +8.5571142e-001,2.6775796e-001 +8.5771543e-001,2.6432424e-001 +8.5971944e-001,2.6088249e-001 +8.6172345e-001,2.5743270e-001 +8.6172345e-002,9.9257433e-001 +8.6372745e-001,2.5397488e-001 +8.6573146e-001,2.5050903e-001 +8.6773547e-001,2.4703515e-001 +8.6973948e-001,2.4355324e-001 +8.7174349e-001,2.4006329e-001 +8.7374749e-001,2.3656531e-001 +8.7575150e-001,2.3305930e-001 +8.7775551e-001,2.2954526e-001 +8.7975952e-001,2.2602319e-001 +8.8176353e-001,2.2249308e-001 +8.8176353e-002,9.9222493e-001 +8.8376754e-001,2.1895494e-001 +8.8577154e-001,2.1540877e-001 +8.8777555e-001,2.1185457e-001 +8.8977956e-001,2.0829234e-001 +8.9178357e-001,2.0472207e-001 +8.9378758e-001,2.0114377e-001 +8.9579158e-001,1.9755744e-001 +8.9779559e-001,1.9396308e-001 +8.9979960e-001,1.9036068e-001 +9.0180361e-001,1.8675025e-001 +9.0180361e-002,9.9186750e-001 +9.0380762e-001,1.8313179e-001 +9.0581162e-001,1.7950530e-001 +9.0781563e-001,1.7587078e-001 +9.0981964e-001,1.7222822e-001 +9.1182365e-001,1.6857764e-001 +9.1382766e-001,1.6491902e-001 +9.1583166e-001,1.6125236e-001 +9.1783567e-001,1.5757768e-001 +9.1983968e-001,1.5389496e-001 +9.2184369e-001,1.5020422e-001 +9.2184369e-002,9.9150204e-001 +9.2384770e-001,1.4650544e-001 +9.2585170e-001,1.4279862e-001 +9.2785571e-001,1.3908378e-001 +9.2985972e-001,1.3536090e-001 +9.3186373e-001,1.3162999e-001 +9.3386774e-001,1.2789105e-001 +9.3587174e-001,1.2414408e-001 +9.3787575e-001,1.2038907e-001 +9.3987976e-001,1.1662604e-001 +9.4188377e-001,1.1285497e-001 +9.4188377e-002,9.9112855e-001 +9.4388778e-001,1.0907587e-001 +9.4589178e-001,1.0528873e-001 +9.4789579e-001,1.0149357e-001 +9.4989980e-001,9.7690371e-002 +9.5190381e-001,9.3879141e-002 +9.5390782e-001,9.0059879e-002 +9.5591182e-001,8.6232585e-002 +9.5791583e-001,8.2397259e-002 +9.5991984e-001,7.8553901e-002 +9.6192385e-001,7.4702511e-002 +9.6192385e-002,9.9074703e-001 +9.6392786e-001,7.0843089e-002 +9.6593186e-001,6.6975635e-002 +9.6793587e-001,6.3100148e-002 +9.6993988e-001,5.9216630e-002 +9.7194389e-001,5.5325079e-002 +9.7394790e-001,5.1425496e-002 +9.7595190e-001,4.7517881e-002 +9.7795591e-001,4.3602235e-002 +9.7995992e-001,3.9678556e-002 +9.8196393e-001,3.5746844e-002 +9.8196393e-002,9.9035747e-001 +9.8396794e-001,3.1807101e-002 +9.8597194e-001,2.7859326e-002 +9.8797595e-001,2.3903518e-002 +9.8997996e-001,1.9939679e-002 +9.9198397e-001,1.5967807e-002 +9.9398798e-001,1.1987904e-002 +9.9599198e-001,7.9999679e-003 +9.9799599e-001,4.0040000e-003 diff --git a/resources/referenceFrontsCSV/Tanaka.pf b/resources/referenceFrontsCSV/Tanaka.pf new file mode 100644 index 0000000000..bdd07cb6cf --- /dev/null +++ b/resources/referenceFrontsCSV/Tanaka.pf @@ -0,0 +1,152 @@ +1.036795,0.0472225 +1.0336535,0.0535055 +1.030512,0.056647 +1.0273705,0.06293 +1.024229,0.0660715 +1.0210875,0.069213 +1.0148045,0.0786375 +1.0085215,0.0849205 +1.0022385,0.0912035 +0.9959555,0.0974865 +0.9896725,0.1037695 +0.9833895,0.1100525 +0.9771065,0.1163355 +0.9645405,0.132043 +0.9582575,0.138326 +0.9519745,0.144609 +0.948833,0.1477505 +0.9456915,0.1540335 +0.94255,0.157175 +0.9331255,0.176024 +0.9205595,0.452476 +0.917418,0.4556175 +0.904852,0.4619005 +0.892286,0.4681835 +0.81689,0.50274 +0.8011825,0.515306 +0.7886165,0.527872 +0.785475,0.534155 +0.7823335,0.540438 +0.772909,0.640966 +0.760343,0.716362 +0.75406,0.7257865 +0.7446355,0.741494 +0.741494,0.7446355 +0.735211,0.747777 +0.7069375,0.7634845 +0.697513,0.766626 +0.6818055,0.7697675 +0.540438,0.7823335 +0.534155,0.785475 +0.5247305,0.791758 +0.521589,0.7948995 +0.5121645,0.804324 +0.509023,0.8074655 +0.50274,0.81689 +0.4995985,0.8200315 +0.496457,0.8263145 +0.4933155,0.8325975 +0.490174,0.8388805 +0.4870325,0.8451635 +0.4807495,0.860871 +0.452476,0.9205595 +0.18859,0.929984 +0.176024,0.9331255 +0.169741,0.936267 +0.163458,0.9394085 +0.1540335,0.9456915 +0.1477505,0.948833 +0.132043,0.9645405 +0.1226185,0.9708235 +0.106911,0.986531 +0.100628,0.992814 +0.0974865,0.9959555 +0.094345,0.999097 +0.0912035,1.0022385 +0.0849205,1.0085215 +0.0786375,1.0148045 +0.075496,1.017946 +0.0660715,1.024229 +0.06293,1.0273705 +0.0535055,1.0336535 +0.0472225,1.036795 +0.044081,1.0399365 +0.056647,1.030512 +0.069213,1.0210875 +0.081779,1.011663 +0.088062,1.00538 +0.1037695,0.9896725 +0.1100525,0.9833895 +0.113194,0.980248 +0.1163355,0.9771065 +0.119477,0.973965 +0.1289015,0.967682 +0.1351845,0.961399 +0.138326,0.9582575 +0.1414675,0.955116 +0.144609,0.9519745 +0.157175,0.94255 +0.4493345,0.9268425 +0.4556175,0.917418 +0.458759,0.911135 +0.4619005,0.904852 +0.465042,0.898569 +0.4681835,0.892286 +0.471325,0.8828615 +0.4744665,0.8765785 +0.477608,0.867154 +0.483891,0.854588 +0.5058815,0.810607 +0.515306,0.8011825 +0.5184475,0.798041 +0.527872,0.7886165 +0.5498625,0.779192 +0.5624285,0.7760505 +0.640966,0.772909 +0.716362,0.760343 +0.722645,0.7572015 +0.7257865,0.75406 +0.7320695,0.7509185 +0.747777,0.735211 +0.7509185,0.7320695 +0.7572015,0.722645 +0.7634845,0.7069375 +0.766626,0.697513 +0.7697675,0.6818055 +0.7760505,0.5624285 +0.779192,0.5498625 +0.791758,0.5247305 +0.7948995,0.521589 +0.798041,0.5184475 +0.804324,0.5121645 +0.8074655,0.509023 +0.810607,0.5058815 +0.8200315,0.4995985 +0.8263145,0.496457 +0.8325975,0.4933155 +0.8388805,0.490174 +0.8451635,0.4870325 +0.854588,0.483891 +0.860871,0.4807495 +0.867154,0.477608 +0.8765785,0.4744665 +0.8828615,0.471325 +0.898569,0.465042 +0.911135,0.458759 +0.9268425,0.4493345 +0.929984,0.18859 +0.936267,0.169741 +0.9394085,0.163458 +0.955116,0.1414675 +0.961399,0.1351845 +0.967682,0.1289015 +0.9708235,0.1226185 +0.973965,0.119477 +0.980248,0.113194 +0.986531,0.106911 +0.992814,0.100628 +0.999097,0.094345 +1.00538,0.088062 +1.011663,0.081779 +1.017946,0.075496 +1.0399365,0.044081 diff --git a/resources/unitTestsData/arrayFront/fileWithFourPoints.dat b/resources/unitTestsData/arrayFront/fileWithFourPoints.dat index 9d7c22a7f9..b65c38b882 100644 --- a/resources/unitTestsData/arrayFront/fileWithFourPoints.dat +++ b/resources/unitTestsData/arrayFront/fileWithFourPoints.dat @@ -1,4 +1,4 @@ -1 2 3 4 -5 6 7 8 -9 10 11 12 --1 -2 -3 -4 +1,2,3,4 +5,6,7,8 +9,10,11,12 +-1,-2,-3,-4 diff --git a/resources/unitTestsData/arrayFront/fileWithMissingData.dat b/resources/unitTestsData/arrayFront/fileWithMissingData.dat index a8d6b02509..97988bf11e 100644 --- a/resources/unitTestsData/arrayFront/fileWithMissingData.dat +++ b/resources/unitTestsData/arrayFront/fileWithMissingData.dat @@ -1,2 +1,2 @@ --30 234.234 90.25 -15 -5.23 +-30,234.234,90.25 +15,-5.23 diff --git a/resources/unitTestsData/arrayFront/fileWithOnePoint.dat b/resources/unitTestsData/arrayFront/fileWithOnePoint.dat index 4cda9b7e2c..9f8536718c 100644 --- a/resources/unitTestsData/arrayFront/fileWithOnePoint.dat +++ b/resources/unitTestsData/arrayFront/fileWithOnePoint.dat @@ -1 +1 @@ -1.0 2.0 -3.0 +1.0,2.0,-3.0 diff --git a/resources/unitTestsData/arrayFront/fileWithWrongData.dat b/resources/unitTestsData/arrayFront/fileWithWrongData.dat index 99a9c00a1c..eaf43805e6 100644 --- a/resources/unitTestsData/arrayFront/fileWithWrongData.dat +++ b/resources/unitTestsData/arrayFront/fileWithWrongData.dat @@ -1,2 +1,2 @@ -3.0 2.3 +3.0,2.3 asdfg