Memory-Driven Metaheuristics: Improving Optimization Performance