1. Дипломная работа
студента 524 группы
Свешникова Сергея Александровича
Научный руководитель:
Доцент,к.ф.-м.н. Пильщиков Владимир Николаевич
2. • Муравьиный алгоритм
(алгоритм оптимизации
подражанием муравьиной
колонии, ant colony
optimization, ACO) — один из
эффективных
полиномиальных алгоритмов
для нахождения
приближённых решений
сложных комбинаторных
задач.
3. Реализовать алгоритма для задачи поиска
максимального независимого множества
вершин в графе (МНМ задача)
Определить оптимальных параметров
алгоритма для данной задачи
Сравнить эффективности алгоритма с
другими алгоритмами, применяющимися
для решения данной задачи
4. Задача о независимом
множестве относится к классу
NP-полных задач, в области
теории графов. Множество
вершин графа называется
независимым, если никакие две
вершины этого множества не
соединены ребром. Другими
словами, индуцированный этим
множеством подграф состоит из
изолированных вершин
5. Оригинальная идея исходит от
наблюдения за муравьями в
процессе поиска кратчайшего пути от
колонии до источника питания.
• Первый муравей находит
источник пищи (F) любым
способом (а), а затем
возвращается к гнезду (N),
оставив за собой тропу из
феромонов (b).
• Затем муравьи выбирают один из
четырёх возможных путей, затем
укрепляют его и делают
привлекательным.
• Муравьи выбирают кратчайший
маршрут, так как у более длинных
феромоны сильнее испарились.
6. Пока (условия выхода не выполнены)
• 1. Создаём муравьёв
• 2. Ищем решения
• 3. Обновляем феромон
• 4. Дополнительные действия{опционально}
7. 1. Создаём муравьёв
• Стартовая точка, куда помещается муравей,
зависит от ограничений, накладываемых
условиями задачи. Потому что для каждой задачи
способ размещение муравьёв является
определяющим. Либо все они помещаются в одну
точку, либо в разные с повторениями, либо без
повторений.
• На этом же этапе задаётся начальный уровень
феромона. Он инициализируется небольшим
положительным числом для того, чтобы на
начальном шаге вероятности перехода в
следующую вершину не были нулевыми.
8. 2. Ищем решения
• Вероятность перехода из вершины i в вершину j
определяется по следующей формуле
9. 3. Обновляем феромон
• Уровень феромона обновляется в соответствии с приведённой
формулой
4. Дополнительные действия
• Обычно здесь используется алгоритм локального поиска, однако
он может также появиться и после поиска всех решений.
10. Для задачи МНМ не существует путей между
вершинами, поэтому идея «чем больше
феромона на ребре, тем более оно
предпочтительно» трансформируется в «чем
больше феромона на вершине, тем более она
предпочтительна».
16. Реализован муравьиный алгоритм для
задачи поиска в графе максимально
независимого множества
Экспериментально найдены оптимальные
параметры алгоритма
Проведено сравнение скорости работы с
некоторыми другими алгоритмами,
применяющимися для решения данной
задачи
17. Реализация в Microsoft Visual Studio
• 5 классов
• Около 1500 строк кода на языке С#
Оптимизация алгоритма
• Возможность распараллеливания