GEGELATI
Loading...
Searching...
No Matches
mapElitesSelector.h
1
36#ifndef MAP_ELITES_SELECTOR_H
37#define MAP_ELITES_SELECTOR_H
38
39#include "selector/mapElites/mapElitesArchive.h"
40#include "selector/mapElites/mapElitesDescriptor.h"
41#include "selector/mapElites/mapElitesSelectionMetrics.h"
42#include "selector/selector.h"
43
44#include "learn/learningEnvironment.h"
45
46namespace Selector {
47 namespace MapElites {
48
57 {
58 protected:
60 std::map<std::shared_ptr<const MapElitesDescriptor>,
61 std::shared_ptr<MapElitesArchive>>
63
64 public:
73 MapElitesSelector(std::shared_ptr<TPG::TPGGraph> graph,
76 {
77 }
78
84 virtual std::shared_ptr<const MapElitesArchive>
86 std::shared_ptr<const MapElitesDescriptor> descriptor);
87
91 virtual const std::map<std::shared_ptr<const MapElitesDescriptor>,
92 std::shared_ptr<MapElitesArchive>>&
94
100 virtual std::shared_ptr<SelectionMetrics> createSelectionMetrics()
101 override;
102
111 virtual std::shared_ptr<const MapElitesArchive>
113 size_t nbBins,
114 std::shared_ptr<const MapElitesDescriptor> descriptor,
116
137 virtual std::shared_ptr<const MapElitesArchive>
139 size_t nbCentroids,
140 std::shared_ptr<const MapElitesDescriptor> descriptor,
142 size_t nbIterationInit = 300, size_t nbDotsInit = 1000,
143 double a1 = 0.5, double b1 = 0.5, double a2 = 0.5,
144 double b2 = 0.5);
145
155 virtual void doSelection(
156 std::multimap<std::shared_ptr<Learn::EvaluationResult>,
157 const TPG::TPGVertex*>& results,
158 Mutator::RNG& rng) override;
159
163 virtual const SelectionContext& updateContext() override;
164 };
165 }; // namespace MapElites
166
172}; // namespace Selector
173
174#endif // MAP_ELITES_SELECTOR_H
Interface for creating a Learning Environment.
Definition learningEnvironment.h:81
Definition rng.h:52
Selection class that will do a selection with a Map Elites algorithm.
Definition mapElitesSelector.h:57
MapElitesSelector(std::shared_ptr< TPG::TPGGraph > graph, const Learn::LearningParameters &params)
Constructor for Selector.
Definition mapElitesSelector.h:73
std::map< std::shared_ptr< const MapElitesDescriptor >, std::shared_ptr< MapElitesArchive > > mapEliteArchives
Map of descriptor to their corresponding archive.
Definition mapElitesSelector.h:62
virtual void doSelection(std::multimap< std::shared_ptr< Learn::EvaluationResult >, const TPG::TPGVertex * > &results, Mutator::RNG &rng) override
override of doSelection method
Definition mapElitesSelector.cpp:113
virtual std::shared_ptr< const MapElitesArchive > getMapElitesArchiveAt(std::shared_ptr< const MapElitesDescriptor > descriptor)
Get the archive corresponding to a given descriptor.
Definition mapElitesSelector.cpp:40
virtual std::shared_ptr< SelectionMetrics > createSelectionMetrics() override
Definition mapElitesSelector.cpp:58
virtual const std::map< std::shared_ptr< const MapElitesDescriptor >, std::shared_ptr< MapElitesArchive > > & getMapElitesArchives()
Get all the map elites archives.
Definition mapElitesSelector.cpp:52
virtual std::shared_ptr< const MapElitesArchive > addCvtArchiveFromDescriptor(size_t nbCentroids, std::shared_ptr< const MapElitesDescriptor > descriptor, Learn::LearningEnvironment &le, Mutator::RNG &rng, size_t nbIterationInit=300, size_t nbDotsInit=1000, double a1=0.5, double b1=0.5, double a2=0.5, double b2=0.5)
Add a CVT archive for a given descriptor.
Definition mapElitesSelector.cpp:94
virtual const SelectionContext & updateContext() override
Specialization of updateContext for MapElites purposes.
Definition mapElitesSelector.cpp:200
virtual std::shared_ptr< const MapElitesArchive > addArchiveFromDescriptor(size_t nbBins, std::shared_ptr< const MapElitesDescriptor > descriptor, Learn::LearningEnvironment &le)
Add an archive for a given descriptor.
Definition mapElitesSelector.cpp:78
const Learn::LearningParameters & params
Parameters for the selection.
Definition selector.h:59
std::shared_ptr< TPG::TPGGraph > graph
TPGGraph on which the TPGVertex can be selected or deleted.
Definition selector.h:56
Abstract class representing the vertices of a TPGGraph.
Definition tpgVertex.h:55
Definition mapElitesArchiveLogger.h:45
Structure for simplifying the transmission of LearningParameters to functions.
Definition learningParameters.h:56
Structure to interface between the selector and the TPGMutator.
Definition selectionContext.h:50