Adaptive Mutation Operators for Evolutionary Algorithms