Speciation in evolutionary algorithms: adaptive species discovery