Metaheuristic algorithms for combinatorial optimization problems