Solver Spec
Serializable selection of a simulation-optimization solver and its algorithm-specific parameters.
Each sealed variant captures the constructor parameters that are plain data; non-serializable arguments to the live solver constructors (evaluator, stream provider, problem definition, equality checkers, functional sampler/elite-size hooks) are supplied by OptimizationSolverFactory and are not part of the persisted document.
Sealed-class polymorphic serialization is used: the JSON/TOML output carries a "type" discriminator with values "stochasticHillClimbing", "simulatedAnnealing", "crossEntropy", or "rSpline".
Random-restart is not a separate sealed variant. Any algorithm can be wrapped by setting randomRestart on its variant; setting it to null (the default) disables the wrapper. This keeps the sealed hierarchy focused on algorithm choice and lets every algorithm be wrapped uniformly.
Inheritors
Types
Cross-Entropy. Mirrors ksl.simopt.solvers.algorithms.CrossEntropySolver.
R-SPLINE. Mirrors ksl.simopt.solvers.algorithms.RSplineSolver.
Simulated Annealing. Mirrors ksl.simopt.solvers.algorithms.SimulatedAnnealing.
Stochastic Hill Climbing. Mirrors ksl.simopt.solvers.algorithms.StochasticHillClimber.
Properties
Maximum number of main-loop iterations the solver is permitted to run; must be positive when validated.
Optional random-restart wrapper. When non-null the solver factory wraps the chosen algorithm in a ksl.simopt.solvers.algorithms.RandomRestartSolver.
Optional starting point for the search, keyed by decision-variable name. When null, the solver chooses its own starting point.