Python | Single Point Crossover in Genetic Algorithm

Python | Single Point Crossover in Genetic Algorithm

In genetic algorithms, a crossover operation is employed to combine the genetic information from two parents to produce one or more offspring. Single Point Crossover is one of the simplest forms of crossover where a random crossover point is selected and the tails of its two parents are swapped to get a new offspring.

Here's a demonstration of Single Point Crossover in Genetic Algorithm using Python:

import random

def single_point_crossover(parent1, parent2):
    """Perform single point crossover."""
    # Select a random crossover point
    crossover_point = random.randint(1, len(parent1)-1)
    
    # Create offspring by combining the genes of parents
    offspring1 = parent1[:crossover_point] + parent2[crossover_point:]
    offspring2 = parent2[:crossover_point] + parent1[crossover_point:]
    
    return offspring1, offspring2

# Example usage:
parent1 = [1, 0, 1, 1, 0, 1]
parent2 = [0, 1, 0, 0, 1, 0]

offspring_a, offspring_b = single_point_crossover(parent1, parent2)
print("Parent 1    :", parent1)
print("Parent 2    :", parent2)
print("Offspring 1 :", offspring_a)
print("Offspring 2 :", offspring_b)

This script will produce different offspring each time it's run due to the random selection of the crossover point.

Note: The parents in this example are represented as lists of binary numbers (0s and 1s). You can adapt this logic to other representations as needed.


More Tags

sql-returning swift3 adminer firebase-authentication sendgrid-api-v3 latitude-longitude cart apache-commons intentservice

More Programming Guides

Other Guides

More Programming Examples