Brush C++ API
A flexible interpretable machine learning framework
Toggle main menu visibility
Loading...
Searching...
No Matches
archive.h
Go to the documentation of this file.
1
#ifndef ARCHIVE_H
2
#define ARCHIVE_H
3
4
#include "
../ind/individual.h
"
5
7
#include "
../selection/nsga2.h
"
8
9
namespace
Brush
{
10
11
using namespace
Sel
;
12
13
namespace
Pop
{
14
24
template
<ProgramType T>
25
struct
Archive
26
{
27
vector<Individual<T>>
individuals
;
28
bool
sort_complexity
;
29
bool
linear_complexity
;
30
NSGA2<T>
selector
;
31
35
Archive
();
36
41
void
init
(
Population<T>
& pop);
42
48
void
update
(
Population<T>
& pop,
const
Parameters
& params);
49
58
void
set_objectives
(vector<string> objectives);
59
69
static
bool
sortComplexity
(
const
Individual<T>
& lhs,
const
Individual<T>
& rhs);
70
71
static
bool
sortLinearComplexity
(
const
Individual<T>
& lhs,
const
Individual<T>
& rhs);
72
82
static
bool
sortObj1
(
const
Individual<T>
& lhs,
const
Individual<T>
& rhs);
83
93
static
bool
sameObjectives
(
const
Individual<T>
& lhs,
const
Individual<T>
& rhs);
94
};
95
96
extern
template
struct
Archive<PT::Regressor>
;
97
extern
template
struct
Archive<PT::BinaryClassifier>
;
98
extern
template
struct
Archive<PT::MulticlassClassifier>
;
99
extern
template
struct
Archive<PT::Representer>
;
100
101
//serialization
102
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE
(
Archive<PT::Regressor>
, individuals, sort_complexity, linear_complexity);
103
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE
(
Archive<PT::BinaryClassifier>
, individuals, sort_complexity, linear_complexity);
104
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE
(
Archive<PT::MulticlassClassifier>
, individuals, sort_complexity, linear_complexity);
105
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE
(
Archive<PT::Representer>
, individuals, sort_complexity, linear_complexity);
106
107
}
// Pop
108
}
// Brush
109
110
#endif
Brush::Pop::Individual
Definition
individual.h:15
Brush::Pop::Population
Definition
population.h:12
Brush::Sel::NSGA2
Definition
nsga2.h:15
individual.h
Brush::Pop
Definition
individual.cpp:4
Brush::Pop::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(Archive< PT::Regressor >, individuals, sort_complexity, linear_complexity)
Brush::Sel
Definition
lexicase.cpp:4
Brush
< nsga2 selection operator for getting the front
Definition
bandit.cpp:3
nsga2.h
Brush::Parameters
Definition
params.h:20
Brush::Pop::Archive
The Archive struct represents a collection of individual programs.
Definition
archive.h:26
Brush::Pop::Archive::sortLinearComplexity
static bool sortLinearComplexity(const Individual< T > &lhs, const Individual< T > &rhs)
Definition
archive.cpp:31
Brush::Pop::Archive::set_objectives
void set_objectives(vector< string > objectives)
Sets the objectives for the archive.
Definition
archive.cpp:10
Brush::Pop::Archive::update
void update(Population< T > &pop, const Parameters ¶ms)
Updates the archive with individuals from a population.
Definition
archive.cpp:121
Brush::Pop::Archive::individuals
vector< Individual< T > > individuals
individual programs in the archive
Definition
archive.h:27
Brush::Pop::Archive::sort_complexity
bool sort_complexity
whether to sort archive by complexity
Definition
archive.h:28
Brush::Pop::Archive::selector
NSGA2< T > selector
using NSGA2 in survival mode (nsga2 does not implement selection)
Definition
archive.h:30
Brush::Pop::Archive::init
void init(Population< T > &pop)
Initializes the archive with individuals from a population.
Definition
archive.cpp:65
Brush::Pop::Archive::sortObj1
static bool sortObj1(const Individual< T > &lhs, const Individual< T > &rhs)
Sorts the population by the first objective.
Definition
archive.cpp:38
Brush::Pop::Archive::sortComplexity
static bool sortComplexity(const Individual< T > &lhs, const Individual< T > &rhs)
Sorts the population in increasing complexity.
Definition
archive.cpp:20
Brush::Pop::Archive::sameObjectives
static bool sameObjectives(const Individual< T > &lhs, const Individual< T > &rhs)
Checks if two individuals have the same objectives.
Definition
archive.cpp:54
Brush::Pop::Archive::linear_complexity
bool linear_complexity
Indicates if the user set linear_complexity instead of recursive complexity.
Definition
archive.h:29
Brush::Pop::Archive::Archive
Archive()
Default constructor for the Archive struct.
Definition
archive.cpp:7
src
pop
archive.h
Generated by
1.17.0