estimateInitialTemperature

fun estimateInitialTemperature(problemDefinition: ProblemDefinition, evaluator: EvaluatorIfc, targetAcceptanceProbability: Double = 0.8, sampleSize: Int = 100, replicationsPerEvaluation: ReplicationPerEvaluationIfc = FixedReplicationsPerEvaluation(1)): Double(source)

Estimates a sensible initial temperature by executing an unbiased random walk over the objective function landscape and measuring the average cost increase.

The walk's geometry never depends on the evaluated objective values, so the full path is generated first and then evaluated with a single multi-point request; an evaluator backed by a parallel simulation oracle therefore evaluates the walk concurrently. The random draws (starting point, then one neighbor per step from the first stream of a fresh provider) match the historical sequential implementation, so a fixed stream setup yields the same walk path.

Return

A dynamically calculated initial temperature.

Parameters

problemDefinition

The problem being solved.

evaluator

The evaluator responsible for assessing solutions.

targetAcceptanceProbability

The desired initial probability of accepting a worse solution (e.g., 0.8).

sampleSize

The number of random walk steps to take.

replicationsPerEvaluation

Strategy for replications (typically 1 is fine for a rough temperature estimate).