|
| | 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.
|
| |
| double | dist_squared (const std::vector< double > &a, const std::vector< double > &b) |
| | Calculate squared Euclidean distance between two points.
|
| |
| std::vector< double > | add (const std::vector< double > &a, const std::vector< double > &b) |
| | Vector addition.
|
| |
| std::vector< double > | scalar_mult (const std::vector< double > &a, double s) |
| | Scalar multiplication.
|
| |
| std::vector< double > | average (const std::vector< std::vector< double > > &points) |
| | Compute the average of a set of points.
|
| |
| std::vector< double > | random_point (Mutator::RNG &rng) |
| | Generate a random point within the descriptor bounds.
|
| |
| size_t | nearest (const std::vector< double > &point, const std::vector< std::vector< double > > ¢roids) |
| | Find the nearest centroid to a given point.
|
| |
| void | initialize_cvt (Mutator::RNG &rng) |
| | Initialize the CVT centroids using Lloyd's algorithm.
|
| |
| size_t | getIndexForDescriptor (const std::vector< double > &descriptors) const |
| | Get the index for given descriptors.
|
| |
| 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.
|
| |
| 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.
|
| |
|
virtual const std::vector< std::vector< double > > & | getCentroids () const |
| | Return the centroids used by the CVT.
|
| |
| | MapElitesArchive (size_t nbBinPerDescriptor, size_t nbDescriptors, double minValue, double maxValue) |
| | Constructor of the MapElitesArchive.
|
| |
| uint64_t | size () const |
| | Get the size of the archive.
|
| |
|
std::pair< uint64_t, uint64_t > | getDimensions () const |
| | Get the dimensions of the archive.
|
| |
|
std::vector< double > | getArchiveLimits () const |
| | get the archive limits
|
| |
|
virtual const std::vector< std::pair< std::shared_ptr< Learn::EvaluationResult >, const TPG::TPGVertex * > > & | getAllArchive () const |
| | Get all the archive content.
|
| |
| 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.
|
| |
| 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.
|
| |
| virtual uint64_t | getIndexArchive (double value) const |
| | Get the index in one dimension of the archive from a value.
|
| |
| virtual uint64_t | computeLinearIndex (const std::vector< uint64_t > &indices) const |
| | Compute the linear index from multi-dimensional indices.
|
| |
| virtual std::vector< uint64_t > | computeIndices (uint64_t index) const |
| | Compute the multi-dimensional indices from linear index.
|
| |
| virtual bool | containsRoot (const TPG::TPGVertex *root) const |
| | Check if the archive contains a root TPGVertex.
|
| |
| 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.
|
| |
| virtual void | removeRootFromArchive (const TPG::TPGVertex *root, size_t maxNbEvaluation) |
| | Remove a root TPGVertex from the archive.
|
| |
|
virtual std::set< const TPG::TPGVertex * > | getVerticesInArchive () const |
| | Return a set with the current vectors in the archive.
|
| |
CVT Map Elites Archive class.
This class implements a CVT (Centroidal Voronoi Tessellation) based Map Elites Archive It inherits from the MapElitesArchive class.
| double Selector::MapElites::CvtMapElitesArchive::dist_squared |
( |
const std::vector< double > & | a, |
|
|
const std::vector< double > & | b ) |
Calculate squared Euclidean distance between two points.
- Parameters
-
| [in] | a | First point |
| [in] | b | Second point |
Copyright or © or Copr. IETR/INSA - Rennes (2025) :
Quentin Vacher qvach.nosp@m.er@i.nosp@m.nsa-r.nosp@m.enne.nosp@m.s.fr (2025)
GEGELATI is an open-source reinforcement learning framework for training artificial intelligence based on Tangled Program Graphs (TPGs).
This software is governed by the CeCILL-C license under French law and abiding by the rules of distribution of free software. You can use, modify and/ or redistribute the software under the terms of the CeCILL-C license as circulated by CEA, CNRS and INRIA at the following URL "http://www.cecill.info".
As a counterpart to the access to the source code and rights to copy, modify and redistribute granted by the license, users are provided only with a limited warranty and the software's author, the holder of the economic rights, and the successive licensors have only limited liability.
In this respect, the user's attention is drawn to the risks associated with loading, using, modifying and/or developing or reproducing the software by the user in light of its specific status of free software, that may mean that it is complicated to manipulate, and that also therefore means that it is reserved for developers and experienced professionals having in-depth computer knowledge. Users are therefore encouraged to load and test the software's suitability as regards their requirements in conditions enabling the security of their systems and/or data to be ensured and, more generally, to use and operate it in the same conditions as regards security.
The fact that you are presently reading this means that you have had knowledge of the CeCILL-C license and that you accept its terms.