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