from typing import Optional, Union
import uuid
from gridmind.policies.parameterized.discrete_action_mlp_policy import (
DiscreteActionMLPPolicy,
)
[docs]class NeuroAgent(object):
def __init__(
self,
network: Optional[DiscreteActionMLPPolicy] = None,
fitness: Optional[float] = None,
score: Optional[float] = None,
starting_generation: Optional[int] = None,
id: Optional[Union[str, uuid.UUID]] = None,
parent_id: Optional[Union[str, uuid.UUID]] = None,
name_prefix: Optional[str] = None,
):
[docs] self.starting_generation = starting_generation
[docs] self._id = id if id is not None else uuid.uuid4()
[docs] self._parent_id = parent_id
[docs] self.name_prefix = name_prefix
[docs] def __repr__(self):
return f"NeuroAgent(id={self.id}, fitness={self.fitness}, starting_generation={self.starting_generation})"
@property
[docs] def id(self):
return str(self._id)
@property
[docs] def parent_id(self):
return str(self._parent_id) if self._parent_id is not None else None
@property
[docs] def name(self):
if self.name_prefix is not None:
return f"{self.name_prefix}_{self.id}"
return str(self.id)