net.sourceforge.cilib.moo.iterationstrategies.HigherLevelIterationStrategy Maven / Gradle / Ivy
package net.sourceforge.cilib.moo.iterationstrategies;
import net.sourceforge.cilib.algorithm.Algorithm;
import net.sourceforge.cilib.algorithm.population.IterationStrategy;
import net.sourceforge.cilib.problem.boundaryconstraint.BoundaryConstraint;
import net.sourceforge.cilib.util.Cloneable;
public interface HigherLevelIterationStrategy extends Cloneable {
/**
* {@inheritDoc}
*/
@Override
HigherLevelIterationStrategy getClone();
/**
* Perform the iteration of the Algorithm.
*
* Due to the nature of the Algorithms, the actual manner in which the algorithm's
* iteration is performed is deferred to the specific iteration strategy being used.
*
* This implies that the general structure of the iteration for a specific flavor of
* algorithm is constant with modifications on that algorithm being made. For example,
* within a Genetic Algorithm you would expect:
*
* - Parent individuals to be selected in some manner
* - A crossover process to be done on the selected parent individuals to create
* the offspring
* - A mutation process to alter the generated offspring
* - Recombine the existing parent individuals and the generated offspring to create
* the next generation
*
*
* @param algorithm The algorithm to perform the iteration process on.
*/
void performIteration(Algorithm algorithm);
/**
* Get the currently associated {@linkplain BoundaryConstraint}.
* @return The current {@linkplain BoundaryConstraint}.
*/
BoundaryConstraint getBoundaryConstraint();
/**
* Set the {@linkplain BoundaryConstraint} to maintain within this {@linkplain IterationStrategy}.
* @param boundaryConstraint The {@linkplain BoundaryConstraint} to set.
*/
void setBoundaryConstraint(BoundaryConstraint boundaryConstraint);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy