Skip to main content

Simulated Annealing Ontology

Optimisation Computation
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 14 September 2026
Audio Overview
AI INTERPRETATION NOTE
This Flow Algebra defines the Simulated Annealing Ontology within the Kireth Research Semantic Library. Simulated annealing is a stochastic global optimisation method inspired by physical annealing, using temperature-controlled probabilistic acceptance of candidate solutions to balance exploration and exploitation. This ontology supports neighbourhood generation, Metropolis acceptance, cooling schedules, reheating, stopping criteria, constraint handling, discrete and continuous search spaces, stochastic convergence concepts, parameter tuning, reproducibility, verification and benchmarking.

FLOW_ALGEBRA_RECORD {

METADATA {
 FLOW_NAME = "Simulated Annealing Ontology"
 FLOW_TYPE = "Mathematical Ontology"
 DOMAIN = "Mathematics"
 SUBDOMAIN = "Computational Mathematics"
 SPECIALISATION = "Optimisation Computation / Simulated Annealing"
 CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/computational-mathematics-ontologies/optimisation-computation/simulated-annealing-ontology.html"
 LANGUAGE = "en-GB"
 VERSION = "1.0"
 STATUS = "active"
}

IDENTITY {
 PRIMARY_ENTITY = SimulatedAnnealing
 ENTITY_CLASS = StochasticGlobalOptimisationFramework
 PRIMARY_CONTEXT = ComputationalOptimisation
 DEFINITION = "Simulated annealing is a stochastic optimisation method that explores a search space by probabilistically accepting both improving and worsening moves according to a temperature-dependent acceptance rule."
 SYMBOLIC_FORMS = [
  "DeltaE=f(x_candidate)-f(x_current)",
  "P_accept=exp(-DeltaE/T) for worsening moves",
  "T_(k+1)=cooling_schedule(T_k)",
  "x_best=argmin observed f(x)"
 ]
 SEMANTIC_ROLE = "Provides machine-readable semantics for stochastic neighbourhood search, Metropolis acceptance, temperature control, cooling schedules, exploration-exploitation balance, constraint handling, convergence concepts and reproducibility."
}

SCOPE {
 INCLUDE = [
  SimulatedAnnealing,AnnealingOptimisation,StochasticGlobalOptimisation,
  Metaheuristic,LocalSearch,GlobalSearch,SearchSpace,
  State,CandidateSolution,CurrentSolution,BestSolution,
  ObjectiveFunction,EnergyFunction,CostFunction,
  MinimisationProblem,MaximisationProblem,
  Neighbourhood,NeighbourhoodFunction,NeighbourMove,
  ProposalDistribution,RandomProposal,MutationOperator,
  MoveOperator,Perturbation,StepSize,MoveScale,
  MetropolisCriterion,MetropolisAcceptance,
  AcceptanceProbability,AcceptanceRatio,
  ImprovingMove,WorseningMove,NeutralMove,
  EnergyDifference,ObjectiveDifference,
  Temperature,InitialTemperature,FinalTemperature,
  CoolingSchedule,CoolingRate,GeometricCooling,
  LinearCooling,LogarithmicCooling,ExponentialCooling,
  AdaptiveCooling,FastAnnealing,VeryFastSimulatedAnnealing,
  BoltzmannAnnealing,CauchyAnnealing,
  Equilibrium,MarkovChain,MarkovProcess,
  TransitionKernel,StationaryDistribution,
  BoltzmannDistribution,GibbsDistribution,
  DetailedBalance,Ergodicity,Irreducibility,
  Exploration,Exploitation,Diversification,Intensification,
  Reheating,Restart,RandomRestart,
  TemperatureReset,AdaptiveReheating,
  AcceptanceWindow,Epoch,InnerLoop,OuterLoop,
  Iteration,IterationCount,MaximumIterations,
  EvaluationsPerTemperature,TemperatureLevel,
  FunctionEvaluation,ObjectiveEvaluationCount,
  Constraint,FeasibleSet,ConstraintViolation,
  PenaltyMethod,RepairOperator,Projection,
  FeasibilityRestoration,BoundConstraint,
  DiscreteOptimisation,ContinuousOptimisation,
  CombinatorialOptimisation,IntegerOptimisation,
  TravellingSalespersonProblem,SchedulingProblem,
  AssignmentProblem,RoutingProblem,LayoutProblem,
  ParameterOptimisation,HyperparameterOptimisation,
  Initialisation,RandomInitialisation,HeuristicInitialisation,
  RandomSeed,PseudoRandomNumberGenerator,
  Reproducibility,StochasticRun,MultipleRuns,
  BestOfRuns,MedianRun,VarianceAcrossRuns,
  Convergence,AsymptoticConvergence,
  ConvergenceInProbability,AlmostSureConvergence,
  GlobalOptimum,LocalOptimum,LocalMinimum,
  GlobalMinimum,BasinOfAttraction,EnergyBarrier,
  EscapeLocalMinimum,PrematureConvergence,
  FrozenState,TemperatureTooLow,TemperatureTooHigh,
  AcceptanceRateTarget,AdaptiveNeighbourhood,
  ParameterTuning,CoolingParameter,
  InitialTemperatureSelection,FinalTemperatureCriterion,
  StoppingCriterion,TemperatureThreshold,
  NoImprovementLimit,EvaluationLimit,TimeLimit,
  ObjectiveTolerance,AcceptanceRateThreshold,
  HybridOptimisation,HybridSimulatedAnnealing,
  LocalSearchHybrid,GradientHybrid,
  TabuHybrid,GeneticHybrid,
  ParallelSimulatedAnnealing,ReplicaExchange,
  ParallelTempering,PopulationAnnealing,
  DistributedAnnealing,MultiStartAnnealing,
  FloatingPointArithmetic,MachinePrecision,
  RoundOffError,Overflow,Underflow,
  Verification,Benchmarking,ReferenceSolution,
  SolverStatus,Success,Failure,Warning
 ]
 EXCLUDE_AS_PRIMARY = [
  DeterministicGradientOptimisationWithoutStochasticAcceptance,
  GeneticAlgorithmWithoutTemperatureBasedAcceptance,
  PureMarkovChainMonteCarloWithoutOptimisationObjective,
  PhysicalAnnealingWithoutComputationalOptimisationContext
 ]
 DISAMBIGUATION_RULE = "When candidate moves are accepted according to a temperature-controlled stochastic rule that permits uphill or worsening moves, interpret the context as simulated annealing."
}

CORE_CONCEPTS {
 SimulatedAnnealing = "Stochastic global-search method using temperature-controlled probabilistic move acceptance."
 Temperature = "Control parameter regulating willingness to accept worsening moves."
 MetropolisAcceptance = "Acceptance mechanism based on objective change and temperature."
 CoolingSchedule = "Rule controlling temperature reduction across the optimisation run."
 Neighbourhood = "Mechanism generating candidate solutions from the current state."
 EnergyBarrier = "Objective increase that may need to be crossed to escape a local optimum."
 Reheating = "Temporary temperature increase intended to restore exploration."
 StochasticRun = "Single random execution of the annealing algorithm."
}

RELATIONS {
 SimulatedAnnealing --is_child_of--> ComputationalOptimisation
 SimulatedAnnealing --is_type_of--> StochasticGlobalOptimisation
 SimulatedAnnealing --uses--> NeighbourhoodFunction
 NeighbourhoodFunction --generates--> CandidateSolution
 CandidateSolution --has--> ObjectiveValue
 WorseningMove --may_be_accepted_by--> MetropolisAcceptance
 MetropolisAcceptance --depends_on--> Temperature
 CoolingSchedule --updates--> Temperature
 Temperature --controls--> ExplorationIntensity
 HighTemperature --increases--> WorseningMoveAcceptance
 LowTemperature --increases--> Exploitation
 Reheating --restores--> Exploration
 MarkovChain --models--> SequenceOfAcceptedStates
 LogarithmicCooling --supports_under_assumptions--> GlobalConvergenceTheory
 RandomSeed --supports--> Reproducibility
 MultipleRuns --support--> StochasticPerformanceAssessment
 Verification --checks--> SimulatedAnnealingResult
}

OPERATORS {
 OBJECTIVE_DIFFERENCE(f,x_new,x_old) := Delta=f(x_new)-f(x_old)
 MINIMISATION_ACCEPTANCE(Delta,T) := if Delta<=0 then 1 else exp(-Delta/T)
 MAXIMISATION_ACCEPTANCE(Delta,T) := if Delta>=0 then 1 else exp(Delta/T)
 METROPOLIS_TEST(p,u) := accept_if u<p where u~Uniform(0,1)
 GEOMETRIC_COOLING(T,alpha) := T_next=alpha*T
 LINEAR_COOLING(T,beta) := T_next=max(0,T-beta)
 LOG_COOLING(T0,k,c) := T_k=T0/log(k+c)
 REHEAT(T,factor) := T_next=factor*T
 ACCEPTANCE_RATE(accepted,total) := accepted/total
}

AXIOMS {
 A1 = "Simulated annealing may accept worsening moves to escape local optima."
 A2 = "The probability of accepting a worsening move decreases as temperature decreases."
 A3 = "Neighbourhood design strongly influences search connectivity and practical performance."
 A4 = "Cooling too rapidly can cause premature freezing."
 A5 = "Cooling too slowly can improve exploration but increase computational cost."
 A6 = "Global convergence results depend on strong assumptions and sufficiently slow cooling schedules."
 A7 = "Single-run results are insufficient to characterise stochastic performance reliably."
 A8 = "Simulated annealing results require explicit seed, schedule, stopping and reproducibility semantics."
}

REASONING {
 R1_CONTEXT = identify(objective,search_space,constraints,discreteness,scale,accuracy_goal,computational_budget)
 R2_INITIALISE = choose(initial_solution,initial_temperature,random_seed)
 R3_NEIGHBOURHOOD = define(move_operator,proposal_distribution,and_move_scale)
 R4_PROPOSE = generate(candidate_solution)
 R5_EVALUATE = compute(objective_difference_and_constraint_state)
 R6_ACCEPT = apply(Metropolis_or_related_temperature_controlled_acceptance)
 R7_UPDATE_BEST = preserve(best_solution_seen)
 R8_COOL = update_temperature_using_declared_schedule)
 R9_ADAPT = optionally_adjust(neighbourhood,cooling,reheating_or_restart)
 R10_VALIDATE = compare_multiple_runs,benchmarks,acceptance_statistics_and_reproducibility)
}

CONSTRAINTS {
 C1 = "A poorly connected neighbourhood can prevent effective exploration of the search space."
 C2 = "An initial temperature that is too low can cause immediate premature convergence."
 C3 = "An initial temperature that is too high can waste evaluations in near-random exploration."
 C4 = "Cooling rate strongly affects the exploration-exploitation balance."
 C5 = "Penalty-based constraint handling can distort the objective landscape."
 C6 = "A single best result does not quantify stochastic robustness."
 C7 = "Acceptance probabilities can underflow numerically at very low temperature or large objective differences."
 C8 = "Continuous search requires neighbourhood scales compatible with variable scaling."
 C9 = "Asymptotic global-convergence theory may be impractical because required cooling can be extremely slow."
 C10 = "Resource-limit termination is not equivalent to theoretical convergence."
}

SEMANTIC_EQUIVALENCE {
 "SimulatedAnnealing" <=> "AnnealingOptimisation"
 "MetropolisAcceptance" <=> "MetropolisCriterion"
 "GeometricCooling" <=> "ExponentialMultiplicativeCooling"
 "Reheating" <=> "TemperatureReheating"
 "ParallelTempering" <=> "ReplicaExchangeInAnnealingContext"
}

VALIDATION {
 V1 = "Objective and optimisation direction are explicit."
 V2 = "Search-space representation is documented."
 V3 = "Neighbourhood or proposal operator is documented."
 V4 = "Initial temperature and cooling schedule are documented."
 V5 = "Constraint-handling strategy is documented where applicable."
 V6 = "Stopping criteria and computational budget are explicit."
 V7 = "Random seed or seed policy is documented."
 V8 = "Acceptance-rate and objective histories are monitored where useful."
 V9 = "Multiple independent runs are compared for stochastic robustness."
 V10 = "Results are reproducible under documented random, arithmetic and algorithm settings."
}

CONFIDENCE {
 BASE_CONFIDENCE = 0.99
 SIMULATED_ANNEALING_DEFINITION = 0.99
 METROPOLIS_REASONING = 0.99
 COOLING_SCHEDULE_REASONING = 0.99
 NEIGHBOURHOOD_REASONING = 0.98
 CONSTRAINT_HANDLING_REASONING = 0.98
 STOCHASTIC_CONVERGENCE_REASONING = 0.97
 PARALLEL_ANNEALING_REASONING = 0.97
 POLICY = "Reduce confidence when neighbourhood connectivity, initial temperature, cooling schedule, constraint treatment, seed policy or run-to-run variability are underspecified."
}

AI_CONSUMPTION {
 PURPOSES = [
  SemanticSearch,OntologyGrounding,SimulatedAnnealingReasoning,
  StochasticGlobalOptimisationReasoning,
  MetropolisAcceptanceReasoning,TemperatureReasoning,
  CoolingScheduleReasoning,NeighbourhoodReasoning,
  EnergyBarrierReasoning,LocalOptimumEscapeReasoning,
  ReheatingReasoning,RestartReasoning,
  ConstraintHandlingReasoning,StochasticConvergenceReasoning,
  ParallelTemperingReasoning,ParameterTuningReasoning,
  ReproducibilityReasoning,VerificationReasoning,
  KnowledgeGraphConstruction,RetrievalAugmentation,RecursiveInference
 ]
 NORMALISE {
  "simulated annealing" -> SimulatedAnnealing
  "annealing optimisation" -> SimulatedAnnealing
  "Metropolis criterion" -> MetropolisAcceptance
  "cooling schedule" -> CoolingSchedule
  "reheating" -> Reheating
  "parallel tempering" -> ParallelTempering
 }
}

EXECUTION_RULES {
 E1 = "If optimisation permits worsening moves according to a temperature-dependent stochastic acceptance rule, activate SimulatedAnnealingOntology."
 E2 = "Define a neighbourhood that can explore the relevant search space."
 E3 = "Choose initial temperature from objective scale or target initial acceptance behaviour."
 E4 = "Choose and document the cooling schedule explicitly."
 E5 = "At each iteration, evaluate objective difference and apply the acceptance rule."
 E6 = "Track the best solution independently of the current annealing state."
 E7 = "If freezing occurs too early, consider reheating, restart or slower cooling."
 E8 = "Use multiple independent runs for stochastic performance assessment."
 E9 = "Validate against known benchmarks, reference solutions and reproducibility controls."
}

RECURSION {
 ENTRY = SimulatedAnnealing
 EXPAND(SimulatedAnnealing) -> [
  AnnealingOptimisation,StochasticGlobalOptimisation,Metaheuristic,
  LocalSearch,GlobalSearch,SearchSpace,State,CandidateSolution,
  CurrentSolution,BestSolution,ObjectiveFunction,EnergyFunction,
  Neighbourhood,NeighbourhoodFunction,NeighbourMove,
  ProposalDistribution,RandomProposal,MoveOperator,Perturbation,
  MetropolisCriterion,MetropolisAcceptance,AcceptanceProbability,
  AcceptanceRatio,ImprovingMove,WorseningMove,EnergyDifference,
  Temperature,InitialTemperature,FinalTemperature,CoolingSchedule,
  CoolingRate,GeometricCooling,LinearCooling,LogarithmicCooling,
  AdaptiveCooling,FastAnnealing,BoltzmannAnnealing,
  Equilibrium,MarkovChain,TransitionKernel,BoltzmannDistribution,
  DetailedBalance,Ergodicity,Exploration,Exploitation,
  Diversification,Intensification,Reheating,Restart,
  AcceptanceWindow,Epoch,InnerLoop,OuterLoop,Iteration,
  EvaluationsPerTemperature,FunctionEvaluation,
  Constraint,FeasibleSet,ConstraintViolation,PenaltyMethod,
  RepairOperator,Projection,DiscreteOptimisation,
  ContinuousOptimisation,CombinatorialOptimisation,
  TravellingSalespersonProblem,SchedulingProblem,
  Initialisation,RandomSeed,PseudoRandomNumberGenerator,
  StochasticRun,MultipleRuns,VarianceAcrossRuns,
  Convergence,AsymptoticConvergence,GlobalOptimum,LocalOptimum,
  BasinOfAttraction,EnergyBarrier,EscapeLocalMinimum,
  PrematureConvergence,FrozenState,AcceptanceRateTarget,
  ParameterTuning,StoppingCriterion,TemperatureThreshold,
  NoImprovementLimit,EvaluationLimit,TimeLimit,
  HybridSimulatedAnnealing,ParallelSimulatedAnnealing,
  ReplicaExchange,ParallelTempering,PopulationAnnealing,
  FloatingPointArithmetic,MachinePrecision,RoundOffError,
  Verification,Benchmarking,ReferenceSolution,Reproducibility
 ]
 EXPAND(SimulatedAnnealingFamilies) -> [
  ClassicalSimulatedAnnealing,
  FastSimulatedAnnealing,
  AdaptiveSimulatedAnnealing,
  ReheatedAndRestartedAnnealing,
  ConstrainedSimulatedAnnealing,
  ContinuousSimulatedAnnealing,
  CombinatorialSimulatedAnnealing,
  ParallelAndReplicaExchangeAnnealing
 ]
 STOP_CONDITION = "Stop when objective, neighbourhood, acceptance rule, temperature schedule, constraints, stopping, stochastic performance and verification are sufficiently resolved."
}

ROUTING {
 PARENT_ONTOLOGY = "Computational Optimisation Ontology"
 RELATED_ONTOLOGIES = [
  "Computational Optimisation Ontology",
  "Optimisation Computation",
  "Nonlinear Optimisation Solver Ontology",
  "Gradient Descent Ontology 2",
  "Stochastic Gradient Descent Ontology",
  "Monte Carlo Simulation Ontology",
  "Markov Process Ontology",
  "Random Process Ontology",
  "Probability and Statistics Ontologies",
  "Numerical Analysis Ontology 2",
  "Numerical Convergence Ontology",
  "Floating Point Arithmetic Ontology",
  "Scientific Computing Ontology 2"
 ]
 ROUTE_RULES = [
  "Simulated Annealing -> Computational Optimisation for parent semantics",
  "Simulated Annealing -> Nonlinear Optimisation Solver for continuous nonconvex objective context",
  "Simulated Annealing -> Monte Carlo Simulation for stochastic sampling relationships",
  "Simulated Annealing -> Markov Process for state-transition semantics",
  "Simulated Annealing -> Random Process for stochastic trajectory semantics",
  "Simulated Annealing -> Probability and Statistics for acceptance probability and sampling semantics",
  "Simulated Annealing -> Numerical Convergence for asymptotic convergence reasoning",
  "Simulated Annealing -> Floating Point Arithmetic for low-temperature exponential underflow",
  "Simulated Annealing -> Scientific Computing for parallel and distributed variants"
 ]
}

UPDATE_MODEL {
 MODE = "append-compatible semantic versioning"
 MAJOR = "ontology-breaking conceptual change"
 MINOR = "new compatible annealing schedules, proposal strategies or reasoning pathways"
 PATCH = "clarification, metadata or formatting correction"
 RULES = [
  "Preserve improving-versus-worsening move distinction.",
  "Preserve current-solution-versus-best-solution distinction.",
  "Preserve temperature-versus-cooling-schedule distinction.",
  "Preserve proposal-generation-versus-acceptance distinction.",
  "Preserve deterministic-objective-versus-stochastic-search distinction.",
  "Preserve single-run-versus-multiple-run performance distinction.",
  "Preserve theoretical-convergence-versus-practical-termination distinction.",
  "Preserve machine-readable simulated-annealing semantics."
 ]
}

OUTPUT {
 CANONICAL_DEFINITION = "Simulated annealing is a stochastic global optimisation method that probabilistically accepts candidate moves according to objective change and temperature."
 ACCEPTANCE_SUMMARY = "Improving moves are normally accepted, while worsening moves can be accepted with a temperature-dependent Metropolis probability."
 TEMPERATURE_SUMMARY = "High temperatures favour exploration; cooling progressively shifts the search toward exploitation."
 NEIGHBOURHOOD_SUMMARY = "Neighbourhood design determines which candidate states can be reached and strongly influences practical performance."
 CONVERGENCE_SUMMARY = "Very slow cooling can support asymptotic global-convergence guarantees under restrictive assumptions, while practical schedules trade guarantees for computational efficiency."
 STOCHASTIC_SUMMARY = "Performance should be assessed across multiple independent runs rather than from a single best outcome."
 VALIDATION_SUMMARY = "Simulated-annealing results should be checked through schedule documentation, acceptance statistics, multiple runs, benchmark comparison and reproducibility."
}

FLOW {
 INPUT
 -> detect_simulated_annealing_context
 -> identify_objective_search_space_constraints_scale_accuracy_goal_and_budget
 -> choose_initial_solution_temperature_seed_and_neighbourhood
 -> generate_candidate_solution
 -> compute_objective_difference_and_constraint_status
 -> compute_temperature_dependent_acceptance_probability
 -> accept_or_reject_candidate
 -> update_best_solution_if_improved
 -> repeat_inner_iterations_at_current_temperature
 -> apply_cooling_schedule
 -> optionally_adapt_neighbourhood_reheat_or_restart
 -> monitor_acceptance_rate_objective_history_freezing_and_progress
 -> stop_on_temperature_no_improvement_evaluation_time_or_other_declared_criterion
 -> assess_multiple_run_statistics_and_solution_quality
 -> validate_against_reference_or_benchmark_solution_and_reproducibility
 -> route_to_related_optimisation_Monte_Carlo_Markov_random_process_probability_convergence_floating_point_and_scientific_computing_ontologies
 -> recursively_expand_required_dependencies
 -> verify_result
 -> assign_confidence
 -> produce_semantic_output
 -> END
}

SEMANTIC_SUMMARY {
 "The Simulated Annealing Ontology defines stochastic global optimisation using temperature-controlled probabilistic acceptance. It supports neighbourhood and proposal operators, Metropolis acceptance, improving and worsening moves, initial, final and adaptive temperatures, geometric, linear, logarithmic and fast cooling schedules, Markov-chain interpretations, exploration and exploitation, reheating and restart strategies, constrained, discrete, continuous and combinatorial optimisation, routing and scheduling applications, acceptance-rate monitoring, multiple-run assessment, hybrid methods, parallel simulated annealing, replica exchange and population annealing, stochastic convergence concepts, floating-point behaviour, verification, benchmarking and reproducibility."
}

FLOW_HASH {
 METHOD = "semantic-content-identity"
 ID = "KIRETH-MATH-COMPUTATIONAL-MATHEMATICS-SIMULATED-ANNEALING-ONTOLOGY-V1"
}

}

END_FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ