Quaternion Simulated Annealing