diff --git a/README.md b/README.md index 8e90e32..689eb05 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,11 @@ import EasyGA def user_gene_function(): return random.randint(1, 100) -# Standard user size requirements: +# The user defined Fitness Function +def user_fitness_function(): + pass + +# Standard user size requirements Population_size = 10 Chromosome_length = 10 @@ -32,10 +36,41 @@ Chromosome_length = 10 ga = EasyGA.GA(Population_size, Chromosome_length,user_gene_function) ga.initialize() -# Looking at the first chromosome in the population: +# Looking to print the first Chromosome ga.population.chromosomes[0].print_chromosome() +# Looking to print one gene in chromosome 0 +ga.population.chromosomes[0].genes[0].print_value() + +# Looking to get the data of a chromosome +my_chromosome = ga.population.chromosomes[0].get_chromosome() +print(f"my_chromosome: {my_chromosome}") +# Looking to get the data of one gene in the chromosome +my_gene = ga.population.chromosomes[0].genes[0].get_value() +print(f"my_gene: {my_gene}") + ``` +## Ouput +```Python +[99],[30],[59],[77],[68],[57],[14],[92],[85],[27] + +99 + +my_chromosome: [, + , + , + , + , + , + , + , + , + ] + +my_gene: 99 + +``` + # Developing EasyGA: Download the repository to some folder - If you never used git. Look up a youtube tutorial. It will all make sense. diff --git a/src/EasyGA.py b/src/EasyGA.py index e8d2d85..20d6e68 100644 --- a/src/EasyGA.py +++ b/src/EasyGA.py @@ -1,3 +1,4 @@ +# Defult packages for GA functionality from initialization.random_initialization import random_initialization def check_gene(value): @@ -8,42 +9,50 @@ def check_gene(value): ## Your main structure class gene: # Defults - # fitness = double , value = Anything + # fitness = Anything, value = Anything def __init__(self, value): self.fitness = None self.value = check_gene(value) - def get_fitness(self): - return self.fitness - def set_fitness(self,fitness): self.fitness = fitness + def get_fitness(self): + return self.fitness + def get_value(self): return self.value + def print_value(self): + print(self.value) + + def print_fitness(self): + print(self.fitness) + class chromosome: # Defults - # fitness = double, genes = [gene,gene,gene,etc] + # fitness = Anything, genes = [gene,gene,gene,etc] def __init__(self): self.fitness = None self.genes = [] + def add_gene(self,gene): + self.genes.append(gene) + def get_fitness(self): return self.score - def add_gene(self,gene): - self.genes.append(gene) + def get_chromosome(self): + return self.genes def print_chromosome(self): for i in range(len(self.genes)): # Print the gene one by one. if(i == len(self.genes) - 1): - print(f"[{self.genes[i].get_value()}]", end = '') + print(f"[{self.genes[i].get_value()}]") else: print(f"[{self.genes[i].get_value()}],", end = '') - class population: # population = [chromosome,chromosome,etc] def __init__(self): diff --git a/src/example.py b/src/example.py index f0ce9d9..98cb430 100644 --- a/src/example.py +++ b/src/example.py @@ -5,6 +5,10 @@ import EasyGA def user_gene_function(): return random.randint(1, 100) +# The user defined Fitness Function +def user_fitness_function(): + pass + # Standard user size requirements Population_size = 10 Chromosome_length = 10 @@ -13,5 +17,15 @@ Chromosome_length = 10 ga = EasyGA.GA(Population_size, Chromosome_length,user_gene_function) ga.initialize() -# Looking at the first chromosome in the population +# Looking to print the first Chromosome ga.population.chromosomes[0].print_chromosome() + +# Looking to print one gene in chromosome 0 +ga.population.chromosomes[0].genes[0].print_value() + +# Looking to get the data of a chromosome +my_chromosome = ga.population.chromosomes[0].get_chromosome() +print(f"my_chromosome: {my_chromosome}") +# Looking to get the data of one gene in the chromosome +my_gene = ga.population.chromosomes[0].genes[0].get_value() +print(f"my_gene: {my_gene}")