Как стать автором
Обновить

Увеличение поисковых способностей генетических алгоритмов с помощью прогнозирования временных рядов

Время на прочтение2 мин
Количество просмотров5K
На написание статьи, подтолкнула публикация Прогнозирование временных рядов.

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



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

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

Для увеличения ПС ГА применяются так называемые адаптивные алгоритмы. Их идея заключается в динамическом изменении различных параметров ГА.К адаптивным ГА также можно отнести так называемые статистические алгоритмы. Идея этих алгоритмов состоит в изучении статистики некоторых параметров ГА. Один из первых статистических алгоритмов — SANUX, который был предложен Янгом в 2002 году. Это бинарный ГА, основанный на предположении о сходимости значений аллелей.
Суть этого предположения проста и интуитивно очевидна: хромосомы сходятся к оптимальному решению на уровне аллелей, то есть каждое значение в хромосоме сходится к какому-то оптимальному варианту.
Я сказал, что предположение интуитивно очевидно, поскольку оно не доказано, но работает.
Кстати, доказанных для ГА практически применимых теорем можно пересчитать по пальцам одной руки, так что если кто-то чувствует в себе силы, то всегда есть шанс вписать себя в историю.

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

Если ряд для аллели является статистически управляемым, то на этом основании несложно предположить о значении аллели в следующей популяции. Если же ряд является неуправляемым, то существует несколько возможностей выбора значения аллели, которые практически не улучшают ПС, поэтому допустимо использовать значения аллелей из шаблонов с достаточно высокой приспособленностью.
При этом, для бинарного ГА достаточно около 15-20 поколений для сбора статистики. В случае же целочисленного ГА, чем больше поколений прошло, тем лучше.

Хочется отметить, что данный способ построения хромосом имеет смысл применять на задачах больших размерностей.

Так же с помощью анализа временных рядов аллелей можно динамически управлять операторами скрещивания (кроссинговер) и мутации, а так же изменять размер популяции. При этом достигается значительное увеличение ПС ГА.
Теги:
Хабы:
Всего голосов 29: ↑26 и ↓3+23
Комментарии4

Публикации

Истории

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
20 – 22 сентября
BCI Hack Moscow
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
24 сентября
Astra DevConf 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн