AutoClustering: An estimation of distribution algorithm for the automatic generation of clustering algorithms