  The performance of any algorithm will largely depend on the setting of its
algorithm-dependent parameters. The optimal setting should allow the algorithm
to achieve the best performance for solving a range of optimization problems.
However, such parameter-tuning itself is a tough optimization problem. In this
paper, we present a framework for self-tuning algorithms so that an algorithm
to be tuned can be used to tune the algorithm itself. Using the firefly
algorithm as an example, we show that this framework works well. It is also
found that different parameters may have different sensitivities, and thus
require different degrees of tuning. Parameters with high sensitivities require
fine-tuning to achieve optimality.
