From 62ecfc38fa0f03653f621827e5b0266d72c65bf0 Mon Sep 17 00:00:00 2001 From: SimpleArt <71458112+SimpleArt@users.noreply.github.com> Date: Tue, 1 Dec 2020 10:38:12 -0500 Subject: [PATCH] Update crossover_methods.py --- src/crossover/crossover_methods.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/crossover/crossover_methods.py b/src/crossover/crossover_methods.py index b7de96f..7822d52 100644 --- a/src/crossover/crossover_methods.py +++ b/src/crossover/crossover_methods.py @@ -90,11 +90,14 @@ class Crossover_Methods: N = min(len(parent_1), len(parent_2)) + # Equally weighted indexes if weight == 0.5: swap_index = random.randrange(N) + + # Use weighted random index. else: weights = [ - weight*n + (1-weight)*(N-n) + weight*(n+1) + (1-weight)*(N-n) for n in range(N) ] @@ -114,7 +117,7 @@ class Crossover_Methods: """Cross two parents by swapping all genes randomly.""" for gene_pair in zip(parent_1, parent_2): - yield random.choice(gene_pair, [weight, 1-weight]) + yield random.choice(gene_pair, cum_weights = [weight, 1]) class Arithmetic: