code: def gbest_idx(swarm):
      
      best = 0
      cmp = comparator(swarm[best].best_fitness)
      for (idx, particle) in enumerate(swarm):
          if cmp(particle.best_fitness, swarm[best].best_fitness):
              best = idx
      return best
docs: gbest Neighbourhood topology function.
  
      Args:
          swarm: list: The list of particles.
  
      Returns:
          int: The index of the gbest particle.