From 47f99b80380fd16eda64f8f951ce391bd42fed7b Mon Sep 17 00:00:00 2001 From: Henrik Mettler Date: Mon, 13 Jul 2020 14:54:37 +0200 Subject: [PATCH] Make case destinction in determine_permissible_value functions more readable --- cgp/genome.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/cgp/genome.py b/cgp/genome.py index dc6d5a76..631045be 100644 --- a/cgp/genome.py +++ b/cgp/genome.py @@ -379,7 +379,7 @@ def mutate(self, mutation_rate: float, rng: np.random.RandomState): region_idx = gene_idx // self._length_per_region permissible_values = self._determine_permissible_values(gene_idx, gene, region_idx) - if not len(permissible_values) == 0: + if len(permissible_values) > 0: dna[gene_idx] = rng.choice(permissible_values) silent = region_idx not in active_regions @@ -399,19 +399,23 @@ def _determine_permissible_values( elif self._is_hidden_region(region_idx): return self._determine_permissible_values_hidden(gene_idx, gene, region_idx) - else: - assert self._is_output_region(region_idx) + elif self._is_output_region(region_idx): return self._determine_permissible_values_output(gene_idx, gene) + else: + assert False # should never be reached + def _determine_permissible_values_hidden( self, gene_idx: int, gene: int, region_idx: int ) -> List[int]: if self._is_function_gene(gene_idx): permissible_values = list(np.arange(len(self._primitives._primitives))) - else: - assert self._is_hidden_input_gene(gene_idx, region_idx) + elif self._is_hidden_input_gene(gene_idx, region_idx): permissible_values = self._permissible_inputs(region_idx) + + else: + assert False permissible_values.remove(gene) return permissible_values