Skip to content
Related Articles

Related Articles

Python | Single Point Crossover in Genetic Algorithm
  • Difficulty Level : Expert
  • Last Updated : 13 Oct, 2019

Single Point Crossover in Genetic Algorithm is a form of crossover in which two-parent chromosome are selected and a random/given point is selected and the genes/data are interchanged between them after the given/selected point for example

Examples:

P1: 000011110011 
P2: 101010101010

Point: 4
After Crossover:
C1: 000010101010
C2: 101011110011

The problem is to select a random point for the crossover of two given parents and generate at least five generations of children from the given pair of a chromosome.

Code : Python program for single-point crossover in Genetic Algorithm




# library to generate a random number
import random
  
# function for implementing the single-point crossover
def crossover(l, q):
  
# converting the string to list for performing the crossover
    l = list(l)
    q = list(q)
  
# generating the random number to perform crossover
    k = random.randint(0, 15)
    print("Crossover point :", k)
  
# interchanging the genes
    for i in range(k, len(s)):
        l[i], q[i] = q[i], l[i]
    l = ''.join(l)
    q = ''.join(q)
    print(l)
    print(q, "\n\n")
    return l, q
  
  
# patent chromosomes:
  
s = '1100110110110011'
p = '1000110011011111'
print("Parents")
print("P1 :", s)
print("P2 :", p, "\n")
  
# function calling and storing the off springs for 
# next generation crossover
for i in range(5):
    print("Generation ", i+1, "Childrens :")
    s, p = crossover(s, p)
Output:
Parents
P1 : 1100110110110011
P2 : 1000110011011111 

Generation  1 Childrens :
Crossover point : 2
1100110011011111
1000110110110011 


Generation  2 Childrens :
Crossover point : 7
1100110110110011
1000110011011111 


Generation  3 Childrens :
Crossover point : 0
1000110011011111
1100110110110011 


Generation  4 Childrens :
Crossover point : 7
1000110110110011
1100110011011111 


Generation  5 Childrens :
Crossover point : 2
1000110011011111
1100110110110011

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course




My Personal Notes arrow_drop_up
Recommended Articles
Page :