def __init__(self): #-----location part if parameters.location_mode: self.mesh_size = 1./parameters.LD0range/2 f = lambda size: [[{} for x in xrange(int(size)+1)] for y in xrange(int(size)+1)] self.mesh = f(self.mesh_size) map_path = parameters.map_phenotype_image(parameters.maps) self.load_terrain(map_path+".info.tmp", map_path+".tmp") #------------------ from plant import Plant from phenotype import Phenotype self.plants = {} self.allplantslist = [] self.generation = 0 self.__class__.default = self self.__class__.environments += 1 debug.g("niche %d" % parameters.niche_size) for i in xrange(parameters.niche_size): if parameters.location_mode: Plant.new(parameters.get_start_point(parameters.maps)) else: Plant.new((0,0)) debug.g("*** %d" % len(self.plants)) self.optimal_global_phenotype = Phenotype() self.base_phenotype = Phenotype() self.survivors = parameters.niche_size self.randomkiller = selectors.KillerRandom() (self.killer, self.reproducer) = selectors.getSelectors() self.phenotype_link = Phenotype self.history = History(self) self.history.update()
def crossbreed(self, gamete): parent1 = self.origin parent2 = gamete.origin new_aut_TE = merge(self.aut_TE_list, gamete.aut_TE_list) new_nonaut_TE = merge(self.nonaut_TE_list, gamete.nonaut_TE_list) new_transposase_activity = 0.5 * (parent1.transposase_activity + parent2.transposase_activity) if param.location_mode : p = Plant.new(parent1.location, len(new_aut_TE), new_transposase_activity) else : p = Plant.new((0,0), len(new_aut_TE), new_transposase_activity) p.inactive_transposons = 0 #self.inactive_transposons p.phenotype = parent1.phenotype.generate_phenotype(parent2.phenotype) p.ord_counter = parent1.ord_counter #nie wiem co tu ma byc p.aut_transposons_list = new_aut_TE p.aut_transposons = len(new_aut_TE) p.nonaut_transposons_list = new_nonaut_TE p.nonaut_transposons = len(new_nonaut_TE) return p