/** Delivers the fitness of the best individual as performance vector. */
 public PerformanceVector getOptimizationPerformance() {
   double[] bestValuesEver = getBestValuesEver();
   double[] finalFitness = optimizationFunction.getFitness(bestValuesEver, ys, kernel);
   PerformanceVector result = new PerformanceVector();
   if (finalFitness.length == 1) {
     result.addCriterion(
         new EstimatedPerformance("svm_objective_function", finalFitness[0], 1, false));
   } else {
     result.addCriterion(new EstimatedPerformance("alpha_sum", finalFitness[0], 1, false));
     result.addCriterion(
         new EstimatedPerformance("svm_objective_function", finalFitness[1], 1, false));
     if (finalFitness.length == 3)
       result.addCriterion(new EstimatedPerformance("alpha_label_sum", finalFitness[2], 1, false));
   }
   return result;
 }
 @Override
 public PerformanceVector evaluateIndividual(Individual individual) {
   double[] fitness = optimizationFunction.getFitness(individual.getValues(), ys, kernel);
   PerformanceVector performanceVector = new PerformanceVector();
   if (fitness.length == 1) {
     performanceVector.addCriterion(new EstimatedPerformance("SVM_fitness", fitness[0], 1, false));
   } else {
     performanceVector.addCriterion(new EstimatedPerformance("alpha_sum", fitness[0], 1, false));
     performanceVector.addCriterion(
         new EstimatedPerformance("svm_objective_function", fitness[1], 1, false));
     if (fitness.length == 3)
       performanceVector.addCriterion(
           new EstimatedPerformance("alpha_label_sum", fitness[2], 1, false));
   }
   return performanceVector;
 }