Skip to content

Commit c921595

Browse files
Implement 75% disabled rule from the original NEAT paper.
1 parent 6427a3a commit c921595

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

neat/genes.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,14 @@ def crossover(self, gene2):
7676
setattr(new_gene, a.name, getattr(self, a.name))
7777
else:
7878
setattr(new_gene, a.name, getattr(gene2, a.name))
79+
80+
# Implement the 75% disable rule from the NEAT paper:
81+
# If either parent has a disabled gene, there is a 75% chance
82+
# the offspring gene will be disabled.
83+
if hasattr(new_gene, 'enabled'):
84+
if not self.enabled or not gene2.enabled:
85+
if random() < 0.75:
86+
new_gene.enabled = False
7987

8088
return new_gene
8189

0 commit comments

Comments
 (0)