Differential evolution (DE) is widely studied in the past decade. In its mutation operator, the random variations are derived from the difference of two randomly selected different individuals. Difference vector plays an important role in evolution. It is observed that the best fitness found so far by DE cannot be improved in every generation. In this article, a directional mutation operator is proposed. It attempts to recognize good variation directions and increase the number of generations having fitness improvement. The idea is to construct a pool of difference vectors calculated when fitness is improved at a generation. The difference vector pool will guide the mutation search in the next generation once only. The directional mutation operator can be applied into any DE mutation strategy. The purpose is to speed up the convergence of DE and improve its performance. The proposed method is evaluated experimentally on CEC 2005 test set with dimension 30 and on CEC 2008 test set with dimensions 100 and 1000. It is demonstrated that the proposed method can result in a larger number of generations having fitness improvement than classic DE. It is combined with eleven DE algorithms as examples of how to combine with other algorithms. After its incorporation, the performance of most of these DE algorithms is significantly improved. Moreover, simulation results show that the directional mutation operator is helpful for balancing the exploration and exploitation capacity of the tested DE algorithms. Furthermore, the directional mutation operator modifications can save computational time compared to the original algorithms. The proposed approach is compared with the proximity based mutation operator as both are claimed to be applicable to any DE mutation strategy. The directional mutation operator is shown to be better than the proximity based mutation operator on the five variants in the DE family. Finally, the applications of two real world engineering optimization problems verify the usefulness of the proposed method. 
A directional mutation operator for differential evolution algorithms