Companion

Properties

Link copied to clipboard

Represents the default number of replications to be performed during an evaluation.

Link copied to clipboard

Many algorithms compare solutions. This factor serves as the default precision between two solutions such that if the solutions are within this value they are considered equal. The default is 0.001

Link copied to clipboard
val logger: KLogger

Logger instance used for logging messages. Utilizes the KotlinLogging framework to facilitate structured and leveled logging.

Functions

Link copied to clipboard
fun createBayesianOptimizationSolver(problemDefinition: ProblemDefinition, modelBuilder: ModelBuilderIfc, initialDesignSize: Int = BayesianOptimizationSolver.defaultInitialDesignSize, acquisition: AcquisitionFunctionIfc = ExpectedImprovement(), startingPoint: MutableMap<String, Double>? = null, maxIterations: Int = BayesianOptimizationSolver.boDefaultMaxIterations, replicationsPerEvaluation: Int = defaultReplicationsPerEvaluation, solutionCache: SolutionCacheIfc = MemorySolutionCache(), simulationRunCache: SimulationRunCacheIfc? = null, experimentRunParameters: ExperimentRunParametersIfc? = null, streamNum: Int = 0, streamProvider: RNStreamProviderIfc = RNStreamProvider(), name: String? = null, parallelOptions: ParallelEvaluationOptions = ParallelEvaluationOptions()): BayesianOptimizationSolver

Creates and configures a Bayesian optimization (BO) solver for a given problem definition.

Link copied to clipboard
fun createCrossEntropySolver(problemDefinition: ProblemDefinition, modelBuilder: ModelBuilderIfc, ceSampler: CESampler? = null, startingPoint: MutableMap<String, Double>? = null, maxIterations: Int = CrossEntropySolver.ceDefaultMaxIterations, replicationsPerEvaluation: Int = defaultReplicationsPerEvaluation, solutionCache: SolutionCacheIfc = MemorySolutionCache(), simulationRunCache: SimulationRunCacheIfc? = null, experimentRunParameters: ExperimentRunParametersIfc? = null, streamNum: Int = 0, streamProvider: RNStreamProviderIfc = RNStreamProvider(), name: String? = null, parallelOptions: ParallelEvaluationOptions = ParallelEvaluationOptions()): CrossEntropySolver

Creates and configures a cross-entropy optimization algorithm for a given problem definition.

Link copied to clipboard
fun createGeneticAlgorithmSolver(problemDefinition: ProblemDefinition, modelBuilder: ModelBuilderIfc, populationSize: Int = GeneticAlgorithmSolver.defaultPopulationSize, selectionOperator: SelectionOperatorIfc = TournamentSelection(), crossoverOperator: CrossoverOperatorIfc = BlendCrossover(), mutationOperator: MutationOperatorIfc? = null, startingPoint: MutableMap<String, Double>? = null, maxIterations: Int = GeneticAlgorithmSolver.gaDefaultMaxIterations, replicationsPerEvaluation: Int = defaultReplicationsPerEvaluation, solutionCache: SolutionCacheIfc = MemorySolutionCache(), simulationRunCache: SimulationRunCacheIfc? = null, experimentRunParameters: ExperimentRunParametersIfc? = null, streamNum: Int = 0, streamProvider: RNStreamProviderIfc = RNStreamProvider(), name: String? = null, parallelOptions: ParallelEvaluationOptions = ParallelEvaluationOptions()): GeneticAlgorithmSolver

Creates and configures a genetic algorithm solver for a given problem definition.

Link copied to clipboard
fun createISCSolver(problemDefinition: ProblemDefinition, modelBuilder: ModelBuilderIfc, deltaC: Double = problemDefinition.indifferenceZoneParameter, deltaL: Double = deltaC, skipGlobalPhase: Boolean = false, globalBudget: Int? = null, startingPoint: MutableMap<String, Double>? = null, maxIterations: Int = ISCSolver.iscDefaultMaxIterations, replicationsPerEvaluation: Int = defaultReplicationsPerEvaluation, solutionCache: SolutionCacheIfc = MemorySolutionCache(), simulationRunCache: SimulationRunCacheIfc? = null, experimentRunParameters: ExperimentRunParametersIfc? = null, streamNum: Int = 0, streamProvider: RNStreamProviderIfc = RNStreamProvider(), name: String? = null, parallelOptions: ParallelEvaluationOptions = ParallelEvaluationOptions()): ISCSolver

Creates and configures an Industrial Strength COMPASS (ISC) solver for a given problem definition. ISC is a three-phase discrete-optimization-via-simulation method: a global Niching-GA exploration phase, a local COMPASS phase per niche, and a clean-up ranking-and-selection phase.

Link copied to clipboard
fun createParticleSwarmSolver(problemDefinition: ProblemDefinition, modelBuilder: ModelBuilderIfc, swarmSize: Int = ParticleSwarmSolver.defaultSwarmSize, inertiaSchedule: InertiaWeightScheduleIfc? = null, cognitiveCoefficient: Double = ParticleSwarmSolver.defaultCognitiveCoefficient, socialCoefficient: Double = ParticleSwarmSolver.defaultSocialCoefficient, boundaryHandler: BoundaryHandlerIfc = ClampToBounds(), startingPoint: MutableMap<String, Double>? = null, maxIterations: Int = ParticleSwarmSolver.psoDefaultMaxIterations, replicationsPerEvaluation: Int = defaultReplicationsPerEvaluation, solutionCache: SolutionCacheIfc = MemorySolutionCache(), simulationRunCache: SimulationRunCacheIfc? = null, experimentRunParameters: ExperimentRunParametersIfc? = null, streamNum: Int = 0, streamProvider: RNStreamProviderIfc = RNStreamProvider(), name: String? = null, parallelOptions: ParallelEvaluationOptions = ParallelEvaluationOptions(enabled = true)): ParticleSwarmSolver

Creates and configures a global-best particle swarm optimization (PSO) solver for a given problem definition.

fun createRandomRestartBayesianOptimizationSolver(problemDefinition: ProblemDefinition, modelBuilder: ModelBuilderIfc, maxNumRestarts: Int = defaultMaxRestarts, startingPoint: MutableMap<String, Double>? = null, initialDesignSize: Int = BayesianOptimizationSolver.defaultInitialDesignSize, acquisition: AcquisitionFunctionIfc = ExpectedImprovement(), maxIterations: Int = BayesianOptimizationSolver.boDefaultMaxIterations, replicationsPerEvaluation: Int = defaultReplicationsPerEvaluation, solutionCache: SolutionCacheIfc = MemorySolutionCache(), simulationRunCache: SimulationRunCacheIfc? = null, experimentRunParameters: ExperimentRunParametersIfc? = null, streamNum: Int = 0, streamProvider: RNStreamProviderIfc = RNStreamProvider(), name: String? = null, parallelOptions: ParallelEvaluationOptions = ParallelEvaluationOptions()): RandomRestartSolver

Creates and configures a Bayesian optimization solver for a given problem definition that uses a random restart approach.

Link copied to clipboard
fun createRandomRestartCrossEntropySolver(problemDefinition: ProblemDefinition, modelBuilder: ModelBuilderIfc, maxNumRestarts: Int = defaultMaxRestarts, startingPoint: MutableMap<String, Double>? = null, ceSampler: CESampler? = null, maxIterations: Int = CrossEntropySolver.ceDefaultMaxIterations, replicationsPerEvaluation: Int = defaultReplicationsPerEvaluation, solutionCache: SolutionCacheIfc = MemorySolutionCache(), simulationRunCache: SimulationRunCacheIfc? = null, experimentRunParameters: ExperimentRunParametersIfc? = null, streamNum: Int = 0, streamProvider: RNStreamProviderIfc = RNStreamProvider(), name: String? = null, parallelOptions: ParallelEvaluationOptions = ParallelEvaluationOptions()): RandomRestartSolver

Creates and configures a cross-entropy optimization algorithm for a given problem definition that uses a random restart approach.

fun createRandomRestartGeneticAlgorithmSolver(problemDefinition: ProblemDefinition, modelBuilder: ModelBuilderIfc, maxNumRestarts: Int = defaultMaxRestarts, startingPoint: MutableMap<String, Double>? = null, populationSize: Int = GeneticAlgorithmSolver.defaultPopulationSize, selectionOperator: SelectionOperatorIfc = TournamentSelection(), crossoverOperator: CrossoverOperatorIfc = BlendCrossover(), mutationOperator: MutationOperatorIfc? = null, maxIterations: Int = GeneticAlgorithmSolver.gaDefaultMaxIterations, replicationsPerEvaluation: Int = defaultReplicationsPerEvaluation, solutionCache: SolutionCacheIfc = MemorySolutionCache(), simulationRunCache: SimulationRunCacheIfc? = null, experimentRunParameters: ExperimentRunParametersIfc? = null, streamNum: Int = 0, streamProvider: RNStreamProviderIfc = RNStreamProvider(), name: String? = null, parallelOptions: ParallelEvaluationOptions = ParallelEvaluationOptions()): RandomRestartSolver

Creates and configures a genetic algorithm solver for a given problem definition that uses a random restart approach.

Link copied to clipboard
fun createRandomRestartISCSolver(problemDefinition: ProblemDefinition, modelBuilder: ModelBuilderIfc, maxNumRestarts: Int = defaultMaxRestarts, deltaC: Double = problemDefinition.indifferenceZoneParameter, deltaL: Double = deltaC, skipGlobalPhase: Boolean = false, globalBudget: Int? = null, startingPoint: MutableMap<String, Double>? = null, maxIterations: Int = ISCSolver.iscDefaultMaxIterations, replicationsPerEvaluation: Int = defaultReplicationsPerEvaluation, solutionCache: SolutionCacheIfc = MemorySolutionCache(), simulationRunCache: SimulationRunCacheIfc? = null, experimentRunParameters: ExperimentRunParametersIfc? = null, streamNum: Int = 0, streamProvider: RNStreamProviderIfc = RNStreamProvider(), name: String? = null, parallelOptions: ParallelEvaluationOptions = ParallelEvaluationOptions()): RandomRestartSolver

Creates and configures an Industrial Strength COMPASS (ISC) solver that uses a random restart approach, mirroring the other algorithms' random-restart factories.

Link copied to clipboard
fun createRandomRestartParticleSwarmSolver(problemDefinition: ProblemDefinition, modelBuilder: ModelBuilderIfc, maxNumRestarts: Int = defaultMaxRestarts, startingPoint: MutableMap<String, Double>? = null, swarmSize: Int = ParticleSwarmSolver.defaultSwarmSize, inertiaSchedule: InertiaWeightScheduleIfc? = null, cognitiveCoefficient: Double = ParticleSwarmSolver.defaultCognitiveCoefficient, socialCoefficient: Double = ParticleSwarmSolver.defaultSocialCoefficient, boundaryHandler: BoundaryHandlerIfc = ClampToBounds(), maxIterations: Int = ParticleSwarmSolver.psoDefaultMaxIterations, replicationsPerEvaluation: Int = defaultReplicationsPerEvaluation, solutionCache: SolutionCacheIfc = MemorySolutionCache(), simulationRunCache: SimulationRunCacheIfc? = null, experimentRunParameters: ExperimentRunParametersIfc? = null, streamNum: Int = 0, streamProvider: RNStreamProviderIfc = RNStreamProvider(), name: String? = null, parallelOptions: ParallelEvaluationOptions = ParallelEvaluationOptions(enabled = true)): RandomRestartSolver

Creates and configures a global-best particle swarm optimization solver for a given problem definition that uses a random restart approach.

Link copied to clipboard
fun createRandomRestartRSplineSolver(problemDefinition: ProblemDefinition, modelBuilder: ModelBuilderIfc, maxNumRestarts: Int = defaultMaxRestarts, startingPoint: MutableMap<String, Double>? = null, initialNumReps: Int = defaultInitialSampleSize, sampleSizeGrowthRate: Double = defaultReplicationGrowthRate, maxNumReplications: Int = defaultMaxNumReplications, maxIterations: Int = RSplineSolver.rSplineDefaultMaxIterations, replicationsPerEvaluation: Int = defaultReplicationsPerEvaluation, solutionCache: SolutionCacheIfc = MemorySolutionCache(), simulationRunCache: SimulationRunCacheIfc? = null, experimentRunParameters: ExperimentRunParametersIfc? = null, streamNum: Int = 0, streamProvider: RNStreamProviderIfc = RNStreamProvider(), name: String? = null, parallelOptions: ParallelEvaluationOptions = ParallelEvaluationOptions()): RandomRestartSolver

Creates and configures an R-SPLINE optimization algorithm for a given problem definition that uses a random restart approach.

fun createRandomRestartSimulatedAnnealingSolver(problemDefinition: ProblemDefinition, modelBuilder: ModelBuilderIfc, maxNumRestarts: Int = defaultMaxRestarts, startingPoint: MutableMap<String, Double>? = null, temperatureConfiguration: TemperatureConfiguration = TemperatureConfiguration.AutoCalibrate(), coolingSchedule: CoolingScheduleIfc = ExponentialCoolingSchedule(defaultInitialTemperature), stoppingTemperature: Double = SimulatedAnnealing.defaultStoppingTemperature, maxIterations: Int = SimulatedAnnealing.saDefaultMaxIterations, replicationsPerEvaluation: Int = defaultReplicationsPerEvaluation, solutionCache: SolutionCacheIfc = MemorySolutionCache(), simulationRunCache: SimulationRunCacheIfc? = null, experimentRunParameters: ExperimentRunParametersIfc? = null, streamNum: Int = 0, streamProvider: RNStreamProviderIfc = RNStreamProvider(), name: String? = null, parallelOptions: ParallelEvaluationOptions = ParallelEvaluationOptions(), concurrentRestarts: Int = 1, concurrentOptions: ConcurrentRunOptions = ConcurrentRunOptions()): RandomRestartSolver

Creates a Random Restart solver that utilizes Simulated Annealing for its inner optimization phases.

fun createRandomRestartStochasticHillClimberSolver(problemDefinition: ProblemDefinition, modelBuilder: ModelBuilderIfc, maxNumRestarts: Int = defaultMaxRestarts, startingPoint: MutableMap<String, Double>? = null, maxIterations: Int = StochasticHillClimber.shcDefaultMaxIterations, replicationsPerEvaluation: Int = defaultReplicationsPerEvaluation, solutionCache: SolutionCacheIfc = MemorySolutionCache(), simulationRunCache: SimulationRunCacheIfc? = null, experimentRunParameters: ExperimentRunParametersIfc? = null, streamNum: Int = 0, streamProvider: RNStreamProviderIfc = RNStreamProvider(), name: String? = null, parallelOptions: ParallelEvaluationOptions = ParallelEvaluationOptions(), concurrentRestarts: Int = 1, concurrentOptions: ConcurrentRunOptions = ConcurrentRunOptions()): RandomRestartSolver

Creates and configures a simulated annealing optimization algorithm for a given problem definition.

Link copied to clipboard
fun createRSplineSolver(problemDefinition: ProblemDefinition, modelBuilder: ModelBuilderIfc, initialNumReps: Int = defaultInitialSampleSize, sampleSizeGrowthRate: Double = defaultReplicationGrowthRate, maxNumReplications: Int = defaultMaxNumReplications, startingPoint: MutableMap<String, Double>? = null, maxIterations: Int = RSplineSolver.rSplineDefaultMaxIterations, solutionCache: SolutionCacheIfc = MemorySolutionCache(), simulationRunCache: SimulationRunCacheIfc? = null, experimentRunParameters: ExperimentRunParametersIfc? = null, streamNum: Int = 0, streamProvider: RNStreamProviderIfc = RNStreamProvider(), name: String? = null, parallelOptions: ParallelEvaluationOptions = ParallelEvaluationOptions()): RSplineSolver

Creates and configures an R-SPLINE optimization algorithm for a given problem definition.

Link copied to clipboard
fun createSimulatedAnnealingSolver(problemDefinition: ProblemDefinition, modelBuilder: ModelBuilderIfc, startingPoint: MutableMap<String, Double>? = null, temperatureConfiguration: TemperatureConfiguration = TemperatureConfiguration.AutoCalibrate(), coolingSchedule: CoolingScheduleIfc = ExponentialCoolingSchedule(defaultInitialTemperature), stoppingTemperature: Double = SimulatedAnnealing.defaultStoppingTemperature, maxIterations: Int = SimulatedAnnealing.saDefaultMaxIterations, replicationsPerEvaluation: Int = defaultReplicationsPerEvaluation, solutionCache: SolutionCacheIfc = MemorySolutionCache(), simulationRunCache: SimulationRunCacheIfc? = null, experimentRunParameters: ExperimentRunParametersIfc? = null, streamNum: Int = 0, streamProvider: RNStreamProviderIfc = RNStreamProvider(), name: String? = null, parallelOptions: ParallelEvaluationOptions = ParallelEvaluationOptions()): SimulatedAnnealing

Creates a configured Simulated Annealing solver ready for execution.

Link copied to clipboard
fun createStochasticHillClimberSolver(problemDefinition: ProblemDefinition, modelBuilder: ModelBuilderIfc, startingPoint: MutableMap<String, Double>? = null, maxIterations: Int = StochasticHillClimber.shcDefaultMaxIterations, replicationsPerEvaluation: Int = defaultReplicationsPerEvaluation, solutionCache: SolutionCacheIfc = MemorySolutionCache(), simulationRunCache: SimulationRunCacheIfc? = null, experimentRunParameters: ExperimentRunParametersIfc? = null, streamNum: Int = 0, streamProvider: RNStreamProviderIfc = RNStreamProvider(), name: String? = null, parallelOptions: ParallelEvaluationOptions = ParallelEvaluationOptions()): StochasticHillClimber

Creates and configures a stochastic hill climber to solve the given problem definition using a simulation-based evaluation approach. The default configuration has the evaluator configured to use a solution cache.