BenchmarkExperiment

constructor(name: String, problems: List<ProblemCase>, solverCases: List<SolverCase>, macroReplications: Int, replicationBudgetPerRun: Int, confirmation: ConfirmationOptions? = ConfirmationOptions(), captureIterationTraces: Boolean = false, verificationReplications: Int? = null, numWorkers: Int? = null, experimentStreamProvider: RNStreamProviderIfc = RNStreamProvider(), cellSolverDecorator: (solver: Solver, problemName: String, solverLabel: String, repNum: Int) -> Unit? = null)(source)

Parameters

name

the experiment's name; flows into every run record

problems

the problem cases; names must be unique

solverCases

the solver configurations; labels must be unique

macroReplications

the number of macro-replications per (problem, solver) pair

replicationBudgetPerRun

the per-cell replication budget

confirmation

confirmation-stage options; null disables confirmation

captureIterationTraces

when true, every cell solver's per-iteration progress (iteration, cumulative replications, best penalized objective) is captured into the summary's traces, keyed by cell label — opt-in because traces grow with the budget

verificationReplications

when non-null, each problem's winning point is re-simulated at this replication count on a dedicated evaluator and recorded — the classic verify-at-elevated-replications step

numWorkers

the maximum number of cells running at the same time; null uses the smaller of the cell count and the available processors

experimentStreamProvider

the stream provider for experiment-level draws (currently: the common starting points); defaults to a fresh provider so identically configured experiments reproduce each other exactly

cellSolverDecorator

invoked with each freshly created cell solver before it runs, on the cell's worker thread — the attachment hook for per-cell trackers and instrumentation; anything it touches must be safe to use from worker threads