Niching Methods for Multimodal Optimization