Making use of casting to list

This commit is contained in:
SimpleArt
2020-11-22 15:49:57 -05:00
parent 691642e19c
commit 7bb208b915

View File

@ -1,14 +1,21 @@
def chromosomes_to_population(initialize):
"""Makes a population from chromosomes."""
return lambda ga: ga.make_population([initialize(ga) for _ in range(ga.population_size)])
return lambda ga:\
ga.make_population(
[initialize(ga) for _ in range(ga.population_size)]
)
def genes_to_chromosome(initialize):
"""Converts a collection of genes to a chromosome."""
return lambda ga: ga.make_chromosome([genes for genes in initialize(ga)])
return lambda ga:\
ga.make_chromosome(
list(initialize(ga))
)
def value_to_gene(initialize):
def values_to_genes(initialize):
"""Converts a collection of values to genes."""
return lambda ga: (ga.make_gene(value) for value in initialize(ga))
return lambda ga:\
(ga.make_gene(value) for value in initialize(ga))
class Initialization_Methods:
@ -25,7 +32,7 @@ class Initialization_Methods:
@chromosomes_to_population
@genes_to_chromosome
@value_to_gene
@values_to_genes
def random_initialization(ga):
"""Takes the initialization inputs and returns a collection of values.
Method decorators convert them to a GA population object.