- PVSM.RU - https://www.pvsm.ru -
Всем доброго времени суток. Представляю вашему вниманию следующую статью из серии освещения новых и малоизвестных эвристических методов оптимизации. Сегодняшний пост своим появлением обязан Эсмату Рашеди, Исааку Ньютону и гравитации.

Гравитационный поиск (GS) является очень молодым алгоритмом. Появился он в 2009 году и являлся логическим развитием метода центральной силы. Основу GS составляют законы гравитации и взаимодействия масс. В принципе, данный алгоритм похож на методы роя частиц (Particle Swarm Optimization — PSO), так как базируется на развитии многоагентной системы.
GS оперирует двумя законами:
Имея в арсенале эти два закона, метод работает по следующему плану:
. Кроме этого, есть область
, в которой генерируются начальные позиции частиц. В соответствии с планом работы GS, начинается все с генерации системы частиц
, где
— максимальное количество частиц в системе.
Сила, действующая в момент времени
на
-ю частицу со стороны
-й, рассчитывается по формуле
, где
— активная гравитационная масса
-й частицы,
— пассивная гравитационная масса
-й частицы,
— гравитационная постоянная в соответствующий момент времени,
— малая константа,
— евклидово расстояние между частицами.
Чтобы алгоритм был не детерминированным, а стохастическим, в формулу расчета результирующей силы
добавляются случайные величины
(равномерно распределенные от нуля до единицы). Тогда результирующая сила равна
.
Посчитаем ускорения и скорости:
, где
— операция покомпонентного умножения векторов,
— случайная величина, равномерно распределенная от нуля до единицы,
— инертная масса
-й частицы.
Остается пересчитать положение частиц. Сделать это очень просто:
.
К текущему моменту осталось два вопроса: как изменяется гравитационная постоянная и как рассчитывать массы частиц. Значение гравитационной постоянной должно определяться монотонно убывающей функцией, зависящей от начального значений постоянной
и момента времени
, т.е.
.
Например, можно брать следующие функции:
, где
:
,
, где
:
,
, где
:
.
Теперь можно приступить к заключительной части повествования: к пересчету масс. В простейшем случае все три массы (пассивная, активная и инерциальная) приравниваются:
. Тогда значение масс можно пересчитать по формуле:
, где
.
Конечно, можно рассчитывать массы исходя из их физического значения, тем не менее Рашеди об этом не говорит (и никто из авторов, которых я смог найти).
Плюсы
Минусы
На этом, пожалуй, знакомство с методом гравитационного поиска стоит закончить. Очень надеюсь, что данный пост получился лучше предыдущего. Остается лишь проголосовать за тему следующего поста.
Автор: wol4aravio
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/algoritmy/44008
Ссылки в тексте:
[1] гармоническим поиском: http://habrahabr.ru/post/193994/
[2] Работа: http://www.sciencedirect.com/science/article/pii/S0020025509001200
[3] статья: http://is.ifmo.ru/works/2012/karpenko-population-algorithms.pdf
[4] Подборка: http://www.academia.edu/Documents/in/Gravitational_Search_Algorithm
[5] Код для Mathlab'а: http://www.mathworks.com/matlabcentral/fileexchange/27756-gravitational-search-algorithm-gsa
[6] Источник: http://habrahabr.ru/post/194674/
Нажмите здесь для печати.