Simulated annealing

Simulated Annealing is an algorythm that simulates the way that crystal size is evened out over a metal part by reheating it occassionally and letting it gradually drop in heat. Essentially this tends to find the lowest minima in much the same way a hill climbing algorythm finds maximas.