Научная статья на тему 'Применение алгоритма муравьиной колонии для решения задачи календарного планирования'

Применение алгоритма муравьиной колонии для решения задачи календарного планирования Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
126
39
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
алгоритм муравьиной колонии / задача календарного планирования / комбинаторная оптимизация / ant colony algorithm / job shop problem / combinatorial optimization

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Данил Буховцев

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Application of the ant colony algorithm for solving the job shop problem

The ant colony algorithm was first introduced by M. Dorigo, V. Maniezzo and A. Colorni in 1991. This algorithm is based on the behavior of a real ant colony when searching for food. The main area of application of the algorithm is the problem of combinatorial optimization. This paper describes the implementation of the algorithm, setting the parameters and considers its effectiveness in solving the job shop problem.

Текст научной работы на тему «Применение алгоритма муравьиной колонии для решения задачи календарного планирования»

Application of the ant colony algorithm for solving the job shop problem

Danil D Bukhovtsev

Siberian Federal University, Krasnoyarsk, Russian Federation E-mail: wav9@yandex.ru

Abstract. The ant colony algorithm was first introduced by M. Dorigo, V. Maniezzo and A. Colorni in 1991. This algorithm is based on the behavior of a real ant colony when searching for food. The main area of application of the algorithm is the problem of combinatorial optimization. This paper describes the implementation of the algorithm, setting the parameters and considers its effectiveness in solving the job shop problem.

Keywords: ant colony algorithm, job shop problem, combinatorial optimization

УДК 004.021

Применение алгоритма муравьиной колонии для решения задачи календарного планирования

Данил Денисович Буховцев

Сибирский федеральный университет, Красноярск, Российская Федерация

E-mail: wav9@yandex.ru

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

Ключевые слова: алгоритм муравьиной колонии, задача календарного планирования, комбинаторная оптимизация

1. Введение

Многочисленные исследования колонии муравьев показывают, что ее поведение строго структурированно. Зная, что возможности отдельно взятого муравья ограничены (т.е. один муравей не способен напрямую общаться с другими собратьями), становится любопытно узнать, как же взаимодействуют муравьи, чтобы добиться такого организованного поведения всей колонии. Одним из способов взаимодействия является особое поведение муравьев в процессе поиска пропитания [1-4]. В процессе поиска каждая особь исследует окрестности вокруг муравейника, а затем возвращается в гнездо, чтобы сообщить об источнике пищи другим муравьям колонии. Для этого муравьи используют косвенный способ общения с помощью феромона, химического вещества, которое они могут откладывать для привлечения других муравьев. Каждый муравей, найдя источник пищи, откладывает часть феромона на обратном пути в гнездо, чтобы указать маршрут остальным. Накопленный феромон служит в качестве распределенной памяти, которую используют все остальные муравьи, а также помечает наиболее посещаемые маршруты между домом и источником пищи.

Муравьи, встречающие препятствие между муравейником и источником пищи, первоначально выбирают случайное направление движения. Как только на пути отложится часть феромона, это повлияет на выбор следующего муравья, столкнувшегося с тем же

препятствием, поскольку путь с большим количеством феромона с точки зрения вероятности имеет больший вес и привлекательность (рисунок 1).

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

Вдохновленный этим поведением, М. Дориго разработал алгоритм, названный муравьиным алгоритмом, который использует популяцию агентов, взаимодействующих посредством распределённой памяти, и который может быть применен к комбинаторным задачам оптимизации [1-4]. В данной работе представлено применение алгоритма для решения задачи календарного планирования. Целью работы является получение оптимального набора входных параметров алгоритма, позволяющего получать решения хорошего качества. Содержание статьи выглядит следующим образом: во втором разделе представлено описание муравьиного алгоритма, в третьем разделе описывается задача календарного планирования, а в четвертом разделе рассматривается вопрос о том, как применить алгоритм для решения поставленной задачи. В пятом разделе описывается процесс поиска оптимального набора параметров. В шестом разделе представлены полученные с применением алгоритма результаты. И, наконец, в седьмом разделе сделаны выводы по работе.

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

Рисунок 1. Положительная обратная связь с накопленным и испарившимся феромоном сходится к минимальному расстоянию пути.

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

решения. Каждый муравей выбирает следующую вершину для посещения в соответствии с правилом перехода:

Ч]

Ра (0 =

тм(9]в-

(1)

Где Т£у - количество феромона между вершиной г и вершиной у;

^¿у - эвристическое расстояние между вершиной г и вершиной у; р£у - вероятность перехода из вершины г в вершину у.

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

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

Ч}(* + п) = (1 - р) ■ Т;у(0 + р ■ АТц(1 + п), (2)

( о

Дт£ ,( t + п) = { fevualuatíon(m¿ri) , (3)

10, в противном случае

Где р - коэффициент испарения;

Q - количество феромона на единицу расстояния.

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

3. Проблема календарного планирования

В данной статье рассматривается стандартная модель задачи календарного планирования с п задачами и т станками, обозначаемой следующим образом:

р

]

р

п/т/в/Стах (4)

Параметр О указывает, что задания связаны с технологическими правилами

производства, описывающими порядок их обработки станками. Порядок обработки

указывается в матрице Т. Пример такой матрицы представлен ниже:

\М1 М2 М3л ( ,

[М2 М3 М1\ ( )

Строка матрицы представляет собой задание, указывающее на последовательность обработки станками. Каждый элемент матрицы Т называется операцией. Время обработки каждой операции задается матрицей Р:

\КОц) - ^01т)

Т

= Р

и

р =

(6)

Х(0п1) ■■■ 1{0пт).

Матрицы Т и Р вместе определяют проблему календарного планирования. Параметр Стах обозначает минимально возможное время обработки в цехе и используется для минимизации с помощью функции оценки. Значение Стах эквивалентно производственному времени, которое требуется для завершения всех работ с соблюдением наложенных ограничений на использование станков.

4. Применение алгоритма

На первом шаге необходимо представить входные данные в виде связного графа. Для этого вернемся к технологической матрице Т, которая была рассмотрена в предыдущем разделе. В [1] была предложена идея представления данных в виде графа. На рисунке 2 приведен пример графа, построенный на основе модели 2/3/О/Стах.

Рисунок 2. Представление модели 2/3/G/Cmax в виде графа.

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

V = п * т + 1 (7)

Каждый муравей начинает построение маршрута из добавленной нулевой вершины. Количество ребер графа определяется по следующей формуле:

+ (8)

Где |0| - общее количество операций.

Каждое ребро связано с парой значений [т^, d^}, представляющие количество феромона и эвристическое расстояние между вершинами. В качестве эвристического расстояния между вершинами i и j в данной задаче можно использовать время обработки соответствующей операции, представленное в матрице P. Для данной эвристики важным замечанием является то, что в случае двунаправленных ребер их значения несимметричны. Это означает что расстояние от вершины i до вершины j не всегда равно расстоянию от вершины j до вершины i. Следовательно, количество феромона на двунаправленных ребрах также должно быть определено для обоих направлений. Пространственная сложность алгоритма определяется следующим образом:

SC = 0([п * т][п * т]) (9)

Кроме того, алгоритм должен гарантировать, что предлагаемые решения являются возможными. Для этого система должна проверять, что каждый муравей выбирает вершины для посещения в порядке, не нарушающем порядок обработки операций. Это реализовано с помощью идеи, описанной К. Бирвитом в [5], где предлагается использование списков. Таким образом, каждый муравей будет иметь 3 списка:

• G - список, который содержит еще не посещенные вершины;

• S - список, который содержит узлы, разрешенные для посещения в текущей итерации;

• Tabu - список, содержащий уже посещенные вершины.

Первоначально все муравьи будут помещены в вершину с номером 0, и, если обратиться к примеру на рисунке 2, списки для к муравья будут выглядеть следующим образом:

Gk = (0ц, 012,013, 021,022, О23}, (10)

Sfc = [0n,021), (11)

Tabuk = [} (12)

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

ТС = 0(ЫС *1*[п*т]), (13)

где ЫС - количество циклов;

I - количество муравьев.

5. Настройка параметров

Параметры алгоритма можно разделить на две независимые подгруппы: те, которые влияют на выбор вершины пре переходе (а и в), и те, которые определяют обновление феромона (коэффициент испарения р и количество муравьев I). Параметры Q (количество феромона на единицу расстояния) и то не оказывают большого влияния на производительность алгоритма. Для начала необходимо найти такой набор параметров {а, в}, при котором алгоритм сходится к заранее известному оптимуму выбранной модели. Для этого была выбрана модель 6/6/О/Стах, предложенную Д. Мутом и Г. Томпсоном, взятую из [6], с оптимумом Стах = 55. Значение коэффициента испарения и количество муравьев оставались константой и равнялись р = 0.01 и I = 36 соответственно. Результаты запусков приведены в таблице 1.

Таблица 1. Количество циклов, необходимое для достижения оптимума при различных значениях а и в._

ß а = 0 а = 1 а = 2 а = 3 а = 4

0 >1000 >1000 >1000 >1000 >1000

1 >1000 >1000 >1000 >1000 >1000

2 >1000 >1000 >1000 >1000 >1000

3 >1000 >1000 >1000 >1000 >1000

4 >1000 614 >1000 150 >1000

5 >1000 326 442 249 >1000

6 >1000 437 314 202 228

7 >1000 283 247 148 267

8 >1000 310 260 170 121

9 >1000 293 187 164 96

10 >1000 186 203 132 96

В случае, когда а = 0 и р = 0, каждый муравей выбирает вершину для перехода случайным образом, таким образом вероятность нахождения алгоритмом оптимума крайне мала. В случае, когда а = 0 и в принимает любое значение, муравьиная колония не обращает внимания на уровень феромона, и каждый муравей выполняет эвристический жадный поиск по вероятности, таким образом алгоритму требуется больше тысячи итераций для нахождения оптимума. В случае, когда @ = 0 и а принимает любое значение возникает аналогичная ситуация: муравей не принимает во внимание эвристическое расстояние, а сосредотачивается лишь на уровне феромона на ребрах. При р = 10 и увеличении значения параметра а количество итераций для нахождения оптимума уменьшается. Данная тенденция сохраняется и при а > 4 (таблица 2).

Таблица 2. Количество циклов, необходимое для достижения оптимума при различных значениях а и @ = 10.

р а = 5 а = 6 а = 7 а = 8 а = 9 а = 10

10 79 93 73 77 50 49

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

Рисунок 3. Количество циклов, необходимое для достижения оптимума при различных значениях р.

В случае, когда р = 0.1, количество циклов, требуемое для нахождения оптимума, максимально. Это связано с тем, что при слишком высокой скорости испарения только ребра, входящие в маршрут с наименьшей длиной, получают обновление феромона каждый цикл. У остальных ребер феромон быстро уменьшается до нуля с увеличением числа циклов из-за испарения. С каждым новым циклом этот эффект усиливается, и муравьи будут уделять большее внимание ребрам, получающим обновление феромона, ища в небольшой области локального минимума. Рисунки 4-5 демонстрируют уровень феромона после прохождения 25 циклов при оптимальном и худшем значениях коэффициента р.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Рисунок 4. Уровень феромона после 25 циклов при р = 0.01.

Modern Innovations, Systems and Technologies, 2022, 2(1)

Рисунок 5. Уровень феромона после 25 циклов при р = 0.1.

Влияние количества муравьев в колонии на производительность алгоритма, представлено на рисунке 6.

Рисунок

количества

6. Влияния муравьев на

скорость сходимости.

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

6. Результаты

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

На рисунке 7 приведено сравнение функции оценки при различных значениях параметров.

О 5 10 15 20 25 30 35 40 45 50

Количество циклов, п*5 Рисунок 7. Значения функции оценки при

различных входных параметрах.

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

(1), если п>р,

1

р£у =-—г, в противном случае,

где п - случайное число из отрезка [0..1];

v - случайное число из отрезка [0..1].

Влияние различных значений вариации приведено на рисунке 8.

Рисунок 8. Влияние оператора

вариации положительно сказывается на результатах поиска.

(14)

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

Алгоритм был протестирован на двух известных задачах, представленных в [6]. Первая модель 10/10/0/Сшах была представлена вышеупомянутыми деятелями Д. Мутом и Г. Томпсоном с оптимумом Стах = 930. Вторая модель была 20/10/О/Стах представлена С. Лоуренсом с оптимумом Стах = 1218. Полученные с помощью алгоритма результаты для различных значений параметров е и V представлены в таблице 3.

Таблица 3. Результаты работы алгоритма при а = 10 и @ = 10.

% в пределах оптимума

Модель Cmax e v % в

10/10/G/ Cmax 1052 1 0 13

10/10/G/ Cmax 1006 1 1 8

10/10/G/ Cmax 1063 1 10 14

10/10/G/ Cmax 1019 2 2 9.5

10/10/G/ Cmax 1054 3 1 13.3

10/10/G/ Cmax 1041 4 3 12

20/10/G/ Cmax 1604 1 0 31

20/10/G/ Cmax 1607 1 1 31.9

20/10/G/ Cmax 1535 3 1 26

7. Заключение

В данной работе был продемонстрирован способ решения проблемы календарного планирования с применением муравьиного алгоритма. Цель работы заключалась в том, чтобы исследовать поведение алгоритма и качество полученных решений при различных значениях входных параметров. Параметры а и в, как уже было сказано ранее, влияют на скорость сходимости алгоритма и конечный результат работы. Чтобы алгоритм сходился к удовлетворительному решению очень важно подобрать оптимальное значение коэффициента испарения р. Это направит поиск в предпочтительные области в пространстве поиска и уменьшит вероятность попадания в ловушку локального минимума. Введение параметра вариации V (аналогично оператору мутации в генетических алгоритмах) позволяет исследовать субоптимальные области пространства поиска, не теряя при этом способности алгоритма выходить из тупиков. Муравьиный алгоритм был протестирован на некоторых

более сложных тестовых задачах. Для модели 10/10/G/Cmax было зафиксировано отклонение от оптимума на 8%, а для модели 20/10/G/Cmax - на 26%.

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

Список литературы

[1] Dorigo, M The Ant System: Optimization by a colony of cooperating agents / M. Dorigo,

V. Maniezzo, A. Colorni // IEEE Trans. Syst, Man, Cybern. - 1996. - № 26(2). - P. 29-41.

[2] Dorigo, M. Ant colony System: A Cooperative Learning Approach to the Travelling Salesman

Problem / M. Dorigo, L. M. Gambardella // IEEE Trans. On Evolutionary Computation. -1997. - № 1(1).

[3] Dorigo, M. Distributed Optimization by Ant Colonies / M. Dorigo, V. Maniezzo, A. Colorni //

Proceedings of ECAL91 - European Conference on Artificial Life, Elsevier Publishing. - 1991. - P. 134-142.

[4] Dorigo, M. An Investigation of some properties of an Ant Algorithm / M. Dorigo, V. Maniezzo,

A. Colorni // Proceedings of the Parallel Problem Solving from Nature Conference (PPSN92), Brussels, Belgium, Elsevier Publishing. - 1992. - P 509-520.

[5] Bierwith, C. A Generalized Permutation Approach to Job Shop Scheduling with Genetic

Algorithms / C. Bierwith // Department of Economics, University of Bremen, Germany. -1995. - № 17. - P. 87-92.

[6] Job Shop Scheduling Benchmark, OR-library. hhtp://mscmga.ms.ic.ac.uk/jeb/

orlib/jobshopinfo.html.

i Надоели баннеры? Вы всегда можете отключить рекламу.