def _learnStep(self):
        # evaluate fitness
        if isinstance(self.fitnesses,dict):
            oldfitnesses = self.fitnesses
            self.fitnesses = dict()
            for indiv in self.currentpop:
                if tuple(indiv) in oldfitnesses:
                    self.fitnesses[tuple(indiv)] = oldfitnesses[tuple(indiv)]
                else:
                    self.fitnesses[tuple(indiv)] = self._oneEvaluation(indiv)
            del oldfitnesses
        else:
            self.fitnesses = dict([(tuple(indiv), self._oneEvaluation(indiv)) for indiv in self.currentpop])
        if self.storeAllPopulations:
            self._allGenerations.append((self.currentpop, self.fitnesses))

        if self.elitism:
            self.bestEvaluable = list(const_non_dominated_front(list(map(tuple, self.currentpop)),
                                                          key=lambda x: self.fitnesses[x],
                                                          allowequality = self.allowEquality))
        else:
            self.bestEvaluable = list(const_non_dominated_front(list(map(tuple, self.currentpop))+self.bestEvaluable,
                                                          key=lambda x: self.fitnesses[x],
                                                          allowequality = self.allowEquality))
        self.bestEvaluation = [self.fitnesses[indiv] for indiv in self.bestEvaluable]
#        self.eliteProportion = float(len(self.bestEvaluable))/self.populationSize
#        number_of_feasible = const_number_of_feasible_pop(map(tuple, self.currentpop),
#                                                          key=lambda x: self.fitnesses[x],
#                                                          allowequality = self.allowEquality)
#        self.topProportion = float(number_of_feasible)/self.populationSize
#        print('Len bestEvaluable ',len(self.bestEvaluable))
#        for i in range(len(self.bestEvaluable)):
#            print(self.bestEvaluable[i],':',self.bestEvaluation[i])
        self.produceOffspring()
Returns an SVG path of a circle of diameter 'diameter'
dataset/ETHPy150Open pybrain/pybrain/pybrain/optimization/populationbased/multiobjective/constnsga2.py/ConstMultiObjectiveGA._learnStep--crossover with--dataset/ETHPy150Open boldport/pcbmode/pcbmode/utils/svg.py/circle_diameter_to_path