I. Introduction
Optimization is a process of determining the solution for which the objective function has the best value. One obvious procedure is to sample the space and perform trial and error search [1]. Traditional optimization methods such as sequential search methods are slow and gradient-based methods fail when the objective function is non-differentiable or dis-continuous. Meta-heuristic techniques bypass such issues and promise to solve almost any optimization problem. Broadly, Meta-heuristic techniques are classified into 2 types - Single-based meta-heuristics and Population-based Meta-heuristics. Population based Meta-heuristics are classified into 4 types - evolutionary, physics-based, swarm intelligence-based and human-based [2].