2009-07-02 2 views
5

Некоторых структуры генетического алгоритма, такие как http://www.aforgenet.com/ требует много параметров, таких как скорость мутации, размер популяции и т.д.Как найти наилучшие параметры для генетического алгоритма?

Существуют универсальные лучшие номера для таких параметров? Я считаю, что это зависит от проблемы (задержка функции работоспособности, задержка мутации, задержка рекомбинации, скорость эволюции и т. Д.). Моя первая мысль заключалась в том, чтобы использовать GA для настройки другой GA.

Любые лучшие идеи?

+0

Пожалуйста, проверьте мои ответы, это может вас заинтересовать. – chutsu

ответ

5

Однажды я запрограммировал генетический алгоритм. Я включил эти значения в значения, чтобы мутировать, в основном, как вы сказали, используя GA для настройки себя. Это работало на удивление хорошо, тем более, что я нашел, что выгодно изменять эти ценности в ходе его вычисления.

+0

Отлично! Само-мутация должна работать лучше, чем моя идея! –

+0

Чтобы быть более сложным, то, что вы обнаружили, это метод управления параметрами, поскольку люди, заинтересованные в разных способах поиска «лучших» параметров ГА, смотрят на мой ответ. – chutsu

4

На самом деле нет автоматического способа сделать это для данного набора данных. Если бы они были, они бы не раскрывали эти параметры. Использование второй GA для настройки параметров первого GA опасно - используете ли вы третью GA для настройки параметров второй? Даже если вы это сделали, это рецепт переоборудования в любом случае.

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

Это грязный секрет ГА, что их настройка - это искусство, а не наука.

+0

Я не согласен. Настройка GA не является искусством, ее можно сделать с научной точки зрения, есть нечто, называемое Adaptive GA (см. Эту научную статью [здесь] (http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber = 286385 & tag = 1)), который не является специфичным для проблемы, и является достаточно общим для использования в любых проблемах, которые вы можете поместить в GA. – chutsu

15

Я считаю, что это помогает думать об этих проблемах как о ландшафте, где вы пытаетесь найти самую низкую точку.

Такие методы, как генетические алгоритмы, используются, когда пейзаж слишком велик, чтобы просто проверять все точки, а «форма» ландшафта такова, что такие методы, как градиентный спуск, заставят вас застрять в локальных минимумах.

Хорошим примером является функция Растригин (в image ref): alt text:

Ваш выбор:

размер поколения:

  • Слишком большой: вы собираетесь иметь долго время, ограничивающее количество шансов каждого человека на исследовать окрестности.
  • Слишком мало: вы не добьетесь охват поискового пространства.

скорость Мутация:

  • Слишком высока: вы рискуете индивиды «прыгает» над раствором они были близки к .
  • Слишком низкая: они все собираются получить , застрявшую в местных минимумах.

Таким образом, это действительно зависит от вашего собственного конкретного пространства поиска. Поэкспериментируйте с параметрами и попытайтесь найти оптимальную комбинацию.Я бы согласился с тем, что использование другой GA для оптимизации параметров не решит проблему.

+4

Я много работаю с генетическими алгоритмами. Это отличное описание и визуализация. Отличная работа. –

7

Это непросто.

Почему? Из-за теоремы No Free Lunch. Это в основном утверждает, что нет общий алгоритм поиска, который хорошо работает для все проблемы.

Лучшее, что вы можете сделать, это настроить поиск по проблемное пространство. Вам придется вручную настроить ваши параметры в соответствии с вашим решением. Сожалею.

Использование GA для определения параметров GA усложняется. Как вы находите оптимальные параметры для поиска GAGA? Другая ГА ...?

+0

Не верно в отношении ручной настройки GA, есть что-то, называемое Adaptive GA? (См. [Здесь] (http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=286385&tag=1) – chutsu

+0

@chutsu Да, есть много адаптивных GA. Я использую их много, но они работают только для конкретных (обычно гладкие) проблемные пространства. Они не являются общими. – Ray

+0

Могу ли я запросить источник? Было бы полезно для меня спасибо :) – chutsu

2

Как и все остальные, ответа нет. Хотя существует определенная тенденция использовать коэффициент кроссовера на уровне 0,7-0,9, а мутация - 0,1-0,3, это действительно зависит. Зависит от проблемы, может зависеть от функции работоспособности и определенно зависит от самого генетического алгоритма. Существует много вариаций GA, оптимальные параметры для одной и той же проблемы могут различаться.

Что касается использования GA для настройки параметров целевого GA, существуют такие подходы, но, как было указано, как настроить параметры первой GA? Имейте в виду, что, возможно, частота мутаций должна быть выше в начале, и она должна уменьшаться, в то время как кросс-курс должен увеличиваться. Это вопрос разведки и эксплуатации. Существуют подходы к тому, чтобы GA был более адаптивным и позволял ему изменять его параметры, поскольку он ищет решение. Нечеткие контроллеры иногда используются для управления параметрами GA. Существуют и другие подходы.

Если вы хотите узнать об этом больше, купите несколько книг или просмотрите академические исследовательские документы.
Если вам нужно настроить свою собственную ГА без обширных исследований, попробуйте некоторые ценности от других работать и экспериментируйте с ними.

7

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

Дополнительно No Free Lunch Theorem никоим образом не мешает вам найти лучшие параметры, так как уже было обсуждение, что оспорит факт:

Существует два типа параметров:

  • Параметр Tuning (автономный поиск параметров - до GA запускается)
  • Контроль параметров (онлайн параметр для настройки - во время запуска ГА)
    • Адаптивная
    • Само Адаптивная
    • Детерминированный

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

Вот некоторые примеры, чтобы найти "лучшие" параметры:

Параметр Tuning:

  • Простой параметр стреловидности (все попробовать)
  • Meta-GA наверх ГА
  • Racing strategy, чтобы найти наилучшие параметры
  • Meta-GA and Racing together

Контроль параметров:

И многое другое, просто для поиска литературы, используя ключевые слова, используемые выше. Существуют научные методы поиска подходящих параметров для любой заданной проблемы!