An evolutionary algorithm for global optimization based on self-organizing maps