Python DEAP: фитнес, кажется, со временем падает - как мне это исправить? - PullRequest
0 голосов
/ 04 июня 2018

Мой человек - это объединение пяти параметров, необходимых для настройки многоступенчатого процесса.Первая совокупность создается путем случайного присвоения этим параметрам значения в пределах их соответствующих диапазонов и преобразования их в двоичную строку.График первых 25 поколений обычно выглядит следующим образом:

Graph of the first 25 generations

Код DEAP выглядит следующим образом:

# Create the individuals
creator.create('FitnessMax', base.Fitness, weights=(1.0, ))
creator.create('Individual', list, fitness=creator.FitnessMax)

# Initialize the containers
toolbox = base.Toolbox()
toolbox.register('individual', get_random_contour_ind)
toolbox.register('population', tools.initRepeat, list, toolbox.individual)

# Initialize the operators
toolbox.register('evaluate', get_total_max_ratio)
toolbox.register('mate', tools.cxUniform, indpb=0.10)
toolbox.register('mutate', tools.mutFlipBit, indpb=0.10)
toolbox.register('select', tools.selBest)

ItЗапуск занимает много времени, но я запускаю тот же код DEAP для других оценщиков и замечаю ту же схему.Как мне это исправить?

1 Ответ

0 голосов
/ 06 июня 2018

Проблема заключалась в том, что оценщик недетерминирован, поэтому я воспользовался советом paddymccruden и добавил декоратор для обеспечения стохастической пригодности.Теперь график пригодности выглядит следующим образом:

25 generations of stochastic fitness enforcement

Как вы можете видеть, средняя пригодность увеличивается на протяжении поколений.

...