GEGELATI
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
TPG::TPGAbstractEngine Class Reference

Abstract Class in charge of managing maps to give a unique ID for vertex and a program of a TPGGraph. More...

#include <tpgAbstractEngine.h>

Inheritance diagram for TPG::TPGAbstractEngine:
CodeGen::TPGGenerationEngine File::TPGGraphDotExporter

Public Member Functions

bool findProgramID (const Program::Program &prog, uint64_t &id)
 Method for finding the unique identifier associated to a given Program. More...
 
uint64_t findVertexID (const TPG::TPGVertex &vertex)
 Method for finding the unique identifier associated to a given TPGVertex. More...
 

Protected Member Functions

 TPGAbstractEngine (const TPG::TPGGraph &tpg)
 Constructor for the abstract engine. More...
 

Protected Attributes

const TPG::TPGGraphtpg
 Reference to the TPGGraph whose content will be used to fill the maps.
 
std::map< const Program::Program *, uint64_t > programID
 Map associating pointers to Program to an integer ID. More...
 
uint64_t nbPrograms = 0
 Integer number used to associate a unique integer identifier to each new Program. More...
 
std::map< const TPG::TPGVertex *, uint64_t > vertexID
 Map associating pointers to TPGVertex to an integer ID. More...
 
uint64_t nbVertex = 0
 Integer number used during export to associate a unique integer identifier to each new TPGTeam. More...
 
uint64_t nbActions
 Integer number used during export to associate a unique integer identifier to each TPGAction. More...
 

Detailed Description

Abstract Class in charge of managing maps to give a unique ID for vertex and a program of a TPGGraph.

Constructor & Destructor Documentation

◆ TPGAbstractEngine()

TPG::TPGAbstractEngine::TPGAbstractEngine ( const TPG::TPGGraph tpg)
inlineprotected

Constructor for the abstract engine.

Parameters
[in]tpgconst reference to the graph whose content will be used to fill the maps of IDs (vertex and program).

Member Function Documentation

◆ findProgramID()

bool TPG::TPGAbstractEngine::findProgramID ( const Program::Program prog,
uint64_t &  id 
)

Method for finding the unique identifier associated to a given Program.

Using the programID map, this method retrieves the integer identifier associated to the given Program. If no identifier exists for this Program, a new one is created automatically and saved into the map.

Parameters
[in]proga const reference to the Program whose integer identifier is retrieved.
[out]ida pointer to an integer number, used to return the found identifier.
Returns
A boolean value indicating whether the returned ID is a new one (true), or one found in the programID map (false).

Copyright or © or Copr. IETR/INSA - Rennes (2021) :

Thomas Bourgoin tbour.nosp@m.goi@.nosp@m.insa-.nosp@m.renn.nosp@m.es.fr (2021)

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.

◆ findVertexID()

uint64_t TPG::TPGAbstractEngine::findVertexID ( const TPG::TPGVertex vertex)

Method for finding the unique identifier associated to a given TPGVertex.

Using the vertexID map, this method returns the integer identifier associated to the given TPGVertex. If not identifier exists for this TPGVertex, a new one is created automatically and saved into the map.

Parameters
[in]vertexa const reference to the TPGVertex whose integer identifier is retrieved.
Returns
the integer identifier for the given TPGVertex.

Member Data Documentation

◆ nbActions

uint64_t TPG::TPGAbstractEngine::nbActions
protected

Integer number used during export to associate a unique integer identifier to each TPGAction.

Identifier associated to TPGAction are NOT preserved during multiple printing of a TPGGraph.

◆ nbPrograms

uint64_t TPG::TPGAbstractEngine::nbPrograms = 0
protected

Integer number used to associate a unique integer identifier to each new Program.

In case the TPGAbstractEngine is used to export multiple TPGGraph, a Program that was already printed in previous export will keep its ID.

◆ nbVertex

uint64_t TPG::TPGAbstractEngine::nbVertex = 0
protected

Integer number used during export to associate a unique integer identifier to each new TPGTeam.

Using the VertexID map, a TPGTeam that was already printed in previous export will keep its ID.

◆ programID

std::map<const Program::Program*, uint64_t> TPG::TPGAbstractEngine::programID
protected

Map associating pointers to Program to an integer ID.

In case the TPGAbstractEngine is used to export multiple TPGGraph, this map is used to ensure that a given Program will always be associated to the same integer identifier in all exported files.

◆ vertexID

std::map<const TPG::TPGVertex*, uint64_t> TPG::TPGAbstractEngine::vertexID
protected

Map associating pointers to TPGVertex to an integer ID.

In case the TPGAbstractEngine is used to export multiple TPGGraph, this map is used to ensure that a given TPGVertex will always be associated to the same integer identifier in all exported files.


The documentation for this class was generated from the following files: