Teaching Learning Based Optimization Algorithm (Springer, 2016)