Обзор современных эвристических методов оптимизации

Предисловие


Доброго времени суток, дорогие Хабровчане.

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

Гармонический поиск (Harmony Search)


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

Искусственные иммунные системы (Artificial Immune Systems)


Как ясно из названия, методы будут имитировать принципы иммунологических теорий. На данный момент к этому классу алгоритмов относят следующие:
  • алгоритмы клональной селекции,
  • алгоритм негативного отбора,
  • иммунные сети,
  • алгоритмы дендрических клеток.

Гравитационный поиск (Gravitational Search)


Предложенный Рашеди с соавторами в 2009 году алгоритм гравитационного поиска (GS) инспирирован поведением тяжелых тел при их гравитационном взаимодействии. Данный алгоритм является развитием алгоритма оптимизации центральной силой (CFO). Главное отличие GS — его стохастическая природа (в отличие от детерминированности CFO).

Разбросанный поиск (Scatter Search)


В основе метода разбросанного поиска (scatter search) лежит обработка множества элементарных исходов, состоящих из найденных хороших точек. Фактически обработка заключается в комбинации, улучшении и обновлении множества элементарных исходов. В основе данного метода лежат пять операций:
  • метод генерации разнообразных решений,
  • метод улучшения решений,
  • метод обновления множества элементарных исходов,
  • метод генерации подмножеств,
  • метод комбинации решений.
Таким образом, метод работает следующим образом: генерируются начальные решения, из которых создается множество элементарных исходов. Далее начинается итеративная часть: генерация подмножеств, комбинация решений, улучшение полученных решений, обновление множества элементарных исходов. Итерации заканчиваются, когда за цикл множество элементарных исходов не обновилось ни одним новым элементом.

Метод перекрестной энтропии (Cross-Entropy Method)


Впервые данный метод был предложен Рубенштейном в 1997 году. Изначально он был разработан для решения задач комбинаторной оптимизации, хотя позже был применен и для оптимизации непрерывных функций. Основная особенность метода заключается в апробировании точек исследуемого на оптимум пространства и аппроксимации распределения хороших точек (обычно нормальным законом). На каждом шаге алгоритма в соответствии с текущим распределением генерируются случайные точки, которые впоследствии участвуют в корректировке распределения. По ходу выполнения алгоритма, распределение становится все более «чистым» и устоявшимся, что впоследствии позволяет выбрать приближенное решение задачи оптимизации.

Послесловие


Данный список методов, естественно, не является исчерпывающим. Существует еще огромное количество техник оптимизации, каждая из которых обладает своими особенностями. Да что там говорить, новые алгоритмы появляются почти каждый день. Именно освещением новейших методов и их прикладным применением хотелось бы заняться.
AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 8

    +3
    Статья была бы гораздо полезнее, если бы в ней были ссылки на описание методов или хотя-бы английские названия, позаоляющие погуглить описания.
      0
      Спасибо за замечание. Все исправлено.
      +2
      Извините, немного отойду от темы.
      Доброго времени суток, дорогие Хабаровчане.

      Не путайте Хабр и Хабаровск :)
        0
        Каюсь — каюсь :)
        +2
        хотелось бы видеть ссылки на работы и/или на описание алгоритмов в деталях.
        Было бы неплохо продемонстрировать на примерах и указать области применения.
        А в целом интересно.
          0
          Я в будущем и собирался останавливаться на каждом методе подробнее. Хотелось просто узнать, будет ли такая тема интересна читателям или нет. В будущем учту все замечания.
            0
            ну свою аудиторию вы всегда тут найдете.
              0
              Буду на это надеяться.

        Only users with full accounts can post comments. Log in, please.