FeasibilityFirstComparator

class FeasibilityFirstComparator(val overallCILevel: Double = 0.99) : Comparator<Solution> (source)

A clock-independent, feasibility-first ordering used to select the recommended solution — distinct from the penalized-objective ordering (Solution.compareTo) used to guide the search within an iteration.

Solutions are ordered by, in priority:

  1. validity — a valid solution ranks ahead of an invalid one;

  2. statistical response-constraint feasibility — a solution we are confident is feasible (see Solution.isResponseConstraintFeasible) ranks ahead of one we are not;

  3. among feasible solutions, the smaller (orientation-adjusted) estimated objective (Solution.estimatedObjFncValue);

  4. among non-feasible solutions, the smaller total response-constraint violation (Solution.responseConstraintViolationPenalty).

Because it never uses the penalized objective — whose growing multiplier is iteration-relative — the ordering is consistent across solutions discovered at different iterations. This is why it is the right key for cross-iteration selection (the reported best, the best-solution archive), whereas the penalized objective is the right key for within-iteration search ranking.

Parameters

overallCILevel

the overall confidence used for the feasibility test across all response constraints. Must be in (0, 1). Default 0.99.

Constructors

Link copied to clipboard
constructor(overallCILevel: Double = 0.99)

Properties

Link copied to clipboard

Functions

Link copied to clipboard
open override fun compare(a: Solution, b: Solution): Int