Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к вопросам к экзамену ММО.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
5.23 Mб
Скачать
  1. Пчелиные алгоритмы (Люба)

Описание алгоритма

Метод пчелиной колонии относится к методам оптимизации, заимствовавшим основные принципы работы из живой природы. Этот метод сравнительно молодой, впервые предложен Д. Карбога в 2005 году. Суть метода заключается в моделировании поведения колонии пчел в поисках нектара.

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

Активные фуражиры летят к источнику нектара, обследуют соседние источники, собирают нектар и возвращаются в улей.

Разведчики обследуют местность вокруг улья в поисках новых источников нектара. Примерно 10% пчел-фуражиров в улье задействованы в качестве разведчиков.

В любой момент некоторое количество пчел-фуражиров неактивно. Они ждут неподалеку от входа в улей. Когда активные фуражиры и разведчики возвращаются в улей, то в зависимости от качества источника нектара, который они только что посетили, они могут исполнять виляющий танец (waggle dance) перед ждущими неактивными пчелами. Есть довольно веские доказательства того, что этот виляющий танец несет информацию неактивным пчелам о местонахождении и качестве источника нектара. Неактивные фуражиры извлекают из виляющего танца эту информацию об источниках нектара и могут становиться активными фуражирами.

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

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

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

Алгоритм повторяется до тех пор, пока не выполнится критерий останова.

Схема пошагового выполнения:

1 Инициализировать популяцию случайными решениями

2 Посчитать фитнесс популяции

3 Запомнить лучшее решение

4 Выбрать участки для исследования их окрестностей

5 Отправить пчел в окрестности выбранных участков (больше пчел на лучшие участки) и посчитать фитнесс

6 Отправить оставшихся пчел на случайный поиск и посчитать их фитнесс

7 Прейти на пункт 3

Многомерная оптимизация на основе метода пчелиной колонии

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

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

Т.к. реальные пчелы-разведчики при выборе источника нектара пользуются также генетическим материалом, то с помощью процедуры скрещивания можно смоделировать именно этот аспект поведения пчел. Агенты, участвующие в скрещивании, определяются на основе метода имитации отжига.

Работу алгоритма по нахождению минимума функции можно представить в виде следующих шагов:

Шаг 1. Задаются параметры метода

Шаг 2. Создаются начальные агенты разведчики

Шаг 2.1. Для каждого агента-разведчика случайным образом вычисляется решение – координата пчелки

Шаг 2.2. Для полученных решений рассчитывается полезность как значение оптимизируемой функции в найденных координатах

Шаг 2.3. Устанавливается счетчик итераций, количество разведчиков и начальная температура

Шаг 3. Выбираются рабочие агенты

Шаг 3.1. Выбирается лучшая пчелка с наибольшей полезностью

Шаг. 3.2. Выбирается некоторое количество пчел, для которых полезность их решения в определенной степени не хуже, чем наибольшая полезность

Шаг 4. Создание новых агентов на базе отобранных рабочих агентов и лучшего агента (скрещивание)

Шаг 4.1. Создание агентов на базе рабочих агентов. Координата нового агента вычисляется с учетом координаты рабочего агента и лучшей пчелы. Таким образом, новый агент попадает в окрестность решения старого агента.

Шаг 4.2. Создание агентов на базе лучшего агента аналогично.

Шаг 4.3. Корректировка координат новых агентов так, чтобы они не выходили за границы диапазона

Шаг 4.4. Рассчитываем полезность полученных решений для новых агентов

Шаг 4.5. Выбираем нового лучшего агента

Шаг 5. Моделирование «виляющего танца», в результате которого отобранные агенты могут исполнить танец, а неактивные фуражиры наблюдатели могут принять решение последовать за ними.

Преимущества методов пчелиной колонии для решения оптимизационных задач:

– не приводят к зацикливанию в локальных оптимумах, поскольку основаны на случайном поиске;

– поиск лучшего решения основывается на решениях агентов всей колонии пчел;

– применяются в динамических приложениях, поскольку способны адаптироваться к изменениям окружающей среды;

– используются для решения как дискретных, так и непрерывных задач оптимизации.

К недостаткам методов пчелиной колонии можно отнести:

– достаточно высокую итеративность;

– трудности теоретического анализа процесса получения решений, обусловленные тем, что поиск решения имеет стохастическую природу;

– априорную неопределенность времени сходимости, хотя сходимость гарантируется;

– зависимость метода от настройки параметров, подбираемых экспериментально.