confirm Best
Ranks the candidates feasibility-first, takes the top candidates per the options, re-evaluates their distinct input points in one CRN request (no caching), and returns the winner by the same rule applied to the confirmed estimates.
Invalid candidates (failed members) are excluded from ranking when at least one valid candidate exists. When the finalists collapse to a single distinct input point, no evaluation is performed and the best candidate is returned as-is.
Selection uses ksl.simopt.evaluator.FeasibilityFirstComparator, the same rule Solver.bestSolution uses to choose what a solver recommends, so the benchmark and the solvers agree about what "best" means. It is clock-independent, which is what cross-member, cross-iteration selection requires; the penalized objective is a within-iteration search key and is deliberately not used here.
The confirmed solutions still carry the search's penalty state rather than the confirmation evaluator's, so any penalized value a caller records remains meaningful.
Parameters
the candidate solutions (typically the member bests), not empty
the evaluator used for the confirmation request
the problem the candidates belong to
the confirmation configuration