
freak.core.fitness.MultiObjectiveFitnessFunction Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of freak-core Show documentation
Show all versions of freak-core Show documentation
Core library of the Free Evolutionary Algorithm Toolkit
/*
* This file is part of FrEAK. For licensing and copyright information
* please see the file COPYING in the root directory of this
* distribution or contact .
*/
package freak.core.fitness;
import freak.core.population.Individual;
import freak.core.population.IndividualList;
/**
* The interface for a multi objective fitness function. A multi objective
* fitness function maps an individual to a vector consisting of real numbers.
*
* @author Heiko
*/
public interface MultiObjectiveFitnessFunction extends FitnessFunction {
/**
* Evaluates an individual with respect to the specified
* IndividualList
. The IndividualList
* is used when the fitness of one individual depends on some
* population, e.g., when niching strategies are used.
*
* @param individual the individual to be evaluated.
* @param list the individuals to be used by the fitness evaluation if the
* fitness depends on the surrounding individuals.
* @return the fitness vector of the specified individual.
*/
public abstract double[] evaluate(Individual individual, IndividualList list);
/**
* Returns the optimal fitness value if the operation is supported.
* Otherwise, an UnsupportedOperationException
is thrown. In
* most cases an optimal fitness vector doesn't exist and the pareto front
* consists of more than one element.
*
* @return the optimal fitness value.
* @throws UnsupportedOperationException if the optimal fitness value is unknown.
*/
public abstract double[] getOptimalFitnessValue() throws UnsupportedOperationException;
/**
* Returns a lower bound for each component of the fitness vector if known.
* Otherwise, an UnsupportedOperationException
is thrown.
*
* @return a lower bound for each component of the fitness vector.
* @throws UnsupportedOperationException if no lower bound is known.
*/
public abstract double[] getLowerBounds() throws UnsupportedOperationException;
/**
* Returns an upper bound for each component of the fitness vector if known.
* Otherwise, an UnsupportedOperationException
is thrown.
*
* @return a upper bound for each component of the fitness vector.
* @throws UnsupportedOperationException if no upper bound is known.
*/
public abstract double[] getUpperBounds() throws UnsupportedOperationException;
/**
* Returns the dimension of the objective space, i.e. the number of
* components in a fitness vector returned by evaluate.
*
* @return the dimension of the objective space.
*/
public abstract int getDimensionOfObjectiveSpace();
/**
* Checks whether the given IndividualList
cotains a
* representation of the pareto front, if the pareto front is known.
* Otherwise, an UnsupportedOperationException
is thrown.
* @param list the list of individuals to be checked.
* @return true iff list contains a representation of the pareto front.
* @throws UnsupportedOperationException if the pareto front is unknown.
*/
public abstract boolean containsParetoFront(IndividualList list) throws UnsupportedOperationException;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy