<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def update_pop(self):
 """Updates the population according to crossover and fitness criteria. """

        candidates = []
        for ind in self.population:
            candidates.append(self.crossover(ind))
        self._params['model_count'] += len(candidates)
        self.assign_fitnesses(candidates)
        for i in range(len(self.population)):
            if candidates[i].fitness > self.population[i].fitness:
                self.population[i] = candidates[i]