Combine two layouts of n unique grid-cell IDs. Shared sites
are kept; remaining sites are sampled from the parents' exclusive cells
and, with rate p_inject, from grid cells that neither parent uses.
Identical parents still get unused cells injected so the search does not
freeze. Every child has exactly n turbines.
Integer matrix with n rows (turbines) and one column per parent
grid_ids
All valid grid cell IDs
uplimit
Maximum number of children. Default is 300
seed
Set a seed for comparability. Default is NULL
verbose
If TRUE, print the number of children
p_inject
Fraction of non-shared slots filled from unused grid cells.
Default is getOption("windfarmGA.crossover_inject") (0.25). At least one
unused cell is injected when any are available.
grid_xy
Optional matrix/data.frame with columns ID, X, Y. If
given, a spatial half-plane crossover is used with probability
p_spatial.
visit
Named visit counts per grid ID (undersampled cells preferred)
p_spatial
Probability of spatial (vs set) crossover when grid_xy
is given. Default is getOption("windfarmGA.spatial_crossover") (0.5)