391Матренин_Работаx - Студенческое научно

advertisement
РАЗРАБОТКА И РЕАЛИЗАЦИЯ АДАПТИВНОГО АЛГОРИТМА
МУРАВЬИНОЙ КОЛОНИИ ДЛЯ РЕШЕНИЯ ЗАДАЧ КАЛЕНДАРНОГО
ПЛАНИРОВАНИЯ
Матренин П.В.
Научный руководитель к.т.н Секаев В.Г.
Новосибирский государственный технический университет
Введение
Во всех сферах человеческой деятельности для эффективного достижения
результата необходимо составлять расписания и временные планы. Распространенность
и сложность таких задач вместе с постоянным повышением уровня автоматизации
привели к развитию интереса к теории синтеза расписаний и календарному
планирование.
Качество
функционирования
организаций
во
многом
определяется
эффективностью планирования и оперативного управления при этом требования к
снижению сроков выполнения работ, повышению оперативности и гибкости
управления непрерывно ужесточаются.
Задачи календарного планирования отражают процесс распределения во времени
ограниченного числа ресурсов для выполнения проекта, состоящего из заданного
множества взаимосвязанных работ. Эти задачи особенно важны в промышленном
производстве, строительстве, составлении расписания образовательных и медицинских
учреждений и управлении проектами, например при разработке программно
обеспечения.
Согласно результатам большинства исследований, детерминированные задачи
календарного планирования относятся к NP-трудным задачам упорядочения и носят
комбинаторный характер [1,2,3]. Для решения задачи применяют различные способы, в
данной работе исследуется перспективный, возникший всего 20 лет назад [4], метод
решения оптимизационных задач – метод колонии муравьев.
Многие существующие способы решения данного класса задач подвергаются
критике из-за недостаточной практической ориентации методов, поэтому в данной
работе кроме исследования и усовершенствования метода создано программное
приложение для составления календарных планов, как пример практической
реализации разработанных алгоритмов. Разработанное приложение не является
информационной системой календарного планирования, а представляет собой ту часть
информационной системы, которая использует необходимую нормативно-справочную
и текущую информацию организации, непосредственно генерирует квазиоптимальные
планы и отчеты, с их сохранением в базе данных организации.
Таки образом, целью работы данной работы является разработка и исследование
метода колонии муравьев в задачах календарного планирования.
1 Описание предметной области
1.1 Формализованная постановка задачи календарного планирования
Большинство задач по составлению календарных планов связаны с понятием
многостадийных обслуживающих систем [1], то есть систем, в которых процесс
обслуживания требований состоит их нескольких стадий. Изготовление детали состоит
из последовательности операций, выполняемых на станках. Занятия у группы
студентов проходят в несколько пар в определенных кабинетах и у определенных
преподавателей. Разработка программного продукта включает анализ предметной
1
области, постановку задач, разработку, построение алгоритмов, кодирование, отладку,
тестирование, документирование, причем на каждый из этапов может быть назначена
конкретная группа исполнителей.
Несмотря на разнообразие производственных систем и технологий,
формализованная математическая запись задачи календарного планирования, данная в
[1] имеет право считаться универсальной, базовой для любых многостадийных систем.
Данное утверждение было подтверждено также при анализе предметной области (пункт
1.2).
Формализованная постановка задачи. Имеется конечное множество N={1,2,…,n}
требований (работ, партий деталей, станочных плит и т.п.) и конечное множество
M={1,2,…,m} приборов (станков, исполнителей, рабочих станций).
Процесс обслуживания требования i (i  N) включает ri стадий (этапов,
технологических операций). При этом каждому требованию i и каждой стадии q (1 ≤ q
≤ ri) его обслуживания сопоставляется некоторое подмножество приборов Miq из
множества M. Предполагается, что каждый прибор одновременно может обслуживать
не более одного требования.
В таких системах с последовательными приборами для каждого требования i  N
задается своя, специфическая для этого требования последовательность Li его
обслуживания приборами:
Li=(L1 i, L2 i,…, Lri i).
(1.1)
Требование i сначала обслуживается прибором L1i, затем прибором L2i и т.д.
Последовательности обслуживания могут быть различными для разных требований и
могут содержать повторения приборов.
Если требование i на стадии q должно быть обслужено прибором l, то
предполагается заданной длительность tliq его обслуживания этим прибором. Процесс
функционирования системы может быть описан путем задания расписания
(календарного плана, плана-графика), т.е. некоторой совокупности указаний
относительно того, какие именно требования какими именно приборами
обслуживаются в каждый момент времени. При этих предположениях расписание
можно рассматривать как совокупность {s1(t), s2(t),…, sm(t)} кусочно-постоянных
непрерывных слева функций, каждая из которых задана на интервале 0≤t<∞ и
принимает значения 0,1,…, N.
s={s1(t), s2(t),…, sm(t)}
(1.2)
Если sl(t’) = i , sl(t’) ≠ 0 , l  M , i  N , то в момент времени t’ прибор l
обслуживает требование i. Если sl(t’) = 0, то в момент времени t’ прибор l простаивает.
При задании расписания должны соблюдаться все условия и ограничения,
вытекающие из постановки рассматриваемой задачи, то есть расписание должно быть
допустимым. Построение допустимого расписания и даже выяснение того факта,
существует ли оно вообще является далеко не тривиальной задачей.
Если существует несколько допустимых расписаний, необходимо выбрать лучше
из них, что приводит к сложной и многоплановой проблеме оценки расписания. В
классической теории расписания за критерий качества берется время завершения
выполнения всех требований или время завершения последнего требования (очевидно,
что это одна и та же величина).
Оценка качества расписания осуществляется следующим способом. Каждое
допустимое расписание s однозначно определяет вектор моментов завершения
обслуживания требований.
T(s)=(T1(s),T2(s),…,Tn(s))
(1.3)
Задается некоторая действительная неубывающая по каждой из переменных
функция F(x),
F(x)=F(x1,x2,…,xn) .
(1.4)
2
Тогда качество расписания s оценивается значением этой функции при x=T(s). Из
двух расписаний лучшим считается то, которому соответствует меньшее значение F(x).
При построении оптимального по быстродействию расписания выбирается
максимальное значение, так как момент завершения выполнения самого длительного
требования совпадает, как уже сказано, с моментов окончания выполнения всех
требований из множества N, таким образом,
F(x)=max{xi} , i=1,n .
(1.5)
В этом случае
F(T(s))=Tmax(s), где Tmax(s)=max{Ti(s)} , i=1,n .
(1.6)
Из приведенной выше постановки сразу заметны основные сложности задачи:
дискретность, многовариантность, многофакторность, невозможность построения
целевой функции в виде алгебраического выражения, зависящего от управляемых
переменных, как в задаче коммивояжера или транспортной задаче, так как целевая
функция рассчитывается только алгоритмически.
Многостадийные системы делят на следующие классы:
- системы “flow-shop” предполагает, что каждое требование должно быть
обслужено каждым из приборов 1,…,m в порядке 1,…,m;
- системы “open-shop” отличается порядком прохождения требований, он может
быть произвольным, в этом случае маршрут прохождения по приборам является частью
искомого решения;
- системы “job-shop” наиболее близки к реальным ситуациям, когда маршруты
требований строго заданы, но отличаются для разных требований и могут содержать
повторы приборов.
Очевидно, что системы “flow-shop” являются частным случаем систем “jobshop”. В данной работе рассматриваются именно “job-shop” системы.
Для задачи КП точное решение при помощи линейного программирования может
быть получено только для одного или двух приборов, а для реальных
производственных задач точное оптимальное решение может быть найдено только
теоретически (без учета фактора времени выполнения расчетов), на практике же это
неосуществимо.
Для решения задачи КП используют различные приближенные методы,
позволяющие находить близкие к оптимальным (квазиоптимальные) решения. Обзор
методов дан в следующем разделе работы (пункт 2.1). Особенностью большинства этих
методов является подход к целевой функции как к «черному ящику», так чтобы метод
мог работать при добавлении ограничений или изменении критерия оптимальности.
Такой подход дает преимущества при использовании на практике, когда возможны
некоторые изменения в математической модели, ведь любая модель абстрагирует и
упрощает реальность.
Чтобы разрабатываемый в данной работе метод был эффективным, нужно
рассмотреть реальные ситуации, которые возникают при составлении планов в
различных областях деятельности.
1.2 Описание и особенности календарного планирования в организации
Календарный план производства или план работ над проектом является
расписанием работ по заказу в рамках требуемой продолжительности, т.е.
распределение производственных работ по срокам для каждого оборудования или
исполнителя. Календарный производственный план должен обеспечить равномерный
выпуск продукции в заданные сроки на имеющемся оборудовании, максимально его
загрузив. Календарной план в случае проектной деятельности должен обеспечить
своевременное выполнение всех частей проекта с учетом имеющихся групп
3
исполнителей (например, разработчиков ПО).
Сам по себе календарный план это проектно-технологический документ, который
устанавливает полный перечень работ проекта их последовательность, взаимосвязи, а
также закрепляет за этими работами исполнителей и другие ресурсы необходимые для
их выполнения.
В отличие от математической постановки задачи в реальных ситуациях часто
возникают ситуации, когда срочный заказ или поломка оборудования заставляют
пересматривать и корректировать планы по ходу их выполнения. Таким образом, в
реальных условиях часто возникают отклонения, которые могут быть связаны с
поломками оборудования или инструмента, отсутствием сырья на складах,
увольнением сотрудников, несчастным случаем или браком какой-либо детали.
Возникает необходимость внесения изменений в расписание.
Вторым отличием является наличие не только временного показателя
эффективности, но и других критериев, таких как загрузка производственных
мощностей, экономические показатели и т.д. Из-за этого многие недостаточно гибкие
методы решения задач КП оказываются неэффективными на практике.
Таким образом, для получения полной картины к математической постановке
задачи КП нужно прибавить ограничения, которые накладываются на выполнение
работ, учет интервалов времени, когда ресурсы доступны, и учет дополнительных
критериев эффективности. Учет временных интервалов доступности ресурсов
предполагает не только возможные сбои и поломки, но и длительность рабочего дня
или смены, количество смен и т.д.
При использовании автоматизированной системы КП эффективность работы
повышается не только из-за оптимизации использования ресурсов, но и благодаря
переходу к безбумажной документации, исключению неточностей в планах,
отсутствию дублирования информации.
Необходимо учитывать, что на современных предприятиях часто уже существуют
автоматизированные информационные системы, состоящие, например, из
бухгалтерской подсистемы, складского учета, подсистемы работы с кадрами и т.д.
Если для внедрения системы планирования потребуется полная реконструкция
существующей системы, это приведет к резкому повышению стоимости и времени
разработки и внедрения, но может в итоге повысить эффективность функционирования
всех подсистем предприятия. Если же организация по каким-либо причинам не готова к
коренной перестройке (нехватка средств, нежелание переобучать персонал, внедрение
имеющейся АИС произошло совсем недавно и т.п.), но нуждается в программном
средстве составления планов и расписаний, то эффективнее использовать гибкую
систему КП, быстро дорабатывающуюся под все индивидуальные требования и легко
интегрирующуюся с существующей АИС. Такое программное приложение может
использоваться даже для составления индивидуальных планов одного человека (суть
такой задачи не в оптимизации, а в предоставлении удобного инструмента создания
планов и отчетов), так как для этого можно использовать самую простую версию
программы, не требующую установки и сопровождения.
Календарное планирование загрузки производственных мощностей и
распределения заказов между группами исполнителей имеет много общего [1], но
различается терминологией. Возможность применять систему КП в разных предметных
областях делает ее более гибкой и универсальной, поэтому ниже приведены основные
термины из области производственных систем, затем из сферы управления проектами.
4
2 Метод колонии муравьев при решении задач КП
2.1 Описание метода
Муравьи решают проблемы поиска путей с помощью химической регуляции [4].
Каждый муравей оставляет за собой на земле дорожку особых веществ - феромонов.
Другой муравей, почуяв след на земле, устремляется по нему. Чем больше по одному
пути прошло муравьев - тем явнее след, а чем явнее след - тем большее «желание»
пойти в ту же сторону возникает у муравьев. Поскольку муравьи, нашедшие самый
короткий путь к «кормушке», тратят меньше времени на путь туда и обратно, их след
быстро становится самым заметным. Он привлекает большее число муравьев, и круг
замыкается. Остальные пути – менее используемые – постепенно пропадают. Можно
сформулировать основные принципы взаимодействия муравьев:
- случайность;
- многократность;
- положительная обратная связь;
- отрицательная обратная связь.
Основная идея алгоритма МК состоит в реализации принципа коллективного
разума. Для поиска экстремума целевой функции алгоритм использует параллельно
несколько агентов (искусственных муравьев), которые в ходе поиска накапливают
статистическую информацию. Эта информация аккумулируется в общедоступном
банке данных и используется агентами независимо друг от друга. Каждый агент
действует по правилам вероятностного алгоритма и при выборе направления
ориентируется не только на приращение целевой функции, но и на статистическую
информацию, отражающую предысторию коллективного поиска.
Метод МК является итеративным. На каждой его итерации определенное
количество агентов строят такое же количество допустимых решений задачи. Среди
этих решений выбирается часть наилучших по целевой функции и в этой части
отыскиваются повторяющиеся компоненты решений. Полученная информация
запоминается и на последующих итерациях данные компоненты будут иметь большую
вероятность войти в решение, чем это было на предыдущих итерациях.
Так как каждый муравей выполняет примитивные действия, то и алгоритм
получается очень простым и сводится к многократному обходу некоторого графа, дуги
которого имею не только вес, но и дополнительную динамически меняющуюся
количественную характеристику, называемую количеством феромона или просто
феромоном.
Для решения задачи КП методом муравьиной колонии (МК) необходимо [4]:
- представить задачу в виде ориентированного взвешенного графа (в отличие от
задачи коммивояжера), на котором муравьи будут строить решение;
- определить значение следа феромона;
- определить эвристику поведения муравья при построении решения;
- реализовать локальный поиск;
- настроить параметры алгоритма.
Определяющим для решения задачи также являются:
- количество муравьев;
- сочетание с жадными эвристиками и локальным поиском;
- момент обновления феромона.
Итерационный алгоритм МК включает построение решения всеми муравьями,
улучшение решения методом локального поиска, обновление феромона. Построение
решения начинается с пустого частичного решения, которое расширяется путем
добавления к нему новой допустимой компоненты решения. Выбор компоненты
решения осуществляется по правилам вероятностного выбора на каждом шаге
5
построения решения:
( f k )
Pk 
 .
 ( fi )
(6)
i
Коэффициент α определяет степень влияния количества феромона на k-м ребре
(fк) на вероятность того, что муравей выберет это ребро. В знаменателе – сумма по всем
доступным из узла ребрам.
Обновление феромона необходимо для его увеличения на лучшем (коротком)
пути и уменьшения для плохих решений. Используется также испарение феромона для
того, чтобы избежать слишком большой сходимости алгоритма.
Если F – значение целевой функции на маршруте, то количество феромона,
нанесенного муравьем на все ребра маршрута Δf можно определить так:

F
f    .
 
(7)
Коэффициенты β и γ – коэффициенты интенсивности выделения феромона.
Коэффициент β введен, чтобы сделать зависимость нанесения феромона на граф более
гибкой (не обязательно линейной).
Коэффициент ρ влияет на испаряемость феромона, при этом считается, что на
ребрах всегда должно оставаться некоторое минимальное не нулевое количество
феромона, иначе вероятность выбора ребра может оказаться нулевой и оно будет
«игнорироваться» муравьями. Максимальное значение так же ограничено, что
предотвращает возможную сходимость алгоритма к одному, далеком от оптимального,
решению. Коэффициент принимает значения от 0 (нет испарения) до 1 (испаряется до
минимального уровня).
 f ( 1   ), f m in  f ( 1   )  f m ax

f m in , f ( 1   )  f m in
f 

f m ax , f ( 1   )  f m in

(8)
'
В ходе экспериментальных исследований было выявлено улучшение результатов
при усилении значимости текущего наилучшего решения. Для этого на все ребра пути,
соответствующего лучшему результату, на каждой итерации добавляется некоторое
количество феромона, определяемое коэффициентом λ. Ограничение на максимально
количество феромона учитывается и здесь.
 f best   , f best    f m ax
f best  
 f m ax , f best    f m ax
(9)
Качество получаемых решений в МК методах, отмечается в [4], во многом
зависит от:
- выбора условно оптимального решения на шаге инициализации;
- настроечных параметров в вероятностно-пропорциональном правиле выбора
пути на основе текущего количества феромона;
- параметров правил откладывания, испарения и начального распределения
феромона.
Представим поиск решения задачи КП следующим образом. Пусть W – суммарное
количество этапов всех работ из множества N.
Для того чтобы полностью задать расписание, достаточно указать, какую работу
загружать на нужный ей прибор на каждом i-м шаге, i=1,2,…,W. Тогда у графа будет
6
W+1 вершин, причем первая вершина соединена только со второй, вторая – с первой и
третьей, третья – со второй и четвертой и так далее. Вершина с номером W+1
соединена только с вершиной W. Ребра, соединяющие вершины, соответствуют
работам.
Проходя по графу, муравей “запоминает” последовательность работ. Как только
работа i попала в эту последовательность столько раз, сколько у нее этапов (ri), муравей
начинает игнорировать соответствующие ей ребра до конца пути.
Рассмотрим простой пример. Имеется три требования (A,B,C), причем работа A
состоит из двух этапов, а работы B и C содержат по три этапа. Таким образом,
W=2+3+3=8.
На рисунке 1 представлен соответствующий граф.
Рисунок 1 – Пример графа
Пример движения муравья на данному графу проиллюстрирован а рисунке 2.
Рисунок 2 – Пример прохода муравья по графу
Допустим, что с учетом имеющегося на ребрах количества феромона, на первом
шаге муравей выбрал требование A, на втором шаге – B, на третьем – снова А.
Выбранные дуги на рисунке 2 выделены утолщением. Так как требование А содержит
два этапа, больше ее выбирать нельзя, и оставшиеся дуги, соответствующие А,
игнорируются муравьем в данном проходе по графу (на рисунке отмечены серым
цветом и пунктиром).
Затем муравей выбирает дуги C,C,B,C, после чего в предпоследнем узле графа
остается выбрать только работу B. Таким образом, на данном проходе по графу будет
сформирована последовательность A,B,A,C,C,B,C,B.
Далее необходимо определить значение целевой функции, т.е. время окончания
всех работ и количество феромона, которое необходимо добавить на выбранные в
данном проходе ребра графа.
2.2 Выбор начального решения на этапе инициализации
В алгоритм решения задачи был введен подготовительный этап (ПЭ), когда
муравьи обходят граф несколько раз, не нанося на него феромона. Поэтому первые
NПЭ итераций производятся без выделения и испарения феромона, который наносится
на ребра только того маршрута, движение по которому дало наилучший результат.
После подготовительного этапа поиск начинается не из произвольной точки, а из
некоторого локального экстремума.
На подготовительном этапе вероятность получения лучшего результата одинакова
7
на каждой итерации. Чтобы остановить ПЭ раньше отведенного начального числа
итераций и при этом не потерять эффективности решения, пропускаемое число
итераций NПЭ определяется как
N ПЭ 
N0
,
e
(10)
где N0 – начальное число итераций [5].
2.3 Выбор настроечных параметров
Подбор настроечных параметров осуществляется по генетическому алгоритму
(ГА) по следующей схеме [6,7,8,9]:
1.
Генерация
случайного
начального
состояния.
Первое поколение создается из произвольно выбранных решений (хромосом), где в
качестве генов используются параметры α, β, γ, ρ,λ.
2.
Вычисление
коэффициента
выживаемости
(fitness).
Каждому решению (хромосоме) сопоставляется некое численное значение, зависящее
от его близости к значению наилучшей F(·).
3.
Воспроизводство. Хромосомы, имеющие большую выживаемость
(fitness), попадают к потомкам с большей вероятностью,
осуществляется
одноточечный (многоточечный) оператор кроссовера и оператор мутации.
4.
Следующее поколение. Если новое поколение содержит решение
достаточно близкое к значению наилучшей F(·), то задача решена. В противоположном
случае оно проходит через тот же процесс.
Работа генетического алгоритма представляет итерационный процесс до
выполнения критерия останова, например заданного числа поколений. В данном случае
рассматривается задача непрерывной оптимизации
min F ( x ), D  { x1 , x2 , x3 , x4 , x5 | x i на [ ai ,bi ]} ,
(11)
где F(x) – минимизируемая целевая функция, D – область поиска.
Под решением указанной задачи будем понимать вектор x = (x1, x2, x3 x4,x5).
Оптимальным решением задачи будем считать вектор x* с конкретными значениями α,
β, γ, ρ, λ при котором целевая функция принимает минимальное значение.
3 Экспериментальные результаты
Программная реализация метода проверялась на модельных задачах из [10] и [11],
где предлагались квазиоптимальные алгоритмы решения задач КП. Для указанных в
[10,11] задач были приведены расписания, которые были сразу же получены при
программной реализации метода.
Так, например, программная реализация метода была использована для получения
КП производства станочных плит машиностроительного предприятия города
Новосибирск «Сиблитмаш» [11].
Известен технологический маршрут каждой станочной плиты, которые
обрабатываются на станочных модулях за конечное число операций, выполняемых в
заданной последовательности. Задана трудоемкость обработки каждой плиты на
каждой операции.
Общее непрерывное время производства первой плиты составляет 249.85 часа.
Общее непрерывное время выполнения второй и третьей плиты составляет 254.25 и
481.35 часов соответственно. В результате решения задачи календарного планирования
методом МК средний результат составил 657,55 часов.
В таблице 1 приведены усредненные статистические данные о процессе поиска
решений без ПЭ (вариант 1), с ПЭ с фиксированным числом итераций (вариант 2 – 50
итераций) и с ПЭ при использовании алгоритма разборчивой невесты (вариант 3 –
вычисляемое количество итераций).
8
Таблица 1 – Влияние ПЭ на скорость поиска решения
Вариант
Показатель
1
Результат
658,0
Число итераций ПЭ
0
Общее число итераций
474,45
Время решения (секунд)
5,71
2
657,55
50
80,22
1,16
3
657,55
36
70,14
1,01
Увеличение скорости нахождения оптимального решения при использовании
подготовительного этапа было отмечено и в остальных тестовых примерах, особенно в
задачах с малым числом работ, но большим числом технологических операций.
Можно утверждать, что процесс поиска сходится к оптимальному решению
значительно быстрее, если начинается с некоторого решения, приближенного к
оптимальному, а не из случайной точки.
В таблице 2 приведены значения коэффициентов и параметров МК, которые были
отобраны ГА как наилучшие для некоторых задач.
Таблица 2 – Лучшие наборы коэффициентов, полученные при использовании
генетического алгоритма.
Задача
abz6
abz6
ft10
ft10
la17
la17
la15
3plity
3plity
la01
la01
la21
pr_6x10
pr_6x10
Iz
40
40
40
20
20
20
20
10
10
10
10
10
20
20
Lmin
948
945
950
951
784
785
1207
657,55
657,55
666
666
1107
107
107
Lavg
977,333
982,524
995,866
1006,1
805,4
798,25
1215,45
662,075
662,3275
670,2
669,4
1150,9
111,45
111,5
Imk
1000
1000
1000
1000
1000
1000
1000
30
30
200
200
2000
30
30
Cant
100
100
100
50
100
100
100
10
10
20
20
100
10
10
α
0,63
1,1
0,63
0,3781
0,392
0,0341
0,531
0,2782
0,1754
0,2262
0,3542
0,7478
0,6218
0,6204
β
2,0
1,0
1,2
1,711
2,7701
1,7968
1,72
0,4251
0,5705
0,8665
0,6527
1,1134
2,7953
0,2863
ρ
0,696
0,499
0,7
0,97
0,2998
0,5461
0,663
0,4919
0,3836
0,6883
0,8001
0,3488
0,6995
0,0775
γ
28
900
1000
1108,7
425,5387
949,1535
1032
296,61
326,05
903,3459
120,8012
790,57
335,6241
137,6017
λ
1,3
1,3
1,1
2,277
1,9615
4,5589
1,2
2,5373
2,5083
2,0363
2,1305
2,2236
1,2376
1,479
В таблице 2 введены следующие обозначения:
Iz – количество запусков, по которым проводилось усреднение (с одинаковыми
коэффициентами);
Lmin – лучшее полученное решение;
Lavg – усредненное по Iz запускам решение;
Imk – количество итераций МК;
Cant – количество муравьев;
α – степень значимости феромона при выборе дуги графа;
β – нелинейный коэффициент нанесения феромона;
ρ – коэффициент испаряемости феромона;
γ – линейный коэффициент нанесения феромона;
λ – коэффициент учета лучшего текущего решения.
9
Из полученных данных следует, что лучшие найденные наборы коэффициентов
различаются даже при решении одной и той же задачи, поиск взаимосвязи
коэффициентов, их корреляции является одним из направлений дальнейшего развития
работы.
Эксперименты показали существенное улучшение результатов по сравнению с
полученными ранее (без эволюционного подбора коэффициентов), что отражено в
таблице 3.
Таблица 3 – Сравнение результатов
Задача
Lm1
La1
Lgm
Lga
Lm2
La2
Imk
Cant
abz6
ft06
ft10
la01
la10
la15
la17
la21
3plity
pr_6x10
948
55
975
666
958
1207
787
1118
657,55
108
985,26
55,16
1013,84
673,08
958
1220,62
809,32
1154,06
664,782
112,12
1000
30
1000
30
1000
1000
1000
1000
30
30
100
10
100
10
100
100
100
100
10
10
980
55
1017
666
958
1211
796
1121
657,55
109
1005,3
55,16
1038,8
673,08
958
1220,6
809,32
1168,1
664,782
113,22
945
55
950
666
958
1207
784
1107
657,55
107
977,33
55
995,87
669,4
958
1215,45
798,25
1150,9
662,08
111,45
В таблице 3 используются обозначения:
Lm1 – лучшее решение, которое было зафиксировано до использования ГА
(коэффициенты подбирались оператором вручную, “на глаз”);
La1 – среднее значение решений, которые были зафиксированы до использования
ГА;
Lgm – лучшее решение, которое было получено с использованием ГА;
Lga – среднее значение решений, которые были получены с использованием
коэффициентов, найденных ГА;
Lm2 – лучшее решение, которое было получено с использованием коэффициентов,
найденных усреднением по другим решенным задачам;
La2 – среднее значение решений, которые были получены с использованием
коэффициентов, найденных усреднением по другим решенным задачам (кроме
коэффициента γ);
Imk – количество итераций МК;
Cant – количество муравьев.
Здесь под усредненными коэффициентами понимается набор коэффициентов,
найденных как среднее арифметическое среди лучших найденных коэффициентов по
задачам подобной размерности.
Для оценки повышения качества расписаний, составленных с адаптацией
параметров метода,
использовались, кроме указанных ранее, тестовые задачи
[12,13,14]. Результаты приведены в таблице 4.
В таблице 4 используются обозначения:
Lm1 – лучшее решение, которое было зафиксировано до использования ГА
(коэффициенты подбирались оператором вручную);
La1 – среднее значение качества решений, которые были зафиксированы до
использования ГА;
Lgm – лучшее решение, которое было получено с использованием ГА;
Lga – среднее значение качества решений, которые были получены с
10
использованием ГА;
Imk – количество итераций метода МК;
Cant – количество муравьев в колонии;
Best – условно оптимальное решение из [15].
Таблица 4 – Сравнение результатов
Задача
Lm1
La1
Lgm
Lga
Imk
Cant
Best
abz6
ft06
ft10
la01
la10
la15
la17
la21
3plity
pr_6x10
977,33
55
995,87
669,4
958
1215,45
798,25
1150,9
662,08
111,45
1000
30
1000
30
1000
1000
1000
1000
30
30
100
10
100
10
100
100
100
100
10
10
943
55
930
666
958
1207
784
1048
-
980
55
1017
666
958
1211
796
1121
657,55
109
1005,3
55,16
1038,8
673,08
958
1220,6
809,32
1168,1
664,782
113,22
945
55
950
666
958
1207
784
1107
657,55
107
Эксперименты показали существенное улучшение результатов (до 12%) по
сравнению с полученными ранее (без адаптации коэффициентов). Необходимо
отметить, что лучшие найденные наборы коэффициентов различаются даже при
решении одной и той же задачи, поиск взаимосвязи коэффициентов, их корреляции
является одним из направлений дальнейшего развития работы.
Решения, полученные предложенным адаптивным алгоритмом по многим задачам
из [12,13,14] оказались не хуже известных квазиоптимальных решений [15] по этим
задачам. При этом в [15] указываются лучшие результаты, которые в принципе были
когда-либо получены, а адаптивный метод позволяет получать решения указанного
качества на каждом запуске при достаточном количестве итераций.
4 Распараллеливание расчетов
При описанном подходе резко возрастает время поиска решения, так как много
раз запускается решения задачи методом МК. Существенно повысить скорость поиска
можно с помощью распараллеливания расчетов, разделив популяцию на части и
распределив их между процессорами.
Мутация и вычисление функции приспособленности особей легко поддаются
распараллеливанию, так как происходят для каждой особи независимо. При этом
общие для всех особей данные используются только для чтения, поэтому не возникают
проблемы с необходимостью синхронизации этих этапов и потери времени на
блокировки процессов при ожидании освобождения ресурсов.
Этап скрещивания сложнее распараллелить, так как в ходе этого этапа
происходит взаимодействие между особями из разных частей популяции. Однако, в
распараллеливании нет необходимости, так как эта стадия занимает ничтожно малое
время по сравнению с остальными расчетами. В данной работе для реализации
параллельных вычислений использовалась API поточной обработки от Microsoft.
На рисунке 3 приведены экспериментальные данные о росте скорости
параллельных расчетов по сравнению с последовательной работой, в зависимости от
числа используемых процессоров (ядер).
11
Рисунок 3 – Эффект от распараллеливания расчетов
Из рисунка видно, предложенный подход позволяет существенно снизить время
выполнения расчетов даже на двуядерном процессоре.
Программа автоматически определяет число потоков, на которые разбивается
процесс вычисления, поэтому в случае одноядерного компьютера не будет ни прироста,
ни уменьшения производительности.
Эффект от распараллеливания тем больше, чем больше объем расчетов в решении
задачи методом МК, т.е. чем больше размерность задачи, число муравьев и число
итераций. Действительно, согласно закону Амдала, параллельные вычисления тем
эффективнее, чем больше доля расчетов, выполняемых параллельно [28].
S( p ) 
1
1

p ,
(12)
где
S(p) – ускорение;
p – количество используемых процессоров;
α – доля операций, которые нужно выполнять последовательно.
В приведенном примере α составляет примерно 3%.
Механизм распараллеливания расчетов уже используется в программной
реализации, хотя работа в этом направлении находится еще на начальном этапе, и
поэтому ожидается дальнейшее повышение эффективности работы алгоритма.
Повышение скорости расчетов было получено и путем оптимизации
программного кода (использование “быстрых” алгоритмов возведения в степень,
замена части двумерных массивов одномерными, замена списков массивами,
“разворачивание” циклов и т.д). В итоге время работы последней версии алгоритма по
сравнению с первой даже без распараллеливания сократилось примерно в 3 раза, в
дальнейшем планируется увеличить скорость еще в 1,5-2 раза.
12
5. Выводы по исследованию и модификации метода
1. Метод муравьиной колонии позволяет успешно решать задачи календарного
планирования.
2. Введение в алгоритм подготовительного этапа ускоряет процесс поиска и
повышает качество решений, особенно для задач с малым числом требований, но
большим числом этапов (технологических операций).
3. Использование генетического алгоритма для поиска параметров метода
упрощает исследование, позволяет сделать метод МК адаптивным к решаемой задаче и
улучшить получаемые планы.
4. Наборы наилучших параметров алгоритма различаются от задачи к задаче,
кроме того, зависят от модификаций алгоритма.
5. Адаптивный метод легко поддается распараллеливанию, что повышает
производительность на многоядерных процессорах.
6. Предложенный подход позволяет составлять квазиоптимальные расписания для
большого класса многостадийных обслуживающих систем.
6 Программная реализация
6.1 Краткое описание системы
Для исследования метода МК было разработано и реализовано программное
приложение с учетом особенностей данного типа задач [16]. Основные функции
приложения: редактирование файлов с исходными данными (технологическими
маршрутами и длительностями этапов) с поддержкой разных форматов; возможность
импорта и экспорта информации из базы данных; поиск наилучшего решения задачи
планирования; вывод результатов в различных формах; автоматизированное
формирование отчета в MS Word.
При разработке приложения значительное внимание было уделено созданию
удобного и понятного пользовательского интерфейса с учетом особенностей данного
типа задач [16]. Пример экранной формы приложения (таблица исходных данных и
результат в виде графика Ганта) приведен на рисунке 4.
Рисунок 4 – Пример экранной формы приложения
13
6.2 Список задач системы:
- "Учет задач календарного планирования" (Z1);
- "Решение задач КП" (Z2);
- "Формирование выходных данных о решении задач КП" (Z3);
- "Настройка системы" (Z4);
- "Защита информации системы" (Z5).
Основной
задачей
системы
является
непосредственно
создание
квазиоптимальных планов (Z2), именно в повышении эффективности этой задачи
состоит цель данной работы. Однако, для решения задачи КП необходимы входные
данные, а результаты решения требуется выводить и сохранять (задачи Z1 и Z3
соответственно).
Возможность настройки программного приложения и защита пользовательской
информации (задачи Z4 и Z5) являются обязательными частями общей
функциональности любой системы.
Как отмечено выше, в реальных системах возможны отклонения исходных
данных от их состояния на момент первого решения задачи, поэтому требуется также
обеспечить контроль выполнения требований или работ (Z6).
Задача Z1 состоит из ряда подзадач:
- "Чтение условий задач из файлов" (Z11);
- "Редактирование файлов исходных данных" (Z12).
- "Преобразование файлов матриц трудоемкостей разных форматов" (Z13);
- "Чтение записей из БД" (Z14);
- "Преобразование информации из БД в используемый в расчетах формат" (Z15);
Так как форматы файлов данных могут отличаться (способом записи матрицы
трудоемкостей, сведений о требованиях и приборах, структурой файла) необходимо
средство, позволяющее освободить пользователя от ручного изменения файлов (Z13).
Был разработан простой конвертер файлов, выполненный в виде отдельной утилиты
без оконного интерфейса, которая вызывается либо из главного модуля, либо как
обычный исполняемый файл.
Состав задачи Z2:
- "Выбор режима решения" (Z21);
- "Решение задачи методом МК" (Z22).
- "Решение задачи адаптивным методом" (Z23);
- "Взаимодействие с пользователем во время расчетов" (Z24).
В зависимости от целей пользователя он может выбирать режим работы
приложения через меню или панель инструментов (Z21). Доступные режимы: поиск
методом МК с подробным выводом информации о ходе решения, быстрый поиск и
поиск с адаптацией. Пользователь не должен знать о различии используемых методов,
для него режимы отличаются временем выполнения, видом приложения во время
работы и способом принудительной приостановки или завершения поиска.
Задачу Z3 можно разделить на следующие подзадачи:
- "Формирование графиков Ганта" (Z31).
- "Формирование планов в форме таблиц" (Z32);
- "Работа с отчетами о решении задач КП" (Z33);
- "Сохранение результатов в текстовые и графические файлы" (Z34).
- "Запись результата в БД" (Z35).
Полученный план необходимо вывести на экран в удобной и привычной для
пользователя форме, какой является график Ганта (Z31). График Ганта позволяет сразу
увидеть весь план целиком, оценить простои, задержки, понять, в какие сроки будут
выполнены требования. Но для детального анализа плана необходимо вывести его и в
табличной форме (Z32), с указанием моментов начала и окончания всех этапов,
14
используемых приборов (станков, исполнителей и т.п.).
Если план сформирован и удовлетворяет критериям, то его необходимо сохранить
в БД (Z35). Возможно, что в организации уже существует своя система ведения отчетов
по информации из БД, в этом случае, этой системой будет выполняться формирование
выходных документов на основе плана, записанного в БД задачей Z35.
Задача Z4 также состоит из нескольких подзадач:
- "Предоставление пользователю возможности настройки интерфейса
приложения" (Z41);
- "Предоставление пользователю возможности выбора параметров алгоритмов "
(Z42);
- "Хранение параметров системы" (Z43);
Под настройкой интерфейса (Z41) понимается регулирование внешнего вида
приложения (общий стиль оформления, компоновка панели инструментов, настройка
шрифта и толщины линий на графиках).
В алгоритмах используется определенный набор параметров, например,
коэффициенты эвристик, количество итераций, допустимое значение решения и т.д.
Эти параметры пользователь может указывать в подчиненном диалоговом окне
“Настройки” (Z42).
Настройки интерфейса и параметры алгоритмов необходимо сохранять после
закрытия системы и загружать при запуске (Z43), эта задача реализуется через
использование реестра операционной системы.
Состав задачи Z5:
- "Защита информации в базе данных" (Z51);
- "Резервное сохранение полученных результатов" (Z52).
Система не может угрожать целостности данных, поэтому используются
механизмы защиты данных, предоставляемые используемой СУБД (Z51). Доступ к БД
только авторизованный (с ведением журнала), через заранее созданную роль,
наделенную необходимым минимумом прав (доступ “только для чтения” только к
необходимой входной информации, “чтение и запись” для выходной информации с
использованием механизма транзакций). Никаких других прав, таких как
администрирование, создание и удаление таблиц, право передачи полномочий другим
пользователям, у данной роли не должно быть. Соединение с БД через технологию
ADO, по схеме “открыть соединение – считать данные – закрыть соединение –
выполнить необходимые действия – открыть соединение – записать данные – закрыть
соединение”. При этом большую часть работы приложения канал доступа к БД не
используется, таким образом, уменьшается нагрузка и на сервер БД, и на приложение
на стороне клиента.
Вторым направлением в защите информации является резервное сохранение
полученных результатов, в том числе и промежуточных (Z52). Как только получен
результат, он сохраняется в текстовый файл, графики Ганта – в графические файлы
(используется задача Z34). Таким образом, результат будет сохранен вне зависимости от
действий пользователя. Сохраненный текстовый файл может быть затем открыт и по
записанным в нем данным система автоматически восстановит всю необходимую
информацию о полученном ранее решении.
15
Заключение
Проведено исследование существующей проблемы – задачи автоматизированного
построения и оптимизации расписаний. Выявлены трудности задачи и
целесообразность автоматизации.
Был проведен анализ предметной области с выбором математической модели и
выявлением практических особенностей календарного планирования.
Рассмотрены основные методы решения задач календарного планирования и
существующие программное средства. Разработаны решаемые задачи и подзадачи,
составы входной и выходной информации, технологический процесс работы конечного
пользователя с системой и структура базы данных.
Исследован метод колонии муравьев, разработана и реализована модификация
метода для решения задач календарного планирования. Использование генетического
алгоритма позволило сделать метод адаптивным. Проведено сравнение результатов с
классическим муравьиным алгоритмом и с другими методами.
В соответствии с поставленными задачами системы были разработаны
программные модули. После алгоритмизации и кодировании программных модулей
произведена отладка и тестирование программы.
Качество работы подтверждается хорошими результатами участия в
конференциях и публикации статей в научных журналах и сборниках (данные
приведены в приложении).
Возможные направления дальнейшей работы:
- исследование зависимостей между исходными данными и наилучшими
параметрами алгоритма;
- реализация других методов или реализация для применения в других типах
задач;
- оптимизация исходных кодов;
- развитие и совершенствование механизма параллельных вычислений в решении
задачи;
- создание кроссплатформенной версии;
- доработка программного продукта до стадии внедрения на конкретной
организации.
16
Список литературы
1. Танаев В.С. Теория расписаний. Многостадийные системы/ В.С. Танаев, Ю.И
Сотсков, В.А Струсевич. – М.: Наука, Гл. ред. физ.-мат. лит., 1989. - 328с.
2. Павлов А.А. Основы системного анализа АСУ / А.А.Павлов. – Киев.: Техника,
1990. – 367 с.
3. Петров В.А. Планирование гибких производственных систем / В.А. Петров,
А.Н. Масленников, Л.А. Осипов. – Л.: Машиностроение, 1985. – 182 с.
4. Dorigo M. The Ant System: Optimization by a colony of cooperating agents/ M.
Dorigo, V. Maniezzo, A. Colorni // IEEE Transactions on Systems, Man, and Cybernetics –
Part B. 1996. V. 26. No. 1. С. 1-13.
5. Гусейн-Заде С.М. Разборчивая невеста. М.: МЦНМО, 2003. 24 с.
6. Батищев Д.И. Решение задачи "слепого" упорядочивания с помощью
генетических алгоритмов. // Труды конференции по генетическим алгоритмам. М.:
1996. С. 32–35.
7. Батищев Д.И., Гудман Э.Д., Норенков И.П., Прилуцкий М.Х. Метод
декомпозиций для решения комбинаторных задач упорядочения и распределения
ресурсов // Информационные технологии. 1997. № 1. С.29–33.
8. Норенков И.П. Генетические методы структурного синтеза проектных
решений. // Информационные технологии. 1998. №1. С. 9–13.
9. Норенков И.П. Методы оптимизации в задачах концептуального
проектирования и логистики. // Информационные технологии. 2000. №9. С. 9–14.
10. Петров В.А., Масленников А.Н., Осипов Л.А. Планирование гибких
производственных систем. Л.: Машиностроение, 1985.
11. Секаев В.Г. Использование алгоритмов комбинирования эвристик при
построении оптимальных расписаний// Информационные технологии. 2009. №10. С.
61–64.
12. Adams J., Balas E.,Zawack D. The shifting bottleneck procedure for job shop
scheduling// Management Science. 1991. №34. P. 391–401.
13. Fisher H., Thompson G. Probabilistic learning combination of local job-shop
scheduling rules, in Industrial Scheduling. Prentice-Hall, Englewood Cliffs, N.J., 1963.
14. Lawrence S. Supplement to “resource constrained project scheduling: an
experimental investigation of heuristic scheduling techniques”// tech. rep., GSIA, Carnegie
Mellon University, October 1984.
15. Pezzella F., Merelli E. A tabu search metho d guided by shifting bottleneck for the
job shop scheduling problem // European Journal of Operational Research. 2000. №120. P
297–310.
16. Матренин П.В. Программирование оптимизационных задач управления,
взаимодействие с пользователем при длительных расчетах// Журнал научных
публикаций аспирантов и докторантов. 2012. №1. С 67–69.
17
Приложение
Апробация работы
Основные направления работы и достигнутые результаты были представлены на
следующих конкурсах и конференциях (в порядке хронологии):
- Всероссийский конкурс научно-исследовательских работ студентов, аспирантов
и молодых ученых по нескольким междисциплинарным направлениям «ЭВРИКА
2011» (заочное участие);
- V Международная дистанционная научно-практическая конференция «Теория и
практика современной науки»: заочное участие с публикацией статьи в сборнике;
- II Всероссийская научно-практическая конференция школьников, студентов,
аспирантов и молодых ученых «Исследования молодых – регионам»: заочное участие с
публикацией статьи в сборнике;
- стендовая конференция факультета Автоматики и вычислительной техники
НГТУ 2012;
- студенческая конференция кафедры Автоматизированных систем управления
НГТУ 2012: 1 место;
- студенческая конференция факультета Автоматики и вычислительной техники
НГТУ 2012: 1 место;
- конкурс грантов НГТУ 2012: победитель (свидетельство о присуждении гранта
НГТУ №004 – НСГ – 12).
- Работа была отмечена Дипломом за лучший доклад на научной конференции
«Дни студенческой науки НГТУ 2012».
Ниже перечислены публикации в научных журналах и сборниках по теме работы
и по темам, касающимся программирования и косвенно связанным с ее выполнением.
1. Секаев В.Г., Матренин П.В. Использование метода колонии муравьев для
решения задач календарного планирования// Сборник научных трудов НГТУ. – 2011. –
№4(66). – С. 109 – 118.
2. Матренин П.В. Программирование оптимизационных задач управления,
взаимодействие с пользователем при длительных расчетах// Журнал научных
публикаций аспирантов и докторантов. – 2012. – №1. – С. 67 – 69.
3. Матренин П.В. Применение метода колонии муравьев в задачах календарного
планирования, модификация метода и практическая реализация// Вестник
магистратуры. –2012. - №2(5). – С. 15 – 19.
4. Матренин П.В., Секаев В.Г. Исследование и применение муравьиных
алгоритмов для решения задач календарного планирования// Теория и практика
современной науки
[Текст]: материалы V Международной науно-практической
конференции. В 2 т.: т.1. – М.: Изд-во Спецкнига. – 2012. – С. 228 – 236.
5. Матренин П.В. Применение метода колонии муравьев в задачах календарного
планирования// Сборник тезисов "Дни науки НГТУ – 2012" (статья принята к
публикации).
6. Матренин П.В. Решение задачи календарного планирования методом
комбинации муравьиного и генетического алгоритмов// Труды конференции “ XI
Всероссийская научно-техническая конференция “Теоретические и прикладные
вопросы современных информационных технологий” (ТиПВСИТ’2012)” (статья
принята к публикации).
7. Матренин П.В., Секаев В.Г. Адаптивный алгоритм муравьиной колонии при
построении и оптимизации расписаний// В мире научных открытий (научный журнал
из перечня ВАК, статья прията к публикации).
18
8. По разработанному программному обеспечению подана заявка на регистрацию
в Федеральный орган исполнительной власти по интеллектуальной собственности
ФИПС, заявка была принята, ожидается доставка сертификата.
Ниже представлены полученные свидетельства и дипломы.
19
20
Download