make fully stateful in module gene.

This commit is contained in:
wls2002
2024-05-25 16:13:41 +08:00
parent 3b2f917aee
commit 625c261a49
5 changed files with 21 additions and 36 deletions

View File

@@ -1,3 +1,6 @@
from utils import State
class BaseGene:
"Base class for node genes or connection genes."
fixed_attrs = []
@@ -6,18 +9,21 @@ class BaseGene:
def __init__(self):
pass
def new_custom_attrs(self):
def setup(self, state=State()):
return state
def new_attrs(self, state, key):
raise NotImplementedError
def mutate(self, randkey, gene):
def mutate(self, state, key, gene):
raise NotImplementedError
def distance(self, gene1, gene2):
def distance(self, state, gene1, gene2):
raise NotImplementedError
def forward(self, attrs, inputs):
def forward(self, state, attrs, inputs):
raise NotImplementedError
@property
def length(self):
return len(self.fixed_attrs) + len(self.custom_attrs)
return len(self.fixed_attrs) + len(self.custom_attrs)