CleanUpProcedure

class CleanUpProcedure(val problemDefinition: ProblemDefinition, var deltaC: Double, var oneMinusAlphaC: Double = DEFAULT_CONFIDENCE, var maxReplicationsPerSystem: Int = DEFAULT_MAX_REPLICATIONS_PER_SYSTEM, var feasibilityCILevel: Double = DEFAULT_FEASIBILITY_CI_LEVEL)(source)

The ISC clean-up (ranking & selection) phase. After the global and local phases produce a set of candidate local optima, clean-up (1) screens them with a subset-selection rule, (2) selects the best survivor — with a correct-selection guarantee when an indifference zone is supplied — and (3) reports a confidence interval for the chosen system's objective.

Indifference zone δ_C (graceful degradation). ISC places δ_C in the denominator of the Rinott sample-size formula, so δ_C = 0 cannot drive an indifference-zone selection. Following the ISC degraded-mode convention:

  • deltaC > 0 — full ISC. select runs the Rinott two-stage indifference-zone procedure (N_C = ⌈(h·S/δ_C)²⌉, floored at the first-stage size) and estimate reports ḡ(x_B) ± δ_C with the correct-selection guarantee.

  • deltaC = 0 — degraded. select takes no additional samples and returns the screened sample-best (no correct-selection guarantee), and estimate returns an ordinary Student-t confidence interval on the chosen system's mean. The IZ guarantees are intentionally dropped; a positive δ_C is required to obtain them.

Why this is computed from summary statistics (not MultipleComparisonAnalyzer). A Solution carries only summary statistics (average, variance, replication count), not the raw per-replication observations that MultipleComparisonAnalyzer requires (it needs equal-length raw arrays to form paired differences). Rather than retain raw replications — which would require changing Solution or EstimatedResponse outside this package — the subset-selection screen and the intervals are computed in-package from the public summary statistics using the same Nelson et al. (2001) formulation (independent-sampling standard error of the difference). The Rinott constant itself is reused from Rinott.

Runaway safety valve (maxReplicationsPerSystem). The Rinott second-stage size grows as (h·S/δ_C)², so a survivor with high objective variance relative to a small δ_C can demand an enormous number of replications (millions for a noisy problem with a tight indifference zone). To keep a single clean-up phase bounded, the per-survivor second-stage size is capped at maxReplicationsPerSystem. When the cap binds, clean-up samples the survivor up to the cap and proceeds — the correct-selection guarantee then holds only in a best-effort sense (the indifference zone effectively achieved is larger than the requested δ_C). A warning is logged whenever the cap binds. Raise the cap (or δ_C) to restore the exact guarantee.

Parameters

problemDefinition

the problem whose objective is being screened

deltaC

the clean-up indifference zone δ_C; must be >= 0 (0.0 selects degraded mode)

oneMinusAlphaC

the target confidence/correct-selection level; must be in (0,1)

maxReplicationsPerSystem

the cap on the Rinott second-stage sample size per survivor; must be

= 1. Defaults to DEFAULT_MAX_REPLICATIONS_PER_SYSTEM. Bounds clean-up cost when the variance-to- indifference-zone ratio is large; the guarantee is best-effort once the cap binds.

feasibilityCILevel

the overall confidence level for the statistical response-feasibility test used by cleanUp to hard-filter candidates before ranking & selection; must be in (0,1). Defaults to DEFAULT_FEASIBILITY_CI_LEVEL.

Constructors

Link copied to clipboard
constructor(problemDefinition: ProblemDefinition, deltaC: Double, oneMinusAlphaC: Double = DEFAULT_CONFIDENCE, maxReplicationsPerSystem: Int = DEFAULT_MAX_REPLICATIONS_PER_SYSTEM, feasibilityCILevel: Double = DEFAULT_FEASIBILITY_CI_LEVEL)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

True when the procedure runs with full indifference-zone guarantees (deltaC > 0).

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard
fun cleanUp(candidates: List<Solution>, sampleMore: (InputMap, Int) -> Solution): CleanUpResult

Runs the full clean-up on the supplied candidate local optima and reports the selected best and its confidence interval.

Link copied to clipboard

The reported confidence interval for the selected best system's objective. With deltaC > 0 this is the indifference-zone interval ḡ(x_B) ± δ_C (the correct-selection precision target). With deltaC == 0 it is an ordinary two-sided Student-t confidence interval on the mean at level oneMinusAlphaC.

Link copied to clipboard
fun screen(candidates: List<Solution>): List<Solution>

Subset-selection screen for the minimum (Nelson et al. 2001): returns the candidates that could plausibly be the best at confidence oneMinusAlphaC. A candidate i is retained when its mean is no larger than ḡ_j + t · SE(i,j) for every other candidate j, where SE(i,j) is the independent-sampling standard error of the difference. Valid at any δ_C (screening does not use the indifference zone). With one or zero candidates the input is returned unchanged.

Link copied to clipboard
fun select(survivors: List<Solution>, sampleMore: (InputMap, Int) -> Solution): Solution

Selects the best survivor. With deltaC > 0 runs the Rinott two-stage indifference-zone procedure: each survivor is sampled up to N_i = max(n0, ⌈(h·S_i/δ_C)²⌉) replications (with n0 the smallest current replication count among the survivors and h the Rinott constant), then the smallest second-stage sample mean is selected. The per-survivor second-stage size is clamped to maxReplicationsPerSystem; when the clamp binds the procedure logs a warning and the correct-selection guarantee becomes best-effort. With deltaC == 0 (degraded) no extra sampling is done and the survivor with the smallest mean is returned.