Применить мутацию (с небольшой вероятностью) к потомству

Я изучаю генетический алгоритм, и когда я изучал мутации, я не мог понять кое-что. Это было немного необычно после того, как мы производили потомство по точке кроссовера, мы должны применить мутацию (с небольшой вероятностью), какова эта малая вероятность? У меня есть изображение проблемы 8 маток, на которую мы нашли оптимальный ответ, здесь наша точка пересечения - 3, так почему, например, у нас есть мутации в первой, третьей и последней популяции, но не во второй ?? введите описание изображения здесь

Мне очень жаль, что этот вопрос может быть глупым!


person Daniel.V    schedule 23.08.2014    source источник


Ответы (2)


Во-первых, то, что вы называете населением, на самом деле просто особь из популяции. Популяция - это совокупность всех особей.

Хороший генетический алгоритм - это тот, который уравновешивает «Исследование и Эксплуатация». Исследование пытается найти новые решения, не заботясь о том, насколько они хороши (потому что они могут привести к некоторым лучшим решениям). Эксплуатация пытается воспользоваться тем, что алгоритм уже знает как «хорошие решения».

КРОССОВЕР = ЭКСПЛУАТАЦИЯ Используя кроссовер, вы пытаетесь объединить лучших людей (с точки зрения фитнеса) для получения еще лучших решений.

МУТАЦИЯ = ИССЛЕДОВАНИЕ. Используя мутацию, вы пытаетесь выйти из своего «генофонда» и найти новые решения с новыми характеристиками, которые не связаны с вашей нынешней популяцией.

При этом лучший способ сбалансировать их - это обычно метод проб и ошибок. Для определенного ввода попробуйте поиграть с параметрами и посмотреть, как они работают.

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

for individual in population do:
    for gene in individual:
        if random() < MUTATION_RATIO:
            mutate(gene)

Это означает, что человек может пострадать даже от нескольких мутаций.

person bogs    schedule 24.08.2014
comment
Спасибо за ответ, было здорово :) - person Daniel.V; 24.08.2014

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

  • Вероятность мутации слишком мала: популяция рано сходится
  • Вероятность мутации слишком высока: популяция никогда не сходится

Так что в основном вопрос не подлежит ответу. Я увеличил процент от 0,5 до 8% в зависимости от количества параметров, алгоритма мутации и проблемы (т. Е. Чувствительности к изменениям параметров). Также существуют алгоритмы, которые изменяют скорость мутации от поколения к поколению.

Я нашел хороший способ узнать и поэкспериментировать со скоростью мутации (хотя только для этого alorithm) - это этот сайт вы можете играть с вероятностью и мгновенно увидеть эффект. Наблюдать за этими маленькими машинками тоже довольно задумчиво.

person Trudbert    schedule 23.08.2014