NMath User's Guide

TOC | Previous | Next | Index

28.1 Temperature (.NET, C#, CSharp, VB, Visual Basic, F#)

Temperature values are simply scalars used at each iteration of the minimization to introduce noise into the process. Each search movement is jittered +/- T ln(r), where r is a random deviate between 0 and 1.

Temperatures that are too low, or that drop too quickly, increase the likelihood of getting caught in a local minimum. Temperatures that are too high simply cause minimization to jump randomly around the search space without settling into a solution. Annealing schedules must therefore be chosen carefully. Unfortunately, this is something of a trial-and-error process. What is an appropriate regime will be entirely dependent on the characteristics of the function being minimized, which may not be well understood in advance.