A Tutorial on the Design, Experimentation and Application of Metaheuristic Algorithms to Real-World Optimization Problems