From 7e4dffd64689b446c004369557bbafaf123327f6 Mon Sep 17 00:00:00 2001 From: SimpleArt <71458112+SimpleArt@users.noreply.github.com> Date: Sun, 6 Dec 2020 11:18:00 -0500 Subject: [PATCH] Added preset numerical and permutated chromosome settings --- src/attributes.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/attributes.py b/src/attributes.py index 0d0df03..828de92 100644 --- a/src/attributes.py +++ b/src/attributes.py @@ -184,6 +184,32 @@ class Attributes: self.database.insert_current_chromosome(self.current_generation, chromosome) + def numeric_chromosomes(self): + """Sets default numerical based methods""" + + self.crossover_individual_impl = Crossover_Methods.Individual.Arithmetic.average + self.dist = lambda chromosome_1, chromosome_2:\ + sqrt(sum( + (gene_1.value - gene_2.value) ** 2 + for gene_1, gene_2 + in chromosome_1, chromosome_2 + )) + + + def permutation_chromosomes(self): + """Sets default permutation based methods""" + + self.crossover_individual_impl = Crossover_Methods.Individual.Permutation.ox1 + self.mutation_individual_impl = Mutation_Methods.Individual.Permutation.swap_genes + self.dist = lambda chromosome_1, chromosome_2:\ + sum( + 1 + for gene_1, gene_2 + in chromosome_1, chromosome_2 + if gene_1 == gene_2 + ) + + # Getter and setters for all required varibles @property