36#ifndef MAP_ELITES_ARCHIVE_H
37#define MAP_ELITES_ARCHIVE_H
45#include "learn/evaluationResult.h"
46#include "tpg/tpgGraph.h"
77 std::vector<std::pair<std::shared_ptr<Learn::EvaluationResult>,
112 uint64_t
size()
const;
127 virtual const std::vector<
128 std::pair<std::shared_ptr<Learn::EvaluationResult>,
137 virtual const std::pair<std::shared_ptr<Learn::EvaluationResult>,
139 getArchiveAt(
const std::vector<uint64_t>& indices)
const;
147 virtual const std::pair<std::shared_ptr<Learn::EvaluationResult>,
150 const std::vector<double>& descriptors)
const;
161 std::shared_ptr<Learn::EvaluationResult> eval,
162 const std::vector<uint64_t>& indices);
174 std::shared_ptr<Learn::EvaluationResult> eval,
175 const std::vector<double>& descriptors);
191 const std::vector<uint64_t>& indices)
const;
198 virtual std::vector<uint64_t>
computeIndices(uint64_t index)
const;
226 size_t maxNbEvaluation);
Class representing a Map Elites archive.
Definition mapElitesArchive.h:58
double minValue
Minimum value for the descriptors.
Definition mapElitesArchive.h:67
virtual uint64_t getIndexArchive(double value) const
Get the index in one dimension of the archive from a value.
Definition mapElitesArchive.cpp:62
std::pair< uint64_t, uint64_t > getDimensions() const
Get the dimensions of the archive.
Definition mapElitesArchive.cpp:44
virtual void removeRootFromArchive(const TPG::TPGVertex *root, size_t maxNbEvaluation)
Remove a root TPGVertex from the archive.
Definition mapElitesArchive.cpp:164
virtual std::vector< uint64_t > computeIndices(uint64_t index) const
Compute the multi-dimensional indices from linear index.
Definition mapElitesArchive.cpp:86
double maxValue
Maximum value for the descriptors.
Definition mapElitesArchive.h:70
std::vector< std::pair< std::shared_ptr< Learn::EvaluationResult >, const TPG::TPGVertex * > > archive
Definition mapElitesArchive.h:79
virtual uint64_t computeLinearIndex(const std::vector< uint64_t > &indices) const
Compute the linear index from multi-dimensional indices.
Definition mapElitesArchive.cpp:72
uint64_t nbBinPerDescriptor
Number of bins per descriptor.
Definition mapElitesArchive.h:61
virtual void removeRootFromArchiveIfNotComplete(const TPG::TPGVertex *root, size_t maxNbEvaluation)
Remove a root TPGVertex from the archive if its number of evaluation is below maxNbEvaluation.
Definition mapElitesArchive.cpp:149
virtual std::set< const TPG::TPGVertex * > getVerticesInArchive() const
Return a set with the current vectors in the archive.
Definition mapElitesArchive.cpp:177
virtual void setArchiveAt(const TPG::TPGVertex *vertex, std::shared_ptr< Learn::EvaluationResult > eval, const std::vector< uint64_t > &indices)
Set the archive content at given indices.
Definition mapElitesArchive.cpp:130
uint64_t nbDescriptors
Number of descriptors for this archive.
Definition mapElitesArchive.h:64
MapElitesArchive(size_t nbBinPerDescriptor, size_t nbDescriptors, double minValue, double maxValue)
Constructor of the MapElitesArchive.
Definition mapElitesArchive.h:90
std::vector< double > getArchiveLimits() const
get the archive limits
Definition mapElitesArchive.cpp:49
virtual const std::vector< std::pair< std::shared_ptr< Learn::EvaluationResult >, const TPG::TPGVertex * > > & getAllArchive() const
Get all the archive content.
Definition mapElitesArchive.cpp:57
virtual const std::pair< std::shared_ptr< Learn::EvaluationResult >, const TPG::TPGVertex * > & getArchiveFromDescriptors(const std::vector< double > &descriptors) const
Get the archive content at given descriptors.
Definition mapElitesArchive.cpp:99
uint64_t size() const
Get the size of the archive.
Definition mapElitesArchive.cpp:38
virtual bool containsRoot(const TPG::TPGVertex *root) const
Check if the archive contains a root TPGVertex.
Definition mapElitesArchive.cpp:137
std::vector< double > archiveLimits
Limits of the bins for the descriptors.
Definition mapElitesArchive.h:73
virtual const std::pair< std::shared_ptr< Learn::EvaluationResult >, const TPG::TPGVertex * > & getArchiveAt(const std::vector< uint64_t > &indices) const
Get the archive content at given indices.
Definition mapElitesArchive.cpp:124
virtual void setArchiveFromDescriptors(const TPG::TPGVertex *vertex, std::shared_ptr< Learn::EvaluationResult > eval, const std::vector< double > &descriptors)
Set the archive content at given descriptors.
Definition mapElitesArchive.cpp:110
Abstract class representing the vertices of a TPGGraph.
Definition tpgVertex.h:55
Definition mapElitesArchiveLogger.h:45