All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sourceforge.cilib.algorithm.initialisation.PopulationInitialisationStrategy Maven / Gradle / Ivy

/**           __  __
 *    _____ _/ /_/ /_    Computational Intelligence Library (CIlib)
 *   / ___/ / / / __ \   (c) CIRG @ UP
 *  / /__/ / / / /_/ /   http://cilib.net
 *  \___/_/_/_/_.___/
 */
package net.sourceforge.cilib.algorithm.initialisation;

import net.sourceforge.cilib.entity.Entity;
import net.sourceforge.cilib.problem.Problem;
import net.sourceforge.cilib.util.Cloneable;

/**
 * Interface describing the manner in which populations are initialised.
 * @param  The {@code Entity} type.
 */
public interface PopulationInitialisationStrategy extends Cloneable {

    /**
     * {@inheritDoc}
     */
    @Override
    PopulationInitialisationStrategy getClone();

    /**
     * Set the entity type to use.
     * @param entity The entity type to use.
     */
    void setEntityType(Entity entity);

    /**
     * Get the current entity type.
     * @return The entity being used.
     */
    Entity getEntityType();

    /**
     * Initialise the {@link Entity} collection based on the given {@link Problem}.
     * @param problem The Problem to based the initialisation on
     * @return An {@code Iterable} of instances.
     */
     Iterable initialise(Problem problem);

    /**
     * Get the number of entities specified to be created by the InitialisationStrategy.
     * @return The number of entities to construct.
     */
    int getEntityNumber();

    /**
     * Set the number of {@code Entity} instances to clone.
     * @param entityNumber The number to clone.
     */
    void setEntityNumber(int entityNumber);

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy