Вопрос 43: Алгоритм светлячков.
Общее
В мире насчитывается около двух тысяч видов светлячков, большинство из которых обладают способностью светиться, производя короткие и ритмичные вспышки. Вспышки света производятся с помощью процесса биолюминесценции. Считается, что основными функциями таких вспышек являются привлечение особей противоположного пола и потенциальных жертв . Кроме того, сигнальные вспышки могут служить защитным механизмом предупреждения потенциальных хищников о том, что светлячок горек на вкус. Некоторые тропические светлячки могут синхронизировать свои мерцания, демонстрируя тем самым пример биологической самоорганизации . Интенсивность света, как функция расстояния от его источника, подчиняется закону обратных квадратов. Кроме того, интенсивность света падает с увеличением расстояния r вследствие поглощения света воздухом. Комбинация этих двух факторов определяет расстояние, на котором светлячки видят друг друга, равное ночью нескольким сотням метров. Известны два варианта популяционных алгоритмов оптимизации, инспирированных поведением светлячков, - алгоритм светлячков (Firefly algorithm) и алгоритм оптимизации роем, светлячков (Glowworm Swarm Optimization, GSO). Основное различие между firefly и glоwwоrm светлячками состоит в том, что вторые являются бескрылыми.
Сам алгоритм
Алгоритм светлячков (F-алгоритм) предложен в Кембриджском университете (Великобритания) в 2007 г. Янгом (X-Sh. Yang). Алгоритм использует следующую модель поведения светлячков: все светлячки могут привлекать друг друга, независимо от своего пола; привлекательность светлячка для других особей пропорциональна его яркости; менее привлекательные светлячки перемещаются в направлении более привлекательного светлячка; яркость излучения данного светлячка, видимая другим светлячком, уменьшается с увеличением расстояния между светлячками; если светлячок не видит возле себя светлячка ярче, чем он сам, то он перемещается случайным образом.
Примерно так будет выглядеть перемещение светлячков на двухмерной сферической функции