Binary Pruning Crossover
BinaryPruningCrossover — logical pruning crossover operator for binary masks.
Given two parent topic masks (true
= topic selected), produces two children:
Selective child:
bit = ParentA AND ParentB
(intersection of selected topics).Inclusive child:
bit = ParentA OR ParentB
(union of selected topics).
Behavior:
Each child has exactly
N
bits, whereN = totalNumberOfBits()
.If a child mask is all-false, one random bit is flipped to
true
to ensure feasibility.Operates in place on BestSubsetSolution copies.
Robustness:
jMetal may pass DefaultBinarySolution instances. This operator lifts them into BestSubsetSolution objects (bitset and objectives copied, labels synthesized).
Determinism:
All randomness goes through jMetal’s JMetalRandom singleton for reproducibility.
Complexity:
O(N) bitwise operations per crossover.
Parameters
Per-pair crossover probability. If the random draw is >= probability
, no crossover is performed and the children are normalized clones of the parents.
Functions
jMetal 6.x operator API: returns the configured crossover probability.
Executes the pruning crossover on the given parents.
Always generates 2 children.
Always requires 2 parents.