createRandomRestartParticleSwarmSolver

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(source)

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

As with createParticleSwarmSolver, parallelOptions defaults to enabled = true; the supplied modelBuilder must yield independent models per call.

Return

An instance of RandomRestartSolver that encapsulates the optimization process and results.

Parameters

problemDefinition

The definition of the optimization problem, including constraints and objectives.

modelBuilder

The model builder interface used to create models for evaluation. Must yield independent models per call when parallel.

maxNumRestarts

The maximum number of restarts to be performed.

startingPoint

An optional starting point. If provided, the FIRST run of the solver will begin here. All subsequent restarts will begin at purely random, auto-generated coordinates.

swarmSize

The number of particles in the swarm. Defaults to ParticleSwarmSolver.defaultSwarmSize.

inertiaSchedule

The inertia-weight schedule. When omitted (null), a LinearDecreasingInertia whose horizon matches maxIterations is used, so the weight decays across the whole run.

cognitiveCoefficient

The cognitive acceleration coefficient c1. Defaults to ParticleSwarmSolver.defaultCognitiveCoefficient.

socialCoefficient

The social acceleration coefficient c2. Defaults to ParticleSwarmSolver.defaultSocialCoefficient.

boundaryHandler

How out-of-range positions are handled. Defaults to ClampToBounds.

maxIterations

The maximum number of iterations per restart. Defaults to 100.

replicationsPerEvaluation

The number of replications to use during each evaluation to reduce stochastic noise.

solutionCache

Specifies if the evaluator uses a solution cache. By default, this is MemorySolutionCache.

simulationRunCache

Specifies if the simulation oracle will use a SimulationRunCache. The default is null (no cache).

experimentRunParameters

the run parameters to apply to the model during the building process

streamNum

the random number stream number for the outer random-restart driver; 0 (the default) means the next available stream

streamProvider

the provider of random number streams shared by the inner particle swarm solver and the outer driver; defaults to a fresh RNStreamProvider