Parent-centric crossover (PCX)#
parent_centric_crossover() creates an offspring around each
target, from two more parents chosen at random. pymoo (PCX) and
DESDEO (ParentCentricCrossover) provide the same operator. pymoo
replaces values outside the bounds by random values, while moocore and
DESDEO clip them.
KS test results#
moocore |
pymoo |
desdeo |
|
|---|---|---|---|
moocore |
0.233 |
0.736 |
|
pymoo |
0.233 |
0.343 |
|
desdeo |
0.736 |
0.343 |
All implementations produce the same distribution of offspring.
Performance over number of parents#
moocore is the fastest for every number of parents. With 10 000 parents, it takes 4.0 ms, while DESDEO and pymoo take 3.7 and 12 times as long.
Performance over number of variables#
moocore is the fastest for every number of variables. With 1000 variables, pymoo and DESDEO take 2.1 and 3.8 times as long.