close

Вход

Забыли?

вход по аккаунту

?

Математическое обеспечение для распределенной системы планирования работ..pdf

код для вставкиСкачать
УДК 519.8
МАТЕМАТИЧЕСКОЕ ОБЕСПЕЧЕНИЕ ДЛЯ РАСПРЕДЕЛЕННОЙ
СИСТЕМЫ ПЛАНИРОВАНИЯ РАБОТ
Р.С. Лопатин, С.А. Олейникова
Работа посвящена разработке системы принятия решения для выбора очередной единицы расписания в
распределенной системе, предназначенной для планирования работ. В статье предлагается подход, на основании
которого выбирается единица нагрузки, для которой в данный момент будет формироваться расписание, а также
время ее выполнения
Ключевые слова: математическое обеспечение, распределенная система планирования
1. Постановка задачи и ее особенности
Рассматривается
функционирование
системы, предназначенной для планирования
расписания
работы
обслуживающего
комплекса. На вход поступают заявки,
требующие
для
своего
обслуживания
выполнения заранее известного набора работ
(причем заявки разных типов требуют
выполнения разных работ) [1,2]. Работу
выполняют машины (как правило, с
использованием каких-либо ресурсов). В
качестве примера такого комплекса можно
рассмотреть процесс проведения учебных
занятий в ВУЗе. Заявками в данном случае
будут являться студенты, машинами –
преподаватели, а ресурсами – аудитории.
Особенностями обслуживающего комплекса,
для которого составляется расписание,
является
наличие
нескольких
центров
обслуживания и большое число работ. На
основании этих особенностей была выбрана
распределенная структура системы, которая
будет состоять из центра управления и
интеллектуальных
агентов
[3].
Центр
управления осуществляет функции контроля и
управления процессом планирования, а
интеллектуальные
агенты
формируют
поэтапно расписание, планируя на каждом
шаге некоторую единицу нагрузки. В случае,
если на некотором шаге принятое решение
приведет к так называемой тупиковой
ситуации (т.е. ситуации, когда для невозможно
будет составить расписание для некоторой
машины) необходимо отменить решение и
вернуться к предыдущему шагу. Такая
процедура называется бэк-трекингом (backtracking). Очевидно, что использование такой
Лопатин Роман Сергеевич – ВГТУ,
ст. преподаватель, e-mail: lopatinr@mail.ru
Олейникова Светлана Александровна – ВГТУ,
канд. техн. наук, доцент, e-mail: osa@vmail.ru
процедуры может существенно увеличить
вычислительную сложность алгоритма [2]. В
связи с этим, необходимо разработать такое
математическое обеспечение, использование
которого позволило бы минимизировать
использование процедуры возврата. Очевидно,
что в этом случае на каждом шаге
целесообразно
осуществлять
процесс
планирования для такой единицы нагрузки,
которая является наиболее дефицитной, т.е.
для которой меньше всего способов составить
расписание. Для этого проанализируем
факторы, влияющие на
дефицитность
единицы нагрузки.
2. Факторы,
влияющие
на
«дефицитность» единицы нагрузки
Проанализируем факторы, оказывающие
влияние на дефицитность некоторой единицы
нагрузки. Как было указано ранее, единица
нагрузки представляет собой совокупность
вида:
«Машина» - «Заявка» - «Ресурсы».
Следовательно, факторы будут связаны с
каждым из этих понятий. В первую очередь
дефицитность будет определяться числом
возможных способов расстановки данной
единицы нагрузки в расписание. Однако, этот
фактор будет далеко не единственным. В
частности, предположим, что у некоторой
машины доступное для работы время
полностью
совпадает
со
временем,
необходимым для выполнения всех заявок.
Это означает, что если получится ситуация,
при которой хотя бы в один из свободных для
данной машины временных интервалов все
заявки будут заняты обслуживанием на других
машинах, то такое расписание окончательно
невозможно будет составить, так как оно
приведет
к
тупиковой
ситуации.
Следовательно, загрузка машины является
одним из важнейших факторов. Для
количественного
определения
данного
33
фактора,
рассмотрим
следующие
две
характеристики:
число
возможных
временных
интервалов, когда машина i может работать
Ti_общ;
- число временных интервалов, которые
машина i должна потратить на обслуживание
всех заявок Ti_необ.
Тогда коэффициент загрузки i-й машины
будет определяться формулой:
mi =
Ti _ общ
Ti _ необ
.
(1)
Очевидно, что чем ближе данный
коэффициент будет к единице, тем более
сложно будет составить расписание для
единицы нагрузки, связанной с данной
машиной.
Для расчета данного коэффициента в базе
данных должны быть следующие таблицы и
поля.
1.
Таблица «Занятость машины»,
которая регламентировала бы количество
свободных интервалов у данной машины. Эта
таблица должна иметь следующую структуру:
- идентификатор таблицы (ID);
- идентификатор машины(ID_m);
- день;
- интервал времени.
Тогда параметрический запрос вида Select
Count(ID) from «Занятость машины» where
ID_m=:param даст необходимое начальное
значение Ti_общ.
2. Таблица «Нагрузка», каждый элемент
которой хранил бы информацию о том, какую
заявку какая машина должна обслуживать. В
общем виде таблица должна содержать
следующие поля:
- идентификатор таблицы (ID);
- идентификатор машины (ID_m);
- идентификатор заявки (Id_z);
- идентификатор типа обслуживания
(ID_to);
- длительность обслуживания (dur).
Тогда параметрический запрос к данной
таблице позволит определить необходимое
время: Select Sum(dur) from «Нагрузка» where
ID_m=:param
3. Таблица «Расписание», в которой будет
храниться составленное к данному моменту
расписание. Его структура будет следующей:
- идентификатор таблицы (ID);
- идентификатор машины (ID_m);
- идентификатор заявки (Id_z);
- идентификатор типа обслуживания
(ID_to);
34
- идентификатор времени начала (t_нач).
В данном случае предполагается, что
длительность выполнения отдельной операции
d постоянна (в противном случае работа
разбивается на подработы с постоянной
длительностью).
Следовательно, запрос вида:
Select Count(ID) from «Расписание» where
ID_m=:param даст число записей, которое уже
составлено для данной машины. Обозначим
это время через Ti_сост.
Тогда пересчет на каждом шаге значения
коэффициента
mi
будет
происходить
следующим образом:
mi =
Ti _ общ − Ti _ сост
Ti _ необ − Ti _ сост
.
(2)
С учетом того, что значения Ti_общ и Ti_необ
меняться не будут, их достаточно вычислить
однократно
и
запомнить
в
массиве
преподавателей, а пересчитывать лишь
значение Ti_сост.
Второй фактор, который оказывает
воздействие на дефицитность единицы
нагрузки, - это коэффициент занятости заявки.
Он рассчитывается по похожему алгоритму.
Введем в рассмотрение две характеристики:
число
возможных
временных
интервалов, когда заявка j может быть
обслужена Zj_общ;
число
временных
интервалов,
необходимых заявке j для полного завершения
обслуживания Zj_необ.
Тогда коэффициент загрузки для заявки
будет определяться следующим образом:
zj =
Z j _ общ
Z j _ необ
.
(3)
Zj_общ определяется исходя из возможного
времени, которое выделяется на данную
заявку. В данном случае, предполагаем, что
это время равно всему интервалу, в пределах
которого составляется расписание.
Zj_необ можно вычислить из таблицы
«Нагрузка» с помощью запроса:
Select Sum(dur) from «Нагрузка»
where ID_z=:param.
Данный коэффициент также должен
пересчитываться при составлении расписания.
Это можно сделать с помощью характеристики
Zj_сост, которая может быть определена на
основании запроса:
Select Count(ID) from where ID_z=:param.
Таким образом, на некотором текущем
шаге занятость заявки определяется формулой:
zj =
Z j _ общ − Z j _ сост
Z j _ необ − Z j _ сост
.
(4)
Еще одним параметром, влияющим на
число возможных способов расстановки
расписания, является коэффициент загрузки
ресурсов. Под ресурсами в данном случае
понимаем восполняемые ресурсы, которые
станут
свободными
после
выполнения
некоторой операции для обслуживания других
заявок. В частности, в качестве ресурсов
может выступать оборудование, необходимое
для выполнения какой-либо работы, аудитория
требуемого типа для проведения занятия и т.д.
Данная характеристика рассчитывается на
основании следующих двух показателей:
- общая величина ресурсов Rk_общ;
- необходимый объем ресурсов Rk_необ.
Пусть имеется qk ресурсов типа k. Тогда
общую величину ресурсов можно рассчитать
по формуле:
Rk _ общ = q k ⋅ T ,
(5)
где T – общее количество возможных
способов
планирования
расписания
с
использованием данного ресурса. Изначально
Т равно общему периоду составления
расписания.
Необходимый
объем
ресурсов
определяется на основании запроса к таблице
«Нагрузка». Этот запрос будет иметь вид:
Select Count(ID) from «Нагрузка» where
id_to=:param.
На основании этих двух параметров
занятость ресурсов определяется формулой:
rk =
Rk _ общ
Rk _ необ
.
(6)
При составлении расписания занятость
изменится. Для того, чтобы найти значение
Rk_сост,
необходимое
для
коррекции
коэффициента rk, необходимо выполнить
запрос: Select Count(ID) from «Расписание»
where ID_to=:param.
Значение, рассчитанное с помощью
формулы
(6),
можно
скорректировать
следующим образом:
rk =
Rk _ общ − Rk _ сост
Rk _ необ − Rk _ сост
.
(7)
3. Разработка системы принятия
решений
Таким образом, можно сделать вывод о
том, что существуют четыре фактора,
влияющие на приоритетность агента:
- f1 – количество способов расстановки
данной единицы расписания;
- f2 – коэффициент загрузки машины,
участвующей в данной единице расписания;
- f3 – коэффициент загрузки заявки,
участвующей в данной единице расписания;
- f4 – коэффициент загрузки ресурсов,
необходимых для данной единице расписания.
Следовательно, для любой единицы
нагрузки
х
получим
следующую
многокритериальную задачу:
 f 1 (x ) → min

 f 2 ( x ) → min

 f 3 (x ) → min
 f 4 ( x ) → min
(8)
Таким
образом,
получили
многокритериальную задачу с четырьмя
критериями. Существует целый ряд методов,
использующихся для решения подобных задач
[4].
В качестве основного метода будем
использовать метод главного критерия. В
основе метода главного критерия лежит идея
преобразования многокритериальной задачи
(8) к однокритериальной путем выбора из всех
критериев главного. Остальные критерии
переводятся в разряд ограничений. На первом
этапе
решения
задачи
определяется
допустимое подмножество, т.е. находят
альтернативы,
удовлетворяющие
всем
ограничениям, а на втором – из этих
альтернатив выбирают ту, у которой значение
главного критерия будет наилучшим [4].
Если
исходная
целевая
функция
стремилась к максимуму, то ограничение
будет снизу, а если к минимуму – то сверху.
Поскольку в рассматриваемой задаче все
целевые функции стремятся к минимуму, то
система (8) перепишется в виде:
 f 1 (x ) → min

 f 2 ( x ) ≤ b2

 f 3 (x ) ≤ b3
 f 4 (x ) ≤ b4
(9)
Очевидно, что системы (8) и (9) не
являются эквивалентными. Система (9) –
упрощение системы (8). В частности, в
качестве главного критерия можно было
выбрать любой другой критерий. Следует
также отметить, что ограничения b2, b3, b4
выбираются ЛПР исходя из важности каждого
из критериев. Чем важнее критерий, тем
меньше величина ограничения. Главный
критерий выбирается исходя из особенностей
исходных данных задачи. В частности, если
решается задача планирования учебных
занятий в ВУЗе и, например, существует
35
небольшое число лекционных аудиторий или
каких-либо лабораторий, то именно данный
критерий может выступать в качестве
главного.
Достоинством данного метода является
его относительно небольшая вычислительная
сложность. В качестве недостатка следует
отметить то, что в случае наличия у главного
критерия нескольких одинаково оптимальных
значений, в качестве ответа можно взять
любую альтернативу. В частности, для данной
задачи с дискретными значениями целевых
функций,
такая
ситуация
весьма
правдоподобна.
Разработаем дополнение к этому методу,
позволяющее
выбирать
оптимальную
альтернативу в случае наличия у главного
критерия нескольких одинаковых значений.
Пусть, без ограничения общности,
главным критерием будет критерий f1. Пусть
имеются альтернативы x1 и x2, такие что
f 1 (x1 ) = f 1 (x 2 ) .
(10)
Тогда в качестве ответа из этих значений
выберем такую альтернативу, для которой
минимально следующее произведение:
f 2 ( x ) ⋅ f 3 ( x ) ⋅ f 4 (x ) .
Выводы
В ходе работы были получены следующие
результаты:
- проанализированы основные факторы,
влияющие
на
дефицитность
единицы
нагрузки;
- сформулирована многокритериальная
задача, решение которой позволит определить
наиболее дефицитную единицу нагрузки;
- была предложена модификация метода
главного критерия, позволяющая выбрать
оптимальную альтернативу в случае наличия у
главного критерия нескольких одинаковых
результатов.
Таким образом, разработан подход,
отличающийся
относительно
невысокой
вычислительной сложностью, позволяющий
определить наиболее дефицитную на данный
момент единицу нагрузки.
Литература
1. Танаев
В.С.
Теория
расписаний.
Многостадийные системы/ В.С. Танаев, Ю.Н. Сотсков,
В.А. Струсевич. М.: Наука, 1989. – 328с.
2. Конвей Р.В. Теория расписаний/ Р.В. Конвей,
В.Л. Максвелл, Л.В. Миллер – М.: Наука, 1975. – 360с.
3. Олейникова С.А. Задача построения расписания
для
многостадийной
системы
параллельного
обслуживания/ С.А. Олейникова, О.Я. Кравец //
Актуальные проблемы информатики и информационных
технологий.
Материалы
Международной
(VIII
Тамбовской межвузовской) научно – практической
конференции. Тамбов, 2004. с. 108-110.
4. Черноруцкий И.Г. Методы принятия решений/
И.Г. Черноруцкий. – СПб.: БХВ-Петербург, 2005. – 416 с.
Воронежский государственный технический университет
MATHEMATICAL SOFTWARE FOR DISTRIBUTED SYSTEM PLANNING OF
WORKS
R. S. Lopatin, S.A. Oleynikova
The work is devoted to the development of a decision-making system to select the next unit of scheduling in a distributed
system designed to work planning. In this paper an approach under which the unit load is chosen such that at the moment the
schedule will be formed, and during its execution is proposed
Key words: mathematical software, distributed planning system
36
Документ
Категория
Без категории
Просмотров
6
Размер файла
103 Кб
Теги
обеспечение, распределенный, система, планирование, математические, pdf, работа
1/--страниц
Пожаловаться на содержимое документа