1#ifndef CVT_MAP_ELITES_ARCHIVE_H
2#define CVT_MAP_ELITES_ARCHIVE_H
4#include "mapElitesArchive.h"
81 const std::vector<double>& b);
89 std::vector<double>
add(
const std::vector<double>& a,
90 const std::vector<double>& b);
98 std::vector<double>
scalar_mult(
const std::vector<double>& a,
107 const std::vector<std::vector<double>>& points);
122 size_t nearest(
const std::vector<double>& point,
123 const std::vector<std::vector<double>>&
centroids);
138 const std::vector<double>& descriptors)
const;
143 const std::pair<std::shared_ptr<Learn::EvaluationResult>,
146 const std::vector<double>& descriptors)
const override;
153 std::shared_ptr<Learn::EvaluationResult> eval,
154 const std::vector<double>& descriptors)
override;
159 virtual const std::vector<std::vector<double>>&
getCentroids()
CVT Map Elites Archive class.
Definition cvtMapElitesArchive.h:17
size_t nbDotsInit
Number of dots for initialization.
Definition cvtMapElitesArchive.h:26
size_t nearest(const std::vector< double > &point, const std::vector< std::vector< double > > ¢roids)
Find the nearest centroid to a given point.
Definition cvtMapElitesArchive.cpp:59
std::vector< double > add(const std::vector< double > &a, const std::vector< double > &b)
Vector addition.
Definition cvtMapElitesArchive.cpp:21
virtual const std::vector< std::vector< double > > & getCentroids() const
Return the centroids used by the CVT.
Definition cvtMapElitesArchive.cpp:165
double b2
CVT parameters.
Definition cvtMapElitesArchive.h:38
std::vector< double > random_point(Mutator::RNG &rng)
Generate a random point within the descriptor bounds.
Definition cvtMapElitesArchive.cpp:50
void initialize_cvt(Mutator::RNG &rng)
Initialize the CVT centroids using Lloyd's algorithm.
Definition cvtMapElitesArchive.cpp:78
double b1
CVT parameters.
Definition cvtMapElitesArchive.h:32
size_t nbIterationInit
Number of iterations for initialization.
Definition cvtMapElitesArchive.h:23
std::vector< std::vector< double > > centroids
Centroids of the CVT.
Definition cvtMapElitesArchive.h:41
double dist_squared(const std::vector< double > &a, const std::vector< double > &b)
Calculate squared Euclidean distance between two points.
Definition cvtMapElitesArchive.cpp:12
CvtMapElitesArchive(Mutator::RNG &rng, size_t nbCentroids, size_t nbDescriptors, double minValue, double maxValue, size_t nbIterationInit, size_t nbDotsInit, double a1, double b1, double a2, double b2)
Constructor of the CVT Map Elites Archive.
Definition cvtMapElitesArchive.h:60
size_t nbCentroids
Number of centroids.
Definition cvtMapElitesArchive.h:20
double a2
CVT parameters.
Definition cvtMapElitesArchive.h:35
void setArchiveFromDescriptors(const TPG::TPGVertex *vertex, std::shared_ptr< Learn::EvaluationResult > eval, const std::vector< double > &descriptors) override
Set the archive content at given descriptors.
Definition cvtMapElitesArchive.cpp:135
std::vector< double > average(const std::vector< std::vector< double > > &points)
Compute the average of a set of points.
Definition cvtMapElitesArchive.cpp:39
std::vector< double > scalar_mult(const std::vector< double > &a, double s)
Scalar multiplication.
Definition cvtMapElitesArchive.cpp:30
const std::pair< std::shared_ptr< Learn::EvaluationResult >, const TPG::TPGVertex * > & getArchiveFromDescriptors(const std::vector< double > &descriptors) const override
Get the archive content at given descriptors.
Definition cvtMapElitesArchive.cpp:128
double a1
CVT parameters.
Definition cvtMapElitesArchive.h:29
size_t getIndexForDescriptor(const std::vector< double > &descriptors) const
Get the index for given descriptors.
Definition cvtMapElitesArchive.cpp:143
Class representing a Map Elites archive.
Definition mapElitesArchive.h:25
double minValue
Minimum value for the descriptors.
Definition mapElitesArchive.h:34
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
uint64_t nbDescriptors
Number of descriptors for this archive.
Definition mapElitesArchive.h:31
Abstract class representing the vertices of a TPGGraph.
Definition tpgVertex.h:55
Helper file gathering all headers from the GEGELATI lib to ease their inclusion in apps.
Definition mapElitesArchiveLogger.h:45