Когда генетические алгоритмы являются хорошим выбором для оптимизации?


20

Генетические алгоритмы являются одной из форм метода оптимизации. Часто стохастический градиентный спуск и его производные являются лучшим выбором для оптимизации функций, но генетические алгоритмы все еще иногда используются. Например, антенна космического корабля НАСА ST5 была создана с использованием генетического алгоритма:

Антенна ST5

Когда методы генетической оптимизации являются лучшим выбором, чем более распространенные методы градиентного спуска?


7
+1 для примера я нашел оригинальную статью: alglobus.net/NASAwork/papers/Space2006Antenna.pdf
Тим

Ответы:


19

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

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

Общим для многих стандартных алгоритмов оптимизации (даже для методов без производных) является предположение о том, что базовое пространство является гладким многообразием (возможно, с несколькими дискретными измерениями), а функция оптимизации несколько хорошо себя ведет.

Однако не все функции определены на гладком многообразии. Иногда вы хотите оптимизировать по графу или другим дискретным структурам (комбинаторная оптимизация) - здесь есть специальные алгоритмы, но GA также будут работать.

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

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


2

Генетические методы хорошо подходят для многокритериальной оптимизации, когда градиентный спуск посвящен монокритериальной оптимизации. Градиентный спуск позволяет найти минимум функций, когда существуют производные и существует только одно оптимальное решение (если мы исключаем локальные минимы). Генетический алгоритм может использоваться в многокритериальных задачах и приводить к целому ряду решений, каждый из которых является индивидуумом популяции, эволюционировавшей из начальной популяции. Значения для оптимизации - это фенотипы индивидов, и может быть несколько фенотипов. Как правило, ни один из индивидуумов не имеет одновременно лучшего значения каждого фенотипа, поэтому существует не только одно решение. Люди в окончательной популяции, которые являются решениями оптимизации, являются частью «фронта Парето» и помечены как «Парето ранг один» физические лица. Это означает, что по сравнению с другими людьми, имеющими одинаковую эффективность для каждого фенотипа, они по крайней мере лучше для одного фенотипа, чем другие.


Хорошо, чтобы понизить голос, но не могли бы вы объяснить, где я не прав?
manu190466

5
Этот сайт ценит ответы, которые предоставляют контекст и фон. Посмотрите эту страницу справки, чтобы узнать, как предоставить ответы, которые добавят в наш репозиторий полезные ответы на интересные вопросы. Объяснение вашего ответа также является хорошим способом проверить ваше собственное понимание. Например, в этом случае вы можете захотеть расширить, как генетические алгоритмы «хорошо подходят для многокритериальной оптимизации», так как страница Википедии, кажется, подразумевает однозначные функции соответствия как цели для генетических алгоритмов.
EdM

0

Лучший в каком смысле?

По моему опыту, ГА являются одним из самых прагматичных оптимизаторов. В то время как многие более точные алгоритмы требуют времени и усилий для формализации реальных проблем в математическом мире, GA могут обрабатывать любую функцию стоимости со сложными правилами и ограничениями (GA связаны, в конце концов, с подходом к исполнению, а не с конкретными расчетами). Этот процесс прост, и вы можете попробовать много подходов для исследовательской работы.

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

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

Генетические алгоритмы также могут быть вложенными: функция стоимости одного GA может быть GA! Эти алгоритмы используют преимущества современного аппаратного обеспечения и инфраструктуры, которые позволяют им вычислять очень большую совокупность, так что даже при простых операциях мутации / выделения вы все равно сможете добиться хороших результатов.

Даже для простых задач, таких как поиск минимума волновой функции, GA не так уж плохи и могут достичь приличной точности за приемлемое время.

Так что да, аналитические решения могут иметь более быстрое время выполнения и точность, но время, необходимое для их получения, перевешивает часто ожидаемые выгоды! Так когда ? Почти каждый раз для меня, по крайней мере, для мета-оптимизации.


Основная идея этого аргумента заключается в том, что генетические алгоритмы являются оптимизаторами черного ящика. Но есть много оптимизаторов черного ящика там. Почему это было бы лучше, чем другие варианты? Кроме того, я не думаю, что на самом деле GA может легко справиться с ограничениями. Например, если функция не определена, за исключением трехмерного подпространства в четырехмерном мире, конечно, ванильный GA потерпит неудачу.
Клифф AB

@CliffAB На самом деле я ничего об этом не говорил, а может, и наоборот. В GA у вас есть большой контроль над вычислениями ядра, сам по себе GA - это последовательность шагов и упорядоченное упорядочение. Когда вы определяете функции стоимости, вы можете обрабатывать что угодно в функции, даже внешние ограничения, которые вы можете запросить. Мои основные аргументы таковы: справляйтесь со многими проблемами, вам не нужно беспокоиться о совместимости с фреймворком (вам просто нужно окупить затраты), в большинстве случаев предлагайте достойное реальное решение ДАЖЕ, если это не всегда лучший
Джозеф Твойн
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.