/** * Returns the generational distance of solution set * * @param solutionSet * @return The value of the hypervolume indicator */ public double getGD(SolutionSet solutionSet) { return new GenerationalDistance() .generationalDistance( solutionSet.writeObjectivesToMatrix(), trueParetoFront_.writeObjectivesToMatrix(), problem_.getNumberOfObjectives()); } // getGD
/** * Returns the hypervolume of solution set * * @param solutionSet * @return The value of the hypervolume indicator */ public double getHypervolume(SolutionSet solutionSet) { return new Hypervolume() .hypervolume( solutionSet.writeObjectivesToMatrix(), trueParetoFront_.writeObjectivesToMatrix(), problem_.getNumberOfObjectives()); } // getHypervolume
/** * Returns the epsilon indicator of solution set * * @param solutionSet * @return The value of the hypervolume indicator */ public double getEpsilon(SolutionSet solutionSet) { return new Epsilon() .epsilon( solutionSet.writeObjectivesToMatrix(), trueParetoFront_.writeObjectivesToMatrix(), problem_.getNumberOfObjectives()); } // getEpsilon
/** * Returns the spread of solution set * * @param solutionSet * @return The value of the hypervolume indicator */ public double getSpread(SolutionSet solutionSet) { return new Spread() .spread( solutionSet.writeObjectivesToMatrix(), trueParetoFront_.writeObjectivesToMatrix(), problem_.getNumberOfObjectives()); } // getGD
/** * Constructor * * @param paretoFrontFile */ public QualityIndicator(Problem problem, String paretoFrontFile) { problem_ = problem; utilities_ = new qualityIndicator.util.MetricsUtil(); trueParetoFront_ = utilities_.readNonDominatedSolutionSet(paretoFrontFile); trueParetoFrontHypervolume_ = new Hypervolume() .hypervolume( trueParetoFront_.writeObjectivesToMatrix(), trueParetoFront_.writeObjectivesToMatrix(), problem_.getNumberOfObjectives()); } // Constructor