Ultra 0.9.4
Loading...
Searching...
No Matches
ultra::de_es< E > Class Template Reference

#include <evolution_strategy.h>

Inheritance diagram for ultra::de_es< E >:
ultra::evolution_strategy< E >

Public Member Functions

 de_es (const problem &, E &)
template<Population P>
P * refinement_subgroup (P &) const noexcept=delete
template<SizedRandomAccessPopulation P>
auto operations (P &, const evolution_status< individual_t, fitness_t > &) const
template<LayeredPopulation P>
auto operations (P &, typename P::layer_iter, const evolution_status< individual_t, fitness_t > &) const
template<SizedRandomAccessPopulation P>
auto operations (P &pop, const evolution_status< individual_t, fitness_t > &starting_status) const
template<LayeredPopulation P>
auto operations (P &pop, typename P::layer_iter iter, const evolution_status< individual_t, fitness_t > &starting_status) const
Public Member Functions inherited from ultra::evolution_strategy< E >
template<Population P>
void init (P &) const
template<Population P>
P * refinement_subgroup (P &) const noexcept
template<Population P>
void after_generation (P &, const summary< individual_t, fitness_t > &)
const problem & get_problem () const noexcept
template<Population P>
std::size_t max_parallelism (const P &) const noexcept
template<LayeredPopulation P>
bool valid_layer (P &pop, typename P::layer_iter iter)
template<Population P>
P * refinement_subgroup (P &pop) const noexcept
template<Population P>
std::size_t max_parallelism (const P &pop) const noexcept
template<Population P>
void after_generation (P &pop, const summary< individual_t, fitness_t > &sum)

Additional Inherited Members

Public Types inherited from ultra::evolution_strategy< E >
using evaluator_type = E
using fitness_t = evaluator_fitness_t<E>
using individual_t = evaluator_individual_t<E>
Static Public Member Functions inherited from ultra::evolution_strategy< E >
static parameters shape (const parameters &p)
Protected Member Functions inherited from ultra::evolution_strategy< E >
 evolution_strategy (const problem &, E &)
Static Protected Member Functions inherited from ultra::evolution_strategy< E >
template<LayeredPopulation P>
static bool valid_layer (P &, typename P::layer_iter)
Protected Attributes inherited from ultra::evolution_strategy< E >
E & eva_
const problem & prob_

Detailed Description

template<Evaluator E>
class ultra::de_es< E >

Differential evolution strategy.

Implemented as described in https://github.com/morinim/ultra/wiki/bibliography#5.

Member Function Documentation

◆ operations() [1/4]

template<Evaluator E>
template<SizedRandomAccessPopulation P>
auto ultra::de_es< E >::operations ( P & pop,
const evolution_status< individual_t, fitness_t > & starting_status ) const
nodiscard

Assembles a differential evolution step.

Template Parameters
Ppopulation type
Parameters
[in]popthe population
[in]starting_statusevolutionary status snapshot
Returns
a callable performing one DE step

Implements differential evolution:

  • selection produces both parents and a target individual;
  • recombination generates a trial vector;
  • replacement compares the trial against the target.

◆ operations() [2/4]

template<Evaluator E>
template<LayeredPopulation P>
auto ultra::de_es< E >::operations ( P & pop,
typename P::layer_iter iter,
const evolution_status< individual_t, fitness_t > & starting_status ) const
nodiscard

Assembles a differential evolution step for a layered population.

Template Parameters
Ppopulation type
Parameters
[in]popthe population
[in]iteriterator to the active layer
[in]starting_statusevolutionary status snapshot
Returns
a callable performing one DE step
See also
operations() for linear populations.
Note
Replacement is performed on the selected target only.

◆ operations() [3/4]

template<Evaluator E>
template<SizedRandomAccessPopulation P>
auto ultra::de_es< E >::operations ( P & pop,
const evolution_status< individual_t, fitness_t > & starting_status ) const

Assembles a differential evolution step.

Template Parameters
Ppopulation type
Parameters
[in]popthe population
[in]starting_statusevolutionary status snapshot
Returns
a callable performing one DE step

Implements differential evolution:

  • selection produces both parents and a target individual;
  • recombination generates a trial vector;
  • replacement compares the trial against the target.

◆ operations() [4/4]

template<Evaluator E>
template<LayeredPopulation P>
auto ultra::de_es< E >::operations ( P & pop,
typename P::layer_iter iter,
const evolution_status< individual_t, fitness_t > & starting_status ) const

Assembles a differential evolution step for a layered population.

Template Parameters
Ppopulation type
Parameters
[in]popthe population
[in]iteriterator to the active layer
[in]starting_statusevolutionary status snapshot
Returns
a callable performing one DE step
See also
operations() for linear populations.
Note
Replacement is performed on the selected target only.

The documentation for this class was generated from the following files: