docs: def tournament_selection(random, population, args):
      """Return a tournament sampling of individuals from the population.
      
      This function selects ``num_selected`` individuals from the population. 
      It selects each one by using random sampling without replacement
      to pull ``tournament_size`` individuals and adds the best of the
      tournament as its selection. If ``tournament_size`` is greater than
      the population size, the population size is used instead as the size
      of the tournament.
      
      .. Arguments:
         random -- the random number generator object
         population -- the population of individuals
         args -- a dictionary of keyword arguments
  
      Optional keyword arguments in args:
      
      - *num_selected* -- the number of individuals to be selected (default 1)
      - *tournament_size* -- the tournament size (default 2)
      
      """
      num_selected = args.setdefault('num_selected', 1)
      tournament_size = args.setdefault('tournament_size', 2)
      if tournament_size > len(population):
          tournament_size = len(population)
      selected = []
      for _ in range(num_selected):
          tourn = random.sample(population, tournament_size)
          selected.append(max(tourn))
      return selected