3#ifndef MAP_ELITES_ARCHIVE_H
4#define MAP_ELITES_ARCHIVE_H
12#include "learn/evaluationResult.h"
13#include "tpg/tpgGraph.h"
44 std::vector<std::pair<std::shared_ptr<Learn::EvaluationResult>,
79 uint64_t
size()
const;
94 virtual const std::vector<
95 std::pair<std::shared_ptr<Learn::EvaluationResult>,
104 virtual const std::pair<std::shared_ptr<Learn::EvaluationResult>,
106 getArchiveAt(
const std::vector<uint64_t>& indices)
const;
114 virtual const std::pair<std::shared_ptr<Learn::EvaluationResult>,
117 const std::vector<double>& descriptors)
const;
128 std::shared_ptr<Learn::EvaluationResult> eval,
129 const std::vector<uint64_t>& indices);
141 std::shared_ptr<Learn::EvaluationResult> eval,
142 const std::vector<double>& descriptors);
158 const std::vector<uint64_t>& indices)
const;
165 virtual std::vector<uint64_t>
computeIndices(uint64_t index)
const;
193 size_t maxNbEvaluation);
Class representing a Map Elites archive.
Definition mapElitesArchive.h:25
double minValue
Minimum value for the descriptors.
Definition mapElitesArchive.h:34
virtual uint64_t getIndexArchive(double value) const
Get the index in one dimension of the archive from a value.
Definition mapElitesArchive.cpp:28
std::pair< uint64_t, uint64_t > getDimensions() const
Get the dimensions of the archive.
Definition mapElitesArchive.cpp:10
virtual void removeRootFromArchive(const TPG::TPGVertex *root, size_t maxNbEvaluation)
Remove a root TPGVertex from the archive.
Definition mapElitesArchive.cpp:130
virtual std::vector< uint64_t > computeIndices(uint64_t index) const
Compute the multi-dimensional indices from linear index.
Definition mapElitesArchive.cpp:52
double maxValue
Maximum value for the descriptors.
Definition mapElitesArchive.h:37
std::vector< std::pair< std::shared_ptr< Learn::EvaluationResult >, const TPG::TPGVertex * > > archive
Definition mapElitesArchive.h:46
virtual uint64_t computeLinearIndex(const std::vector< uint64_t > &indices) const
Compute the linear index from multi-dimensional indices.
Definition mapElitesArchive.cpp:38
uint64_t nbBinPerDescriptor
Number of bins per descriptor.
Definition mapElitesArchive.h:28
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:115
virtual std::set< const TPG::TPGVertex * > getVerticesInArchive() const
Return a set with the current vectors in the archive.
Definition mapElitesArchive.cpp:143
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:96
uint64_t nbDescriptors
Number of descriptors for this archive.
Definition mapElitesArchive.h:31
MapElitesArchive(size_t nbBinPerDescriptor, size_t nbDescriptors, double minValue, double maxValue)
Constructor of the MapElitesArchive.
Definition mapElitesArchive.h:57
std::vector< double > getArchiveLimits() const
get the archive limits
Definition mapElitesArchive.cpp:15
virtual const std::vector< std::pair< std::shared_ptr< Learn::EvaluationResult >, const TPG::TPGVertex * > > & getAllArchive() const
Get all the archive content.
Definition mapElitesArchive.cpp:23
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:65
uint64_t size() const
Get the size of the archive.
Definition mapElitesArchive.cpp:4
virtual bool containsRoot(const TPG::TPGVertex *root) const
Check if the archive contains a root TPGVertex.
Definition mapElitesArchive.cpp:103
std::vector< double > archiveLimits
Limits of the bins for the descriptors.
Definition mapElitesArchive.h:40
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:90
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:76
Abstract class representing the vertices of a TPGGraph.
Definition tpgVertex.h:55
Definition mapElitesArchiveLogger.h:45