Skip to content

Commit 685e8d8

Browse files
ad71norvig
authored andcommitted
added function to implement uniform crossover (aimacode#704)
1 parent cf23e5c commit 685e8d8

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

search.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -860,6 +860,19 @@ def recombine(x, y):
860860
return x[:c] + y[c:]
861861

862862

863+
def recombine_uniform(x, y):
864+
n = len(x)
865+
result = [0] * n;
866+
indexes = random.sample(range(n), n)
867+
for i in range(n):
868+
ix = indexes[i]
869+
result[ix] = x[ix] if i < n / 2 else y[ix]
870+
try:
871+
return ''.join(result)
872+
except:
873+
return result
874+
875+
863876
def mutate(x, gene_pool, pmut):
864877
if random.uniform(0, 1) >= pmut:
865878
return x

0 commit comments

Comments
 (0)