A distributed particle swarm optimization algorithm for distributed clustering