A differential evolution algorithm with dual preferred learning mutation