Alot of name changes and file name changes

This commit is contained in:
danielwilczak101
2020-10-04 23:56:51 -04:00
parent 80ebe8ca0c
commit 68db360b94
29 changed files with 166 additions and 161 deletions

View File

@ -1,5 +1,5 @@
# FROM (. means local) file_name IMPORT function_name
from .examples import initialization_examples
from .population_structure.population import population
from .chromosome_structure.chromosome import chromosome
from .gene_structure.gene import gene
from .methods import Initialization_methods
from .population_structure.population import Population
from .chromosome_structure.chromosome import Chromosome
from .gene_structure.gene import Gene

View File

@ -1,11 +1,11 @@
class chromosome:
class Chromosome:
def __init__(self, genes = None):
def __init__(self, gene_list = None):
"""Initialize the chromosome based on input gene list, defaulted to an empty list"""
if genes is None:
self.genes = []
if gene_list is None:
self.gene_list = []
else:
self.genes = genes
self.gene_list = gene_list
# The fitness of the overal chromosome
self.fitness = None
# If the chromosome has been selected then the flag would switch to true
@ -14,16 +14,16 @@ class chromosome:
def add_gene(self, gene, index = -1):
"""Add a gene to the chromosome at the specified index, defaulted to end of the chromosome"""
if index == -1:
index = len(self.genes)
self.genes.insert(index, gene)
index = len(self.gene_list)
self.gene_list.insert(index, gene)
def remove_gene(self, index):
"""Remove a gene from the chromosome at the specified index"""
del self.genes[index]
del self.gene_list[index]
def get_genes(self):
"""Return all genes in the chromosome"""
return self.genes
return self.gene_list
def get_fitness(self):
"""Return the fitness of the chromosome"""
@ -31,11 +31,11 @@ class chromosome:
def set_gene(self, gene, index):
"""Set a gene at a specific index"""
self.genes[index] = gene
self.gene_list[index] = gene
def set_genes(self, genes):
def set_genes(self, gene_list):
"""Set the entire gene set of the chromosome"""
self.genes = genes
self.gene_list = gene_list
def set_fitness(self, fitness):
"""Set the fitness value of the chromosome"""
@ -44,6 +44,6 @@ class chromosome:
def __repr__(self):
"""Format the repr() output for the chromosome"""
output_str = ''
for gene in self.genes:
for gene in self.gene_list:
output_str += gene.__repr__()
return output_str

View File

@ -3,7 +3,7 @@ def check_gene(value):
assert value != "" , "Gene can not be empty"
return value
class gene:
class Gene:
def __init__(self, value):
"""Initialize a gene with fitness of value None and the input value"""

View File

@ -1,31 +1,31 @@
# Import the data structure
from .population_structure.population import population as create_population
from .chromosome_structure.chromosome import chromosome as create_chromosome
from .gene_structure.gene import gene as create_gene
from .population_structure.population import Population as create_population
from .chromosome_structure.chromosome import Chromosome as create_chromosome
from .gene_structure.gene import Gene as create_gene
class initialization_examples:
class Initialization_methods:
"""Initialization examples that are used as defaults and examples"""
def random_initialization(population_size, chromosome_length, chromosome_impl, gene_impl):
def random_initialization(ga):
"""Takes the initialization inputs and choregraphs them to output the type of population
with the given parameters."""
# Create the population object
population = create_population()
# Fill the population with chromosomes
for i in range(population_size):
for i in range(ga.population_size):
chromosome = create_chromosome()
#Fill the Chromosome with genes
for j in range(chromosome_length):
for j in range(ga.chromosome_length):
# Using the chromosome_impl to set every index inside of the chromosome
if chromosome_impl != None:
if ga.chromosome_impl != None:
# Each chromosome location is specified with its own function
chromosome.add_gene(create_gene(chromosome_impl(j)))
chromosome.add_gene(create_gene(ga.chromosome_impl(j)))
# Will break if chromosome_length != len(lists) in domain
elif gene_impl != None:
elif ga.gene_impl != None:
# gene_impl = [range function,lowerbound,upperbound]
function = gene_impl[0]
chromosome.add_gene(create_gene(function(*gene_impl[1:])))
function = ga.gene_impl[0]
chromosome.add_gene(create_gene(function(*ga.gene_impl[1:])))
else:
#Exit because either were not specified
print("Your domain or range were not specified")

View File

@ -1,11 +1,11 @@
class population:
class Population:
def __init__(self, chromosomes = None):
def __init__(self, chromosome_list = None):
"""Intiialize the population with fitness of value None, and a set of chromosomes dependant on user-passed parameter"""
if chromosomes is None:
self.chromosomes = []
if chromosome_list is None:
self.chromosome_list = []
else:
self.chromosomes = chromosomes
self.chromosome_list = chromosome_list
self.fitness = None
def get_closet_fitness(self,value):
@ -15,42 +15,42 @@ class population:
def add_chromosome(self, chromosome, index = -1):
"""Adds a chromosome to the population at the input index, defaulted to the end of the chromosome set"""
if index == -1:
index = len(self.chromosomes)
self.chromosomes.insert(index, chromosome)
index = len(self.chromosome_list)
self.chromosome_list.insert(index, chromosome)
def remove_chromosome(self, index):
"""removes a chromosome from the indicated index"""
del self.chromosomes[index]
del self.chromosome_list[index]
def get_all_chromosomes(self):
"""returns all chromosomes in the population"""
return chromosomes
return chromosome_list
def get_fitness(self):
"""returns the population's fitness"""
return self.fitness
def set_all_chromosomes(self, chromosomes):
def set_all_chromosomes(self, chromosome_list):
"""sets the chromosome set of the population"""
self.chromosomes = chromosomes
self.chromosome_list = chromosome_list
def set_chromosome(self, chromosome, index):
"""sets a specific chromosome at a specific index"""
self.chromosomes[index] = chromosome
self.chromosome_list[index] = chromosome
def set_fitness(self, fitness):
"""Sets the fitness value of the population"""
"""Sets the fitness value of the population"""
self.fitness = fitness
def __repr__(self):
"""Sets the repr() output format"""
return ''.join([chromosome.__repr__() for chromosome in self.chromosomes])
return ''.join([chromosome.__repr__() for chromosome in self.chromosome_list])
def print_all(self):
"""Prints information about the population in the following format:"""
"""Ex .Current population"""
"""Chromosome 1 - [gene][gene][gene][.etc] / Chromosome fitness - """
print("Current population:")
for index in range(len(self.chromosomes)):
print(f'Chromosome - {index} {self.chromosomes[index]}', end = "")
print(f' / Fitness = {self.chromosomes[index].fitness}')
for index in range(len(self.chromosome_list)):
print(f'Chromosome - {index} {self.chromosome_list[index]}', end = "")
print(f' / Fitness = {self.chromosome_list[index].fitness}')