Skip to content

Commit

Permalink
Make case destinction in determine_permissible_value functions more r…
Browse files Browse the repository at this point in the history
…eadable
  • Loading branch information
Henrik Mettler committed Jul 14, 2020
1 parent 717bcd5 commit 47f99b8
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions cgp/genome.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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

Expand Down

0 comments on commit 47f99b8

Please sign in to comment.