Added save_data attribute to be able to turn off saving the population to the database.
This commit is contained in:
@ -84,6 +84,7 @@ class GA(Attributes):
|
||||
self.sort_by_best_fitness()
|
||||
|
||||
# Save the population to the database
|
||||
if self.save_data == True:
|
||||
self.save_population()
|
||||
|
||||
# Adapt the ga if the generation times the adapt rate
|
||||
|
||||
@ -99,6 +99,7 @@ class Attributes:
|
||||
population = None,
|
||||
target_fitness_type = 'max',
|
||||
update_fitness = False,
|
||||
save_data = True,
|
||||
|
||||
parent_ratio = 0.10,
|
||||
selection_probability = 0.50,
|
||||
@ -151,6 +152,7 @@ class Attributes:
|
||||
self.population = population
|
||||
self.target_fitness_type = target_fitness_type
|
||||
self.update_fitness = update_fitness
|
||||
self.save_data = save_data
|
||||
|
||||
# Selection variables
|
||||
self.parent_ratio = parent_ratio
|
||||
|
||||
@ -1,18 +1,33 @@
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
import EasyGA
|
||||
import random
|
||||
|
||||
for _ in range(2):
|
||||
# Create a new genetic algorithm each.
|
||||
ga = EasyGA.GA()
|
||||
ga.evolve()
|
||||
ga.print_population()
|
||||
# Create the Genetic algorithm
|
||||
ga = EasyGA.GA()
|
||||
|
||||
# Graph the average of the two runs
|
||||
plt.subplot(1, 2, 1)
|
||||
ga.graph.highest_value_chromosome("average")
|
||||
ga.save_data = False
|
||||
|
||||
plt.subplot(1, 2, 1)
|
||||
ga.graph.highest_value_chromosome("all")
|
||||
def is_it_5(chromosome):
|
||||
"""A very simple case test function - If the chromosomes gene value is a 5 add one
|
||||
to the chromosomes overall fitness value."""
|
||||
# Overall fitness value
|
||||
fitness = 0
|
||||
# For each gene in the chromosome
|
||||
for gene in chromosome.gene_list:
|
||||
# Check if its value = 5
|
||||
if(gene.value == 5):
|
||||
# If its value is 5 then add one to
|
||||
# the overal fitness of the chromosome.
|
||||
fitness += 1
|
||||
|
||||
ga.graph.show()
|
||||
return fitness
|
||||
|
||||
ga.fitness_function_impl = is_it_5
|
||||
|
||||
# Create random genes from 0 to 10
|
||||
ga.gene_impl = lambda: random.randint(0, 10)
|
||||
|
||||
ga.evolve()
|
||||
|
||||
# Print your default genetic algorithm
|
||||
ga.print_generation()
|
||||
ga.print_population()
|
||||
|
||||
Reference in New Issue
Block a user