Class cowboys::LGPAgent
ClassList > cowboys > LGPAgent
Inherits the following classes: cowboys::GPAgentBase
Public Functions
| Type | Name |
|---|---|
| void | Configure (const LGPAgent & other) Copies the behavior of another LGPAgent into this agent. |
| virtual void | Copy (const GPAgentBase & other) override Copy the behavior of another agent into this agent. |
| virtual std::string | Export () override Export the agent to a string. |
| void | GenerateRandomActionList () Generate a random list of instructions from a list of possible instructions. |
| virtual size_t | GetAction (const cse491::WorldGrid & grid, const cse491::type_options_t & type_options, const cse491::item_map_t & item_set, const cse491::agent_map_t & agent_set) override Get the action to take. |
| const std::vector< std::tuple< std::string, int, int > > & | GetInstructionsList () Get the instruction list for this agent. |
| virtual void | Import (const std::string & encodedLists) override Load in the string representation of an LGP agent and configure this agent based on it. |
| bool | Initialize () override Initialize the agent after being given an action map. |
| LGPAgent (size_t id, const std::string & name) |
|
| virtual void | MutateAgent (double mutation_rate=0.01) override Mutate this agent. |
| virtual void | PrintAgent () override Print the agent. |
| virtual void | SerializeGP (tinyxml2::XMLDocument & doc, tinyxml2::XMLElement * parentElem, double fitness=-1) override Serialize this agent to XML. |
Public Functions inherited from cowboys::GPAgentBase
| Type | Name |
|---|---|
| virtual void | Copy (const GPAgentBase & other) = 0 Copy the behavior of another agent into this agent. |
| virtual std::string | Export () |
| GPAgentBase (size_t id, const std::string & name) |
|
| virtual size_t | GetAction (const cse491::WorldGrid & grid, const cse491::type_options_t & type_options, const cse491::item_map_t & item_set, const cse491::agent_map_t & agent_set) = 0 |
| const std::unordered_map< std::string, double > | GetExtraState () const Get a map of extra state information. |
| double | GetRandom () Return a uniform random value between 0.0 and 1.0. |
| double | GetRandom (double max) Return a uniform random value between 0.0 and max. |
| double | GetRandom (double min, double max) Return a uniform random value between min and max. |
| double | GetRandomNormal () Return a gaussian random value with mean 0.0 and sd 1.0. |
| double | GetRandomNormal (double mean, double sd=1.0) Return a gaussian random value with provided mean and sd. |
| size_t | GetRandomULL (size_t max) Return a uniform random unsigned long long between 0 (inclusive) and max (exclusive) |
| unsigned int | GetSeed () const Get the seed used to initialize this RNG. |
| virtual void | Import (const std::string & genotype) = 0 |
| bool | Initialize () override Setup graph. |
| virtual void | MutateAgent (double mutation_rate=0.8) = 0 Mutate this agent. |
| virtual void | PrintAgent () |
| virtual void | Reset (bool=false) |
| size_t | SelectAction (const cse491::WorldGrid & grid, const cse491::type_options_t & type_options, const cse491::item_map_t & item_set, const cse491::agent_map_t & agent_set) override Choose the action to take a step in the appropriate direction. |
| virtual void | SerializeGP (tinyxml2::XMLDocument & doc, tinyxml2::XMLElement * parentElem, double fitness=-1) = 0 |
| void | SetSeed (unsigned int seed) Set the seed used to initialize this RNG. |
| ~GPAgentBase () = default |
Public Static Functions
| Type | Name |
|---|---|
| std::vector< std::string > | EncodeActions (const std::unordered_map< std::string, size_t > & action_map, const std::vector< std::string > & sensorsNamesList, const std::vector< std::string > & operationsList, std::vector< std::string > & actionsList) Encodes the actions from an agent's action map into a vector of string, representing action names. |
Protected Attributes
| Type | Name |
|---|---|
| std::vector< std::string > | actionsList = = {} |
| size_t | currentInstructionIndex = = 0 |
| std::mt19937 | gen |
| std::vector< std::tuple< std::string, int, int > > | instructionsList = = {} |
| std::vector< std::string > | operationsList = = {"lessthan", "greaterthan", "equals"} |
| std::vector< std::string > | possibleInstructionsList = = {} |
| std::random_device | rd |
| std::vector< int > | resultsList |
| std::vector< std::string > | sensorsNamesList = = {"getLeft", "getRight", "getUp", "getDown"} |
Protected Attributes inherited from cowboys::GPAgentBase
| Type | Name |
|---|---|
| std::unordered_map< std::string, double > | extra_state A map of extra state information. |
| std::normal_distribution< double > | norm_dist Normal distribution. |
| std::mt19937 | rng = {seed} Random number generator. |
| unsigned int | seed = = 0 Seed for the random number generator. |
| std::uniform_real_distribution< double > | uni_dist Uniform distribution. |
Public Functions Documentation
function Configure
Copies the behavior of another LGPAgent into this agent.
inline void cowboys::LGPAgent::Configure (
const LGPAgent & other
)
Parameters:
otherThe LGPAgent to copy.
function Copy
Copy the behavior of another agent into this agent.
inline virtual void cowboys::LGPAgent::Copy (
const GPAgentBase & other
) override
Parameters:
otherThe agent to copy.
Implements cowboys::GPAgentBase::Copy
function Export
Export the agent to a string.
inline virtual std::string cowboys::LGPAgent::Export () override
Returns:
The string representation of the agent
Implements cowboys::GPAgentBase::Export
function GenerateRandomActionList
Generate a random list of instructions from a list of possible instructions.
inline void cowboys::LGPAgent::GenerateRandomActionList ()
Returns:
Success.
function GetAction
Get the action to take.
inline virtual size_t cowboys::LGPAgent::GetAction (
const cse491::WorldGrid & grid,
const cse491::type_options_t & type_options,
const cse491::item_map_t & item_set,
const cse491::agent_map_t & agent_set
) override
Parameters:
gridThe world grid.type_optionsThe available types of cells in the grid.item_setThe set of items in the world.agent_setThe set of agents in the world.
Returns:
A size_t corresponding to the action chosen
Implements cowboys::GPAgentBase::GetAction
function GetInstructionsList
Get the instruction list for this agent.
inline const std::vector< std::tuple< std::string, int, int > > & cowboys::LGPAgent::GetInstructionsList ()
Returns:
A const reference to the instruction list for this agent.
function Import
Load in the string representation of an LGP agent and configure this agent based on it.
inline virtual void cowboys::LGPAgent::Import (
const std::string & encodedLists
) override
Parameters:
genotypeThe string representation of an LGP agent.
Implements cowboys::GPAgentBase::Import
function Initialize
Initialize the agent after being given an action map.
inline bool cowboys::LGPAgent::Initialize () override
Returns:
Success.
function LGPAgent
inline cowboys::LGPAgent::LGPAgent (
size_t id,
const std::string & name
)
function MutateAgent
Mutate this agent.
inline virtual void cowboys::LGPAgent::MutateAgent (
double mutation_rate=0.01
) override
Parameters:
mutation_rateThe probability of any instruction being changed
Implements cowboys::GPAgentBase::MutateAgent
function PrintAgent
inline virtual void cowboys::LGPAgent::PrintAgent () override
Implements cowboys::GPAgentBase::PrintAgent
function SerializeGP
Serialize this agent to XML.
inline virtual void cowboys::LGPAgent::SerializeGP (
tinyxml2::XMLDocument & doc,
tinyxml2::XMLElement * parentElem,
double fitness=-1
) override
Parameters:
docThe XML document to serialize to.parentElemThe parent element to serialize to.fitnessThe fitness of this agent to write to the XML.
Implements cowboys::GPAgentBase::SerializeGP
Public Static Functions Documentation
function EncodeActions
Encodes the actions from an agent's action map into a vector of string, representing action names.
static inline std::vector< std::string > cowboys::LGPAgent::EncodeActions (
const std::unordered_map< std::string, size_t > & action_map,
const std::vector< std::string > & sensorsNamesList,
const std::vector< std::string > & operationsList,
std::vector< std::string > & actionsList
)
Parameters:
action_mapThe action map from the agent.sensorsNamesListThe list of sensors from the agent.operationsListThe list of operations from the agent.actionsListThe list of actions from the agent.
Returns:
A vector of strings, representing action names.
Protected Attributes Documentation
variable actionsList
std::vector<std::string> actionsList;
variable currentInstructionIndex
size_t currentInstructionIndex;
variable gen
std::mt19937 gen;
variable instructionsList
std::vector<std::tuple<std::string, int, int> > instructionsList;
variable operationsList
std::vector<std::string> operationsList;
variable possibleInstructionsList
std::vector<std::string> possibleInstructionsList;
variable rd
std::random_device rd;
variable resultsList
std::vector<int> resultsList;
variable sensorsNamesList
std::vector<std::string> sensorsNamesList;
The documentation for this class was generated from the following file source/Agents/GP/LGPAgent.hpp