Разновидности задачи сетевого планирования, некоторые методы их решения и алгоритмические оценки

АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ

УДК 519.86

Н. Н. Буснюк

Белорусский государственный технологический университет

РАЗНОВИДНОСТИ ЗАДАЧИ СЕТЕВОГО ПЛАНИРОВАНИЯ, НЕКОТОРЫЕ МЕТОДЫ ИХ РЕШЕНИЯ И АЛГОРИТМИЧЕСКИЕ ОЦЕНКИ

В статье рассматривается обобщенная задача сетевого планирования и выделяются четыре ее подзадачи в зависимости от количества и качества трудовых ресурсов. Обобщенная задача предполагает наличие в графе-сети кратных дуг. От количества трудовых ресурсов зависит, смогут ли все работы выполняться без простоев и будет ли критический путь являться решением задачи. Качество трудовых ресурсов определяет переменные либо константные веса дуг сетевого графа.

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

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

N. N. Busnyuk

Belarusian State Technological University

VARIETIES OF THE NETWORK PLANNING PROBLEM, SOME METHODS OF THEIR SOLUTION AND ALGORITHMIC ESTIMATES

The article discusses the generalized task of network planning, and outlines its four subtasks depending on the quantity and quality of labor resources. The generalized task assumes the presence of multiple arcs in the graph-network. It depends on the amount of labor resources whether all the work can be done without downtime, and whether the critical path will be the solution to the problem. The quality of labor resources determines the variables or constant weights of the arcs of the network graph.

This article focuses on one of four subtasks. In such task downtime is possible and the length of the critical path will not always be a solution to the problem. It depends on the graph structure and the arc weights. It is assumed that the network graph contains a multi-edges. A statement was formulated and substantiated when job idle times may occur depending on the network structure. A method for assigning workers to jobs that minimizes downtime and minimally extends the critical path is proposed. This method has practical significance for adjusting the sequence of execution of jobs on a project in those cases when the manager takes decisions about relocating employees or assigning them to critical jobs. The article also provides some estimates of algorithmic complexity for particular cases of problem 2A.

Key words: network chart, critical path, event, time reserve, variable weights, network planning task, downtime, optimization, complexity estimate, algorithm.

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

при запаздывании выполнения некоторых задач и угрозе простоя отдельных работ, принимает решение о привлечении дополнительных трудовых ресурсов или перемещении работников с одних задач на другие, более критичные. Классическая задача сетевого планирования не предполагает простоев

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

Кроме того, длительности выполнения работ (на практике - производительности работников) могут не быть постоянными величинами. Если они непрерывны и ограничены в каких-то пределах, то разработаны вероятностные методы для решения подобных задач. Но если длительности меняются в дискретных значениях, то алгоритмическая сложность решения такой задачи значительно возрастает. Предлагаемый в данной статье метод позволяет минимизировать время простоя работ и удлинения найденного критического пути для некоторых разновидностей задач сетевого планирования (ЗСП).

Основная часть. В [1] была рассмотрена задача, объединяющая в себе задачу о назначениях и задачу сетевого планирования. Веса дуг сетевого графа являлись переменными величинами, и была предложена методика назначений на работы для случая, когда работников меньше, чем работ.

В [2] предложен алгоритм решения задачи оптимального назначения в сетевом планировании с ограничением на количество работ, выполняемых одновременно. Этот алгоритм позволяет строить локально-оптимальный план за время, линейно зависящее от количества дуг в сетевом графе.

Сформулируем задачу в общем виде. Допустим, что сетевой граф О(У, Е) содержит п работ (дуг), а в наличии у исполнителя имеется т работников.

Каждому работнику присуща своя производительность для каждой из работ. Эти производительности (длительности выполнения работ) определены целочисленной матрицей назначений А. Строки этой матрицы соответствуют рабочим, столбцы - работам, а элементы а- > 0 -длительностям выполнения работ. Веса дугам выбираются из матрицы назначений А.

Классическое определение сетевого графа полагает отсутствие кратных дуг. В данной статье мы такие дуги допускаем, поскольку это упрощает получение алгоритмических оценок и экономическую интерпретацию.

Выделим четыре возможных вида ЗСП в зависимости от количества и качества трудовых ресурсов:

1А. т > п, а- - константы по всем 7.

2А. т < п, а- - константы по всем 7.

1Б. т > п, а7- - переменные по ¡.

2Б. т < п, а- - переменные по 7.

Задачи типа 1А равносильны обычной ЗСП, поскольку веса дуг фиксированы, не играет роли, какого рабочего на какую работу назначать, и простоев работ не возникает при любой структуре сетевого графа.

Рассмотрим задачи типа 2А. В данном случае возможны простои работ и длина критического пути не всегда будет являться решением задачи. Это зависит от структуры графа и весов дуг. Например, уже при т = п - 1 возможен простой одной работы, если сетевой график предусматривает параллельное (одновременное) выполнение всех работ. С другой стороны, если в таком графе найдутся две дуги, сумма весов которых не больше длины критического пути, то простой работы не приведет к коррекции решения, равного длине критического пути.

Введем следующие обозначения:

К - критический путь;

Т(К) - длина критического пути;

Т(О) - сумма весов всех дуг графа О;

© - оптимальная длительность выполнения проекта (оптимальное решение).

Если т = 1, то все работы выполняются одним работником (неделимой бригадой). В такой ситуации сетевое планирование и критический путь классической роли не играют. Граф О задает последовательность выполнения работ, и оптимальная длительность выполнения проекта равна

© = Т (О).

Рассмотрим более общий случай 1 < т < п - 1. Исследование зависит от количества параллельных (одновременно выполняемых) работ и значений матрицы А.

Для выполнения работ на критическом пути в каждый момент времени необходимо и достаточно одного работника. Поэтому если Т(О) < 2Т(К), то достаточно двух работников для выполнения проекта таким образом, чтобы критический путь не удлинился. Второй работник выполнит работы не на критическом пути. В общем случае

© = 0(пТ(К)), если один работник;

0 = О^ Т (К) ^, если два работника и т. д.

Примером, когда такие оценки достигаются, является орграф, в котором все дуги параллельны (одно мультиребро кратности п).

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

Н. Н. Буснюк

103

начинаются простои некоторых работ в случае нехватки работников. При дискретных весах дуг время наступления каждого события также дискретно.

В случае, если простоев не возникает, задача решается обычными методами для ЗСП. Количество работников т, достаточное для того, чтобы простоев работ не возникало, регламентирует следующее утверждение.

Утверждение. Минимальное достаточное количество работников т равно максимально возможному количеству одновременно выполняемых работ g.

Для демонстрации справедливости утверждения воспользуемся понятиями полустепеней захода и исхода вершин ориентированного графа. Рассмотрим сеть О. Каждая вершина V, -это событие начала и окончания работ; й ~ (V;) -полустепень захода вершины V;, означает, сколько работ закончилось и работников освободилось; й+ (V;) - полустепень исхода вершины V;, означает, сколько работ может начаться параллельно, т. е. сколько требуется работников, чтобы работы не простаивали; разность = й + (V;) - й - (V;) задает изменение количества параллельных работ при наступлении события V;, т. е. дополнительно требуемое число работников в данный момент V;.

Занумеруем вершины «правильно», т. е. дуга ведет из вершины с меньшим номером в верк

шину с большим номером. Тогда ^задает

1=1

количество работ, которые могут выполняться одновременно в момент наступления события Vk.

Проследим ход выполнения работ проекта. Пока соблюдается условие т > g, проект выполняется оптимальным образом, т. е. © = Т(К).

Пусть в момент наступления события Vi вы-

к

полнено условие ^ Ай1 > т. Несложно подо-

1=1

брать веса дуг так, чтобы у всех g работ длительность простоя превысила их резервы времени. И тогда © > Т(К).

Ниже приводится метод назначения работников на работы, минимизирующий время простоя и минимально удлиняющий критический путь.

Введем дополнительные обозначения.

Допустим, что событие Wo - это окончание последней из «входящих» работвысвобождение работника 1, выполнившего эту работу (все остальные работники задействованы), и начало более чем одной работы; р1 - метка для работника под номером 1, означает срок, к которому работник 1 освободится после выполнения очередной работы.

Поскольку элементы в строках матрицы А постоянны, то работники «обезличены», т. е.

не важен порядковый номер работника. Поэтому введем массив меток P = {p1, p2,..., pm }, упорядоченных по возрастанию p1 < p2 <... < pm. Обозначим ожидающие очереди работы через (wo, wi), ..., (wo, ws), а их резервы времени через Aoi, До2, .., Aos- Обозначим множество этих работ через W. Запись i е wowc будет означать, что работник под номером i назначен на работу wowc.

С помощью одного из классических методов [3, 4] найдем K и резервы времени Ду для работ (i, j). Минимальное время простоя работ с момента wo будет Ap = p2 - pi.

Рассмотрим варианты выбора следующей работы. Определяющим будет максимизация резерва времени других работ. Возможны два варианта.

С1. Ap < min {ao j}.

1< j< s

В этом случае назначаем первого работника на работу, соответствующую min {Ao j} . Пере-

1< j <s

считываем Ду для оставшихся параллельных работ и их продолжений путей по формуле

Aij := A - Ap.

Также корректируем массив P.

С2. Ap > min {ao j}.

1< j< s

В этом случае сравниваем два возможных варианта назначений.

Не нарушая общности рассуждений, положим что Aoi < Ao2 < ... < Aos.

Обозначим aoc = min {ao j}.

1< j <s

Если 1 е wow1, то скорректированный min{Aoj} = min{Ao^ Ao2 -ao1}.

1< j < s

Если 1 е wowc и при этом wo w1 Ф wo wc, то скорректированный min {Ao j} = min {Aoc, Ao1 - aoc}.

1< j <s

Из этих двух вариантов выбираем тот, который сохраняет наибольшим резерв времени, т. е. находим max {Ao2 - ao1, Ao1 - aooc}.

Как вытекает из сформулированного выше утверждения, такой метод выбора очередной работы актуален лишь в те моменты времени, когда m > g. Поскольку сетевой граф можно разложить на подграфы, в которых возникает неопределенность (много параллельных работ),

и подграфы без неопределенности, то достаточно рассмотреть решение задачи лишь на подграфе. В нем может быть несколько источников со своими метками и несколько стоков. Несколько источников соответствуют нескольким незанятым работникам к данному моменту времени.

Заключение. В статье предпринята попытка классифицировать и расширить понятие задач сетевого планирования исходя из практической и теоретической значимости. Теоретический интерес может представлять применимость методов

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

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

Литература

1. Буснюк Н. Н., Новиков В. А. Метод оптимального решения задачи о назначениях в сетевом планировании // Труды БГТУ. 2016. № 6: Физ.-мат. науки и информатика. С. 170-172.

2. Буснюк Н. Н., Новиков В. А. Метод решения задачи сетевого планирования при ограниченных трудовых ресурсах // Труды БГТУ. Сер. 3, Физ.-мат. науки и информатика. 2017. № 2. С. 126-128.

3. Буснюк Н. Н., Черняк А. А. Математическое моделирование. Минск: Беларусь, 2014. 216 с.

4. Плескунов М. А. Задачи сетевого планирования. Екатеринбург: Уральский университет, 2014. 92 с.

References

1. Busnyuk N. N., Novikov V. A. Optimal solution method of assignment problem in network planning. Trudy BGTU [Proceedings of BSTU], 2016, no. 6: Physics and Mathematics. Informatics, pp. 170-172 (In Russian).

2. Busnyuk N. N., Novikov V. A. Solution method of network planning task with restricted manpower. Trudy BGTU [Proceedings of BSTU], series 3, Physics and Mathematics. Informatics, 2017, no. 2, pp. 126128 (In Russian).

3. Busnyuk N. N., Chernyak A. A.Matematicheskoye modelirovaniye [Mathematical modeling]. Minsk, Belarus Publ., 2014. 216 p.

4. Pleskunov M. A. Zadachi setevogo planirovaniya [Network planning problems]. Ekaterinburg, Ural'skiy universitet Publ., 2014. 92 p.

Информация об авторе

Буснюк Николай Николаевич - кандидат физико-математических наук, доцент, доцент кафедры информационных систем и технологий. Белорусский государственный технологический университет (220006, г. Минск, ул. Свердлова, 13а, Республика Беларусь). E-mail: busnnn@belstu.by

Information about the author

Busnyuk Nikolay Nikolaevich - PhD (Physics and Mathematics), Associate Professor, Assistant Professor, the Department of Information Systems and Technologies. Belarusian State Technological University (13a, Sverdlova str., 220006, Minsk, Republic of Belarus). E-mail: busnnn@belstu.by

Поступила 20.06.2019