Optimization techniques for solving complex problems (John Wiley, 2009)