/LeapFrog

Primary LanguagePython

LeapFrog

Введение

Метод чехарды (leapfrog) – это прямой метод, означающий, что он использует только значения целевой функций, а не её производную (градиент или гессиан). Это делает его устойчивым ко многим поверхностным особенностям, которые путают или неверно направляют поиск на основе производных (перегибы, разрывы и т.д.).

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

Описание метода

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

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

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

Новые координаты для наименьшей точки можно вычислить:

𝑥𝑚∗=𝑥𝑀−𝑟𝑥( 𝑥𝑚−𝑥𝑀)

𝑦𝑚∗=𝑦𝑀−𝑟𝑦( 𝑦𝑚−𝑦𝑀),

Где 𝑥𝑚∗,𝑦𝑚∗− новые значения наименьшей точки, 𝑟𝑥,𝑟𝑦∈(0;1] – непрерывные независимые случайные величины.

Это «перепрыгивание» точек похоже на детей, играющих в чехарду, отсюда и название алгортима. Это также полицейский / военный термин для последовательного перемещения агентов к цели.