Ultra 0.9.4
Loading...
Searching...
No Matches
ultra::hga::problem Class Reference

#include <problem.h>

Inheritance diagram for ultra::hga::problem:
ultra::problem

Public Member Functions

std::size_t parameters () const noexcept
template<Terminal T, symbol_set::weight_t = symbol_set::default_weight, class ... Args>
std::add_pointer_t< T > insert (Args &&...)
template<Terminal T, symbol_set::weight_t W, class ... Args>
std::add_pointer_t< T > insert (Args &&... args)
template<Symbol S, symbol_set::weight_t W, class ... Args>
requires std::constructible_from<S, Args...>
std::add_pointer_t< S > insert (Args &&... args)
Public Member Functions inherited from ultra::problem
template<Symbol S, symbol_set::weight_t = symbol_set::default_weight, class ... Args>
requires std::constructible_from<S, Args...>
std::add_pointer_t< S > insert (Args &&...)
template<std::derived_from< function > F, symbol_set::weight_t W = symbol_set::default_weight, std::convertible_to< symbol::category_t > C = symbol::category_t>
std::add_pointer_t< F > insert (symbol::category_t, std::initializer_list< C >)
template<std::derived_from< function > F, symbol_set::weight_t W = symbol_set::default_weight, std::convertible_to< symbol::category_t > C = symbol::category_t>
std::add_pointer_t< F > insert (std::initializer_list< C >)
virtual bool is_valid () const

Additional Inherited Members

Public Attributes inherited from ultra::problem
parameters params {}
symbol_set sset {}

Detailed Description

Provides a heterogeneous GA-specific interface to the generic problem class.

The class is a facade that provides a simpler interface to represent HGA-specific problems.

Member Function Documentation

◆ insert() [1/2]

template<Terminal T, symbol_set::weight_t W, class ... Args>
std::add_pointer_t< T > ultra::hga::problem::insert ( Args &&... args)

Adds a terminal to the internal symbol set.

Template Parameters
Tterminal to be added
Parameters
[in]argsarguments used to build T
Returns
a raw pointer to the symbol just added (or nullptr in case of error)

◆ insert() [2/2]

template<Symbol S, symbol_set::weight_t W, class ... Args>
requires std::constructible_from<S, Args...>
std::add_pointer_t< S > ultra::hga::problem::insert ( Args &&... args)

Adds a symbol to the internal symbol set.

Template Parameters
Ssymbol to be added
Parameters
[in]argsarguments used to build S
Returns
a raw pointer to the symbol just added (or nullptr in case of error)

◆ parameters()

std::size_t ultra::hga::problem::parameters ( ) const
nodiscardnoexcept
Returns
genome size / number of parameters / elements in the container

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