Search Results for

    Show / Hide Table of Contents

    Class solver::Population

    A population is a container for several instances of Content_T

    Each instance of Content_T is internally wrapped in a Citizen wrapper, which allows setting the desired duplicity count of the contained instance after resampling. These new counts are, however, only applied after a call to resample(). Example: Populationstd::string population; population.insert("foo"); population.insert("bar"); population.insert("baz"); for (size_t i = 0; i < population.size(); i++) { auto& citizen = population[i]; if (citizen.content() == "foo") citizen.kill() if (citizen.content() == "baz") citizen.spawn(2) } // output before resampling: "foobarbaz" for (size_t i = 0; i < population.size(); i++) { std::cout << population[i].content(); } population.resample(); // output after resampling: "bazbarbazbaz" for (size_t i = 0; i < population.size(); i++) { std::cout << population[i].content(); }

    Inheritance
    utils::Component
    solver::Population
    Inherited Members
    configure
    render
    ~Component
    Component
    get_status
    param
    get_class_name

    Constructors

    Population()

    Declaration
    solver::Population<Content_T>::Population()

    Methods

    reserve()

    Declaration
    void solver::Population<Content_T>::reserve(size_t size)

    insert()

    Add content to the population (with a count of 1).

    Declaration
    void solver::Population<Content_T>::insert(Content_T content)

    resize()

    Declaration
    void solver::Population<Content_T>::resize(size_t new_count)

    size()

    Get the current number of citizens.

    This does not consider current counts set on the citizens, so it should be called after resample(), prior to any set_count() on the citizens.

    Declaration
    size_t solver::Population<Content_T>::size() const

    empty()

    Check if the population is empty.

    Declaration
    bool solver::Population<Content_T>::empty()

    operator[]()

    Positional access to citizens.

    They are in no particular order, but the order remains "stable" during resampling.

    Declaration
    const Citizen&solver::Population<Content_T>::operator[](size_t position) const

    operator[]()

    Declaration
    Citizen&solver::Population<Content_T>::operator[](size_t position)

    resample()

    Resample the population such that count_ copies of each citizen in the current population are present in the resampled one.

    Declaration
    void solver::Population<Content_T>::resample()

    get_families()

    Returns a map describing the sizes of the remaining families.

    Declaration
    const std::map<FamilyId, size_t>&solver::Population<Content_T>::get_families()

    partial_sort()

    Declaration
    void solver::Population<Content_T>::partial_sort(unsigned solutions_to_sort)

    clear()

    Declaration
    void solver::Population<Content_T>::clear()

    clear_cache_pool()

    Declaration
    void solver::Population<Content_T>::clear_cache_pool()

    do_census()

    Declaration
    void solver::Population<Content_T>::do_census()

    create_citizen()

    Declaration
    void solver::Population<Content_T>::create_citizen(std::unique_ptr<Citizen>&citizen, const Content_T&content)

    remove_citizen()

    Declaration
    void solver::Population<Content_T>::remove_citizen(std::unique_ptr<Citizen>&citizen)
    In This Article
    Back to top Generated with Doxygen and DocFX