Self-Adaptive Heuristics for Evolutionary Computation