ПОИСК КОСЯКОМ РЫБ (FISH SCHOOL SEARCH-FSS) Предыстория метода Алгоритм поиска косяком рыб (Fish School Search, FSS) был предложен в 2008 г. Професором Б. Фило и Л. Нето Университета Пернамбуку (Бразилия). FSS — это алгоритм поиска на основе популяции, вдохновленный поведением плавающих рыб, которые расширяются и сжимаются в поисках пищи. Carmelo Jose Albanez Bastos Filho Fernando B. de Lima Neto Federal University of Pernambuco Описание метода В текущем алгоритме FSS (Fish School Search) область поиска представляет собой аквариум, в котором плавают агенты (рыбы). Как известно, в условиях поиска пищи рыбы плавают косяком, поэтому в нашем случае конечной целью является смещение всех агентов в область экстремума функции. В общем случае схема работы алгоритма следующая: - Инициализация популяции (равномерное распределение рыб в аквариуме) - Миграция агентов к источнику пищи (аналогия: чем больший шаг агенты совершили в направлении области экстремума функции, тем больше еды они получили) - Завершение поиска Математическая составляющая метода Количество пищи в новом положении используется для вычисления нового веса в соответствии с уравнением: где t - время (в рассматриваемом случае это число итераций) , i количество агентов, )(tWi - вес агента, i x - позиция i-го агента и )]([txfi значение целевой функции в i-й позиции Оператор плавания можно разделить на следующие составляющие: - индивидуальное движение - коллективно-инстинктивное движение - коллективно-волевое движение. Индивидуальное движение Индивидуальное движение порождает новую позицию для дальнейшего исследования. Каждый агент принимает решение о виде отдельного движения; направление движения генерируется в случайном порядке. Длина пути определяется в зависимости от величины отдельного шага. Значение фитнес-функции рассчитывается исходя из положения, которое приобретает агент, когда он занимает новую позицию. Новое положение заменяет предыдущее, если приобретенная позиция лучше. Коллективно-инстинктивное движение Направление и длину коллективно-инстинктивного движения определяет уравнение где N - количество рыб в косяке и xind∆ - изменение позиции i-го агента во время его индивидуального движения Коллективно-волевое движение где rand - случайное число в интервале (0,1) и функция B(t) вычисляется как Пример 2 2 𝑦 = − 0.1𝑥 + 0.1𝑧 + 10 •Область поиска: от (-100;-100) до (100; 100) •Количество итераций: 100 •Размер популяции: 50 •Начальный индивидуальный шаг: 10 •Конечный индивидуальный шаг: 0.1 •Максимальный вес рыбы: 50 График изменения среднего значения выглядит следующим образом: В качестве практической реализации алгоритма поиска косяком рыб можно выделить задачу оптимизации движения квадрокоптеров. При адаптации алгоритма FSS к решению данной проблемы необходимо принять во внимание особенности движения квадрокоптеров: если один агент изменяет направление движения, то остальные квадрокоптеры также должны поменять траекторию полета. Основным компонентом защиты от столкновений является двойная зона безопасности вокруг каждого квадрокоптера. Зона безопасности имеет цилиндрическую форму: внутренняя зона ограничивает область, в которую квадрокоптеры не могут влетать, она также позволяет избежать столкновений и взаимных помех от воздушного потока из роторов.