Следуя современным тенденциям разработал модуль многопараметрической оптимизации на основе генетического алгоритма 16 бит на параметр. При первом тестировании пытался найти отсчёты, соответствующие отсчётам некоторой известной функции на основе критерия минимума суммы квадратов отклонений и был искрене расстроен тем, что генетический алгоритм совершенно не спешит сходится при решении столь тривиальной задачи всего лишь на 100 отсчётов.
Ситуацию спасло применение элитарной стратегии. Была введена элитная особь, на которую не распространялась никакая селекция и которая забирала всякие значения параметров оптимизации, при условии, что это увеличивало функцию приспособленности. Был искренне расстроен тем, что о плохой сходимости генетического алгоритма в литературе предпочитают умалчивать. Генетический алгоритм с элитарной стратегией был применён для формирования реализаций эргодического случайного процесса по заданной плотности распределения вероятностей и корреляционной функции:
Для примера на рисунке: 300 отсчётов в реализации (параметров оптимизации), участвуют 6 особей и одна элитная, вероятность мутации 7%, среднее количество итераций 10, среднее время выполнения 4 секунды, условием остановки является превышение показателем качества уровня 95%.
Дальнейшие размышления привели меня к мысли о том, что использование элитарной стратегии ничем не отличается от элементарного подбора параметров оптимизации: действительно, случайно выбранные массивы данных ввергаются в ПСП - мясорубку, где трудно-предсказуемым образом изменяются, а элитарная особь выполняет функции отслеживания и сохранения хороших значений, которые в этой мясорубке могут появиться. Для подтверждения этой мысли я вообще исключил все операторы скрещивания и селекции, оставил только одну особь, которая в мутировала с большой вероятностью. Фактически такой подход означает случайный подбор параметров оптимизации. Такой алгоритм оказалася вполне работоспособным:
Для примера на рисунке: 300 отсчётов в реализации (параметров оптимизации), участвуют одна элитная особь, вероятность мутации 45%, среднее количество итераций 16, среднее время выполнения 4 секунды, условием остановки является превышение показателем качества уровня 95%.
Применение метода случайного подбора оказалось более эффективным в плане экономии временного ресурса и памяти при расчётах с более сложными функциями приспособленности, несмотря на бОльшее количество итераций.
В связи с чем я пришёл к выводу, что генетические алгоритмы - это лишь яркая упаковка в которой преподносится банальная идея о случайном подборе параметров оптимизации. Действительно, если написать в какой - либо книге, статье, отчёте, что задача решена методом случайного подбора - это будет воспринято, как что-то банальное, а если указать, что был применён генетический алгоритм, то это будет звучать громко, будто бы даже находиться на стыке наук, учитывать тотальный и непостижимый процесс эволюции, а сколько книг по генетическим алгоритмам останутся за бортом науки.
Поделитесь практикой применения генетических алгоритмов для решения задач многопараметрической оптимизации.
Кто-нибудь сравнивал эффективность генетического алгоритма и простейший ПСП- подбор параметоров?