ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ ОМСКИЙ НАУЧНЫЙ ВЕСТНИК №2 (110) 2012
УДК 519.87
Л. Г. ЛУКЬЯНОВ
Омский научно-исследовательский институт приборостроения
РАЗРАБОТКА И ИССЛЕДОВАНИЕ ЭВРИСТИЧЕСКИХ АЛГОРИТМОВ ДЛЯ РЕШЕНИЯ ЗАДАЧИ ПЛАНИРОВАНИЯ ПРОИЗВОДСТВА СЛОЖНЫХ ИЗДЕЛИЙ_______________________________
В данной работе приведены постановка задачи планирования мелкосерийного производства сложных изделий и соответствующая модель целочисленного линейного программирования. Предложены новые эвристические алгоритмы решения задачи: вариант «жадного» алгоритма 02, алгоритм локального поиска и алгоритм муравьиной колонии АС2. Проведены вычислительные эксперименты, которые показали высокую эффективность указанных алгоритмов. Наиболее точным из рассмотренных оказался алгоритм муравьиной колонии АС2. Ключевые слова: задача планирования производства, модель целочисленного линейного программирования, эвристические алгоритмы.
Введение
Задача планирования мелкосерийного производства сложных изделий возникла на одном из машиностроительных предприятий [1]. Решение этой задачи имеет большое практическое значение, так как оно позволит уменьшить общее время выполнения заказов, увеличить загрузку мощностей и повысить эффективность использования оборудования.
Для решения подобных задач представляется достаточно естественным использование задач теории расписаний, моделей и методов дискретной оптимизации [2 — 5]. Задачи теории расписаний, как правило, являются NP-трудными и требуют построения эвристических алгоритмов, которые могут быть использованы в прикладных исследованиях. Большой вклад в исследование задач теории расписаний внесли Гордон B.C., Сервах В.В., Севастьянова C.B., Та-наев B.C., Шкурба В.В. и многие другие ученые.
Для решения рассматриваемой задачи нами были построены модели целочисленного линейного программирования, разработаны эвристические алгоритмы, проведены вычислительные эксперименты [1]. В данной работе предлагаются новые эвристические алгоритмы, такие как «жадный» алгоритм, локального поиска и муравьиной колонии, проведены их экспериментальные исследования и сравнение с описанными ранее алгоритмами.
1. Постановка задачи
Предположим, что имеется портфель заказов на производство изделий с директивными сроками их выполнения. Каждое изделие состоит из множества деталей и сборочных единиц (далее ДСЕ). Состав ДСЕ определяется конструкторско-технологической документацией. При этом сборочные единицы могут состоять из других сборочных единиц.
Для производства ДСЕ известен набор операций, заданный технологическим процессом, при выполнении которых учитываются следующие ограничения:
— все операции выполняются без прерываний;
— операция имеет директивный срок;
— каждая операция осуществляется только на одном станке;
— станки имеют график работы и индивидуальные перерывы, связанные с плановыми ремонтами, профилактикой;
— операции распределены по типам, в зависимости от видов и сложности работ;
— для каждого станка задан набор типов операций, которые он может выполнить;
— станки имеют индивидуальные показатели производительности для каждого типа операций;
— некоторые станки взаимозаменяемые, т.е. они могут выполнять одинаковые наборы типов операций.
Необходимо составить расписание выполнения операций на станках при указанных условиях так, чтобы общее время выполнения всех заказов было минимальным с соблюдением директивного срока каждого заказа.
Для рассматриваемой задачи была разработана следующая модель целочисленного линейного программирования (ЦАП) [1].
Рассматривается портфель заказов, включающий т операций, которые требуется выполнить в определенной последовательности на п станках. Отметим, что здесь и далее 1=1,...,т, ]=!,..,п, к=1,...,т. Для построения модели ЦАП используются следующие обозначения:
v¡ — нормативное время выполнения операции г;
(1. — директивный срок операции г;
дг]. — коэффициент эффективности, который равен отношению времени выполнения операции г на станке у к нормативному времени выполнения операции г;
В — множество перерывов, состоящее из пар (гу), где г — операция, являющаяся перерывом на станке у, и Сг — время начала перерыва г;
С=<У,Е> — ориентированный граф с множеством вершин Vи множеством дуг Е. Множество вер-
шин соответствует операциям, а множество дуг определяет очередность выполнения операций в соответствии с технологическим процессом.
H — достаточно большое число, которое можно взять равным суммарному времени выполнения всех операций на худших станках.
Введем переменные задачи: f — время выполнения ^цорт(|>еля заказов; xk, y]k — булевы переменные и Tjk , Tjk — вещественные переменные. Рассмотрим произвольную перестановку всех операций. Тогда xk=1, если операция i стоит на месте к в указанной перестановке, xik=0 — иначе. Переменная Ук=1, если операция, стоящая на месте к в указанной перестановке, выполняется на станке j, yjk=0 — иначе. Tijk , Tjk — время начала и окончания операции i на станке j, если она будет на месте к в указанной перестановке.
Тогда модель ЦЛП можно записать следующим образом:
F f ® min
Tijk £ f i,k = m; j = n;
X xik = 1 k
X xik =1
i = 1,...,m; k = 1,...,m; k = 1,...,m;
X xik = 1 k
Tijk > Tjjk + vi 4ij (xik + yjk-1) i'k =1...............m; і = 1'..n;
Ti’,j,k + 1 - Trjk - H(2 - xrk - Yjk)
i,r = 1,..., m; і = 1,...,n;k = 1,..., m - 1;
Tf,i,k+1 - Tijk i =1’...’ m;j =1'...' n;k =1'...'m -1;
X (Xrh - xih) > 0 h<k
(r,i) є E;k = 1,...,m;
F
i,i,k+1 > Truk - H(2 - xrk - yuk)
(r,i) є E; j,u = 1,...,n; k = 1,...,m - 1;
Tjk - H(1 - xk) < d Tijk > C<x<,
ixik
Tijk - H(1 - Xik) < Ci
i, k = 1,... , m; і = 1,..n; (i, і) є B;k = 1,..., m;
i, k = 1,... , m; і = 1,..n;
{,т!]к,т/к е К+''х1к'У]к е {0,\};г,к = 1,...,т; ] =
Данная модель подробно описана в работе [1] и может быть использована для разработки точных и приближенных алгоритмов решения задачи. Однако на практике задачи имеют очень большую размерность (несколько сотен тысяч и более переменных) и получение оптимального решения очень трудоемко. Поэтому для решения рассматриваемой задачи предлагаются эвристические алгоритмы.
2. «Жадные» алгоритмы
Алгоритм С1, описанный работе [1], основан на представлении операций в виде дерева, которое разбито на уровни, задающие очередность размещения операций на станках. Для учета директивных сроков некоторые поддеревья должны быть сдвинуты на более низкие уровни относительно поддеревьев с более поздними директивными сроками.
В данном алгоритме в первую очередь по станкам размещались операции нижнего уровня, затем следу-
ющего и т.д., до корня дерева. Таким образом, получается последовательность распределения операций по станкам. Операции по станкам распределялись таким образом, чтобы время окончания очередной операции было минимальным, а при определении времени начала учитывался момент окончания операций, предшествующих данной по технологическому процессу и момент окончания выполнения уже распределенных по станкам операций и индивидуальные перерывы работы станков. Трудоемкость данного алгоритма соответствует порядку О(пш).
В этой работе предлагается алгоритм С2, в котором каждой вершине 1 был приписан вес, равный ее нормативному времени выполнения. И теперь можно было измерить расстояние от любой вершины до корня дерева. Таким образом, для получения последовательности операций можно не разбивать дерево на уровни, а выбирать наиболее удаленную вершину. Распределение операций по станкам производится так же, как и в алгоритме С1.
3. Метод локального поиска
Идея этого метода заключается в том, что для каждого решения задачи оптимизации хеХ определяется окрестность близких решений А(х) и на каждой итерации вычислительного процесса при заданном текущем решении х делается попытка найти в его окрестности решение, которое имело бы лучшее значение целевой функции. Если такое решение удается найти, оно само становится текущим решением, если нет — поиск заканчивается.
Для рассматриваемой задачи ранее был построен следующий алгоритм локального поиска. Множеством решений задачи рассматривалось все множество распределений операций на станках и очередности выполнения операций на станках, представленное в виде матриц распределения X, в строках которых которой располагались операции для некоторого станка в некотором порядке. Например, х/=к, если операция к распределена на станок I и выполняется /-ой на данном станке, а если на станке I нет операции, выполняемой /-ой по очереди, то х//=0. К текущему решению задачи применялись следующие преобразования:
1. Перемещение операции на любое другое место.
2. Перестановка двух произвольных операций местами.
В качестве начального решения выбиралось произвольное допустимое решение. После того как над текущим решением были произведены преобразования обоих типов, выбирается наилучшее решение, оно становиться текущим. Над ним снова производятся преобразования и так далее, до тех пор, пока нельзя будет получить с помощью указанных преобразований решения лучшего, чем текущее. Это алгоритм наискорейшего спуска Ь81, результаты исследования которого содержатся в работе [1].
В алгоритме Ь81 рассматривается большая окрестность точек (порядка 0(т2)), после чего проверяется их допустимость и вычисляется значение целевой функции (порядка О(пт) операций), то есть одна итерация алгоритма имеет трудоемкость 0(пт3). Данная трудоемкость невелика, но для размерностей п~100, а т~10000 она существенна, поэтому был предложен алгоритм Ь82, в котором переход из текущего решения происходил не в наилучшее в окрестности, а в первое улучшающее решение. Это ускорило процесс перехода от окрестности одного решения к окрестности другого, при этом эффективность алгоритма не ухудшилась [6].
ОМСКИЙ НАУЧНЫЙ ВЕСТНИК №2 (110) 2012 ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ
ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ ОМСКИЙ НАУЧНЫЙ ВЕСТНИК №2 (110) 2012
Сравнение эффективности алгоритмов относительно в!
Алгоритм Количество операций
500 1000 2000 5000
% % сек. % % сек. % % сек. % % сек.
С2 7,5 0 5,0 0.2 3,1 0,5 1,4 1,5
ЬБ2(С2) 9,7 70 8,0 530 3,6 660 1,5 850
АС2 11,6 40 9,1 110 4,3 150 2,0 420
Ь82(АС2) 12,4 55 9,6 240 4,5 500 2,1 1380
4. Алгоритм муравьиной колонии
Алгоритм муравьиной колонии представляет собой вероятностную, «жадную» эвристику, где вероятности устанавливаются, исходя из информации о качестве решения, полученной из предыдущих решений. Они могут использоваться как для статических, так и для динамических комбинаторных оптимизационных задач [7].
Идея алгоритма муравьиной колонии — моделирование поведения муравьёв, связанного с их способностью быстро находить кратчайший путь от муравейника к источнику пищи и адаптироваться к изменяющимся условиям, находя новый кратчайший путь. При своём движении муравей метит путь феромоном, и эта информация используется другими муравьями для выбора пути. Это элементарное правило поведения и определяет способность муравьёв находить кратчайший путь и новый путь, если старый оказывается недоступным.
Для задачи планирования мелкосерийного производства был разработан и реализован алгоритм муравьиной колонии АС1. Исследование алгоритмов С1, ЬБ1 и АС1 было описано в работах [1]. В данной работе предлагается следующий алгоритм муравьиной колонии АС2.
Моделирование поведения муравьёв связано с распределением феромона при обходе всех операций и распределении их по станкам, то есть имеется матрица феромона Б. Где ^к — феромон перехода между операциями г и к (1=0,..,п-1, к=1,..,п), для 1=0 — феромон выбора первой операции. Кроме того, поведение муравьев может быть случайно, и муравей может выбрать любую допустимую операцию с равной вероятностью. Операция считается допустимой, если все предшествующее ей по технологическому процессу операции уже распределены. Когда использовать феромон, а когда случайный выбор, определяется с помощью величины 0<д<0, если случайное число 0<8<0 больше д, то муравей использует феромон, иначе — случайный выбор.
В качестве эвристики для определения перестановки операций использовать расстояние до корня в дереве операций. Тогда правило для выбора операции г выглядит следующим образом:
= argmax{(fik)a(uk)Ь | к = 1,...,т}
к
где — уровень феромона, ик — расстояние до корня дерева вершины к, величины а, Ь — настроечные параметры алгоритма.
В начальный момент времени всем элементам матрицы феромонов Б присваивается значение ^.
Затем муравьи начинают последовательно перемещаться. Количество муравьев, используемых в алгоритме, также настраиваемый параметр. Каждый муравей, переходя от операции к операции и распределяя их по станкам, уменьшает количество феромона (испарение феромона) по пройденному маршруту на величины
В результате получим несколько различных решений, среди которых выбирается наилучшее и по пути муравья, получившего это решение, увеличивается количество феромона на ^. Аналогично выполняется несколько итераций алгоритма и выбирается лучшее решение среди полученных и поступает на вход локальному поиску, который выдает уже окончательное решение.
5. Исследование алгоритмов
Для исследования предложенных алгоритмов был разработан комплекс программ для решения задач планирования мелкосерийного производства сложных изделий [6]. Данный комплекс содержит реализацию описанных алгоритмов С2, С2, Ь81, Ь82, АС1, АС2 и генератор тестовых задач.
Проводились сравнения двух вариантов «жадного» алгоритма С1 и С2. В исследовании использовалось по 20 задач размерности 500, 1000, 2000, 5000 операций. Результаты описаны в табл. 1.
В большинстве случаев алгоритм С2 получает лучшие решения, чем алгоритм С1, редко алгоритм С1 получает решение лучше, чем С2 на 0,1%. Из результатов исследования видно, что с ростом размерности преимущество алгоритма С2 уменьшается. Возможно, это связано со структурой тестовых задач большой размерности, допустимые решения которых мало отличаются относительно друг друга в процентах.
Для сравнения времени работы алгоритмов Ь81 и Ь82 были проведены исследования на задачах размерности 1000 операций, полученных с помощью генератора тестовых задач. В качестве начального решения задачи выбиралось решение «жадного» алгоритма С1, число итераций алгоритмов было ограничено 100.
В результате испытаний получено, что в среднем алгоритм Ь82 в 4,4 раза быстрее, чем Ь81. При этом решения, получаемые алгоритмом Ь82, лучше решений алгоритма Ь81 в среднем на 0,3 %.
Кроме того, были проведены испытания алгоритма Ь82 на стандартных тестовых задачах большой размерности 500, 1000, 2000, 5000 операций. В качестве начального решения задачи использовалось решение «жадного» алгоритма С2, число итераций для задач размерности 500, 1000, 2000, 5000 операций было равно 100, 50, 20, 10 соответственно. Результаты описаны в табл. 1.
Из результатов исследования видно, что с ростом размерности эффективность алгоритма LS2 уменьшается. Следует отметить, что для задач размерности 500 операций в 20% случаев алгоритм G2 находил локальный оптимум задачи.
Предложенный алгоритм муравьиной колонии AC2 имеет несколько параметров настройки, а именно число искусственных муравьев к, процент случайного поведения муравья q, когда он с равной вероятностью выбирает следующую операцию, начальный уровень феромона f , поощрительное количество феромона f , количество испарения феромона f_ при прохождения искусственного муравья через вершину.
Для исследования алгоритма AC2 был проведен вычислительный эксперимент на стандартных задачах размерности 500, 1000, 2000, 5000 операций, с использованием 100, 50, 20, 10 итераций и со следующими значениями параметров: a=b=1, к=100, q=10, f0=mm, f+=10m, f_=0,1m, где m — число операций. Полученные решения сравнивались с решениями «жадного» алгоритма G2 и алгоритма локального поиска LS2. Результаты описаны в табл. 1.
Из результатов эксперимента видно, что алгоритм муравьиной колонии позволяет получать более точные решения для тестовых задач указанных размерностей, чем алгоритм локального поиска LS2(G2). При этом время работы алгоритма AC2 существенно меньше времени работы алгоритма LS2(G2). Причем с ростом размерности, так же как и для других алгоритмов, наблюдается снижение эффективности алгоритма муравьиной колонии AC2.
Применение алгоритма локального поиска LS2 (AC2) с начальным решением, полученным алгоритмом AC2, незначительно улучшает решение задачи планирования мелкосерийного производства сложных изделий при существенном увеличении времени работы.
Все вычислительные эксперименты производились на процессоре Intel Core i3 540 3 ГГц.
Заключение
В данной работе представлены постановка задачи планирования мелкосерийного производства сложных изделий и соответствующая модель целочис-
ленного линейного программирования. Предложены новые эвристические алгоритмы решения указанной задачи: вариант «жадного» алгоритма G2, алгоритм локального поиска LS2 и алгоритм муравьиной колонии AC2. Проведены вычислительные эксперименты, которые показали эффективность исследуемых алгоритмов.
Библиографический список
1. Колоколов, А. А. Эвристические алгоритмы для решения одной задачи планирования мелкосерийного производства сложных изделий / А. А. Колоколов, А. Г. Лукьянов // Автоматизация и современные технологии. — М. : Машиностроение, 2010. - № 9. - С. 29-33.
2. Конвей, Р. В. Теория расписаний / Р. В. Конвей, В. Л. Максвел, Л. В. Миллер. — М. : . Наука, 1975. — 360 с.
3. Сервах, В. В. Эффективные алгоритмы для некоторых задач календарного планирования / В. В. Сервах // Методы решения и анализа задач дискретной оптимизации. — Омск : Изд-во ОмГУ, 1992. - С. 94-106.
4. Сотсков, Ю. Н. Математические модели и методы календарного планирования / Ю. Н. Сотсков, В. А. Струсевич, В. С. Танаев. - Минск : Университетское, 1994. - 256 с.
5. Pinedo M. Chao X. Operations Scheduling with Applications in Manufacturing und Services // Irwin/McGraf-Hill, 1999.
6. Лукьянов, А. Г. Комплекс программ для решения задач планирования производства сложных изделий / А. Г. Лукьянов // Труды ИВМиМГ СО РАН Сер. Информатика. - Новосибирск : Изд-во ИВМиМГ СО РАН, 2011. - № 10. - С. 125-130.
7. Колоколов, А. А. Алгоритмы муравьиной колонии для задач дискретной оптимизации : учеб. пособие / А. А. Колоколов, Т. В. Леванова, М. А. Лореш. - Омск : Изд-во ОмГУ, 2008. - 32 с.
ЛУКЬЯНОВ Алексей Григорьевич, научный сотрудник Омского научно-исследовательского института приборостроения.
Адрес для переписки: [email protected]
Статья поступила в редакцию 13.02.2012 г.
©А. Г. Лукьянов
Книжная полка
51/К15
Кайгородцева, Н. В. Инновация содержания и методики преподавания начертательной геометрии : монография / Н. В. Кайгородцева ; ОмГТУ. - Омск : Изд-во ОмГТУ, 2011. - 82 с. - 1БВЫ 978-5-8149-1194-0.
Предпринята попытка обоснования необходимости трансформации учебного предмета «Начертательная геометрия» из дисциплины, являющейся основой инженерной графики, в дисциплину математического профиля. Предложен порядок проведения инновации учебного курса, осуществлено распределение теоретических и практических положений между бакалавриатом и магистратурой, приведены примеры практического применения теоретических положений инновационного учебного курса в реальных научных исследованиях.
51/К75
Кочетков, Е. С. Теория вероятностей в задачах и упражнениях : учеб. пособие / Е. С. Кочетков, С. О. Смерчинская. - 2-е изд. - М. : Форум, 2011. - 479 с. - 1БВЫ 978-5-91134-181-7.
Учебное пособие содержит задачи по всем разделам теории вероятностей, изучаемым в технических университетах и институтах, а также решения наиболее важных задач; практически ко всем задачам приведены ответы, а к некоторым задачам — указания по их решению.
ОМСКИЙ НАУЧНЫЙ ВЕСТНИК №2 (110) 2012 ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ