def pd_evolve_population(): past_organisms = {} organisms = create_initial_population() output = [] headers = [] for i in range(pd_org.MAX_BITS_OF_MEMORY + 1): headers.append("Organisms With " + str(i) + " Bits of Memory") output.append(headers) for org in organisms: #adding into the dictionary if org in past_organisms: past_organisms[org].append(org) else: past_organisms[org] = [org] pd_make_detail_file.make_file_detail(organisms, past_organisms, 0) for i in range(NUMBER_OF_GENERATIONS): organisms = pd_selection.get_next_generation_by_selection(organisms) organisms = get_mutated_population(organisms) output.append( pd_analysis.get_tally_of_number_of_bits_of_memory(organisms)) for org in organisms: #adding into the dictionary if org in past_organisms: past_organisms[org].append(org) else: past_organisms[org] = [org] if ((i + 1) % OUTPUT_FREQUENCY == 0): pd_make_detail_file.make_file_detail(organisms, past_organisms, i + 1) return output
def pd_evolve_population(): past_organisms = {} organisms = create_initial_population() output = [] headers = [] for i in range(pd_org.MAX_BITS_OF_MEMORY + 1): headers.append("Organisms With " + str(i) + " Bits of Memory") output.append(headers) for org in organisms: #adding into the dictionary if org in past_organisms: past_organisms[org].append(org) else: past_organisms[org] = [org] pd_make_detail_file.make_file_detail(organisms, past_organisms, 0) for i in range(NUMBER_OF_GENERATIONS): organisms = pd_selection.get_next_generation_by_selection(organisms) organisms = get_mutated_population(organisms) output.append(pd_analysis.get_tally_of_number_of_bits_of_memory(organisms)) for org in organisms: #adding into the dictionary if org in past_organisms: past_organisms[org].append(org) else: past_organisms[org] = [org] if ( (i + 1) % OUTPUT_FREQUENCY == 0): pd_make_detail_file.make_file_detail(organisms, past_organisms, i + 1) return output
def test_get_tally_of_number_of_bits_of_memory(self): """ Returns a list of length MAX_BITS_OF_MEMORY + 1 where each position represents the number of organisms with that many number of bits of memory """ pd_org.MAX_BITS_OF_MEMORY = 4 organism_a = pd_org.PDOrg(pd_org.MemoryPDGenotype(1,[True, False], [False])) organism_b = pd_org.PDOrg(pd_org.MemoryPDGenotype(2,[True, False, False, True], [False, True])) organisms = [organism_a, organism_b, organism_a, organism_a] tally = pd_analysis.get_tally_of_number_of_bits_of_memory(organisms) expected = [0, 3, 1, 0, 0] self.assertEqual(tally, expected)
def test_get_tally_of_number_of_bits_of_memory(self): """ Returns a list of length MAX_BITS_OF_MEMORY + 1 where each position represents the number of organisms with that many number of bits of memory """ pd_org.MAX_BITS_OF_MEMORY = 4 organism_a = pd_org.PDOrg( pd_org.MemoryPDGenotype(1, [True, False], [False])) organism_b = pd_org.PDOrg( pd_org.MemoryPDGenotype(2, [True, False, False, True], [False, True])) organisms = [organism_a, organism_b, organism_a, organism_a] tally = pd_analysis.get_tally_of_number_of_bits_of_memory(organisms) expected = [0, 3, 1, 0, 0] self.assertEqual(tally, expected)