solve
fun solve(parameters: Parameters, out: SendChannel<ProgressEvent>? = null): Triple<List<BinarySolution>, List<BinarySolution>, Triple<String, String, Long>>
Run the experiment (AVERAGE | BEST | WORST) and stream progress events to consumers.
AVERAGE: per-K repetition sampling; streams one CardinalityResult per K.
BEST/WORST: NSGA-II streaming; streams CardinalityResult on per-K improvement, plus TopKReplaceBatch blocks; ends with RunCompleted.
Return
Triple(emptyList, emptyList, signature) — lists are empty to avoid retaining populations.
Parameters
parameters
Execution parameters (dataset name, target, counts, etc.).
out
Optional channel to receive ProgressEvents in order (back-pressured).
Throws
Parse Exception
if population size is invalid for BEST/WORST.