Оптимальная коррекция сроков выполнения работ по проекту при возникновении отклонения от сетевого графика

УДК 519.1

ОПТИМАЛЬНАЯ КОРРЕКЦИЯ СРОКОВ ВЫПОЛНЕНИЯ РАБОТ ПО ПРОЕКТУ ПРИ ВОЗНИКНОВЕНИИ ОТКЛОНЕНИЯ ОТ СЕТЕВОГО ГРАФИКА

Ю.И. БУРЯК, И.Б. ИВЕНИН, А.А. СКРЫННИКОВ

Статья представлена доктором технических наук, профессором Кузнецовым В.Л.

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

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

Введение

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

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

Ускорение работы связано с увеличением стоимости этой работы. Для каждой работы существуют различные варианты форсирования работы, имеющие свою стоимость. Задача заключается в выборе оптимального варианта корректировки плана работ, т.е. из всех возможностей по ускорению работ необходимо выбрать такой вариант, который бы минимизировал дополнительно привлекаемые средства [2].

1. Описание проблемной ситуации

Пусть задана сетевая модель [3; 4] и её аналитические характеристики (в том числе частные резервы работ), а также задано значение Лti_ - время отставания при выполнении работы (/ -]) .

Известны стоимости С (Лт_у) сокращения отставания в сроках выполнения работы (г _ у) на величину Лтг_у .

Пусть существует множество путей (рис. 1), соединяющих событие ] работы (/ _] ) и завершающее событие сетевой модели, причём некоторые из этих путей имеют общие работы. Будем считать, что все пути, соединяющие событие } работы (/ _}) и завершающее событие проекта, упорядочены, и присвоим каждому пути свой номер I, I = (N - количество таких путей).

Рис. 1. Исходная сетевая модель

Каждый из рассматриваемых путей сетевой модели, начиная с события ] , имеет некоторый резерв времени -

я, =

I

4,т}еМ/

где - частный резерв работы (^-г|); М1 - множество событий (вершин графа), лежащих на

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

(а?,-у ), если(д*,.)> 0, 0, если (А?,)<0 .

2. Постановка задачи

Приведем описанную выше проблемную ситуацию к многошаговому управляемому процессу. Для этого исходный граф преобразуем таким образом, что число работ от события ] работы (I — ] ) до завершающего события по каждому из путей I = 1..М было бы одинаково.

АТ1 =

/ = 1

/ = 2%

\/ = 3 \

0

2

3

Рис. 2. Порожденный многошаговый процесс

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

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

Процедура расщепления вершины V заключается в следующем [1]. Окружение вершины разбивается произвольным образом на две части М1 и М2 . Вершина V удаляется вместе с инцидентными ей дугами, затем добавляются новые вершины и и w, также добавляется дуга uw. Вершина и соединяется дугами с каждой вершиной из множества М1, а вершина w - с каждой

вершиной из множества Мг. Вес дуги uw (стоимость введенной фиктивной работы) принимается равным нулю.

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

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

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

В качестве фазовой координаты процесса на к -м шаге выберем вектор

- _ / 1 2 .V Хк ~\Хк'Хк'"-'Хк

компоненты х[ которого определяют компенсированный к к -му шагу дефицит времени на траектории с номером I.

В качестве управления на к -м шаге будем рассматривать вектор

ик =\ик,ик,...,ик

компоненты которого определяют компенсируемое время на к -м шаге процесса.

Обозначим через {Х} = {Х1,Х2,...,Хп}и {й} = {щ,и2,...,ип} соответственно траекторию приведенного процесса и управления на этой траектории.

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

Обозначим О-к - множество общих участков траекторий на к -м шаге с началом в вершине

„ общ „ „ общ

Ук и концом в вершине Ук+1

Ок = {/; =°кбщ и +1 =у°кб+щ }, где Ьк - мощность этого множества; /0 - номер одного из элементов этого множества.

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

J({x},{u}) = 2

k=1

2 w>

тк

где С^(^) - стоимость реализации управления 11 к .

Введем функцию /, | = ^ (//!) + ) - стоимость реализации вектора управле-

ния йу. на к -м шаге. С учетом введенной функции критериальный функционал может быть переписан в виде

J

к=1

Изменение состояния многомерного процесса под действием управления йк определяется уравнением связи

Хк = Хк-1 + йк .

С учетом введенных обозначений задачу оптимальной коррекции сроков выполнения работ можно сформулировать как задачу дискретного оптимального управления: требуется определить оптимальное управление {й } из множества допустимых управлений идоп = ^ и со-

И,

ответствующую ему оптимальную траекториюх

({u*},{x*}) = arg min Z fk (ик ):

{u*}eUд0П к=

при выполнении уравнений связи (2) и краевых условиях:

Хо =( 0,...,0)T;

xn = (AT],..., ATn) .

3. Алгоритм решения задачи

Задачу (1) - (5) с сепарабельным критериальным функционалом можно сформулировать и решить как задачу дискретного динамического программирования [4; 5].

Основное функциональное уравнение Р. Беллмана для этой задачи можно записать в виде

Qk(x*-1)=min \fk (uk)+ök\i(xk-1 + uk )}=

uk eU Доп

min\ Z Ck (uk)+Ck0 (uk0) +q;+i (Хк-1 + Uk) к

Uk EU Доп L'iük

и k

где 0 (Хк-1) - функция Беллмана; йк (Хк-1)- условно оптимальное управление на к -м шаге. Алгоритм решения задачи, реализующий уравнение (6), строится стандартно в два этапа [4; 5].

uk eu* imi*

4. Пример решения задачи

Рассмотрим в качестве примера сетевую модель, приведённую на рис. 3.

Рис. 3. Расчетная сетевая модель

Пусть работа 0-1 выполнена с опозданием на Л^_2. Анализ сетевой модели показывает, что

работа 0-1 лежит на критическом пути.

Множество путей, соединяющих событие 1 и конечное событие 8, включает три пути: 1-3-4-6-8; 1-5-6-8; 1-5-7-8, при этом путь 1-3-4-6-8 - критический. Путь 1-5-6-8 имеет общий резерв 2 дня, а путь 1-5-7-8 - 3 дня. Поэтому:

- если Л^_2 < 2, то корректировке подлежит только путь 1-3-4-6-8 на Л^_2 дней;

- если Л^_2 = 3, то корректировке подлежит путь 1-3-4-6-8 на 3 дня, а путь 1-5-6-8 на 1 день;

- если Л^_2 >3, то корректировке подлежит путь 1-3-4-6-8 на Л^_2, путь 1-5-6-8 на (Лt1_2_22) дней, путь 1-5-7-8 на (Лt1_2_3) дней.

Разобьём сетевой граф на этапы, проведя процедуру расщепления вершины 5 (рис. 3). Полученный сетевой граф приведён на рис. 4.

0 12 3 4

Рис. 4. Приведенный граф

Перечень путей, соединяющих вершину 1 работы 0-1 и конечное событие 9, приведён в табл. 1. Возможности по ускорению работ приведены в табл. 2.

Таблица 1

Номер пути События Длина пути Резерв

1 1 4 6 8 9 28 0

2 1 3 5 8 9 26 2

3 1 3 5 7 9 25 3

шаг 0 1 2 3 4

Таблица 2

Вершины С

и=0 II I-1 "к = 2

1 3 0 5 10

1 4 0 7 -

3 5 0 - -

4 6 0 6 12

5 8 0 5 -

6 8 0 6 13

5 7 0 7 -

7 9 0 5 14

8 9 0 8 11

Пусть = 4, т.е. корректировать необходимо все три пути.

Схема проведения расчётов приведена на рис. 5. Здесь вершины графа соответствуют вектору фазовых координат. На графе приведены только те вершины, которые лежат на достижимых путях из состояния (4,2,1) на 4 этапе в состояние (0,0,0) на нулевом этапе. Число над вершиной соответствует текущему значению целевой функции. Путь, соответствующий оптимальному решению, выделен курсивом.

0 0

О__о_

4 2 1 и^—-Н 4 2 1 ^

\ ^^(ЗТ^^ 3 1 1 к

\\\ \ ^Х,

\ \\ 21 20 \\\ \\ ^ 1 1 1 ^ '"'^[ТТТ

\ \\ \У\ 26

\ \\ \\\ ^^[отт

11

\ \ Ч"2"оТ1 \\\

\ Х^з^Х \\\

х 1 3 1 0 кЛ;\ \\\

Рис. 5. Схема расчетов

Анализ полученного решения (траектория 000 - 000 - 100 - 200 - 421) показывает, что на первом этапе корректировать план нет необходимости; на втором этапе необходимо ускорить на 1 день работу, лежащую на первой траектории (работу 4-6), на третьем этапе - опять ускорить на 1 день работу, лежащую на первой траектории (работу 6-8), на четвёртом этапе - ускорить на 2 дня работу 8-9 (первая и вторая траектории) и на 1 день работу 7-9 (третья траектория). Суммарные затраты на реализацию такого плана составят 28 единиц.

Заключение

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

ЛИТЕРАТУРА

1. Емеличев В.А., Мельников О.И., Сарванов В.И. Лекции по теории графов. - М.: Наука, 1990.

2. Буряк Ю.И., Скрынников А.А. Оптимальное распределение ресурсов в задаче оперативного управления состоянием авиационной техники: материалы XII Всероссийского совещания по проблемам управления. В печати.

3. Новицкий Н.И. Сетевое планирование и управление производством. - М.: Новое знание, 2004.

4. Габасов Р., Кириллова Ф.М. Основы динамического программирования. - Минск: БГУ, 1975.

5. Моисеев Н.Н. Элементы теории оптимальных систем. - М.: Наука, 1974.

DEADLINES OPTIMAL CORRECTION OF PROJECT EXECUTION FOR ANY DEVIATIONS FROM NETWORK SCHEDULE

Buryak Yu.I., Ivenin I.B., Skrynnikov Л.А.

An algorithm of optimal correction of the work plan in the event of a deviation from the network schedule is proposed. Requirement within to perform activities in a given period of time with minimal additional resources involved to accelerate the work. The correction algorithm is based on using dynamic programming method taking into account the problem inherent feature when calculating the target function.

Key words: optimal correction of work schedule, network schedule, dynamic programming.

Сведения об авторах

Буряк Юрий Иванович, 1953 г.р., окончил МВТУ им. Н.Э. Баумана (1976), кандидат технических наук, старший научный сотрудник, начальник подразделения ФГУП ГосНИИАС, автор более 90 научных работ, область научных интересов - методы автоматизации сбора и обработки информации.

Ивенин Игорь Борисович, 1955 г.р., окончил МАИ (1978), кандидат технических наук, начальник лаборатории ФГУП ГосНИИАС, автор более 80 научных работ, область научных интересов - математические методы системного анализа, исследования операций и обоснования решений.

Скрынников Андрей Александрович, 1962 г.р., окончил Даугавпилское ВВАИУ им. Я. Фабрициуса (1984), кандидат технических наук, старший научный сотрудник, доцент МГТУ ГА, автор более 80 научных работ, область научных интересов - вероятностные методы оценки эффективности авиационных комплексов.