Отдельные вероятности мутации для каждой части решения (генетические алгоритмы) - PullRequest
0 голосов
/ 05 ноября 2019

Я работаю с библиотекой Deap (Python) для эволюционных вычислений. Меня интересует следующая мутационная функция:

deap.tools.mutGaussian(individual, mu, sigma, indpb)

, где indpb, согласно документации, относится к вероятности мутации каждого элемента решения.

Мой вопрос: как это сделать? укажите более высокие (или более низкие) вероятности мутации для определенных частей решения (индексов).

Другими словами, чтобы indpb был не скалярным, а вектором решений.

1 Ответ

1 голос
/ 05 ноября 2019

Скорее всего, вам нужно реализовать собственную функцию мутации. Возможно что-то вроде следующего:

def mutGaussian(individual, mu, sigma, indpb):
    size = len(individual)
    for i, m, s, p in zip(xrange(size), mu, sigma, indpb):
        if random.random() < p:
            individual[i] += random.gauss(m, s)

    return individual,
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...