В.В.Меньших,
доктор физико-математических наук, профессор
Е.Ю.Никулина,
кандидат технических наук
ОЦЕНКИ ДЛИТЕЛЬНОСТИ ВЫПОЛНЕНИЯ ЗАПРОСА В РАСПРЕДЕЛЁННЫХ СИСТЕМАХ ОВД С ПОМОЩЬЮ МЕТОДА ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ ESTIMATION OF THE REQUEST DURATION IN THE DISTRIBUTED SYSTEMS OF THE LAW ENFORCES AGENCIES USING DYNAMIC
Предложен модифицированный метод динамического программирования для решения задачи теории расписаний. Отличается использованием эвристических алгоритмов для сокращения размерности графа частичных решений, что приводит к снижению вычислительной сложности.
Modified dynamic programming method to solve task scheduling theory is proposed. It should be stressed that method differs from the various known methods using heuristic algorithm to reduce dimension of a graph partial solution. The proposed method leads to descend computational complexity.
Данная работа является продолжением серии статей [1, 2], посвящённых модернизации состава и структуры распределённой системы (РИС) с целью повышения эффективности её работы и выполнения предъявляемых к ней требований в сфере информационного обеспечения. Рассматриваются вопросы нахождения временных оценок для каждого из возможных вариантов модернизации РИС.
Одним из важнейших параметров, определяющих выбор конфигурации РИС, является время выполнения типового пользовательского запроса [3], под которым подразумевается совокупность частично-упорядоченных равнодлительных операций, выполняемых на множестве исполнителей системы. Оценка времени выполнения такого запроса предполагает решение задачи оптимального упорядочения заданной последовательности операций, что относится к классу задач теории расписаний, где осуществляется минимизация временного параметра.
PROGRAMMING METHOD
Составление расписания можно рассматривать как многошаговый процесс, где на каждом шаге принимается решение о приоритете одних операций перед другими [4]. Каждое такое решение приводит к появлению частичного решения. В результате принятия нескольких решений о приоритетах операций получаем полное расписание. В случае, когда требуется осуществить многошаговый процесс принятия решения, используют динамическое программирование.
Приведём общую схему метода динамического программирования (МДП).
В основе МДП лежит принцип оптимальности Р. Беллмана [5]:
любой подпуть оптимального пути на графе частичных решений сам является оптимальным.
Суть метода состоит в том, что оптимальное решение строится постепенно, шаг за шагом. На каждом шаге оптимизируется решение только данного шага с учётом последствий, так как решение, оптимальное для данного шага, может привести к неоптимальному решению всей задачи, т.е. оптимальное решение задачи содержит оптимальные решения и её подзадач.
Использование принципа Беллмана гарантирует, что решение, выбранное на любом шаге, является не локально лучшим, а лучшим с точки зрения задачи в целом.
Достоинствами данного метода является то, что найденное с его помощью расписание строится за меньшее число операций (шагов) по сравнению с другими точными методами.
Недостатком является большой объём памяти при реализации МДП.
Под МДП понимается не один какой-то метод, а множество вариантов, имеющих общую схему выбора оптимального решения. Все варианты метода отличаются друг от друга лишь описанием способа построения графа частичных решений, оценки частичных решений и обхода дерева решений. Природа этих правил такова, что в общем случае нельзя говорить об их эффективности во всех ситуациях. Проверку эффективности этих правил можно осуществить только статистически или исходя из логических рассуждений.
Ниже предлагаются новые правила построения графа частичных решений и оценки, использующие в работе поярусное представление графа частичных решений.
При рассмотрении метода динамического программирования необходимо описать [2]:
1. Способ построения графа частичных решений Г = (^¡},р) .
Частичное решение Gi представляет собой раскрашенный ориентированный граф Gi = (V, Еь Р), где V — вершины, соответствующие последовательности операций; Е— дуги графа, которые устанавливают отношение частичного порядка на множестве операций; Р — цвета вершин, номера которых соответствуют номерам исполнителей операций [3].
2. Оценку вершин графа частичных решений, т.е. вычисление значения функционала для каждой вершины графа. При этом следует показать, что построенный таким образом граф частичных решений обладает свойством оптимальности (принцип Беллмана).
3. Алгоритм получения оптимального решения задачи (обратный ход метода динамического программирования).
Опишем основные особенности алгоритма, реализующего метод динамического программирования с учётом ограничений, возникающих в решаемой нами задаче [6].
Назовём ярус ярусно-параллельной формы графа избыточным, если он содержит более одной операции какого-либо исполнителя, и безызбыточным — в противном случае.
Пусть в процессе генерации пройдено к ярусов. Назовём ярус пройденным, если решение о приоритете одних операций, входящих в этот ярус, перед другими уже принято. Обозначим V] — множество операций в пройденных ярусах, а V2 — в непройденных.
Рассмотрим два частичных решения G' = (У1иУ2 ,Е',Р) и Gм = ^'^иУ'^ ,Е'',Р). Эти два решения будем склеивать, если V'2 = Vм2, т.е. все нерассмотренные яруса этих графов совпадают.
Установим отношение частичного порядка р на множестве частичных решений }. Пусть даны частичные решения Gi = (У,ЕьР)и Gj = (У^,Р), тогда Gi р Gj тогда
и только тогда, когда Ei с Ej и число избыточных ярусов Gi на 1 больше, чем у Gj.
Граф частичных решений Г представляет собой граф, вершины которого являются множествами частичных решений, а дуги соответствуют отношению частичного порядка р , т.е. Г = (^},р) .
Генерацию вершин графа частичных решений будем осуществлять последовательно по мере возрастания номеров ярусов графа частичных решений. Истоком графа частичных решений будет являться граф О0 = (У,Е,Р). Далее находим избыточный ярус с наименьшим номером. Затем рассматриваются все возможные варианты преобразования его в безызбыточный ярус путём введения дополнительных дуг между операциями одного исполнителя. Каждая дуга представляет собой решение о выборе приоритета.
Продолжая этот процесс, получим остальные вершины графа частичных решений, при этом граф будет иметь единый сток G0 при условии V = 0. В динамическом программировании рассматривается множество путей, связывающих исток со стоком. Каждый путь представляет собой цепочку частичных решений по выбору приоритета одних операций перед другими. Среди этих цепочек всегда существует оптимальная цепочка выбора приоритетов, позволяющая построить оптимальное расписание.
Оценка частичного решения должна отвечать следующим условиям:
1) быть нижней и монотонно неубывающей;
2) обладать свойством аддитивности, т.е. оценка для всего графа должна складываться из оценок для подграфов, на которые разбивается граф частичных решений, т.е. на ярусы в нашем случае.
В качестве такой оценки будем использовать минимальное число пройденных ярусов ЯПФ графа частичных решений, т.е.
^ = тт $ +1}. (1)
J рО]
Оценка является нижней и монотонно возрастающей, так как для её нахождения берётся минимальное число последовательно пройденных ярусов ЯПФ графа.
Оценка частичных решений обладает свойством аддитивности, так как оценка для всего графа должна складывается из оценок для подграфов, на которые разбивается граф частичных решений. В качестве такой оценки будем использовать функционал
f :Gi
^ R, определяемый с помощью рекурсивного соотношения
f(Gj) = min {f(Gi) +1}, (2)
J Gi PGj
в частности, в вершине графа частичных решений f(G0) = 0 .
Формула (2) представляет собой соотношение для поиска кратчайшего пути для графа частичных решений.
Легко видеть, что f (Gi) — число пройденных ярусов в графе частичных решений.
Покажем, что для функционала (2) выполняется принцип Беллмана.
Рассмотрим оптимальный путь в графе частичных решений
Go p Gü p ... p G0, (3)
для которого выполняется следующие свойство:
f(Gis) = f(Gis+i) -1. (4)
Легко показать, что этим свойством обладает любая последовательность вложенных частичных решений, т.е. любой подпуть оптимального пути.
Пусть дан оптимальный путь (3). Предположим, что существует часть пути
Gis Р ... Р Git, (5)
который не является оптимальным путём между вершинами Gis и Git. Это означает, что существует отличный от него оптимальный путь
G\ Р ... Р G*\t (6)
меньшей длины. Заменим в (3) участок пути (5) на (6). Тогда путь
G0 p Gi Р ... p G* Р ... p G*t Р ... Р G0 будет иметь меньшую длину, чем (3), что противоре-
чит определению оптимального пути.
Таким образом выполняется принцип Беллмана.
Число вершин графа частичных решений Г = ({Gi},Р) можно существенно уменьшить, а, следовательно, сократить вычислительную сложность алгоритма, если использовать комбинированный диспетчер Dk, дающий каждому частичному решению верхнюю оценку длины расписания т1 [7]. А значит, справедлива следующая теорема.
Теорема:
если выполняется следующие равенство:
f(Gi) + h(Gi) >Ti, (7)
где h(Gi) — число непройденных ярусов для графа частичных решений, то Gi не лежит на оптимальном пути в дереве решений.
Доказательство:
f(Gi)— наилучшая оценка длительности выполнения операций V¡ в пройденных ярусах, т.к. все операции каждого исполнителя для вершин этого множества строго упорядочены (по способу построения) и отсутствуют искусственно созданные простои исполнителей.
h(Gi ) не превышает длительности любого возможного продолжения составления расписания для множества вершин V2, т.к. равно длине критического пути, следовательно, не содержит простоев исполнителей.
В таком случае величина f(Gi) + h(Gi) не превышает длительности любого полного расписания, включающего в себя частичное расписание f (Gi).
В свою очередь, т1 заведомо не меньше длины оптимального расписания, поэтому, если выполняется соотношение (6), то ни одно полное расписание, включающее в
себя Gi, не будет оптимальным, а, следовательно, по принципу Беллмана Gi не может лежать на оптимальном пути дерева решений.
Значит, каждая вершина Gi, отвечающая теореме, удаляется из графа Г, следовательно, не производится её дальнейшее ветвление, что и приводит к сокращению размерности графа Г , и соответственно к снижению вычислительной сложности всего предложенного алгоритма.
Обратный ход метода динамического программирования для данного алгоритма является общепринятым, поэтому опишем только его краткую схему осуществления.
Обратный ход представляет собой движение по графу Г от стока G0 к истоку G0. На каждом шаге выбирается наилучший вариант построения оптимальной цепочки G0 ^ ... ^ Gi1 ^ G0, при этом выбирается вершина Gi с наименьшим значением оценки Г^).
Реализация описанного алгоритма представлена в виде укрупнённой блок-схемы на рисунке.
В процессе реализации метода фактически было описано только правило построения отношения полного порядка на множествах операций одного исполнителя. Фактически это означает построение всего расписания, для чего необходимо использовать следующий принцип:
если свободен исполнитель и имеется готовая к выполнению операция данного исполнителя, то она немедленно начинает выполняться.
Длина полученного таким образом расписания является искомой оценкой длительности выполнения запроса Т.
Предложенный вариант метода динамического программирования является в общем случае более эффективным, чем существующие варианты метода, так как он предполагает использовать в качестве верхней оценки величину хь найденную путём использования комбинированного диспетчера что приводит к уменьшению размерности графа частичных решений, и, следовательно, к снижению сложности алгоритма.
Ввод данных: G=(V,E,P,T)
Модуль построения графа частичных решений г = ({Ог}, р)
г
1
Нахождение функционала для ьго частичного решения
/ (О.) = шш{/(О,) +1}
Нахождение верхней оценки Т, для i-го частичного решения на основе использования простых диспетчеров
71
Сохранение результатов в БД
Определение оптимальной цепочки
О0 у ... у Оп у О0
Выдача
результатов
Укрупнённая блок-схема реализации модифицированного МДП
ЛИТЕРАТУРА
1. Меньших В.В., Никулина Е.Ю. Оценки длительности выполнения запроса в распределённых системах ОВД методом ветвей и границ // Вестник Воронежского института МВД России. — 2008. — №1. — С. 109—114.
2. Меньших В.В., Никулина Е.Ю. Оценки длительности выполнения запроса в
распределённых системах ОВД с помощью генетического алгоритма // Вестник Воронежского института МВД России.-----2008. — №2. — С. 131—140.
3. Меньших В.В., Никулина Е.Ю. Разработка модели выбора вариантов модернизации распределённой информационной системы ОВД // Вестник Воронежского института МВД России. — 2007. — №4. — С. 156—160.
4. Теория расписаний и вычислительные машины / под ред. Э.Г Коффмана. — М.: Наука, 1984. — 334 с.
5. Исследование операций: в 2 т. Т. 1: пер. с англ. / под ред. Дж.Моудера, С. Эл-маграби. — М.: Мир, 1981. — 712с.
6. Меньших В.В., Никулина Е.Ю. Метод динамического программирования для решения задач оптимизации // Информационные технологии в науке, технике и образовании: материалы региональной научно-практической конференции / сост. Ю.С. Сербу-лов, А.П. Преображенский; АНОО ВИВТ, РосНОУ (ВФ). — Воронеж: Воронежский институт высоких технологий, 2008. — С.24—27.
7. Меньших В.В., Никулина Е.Ю. Выбор алгоритмов планирования выполнения нитей в многопроцессорных системах // Компьютерные технологии автоматизированного проектирования систем машиностроения и аэрокосмической техники: труды Российской конференции. — Воронеж: ВГТУ — 2004. — С.157—162.
СВЕДЕНИЯ ОБ АВТОРАХ СТАТЬИ:
Меньших Валерий Владимирович. Начальник кафедры высшей математики. Доктор физико-математических наук, профессор.
Воронежский институт МВД России.
E-mail: [email protected]
Россия, 394065 г. Воронеж, проспект Патриотов, 53. Тел. (4732) 700-999.
Никулина Екатерина Юрьевна. Преподаватель кафедры информационнотехнического обеспечения ОВД. Кандидат технических наук.
Воронежский институт МВД России.
E-mail: [email protected]
Россия, 394065 г. Воронеж, проспект Патриотов, 53. Тел. (4732) 476-477.
Menshikh Valery Vladimirovich. The head in the chair of high mathematics. Doctor of physical and mathematical sciences.
Voronezh Institute of the Ministry of the Interior of Russia.
Work address: Russia, 394065, Voronezh, Prospect Patriotov, 53. Tel. (4732) 700-999.
Nikulina Ekaterina Yurievna. Lecturer of the chair of informative technical maintenance of the law enforces agencies. Candidate of the technical sciences.
Voronezh Institute of the Ministry of the Interior of Russia.
Work address: Russia, 394065, Voronezh, Prospect Patriotov, 53. Tel. (4732) 476-477.
Ключевые слова к статье: оценка длительности выполнения запроса; задача теории расписаний; точные методы и алгоритмы оптимизации; метод динамического программирования; граф частичных решений, ярусно-параллельная форма графа; принцип Беллмана.
Keywords: estimation of the request duration; task scheduling theory; approximate optimization algorithms and methods; dynamic programming method; graph partial solution; Bellman's principle of optimality.
УДК 681.3