code: private static <S extends Solution<?>> double[][] getExtremePoints(List<S> solutionsList) {
      // One extreme point for each objective
      double[][] extremePoints = new double[solutionsList.get(0).getNumberOfObjectives()][];
  
      for (int i = 0; i < extremePoints.length; i++) {
        S extreme = Collections.min(solutionsList, new AchievementScalarizationComparator<S>(i));
        extremePoints[i] = new double[extreme.getNumberOfObjectives()];
        for (int j = 0; j < extremePoints.length; j++) {
          extremePoints[i][j] = extreme.getObjective(j);
        }
      }
  
      return extremePoints;
    }
docs: Computes the extreme points on achievement scalarization values
  
  @param solutionsList A list of solutions.
  @return Extreme points of the list of solutions.