from itertools import count

class Individual:

ID = count() def __init__(self, chromosomes):

self.chromosomes = chromosomes[:] # managed as a list as order is used to identify chromosomal functions (i.e. chromosome i encodes functionality f) self.id = self.ID.next()
def __eq__(self, other):
return self.chromosomes == other.chromosomes
def __hash__(self):
return hash(tuple(tuple(chromosome) for chromosome in self.chromosomes))
def __len__(self):
return len(self.chromosomes)
def __getitem__(self, i):
return self.chromosomes[i]
def __setitem__(self, index, obj):
self.chromosomes[index] = obj
def __contains__(self, chromosome):
return chromosome in self.chromosomes
def __repr__(self):
return str(self.id)
def append(self, chrom):
self.chromosomes.append(chrom)
def count(self, sub, chrom):
return self.chromosomes[chrom].count(sub)

Previous topic

Overview - How to use this Framework

This Page