feat(selection): add random and single-objective tournament selection

`select_random` samples `count` decisions with replacement and clones
them out of the population (spec §10.1).

`tournament_select_single_objective` runs binary-or-larger tournaments
with the spec's tiebreak order: feasible beats infeasible, lower
violation among infeasibles, and direction-correct objective comparison
among feasibles. Panics if not exactly one objective (spec §10.2).

Selection helpers stay under `heuropt::selection` and are not part of
the prelude (spec §15).
This commit is contained in:
2026-05-04 19:22:43 -06:00
parent 0cbef6be1b
commit 4882e1865d
4 changed files with 205 additions and 0 deletions
+1
View File
@@ -6,4 +6,5 @@ pub mod core;
pub mod operators;
pub mod pareto;
pub mod prelude;
pub mod selection;
pub mod traits;