Package-level declarations

Types

Link copied to clipboard
class CENormalSampler(val problemDefinition: ProblemDefinition, meanSmoother: Double = defaultMeanSmoother, sdSmoother: Double = defaultStdDevSmoother, coefficientOfVariationThreshold: Double = defaultCoefficientOfVariationThreshold, streamNum: Int = 0, val streamProvider: RNStreamProviderIfc = KSLRandom.DefaultRNStreamProvider) : CESamplerIfc
Link copied to clipboard

An interface to define the sampling mechanism used within the Cross-Entropy method. Implementors of this interface are responsible for generating samples from the cross-entropy "distribution", updating the parameters based on observations of the elite samples, and determining if the sampling distribution has degenerated (converged).

Link copied to clipboard
abstract class CoolingSchedule(initialTemperature: Double) : CoolingScheduleIfc

Abstract base class for defining cooling schedules in optimization algorithms like simulated annealing. A cooling schedule manages the temperature reduction process as the algorithm iterates.

Link copied to clipboard

Defines the interface for a cooling schedule used in optimization algorithms such as simulated annealing. A cooling schedule is responsible for managing the temperature reduction process as the algorithm iterates.

Link copied to clipboard
class CrossEntropySolver @JvmOverloads constructor(evaluator: EvaluatorIfc, val ceSampler: CESamplerIfc, maxIterations: Int = ceDefaultMaxIterations, replicationsPerEvaluation: ReplicationPerEvaluationIfc, name: String? = null) : StochasticSolver

Constructs an instance of CrossEntropySolver with specified parameters.

Link copied to clipboard
fun interface EliteSizeIfc

If supplied, this function will be used to determine the size of the elite sample during the cross-entropy process. Supplying a function can permit dynamic changes when determining the elite sample.

Link copied to clipboard
class ExponentialCoolingSchedule(initialTemperature: Double, val coolingRate: Double = defaultCoolingRate) : CoolingSchedule

Represents a cooling schedule where the temperature decreases exponentially at each iteration according to a specified cooling rate.

Link copied to clipboard
class LinearCoolingSchedule(initialTemperature: Double = defaultInitialTemperature, val stoppingTemperature: Double = defaultStoppingTemperature, val maxIterations: Int = defaultMaxNumberIterations) : CoolingSchedule

Represents a linear cooling schedule used in optimization algorithms like simulated annealing. The temperature decreases linearly with each iteration based on the specified parameters.

Link copied to clipboard

Implements a logarithmic cooling schedule for optimization algorithms such as simulated annealing. The temperature decreases proportionally to the inverse of the natural logarithm of the iteration number.

Link copied to clipboard
fun interface SampleSizeFnIfc

If supplied, this function will be used to determine the size of the cross-entropy sample during the cross-entropy process. Supplying a function can permit dynamic changes when determining the size of the cross-entropy sample (population).

Link copied to clipboard
class SimulatedAnnealing @JvmOverloads constructor(evaluator: EvaluatorIfc, initialTemperature: Double = defaultInitialTemperature, var coolingSchedule: CoolingScheduleIfc = ExponentialCoolingSchedule(initialTemperature), stoppingTemperature: Double = defaultStoppingTemperature, maxIterations: Int = defaultMaxNumberIterations, replicationsPerEvaluation: ReplicationPerEvaluationIfc, streamNum: Int = 0, streamProvider: RNStreamProviderIfc = KSLRandom.DefaultRNStreamProvider, name: String? = null) : StochasticSolver

A class that implements the simulated annealing optimization algorithm for solving stochastic or deterministic problems. Simulated annealing is an iterative optimization method inspired by the physical process of annealing in metallurgy. It uses a probabilistic approach to escape local optima by accepting worse solutions with a certain probability, which decreases over time according to a cooling schedule.

Link copied to clipboard
open class StochasticHillClimber @JvmOverloads constructor(evaluator: EvaluatorIfc, maxIterations: Int = defaultMaxNumberIterations, replicationsPerEvaluation: ReplicationPerEvaluationIfc, streamNum: Int = 0, streamProvider: RNStreamProviderIfc = KSLRandom.DefaultRNStreamProvider, name: String? = null) : StochasticSolver

A class that implements the Stochastic Hill Climbing optimization algorithm. This algorithm searches for an optimal solution by iteratively evaluating and moving to neighborhood solutions, as determined by the evaluator and the problem definition. It uses a stochastic approach to explore the solution space by leveraging a random number stream.

Link copied to clipboard
abstract class StochasticSolver(evaluator: EvaluatorIfc, maxIterations: Int, replicationsPerEvaluation: ReplicationPerEvaluationIfc, streamNum: Int = 0, val streamProvider: RNStreamProviderIfc = KSLRandom.DefaultRNStreamProvider, name: String? = null) : Solver, RNStreamControlIfc

Represents an abstract base class for stochastic solvers. This class provides foundational functionality for solvers that utilize randomness during their optimization process.