Simulated annealing is an optimization technique used for solving hard problems, notably optimization problems with many variables and many solutions. Its name is a metaphor for the metallurgical process of annealing, which involves strengthening steel through a process of heating and cooling. Likewise, an optimization that uses simulated annealing will search a solution space in smaller and smaller steps (cooling) and then, depending on the heating schedule, will make a large jump in the solution space before continuing cooling. This process repeats until an optimal solution is found. Techniques that use simulated annealing are most appropriate for problems with many variables and that are likely to have a local optimum, which erroneously appear to be an optimal global solution.