What is uniform crossover in genetic algorithm crossover operation?

  • Context: Comp Sci 
  • Thread starter Thread starter shivajikobardan
  • Start date Start date
  • Tags Tags
    Algorithm Uniform
Click For Summary
SUMMARY

Uniform crossover in genetic algorithms is a method where each gene in the offspring is chosen randomly from one of the two parent genomes with equal probability. The pseudocode provided demonstrates that for each gene index, a random number generator (rng) is utilized to determine the source of the gene, ensuring a 50% chance of selecting from either parent. This approach contrasts with single-point and double-point crossover methods, which select segments of genomes rather than individual genes. The randomness in this process is achieved through a pseudorandom number generator, ensuring reproducibility in genetic algorithm simulations.

PREREQUISITES
  • Understanding of genetic algorithms and their operations
  • Familiarity with pseudorandom number generators (PRNG)
  • Knowledge of genome representation in genetic algorithms
  • Experience with basic programming concepts, particularly loops and conditionals
NEXT STEPS
  • Research the implementation of pseudorandom number generators in Python
  • Explore variations of crossover techniques in genetic algorithms, such as single-point and double-point crossover
  • Learn about the impact of crossover rates on genetic algorithm performance
  • Investigate the role of mutation in conjunction with crossover in genetic algorithms
USEFUL FOR

Researchers, data scientists, and software engineers interested in optimizing genetic algorithms and understanding crossover techniques in evolutionary computation.

shivajikobardan
Messages
637
Reaction score
54
Homework Statement
genetic algorithm
Relevant Equations
none
1644313134345.png

https://slidetodoc.com/genetic-algorithms-an-example-genetic-algorithm-procedure-ga/
slide is taken from here. is this done total randomly or is it done pseudorandomly. I mean is there some forumula for randomness used in this case?

i learned about single point and double point crossover but confused in this stuff.
 
Physics news on Phys.org
I don't think there is anything unclear here, but just to confirm the procedure is:

[code title=pseudocode]
for geneIndex in (0, genomeLength - 1):
if (random() < 0.5):
offspring1genome[geneIndex] = parent1genome[geneIndex]
offspring2genome[geneIndex] = parent2genome[geneIndex]
else:
offspring1genome[geneIndex] = parent2genome[geneIndex]
offspring2genome[geneIndex] = parent1genome[geneIndex]
[/code]

where random() is a (p)rng in [0, 1).
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
7K
  • · Replies 2 ·
Replies
2
Views
5K
Replies
29
Views
5K
  • · Replies 7 ·
Replies
7
Views
3K
  • · Replies 7 ·
Replies
7
Views
4K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 152 ·
6
Replies
152
Views
11K
  • · Replies 1 ·
Replies
1
Views
3K