13#if !defined(ULTRA_TEAM_H)
35 std::size_t ind_index;
37 std::size_t arg_index;
78 explicit team(std::size_t);
80 explicit team(std::vector<I>);
84 template<Indiv
idual U>
friend team<U> crossover(
const problem &,
90 [[nodiscard]]
const I &
operator[](std::size_t)
const;
93 [[nodiscard]]
bool empty() const noexcept;
94 [[nodiscard]]
std::
size_t size() const noexcept;
102 [[nodiscard]]
bool is_valid() const;
105 using members_t =
std::vector<I>;
106 using const_iterator = typename members_t::const_iterator;
107 using value_type = typename members_t::value_type;
108 [[nodiscard]] const_iterator
begin() const noexcept;
109 [[nodiscard]] const_iterator
end() const noexcept;
113 bool save(
std::ostream &) const;
117 [[nodiscard]]
hash_t hash() const;
120 members_t individuals_ {};
128template<Indiv
idual I> [[nodiscard]]
bool operator==(
const team<I> &,
129 const team<I> &)
noexcept;
130template<Indiv
idual I> [[nodiscard]]
unsigned distance(
const team<I> &,
134template<Indiv
idual I> [[nodiscard]]
unsigned active_slots(
const team<I> &);
135template<Indiv
idual I> [[nodiscard]] team<I> crossover(
const problem &,
138template<Indiv
idual I> [[nodiscard]]
141template<Indiv
idual I> std::ostream &
operator<<(std::ostream &,
145template<
class>
inline constexpr bool is_team_v =
false;
146template<Indiv
idual I>
inline constexpr bool is_team_v<team<I>> =
true;
147template<
class T>
concept Team = is_team_v<std::remove_cvref_t<T>>;
Definition gp/individual.h:66
bool empty() const noexcept
Definition team.h:237
unsigned mutation(const problem &, double=1.0)
Definition team.h:80
const_iterator end() const noexcept
Definition team.h:217
hash_t signature() const noexcept
Definition team.h:286
const I & operator[](std::size_t) const
Definition team.h:227
bool load(std::istream &, const symbol_set &)
Definition team.h:401
void inc_age(unsigned=1)
Definition team.h:370
bool save(std::ostream &) const
Definition team.h:432
std::ostream & operator<<(std::ostream &s, const team< I > &t)
Definition team.h:453
ultra::individual::age_t age() const
Definition team.h:347
const_iterator begin() const noexcept
Definition team.h:208
static constexpr std::size_t max_team_size
Maximum allowed number of individuals in a team.
Definition team.h:75
team_decision_vector extract_decision_vector(const team< I > &t)
Definition team.h:138
void apply_decision_vector(const team_decision_vector &v)
Definition team.h:179
bool is_valid() const
Definition team.h:380
std::size_t size() const noexcept
Definition team.h:246
Definition symbol_set.h:115
double distance(F f1, F f2)
Definition fitness.tcc:117
Definition decision_vector.h:42
ultra::decision_vector< team_decision_coordinate > team_decision_vector
Team-specific decision-vector type used for numerical optimisation.
Definition team.h:41