№ 4 (52) 2014
В. И. Карпов, докт. техн. наук, профессор Российского экономического университета им. Г. В. Плеханова, г. Москва, [email protected] С. А. Корзунов, аспирант Московского государственного университета пищевых производств, [email protected]
С. Е. Грачева, аспирант Московского государственного университета пищевых производств, [email protected]
оптимизация календарного плана выполнения комплекса взаимосвязанных работ в системе поддержки принятия решений
В статье рассматривается задача календарного планирования комплекса взаимосвязанных работ . Представлена математическая постановка задачи составления оптимального календарного плана взаимосвязанных работ . Предложен метод решения, основанный на идеях динамического программирования . Разработан алгоритм пошагового построения решения в виде графа допустимых состояний с использованием правил отсеивания неперспективных вариантов, что упрощает реализацию метода на современном компьютере . Работа алгоритма иллюстрируется примером Рассмотрена информационная технология использования метода оптимизации календарного планирования в системе поддержки принятия решения .
Ключевые слова: управление проектами, оптимизация, календарное планирование, динамическое программирование, информационные технологии, системы поддержки принятия решений
введение
Задача планирования комплекса взаимосвязанных работ, имеющих сложную сетевую структуру, является актуальной для всех типов проектов. Например, при внутрифирменном планировании [1], при строительстве группы объектов [2], проведении цикла научно-исследовательских и опытно-конструкторских разработок [3]. Методы сетевого планирования являются базовыми в MS Project [4]. Такие комплексы работ характеризуются следующими особенностями:
• четко задана конечная цель (например, минимизация сроков завершения работ или выпуск нового изделия к заданному сроку);
• определены общие ресурсные ограничения на производство всего комплекса работ;
• известны логические условия начала выполнения каждой работы (перечень работ, которые должны быть завершены до начала данной работы).
Таким образом, задачи планирования целевых комплексов работ возникают в различных отраслях и, как правило, решаются с помощью методов календарного планирования. Однако эти методы не всегда удовлетворяют требованиям практики — в их рамках обычно не удается учесть все разнородные требования к составляемым планам, организовать эффективную процедуру корректировки полученного решения, а также в полной мере использовать опыт и интуицию планировщи-
\ 101
№ 4 (52) 2014
journal of appued informatics
ков и управленческих работников. Необходимость разработки эффективных методов планирования и управления целевыми комплексами работ — актуальная задача.
Постановка задачи
Пусть даны множество работ и их логические взаимосвязи в виде графа
G = < X, MS >,
где X — множество вершин х (I), I = 1, ..., N; MS — матрица смежности графа.
Каждая вершина х (I) соответствует 1-й работе, MS (I, ¡) — элемент матрицы MS:
MS(I, ¡) = 1, если ¡-я работа должна выполняться после -й.
MS (I, ¡) = 0, если '¡-я работа должна выполняться после ¡-й.
MS (I, ¡) = MS(I, ¡) = 0, если работы независимы.
Очевидно, для любого I и \ справедливо одно из двух соотношений:
MS(I, ¡) + MS(¡, I) = 1;
MS(I, ¡) + MS(¡, I) = 0.
Последнее означает, что эти работы могут выполняться в любом порядке, в том числе и параллельно.
Пусть также для каждой I-й работы заданы:
• трудоемкость выполнения работы tr (I) [человеко-день];
• варианты интенсивностей выполнения I-й работы Ints(I, к) [человек], к = 1, ..., К. Время выполнения I-й работы dt(I) при к-м варианте интенсивности определяется по формуле
dt(/', к) = Щ/П^, к). (1)
Так, при трудоемкости работы 20 человеко-дней и при интенсивности 2 человека время выполнения работы будет равно 10 дням.
Для множества работ X задано время выполнения Td (X) [дней] и задан объем ресурсов Я — множество работников (объектов)
для выполнения работ X, а для каждого г, принадлежащего Я, задано х (г) — множество работ, в которых может участвовать объект г.
Введем календарное время t, принимающее значения t = 0, 1, 2, ..., Т [день]. В нашем случае интервал [0, Т] соответствует времени выполнения всех заданных работ. При этих исходных данных и при условии, что любая работа х (I), начавшись однажды, выполняется непрерывно с выбранной интенсивностью Ints (I), для каждой работы х требуется определить:
Тп (х()) — время начала выполнения работы х(1), ... I = 1, ., N.
Ят(х (I), 0 — множество объектов, закрепленных за работой х (I) на время ее выполнения в момент t. При этом Ят (х (I), ^ не изменяется в течение всего времени выполнения работы.
При этом предполагается:
Ints (х (I)) — интенсивность выполнения работы х (I) определяется по формуле
Ints(х(/), 0 = I Ят(х(0, 01, (3)
где 1Ят (х (I), 01 — мощность множества Ят (х (I), 0, т. е. количество его элементов (объектов), задействованных в момент t.
При этих условиях Тк (х (I)) — календарное время окончания работы х (I), начатой в момент t, определится по формуле
Тк(х^)) = Тп(х(I)) + tr(I) / П(х(I, % (4)
Допустимое решение
Допустимым решением задачи составления календарного плана работ будем называть вектор <Тп(х(I)) > I = 1, ..., N, удовлетворяющий соотношениям (5). Любая работа х (I) должна быть завершена не позднее директивного срока Td (X) завершения всех работ
V/'(Tk(x(/')) < Td(X)). (5)
Любая работа может быть назначена к выполнению в любой момент t только в том
№ 4 (52) 2014
случае, если выполнены все работы, необходимые для начала ее выполнения:
V/Vj((MS(i, j) = 1) ^ Tk(x(/)) < Tn(x(j))) (6) где j = 1,..., N.
В любой момент времени t количество используемых ресурсов не может быть больше имеющихся:
Vt I Z(t)l< R, (7)
где Z(t) = £{Rm(x(i)) I Tn(x(i) = t}.
Любой объект r (работник r) в любой момент времени t может использоваться только при выполнении одной работы:
Vr((r е Rm(x(i), t)) ^ r e x(r) a
AVj(j * i ^ r e Rm(x(j), t))). (8)
Необходимыми условиями существования допустимого решения являются:
• отсутствие контуров в исходном графе;
• длина критического пути не должна быть больше директивного срока выполнения всех работ.
Поиск и удаление контуров в графе — это отдельная задача, решение которой предложено в [5]. Расчет критического пути не представляет сложности и реализуется классическим методом динамического программирования.
критерий оптимальности
В качестве возможного критерия оптимальности k-го варианта решения задачи Q (k) рассмотрим максимальное потребление ресурса (количество одновременно задействованных сотрудников) на всем интервале выполнения работ:
Q(k, t) = maxZ(k, t).
t
Для вычисления этого критерия на каждом шаге построения решения целесообразно использовать следующее рекуррентное соотношение:
Q(k, t +1) = тах(0(/, 0, г(I, 0), (9)
где г (/, 0 — вариант / в момент t, из которого получен вариант Q (к, t+1), Q (/, 0 — значение критерия для варианта Q (к, t+1).
Оптимальным решением задачи Qopt будем понимать вариант, минимизирующий Q (к):
Qopt = тнптахг(к, 0. (10)
I !
Содержательный смысл такой постановки заключается в том, что при оптимальном варианте обеспечивается наиболее равномерное во времени потребление ресурса (более равномерная загрузка работников).
Метод решения
Для решения поставленной задачи предлагается использовать методологию динамического программирования. Обозначим к-е состояние процесса решения в момент t - S к)
S(t,к) =< S(t,к,1.1)^^, к,2,/),
S(t, к,3, i),S(t, к, 4,/) >, / = 1,N, (11)
где S (^ к, 1, ) = 0, если работа / в момент t еще не выполняется; S (^ к, 1, /) = 1, если выполнение работы / к моменту t уже началось; S (^ к, 1, /) = 2, если к моменту t работа уже закончена;
S (t, к, 2, /) — количество человеко-дней, потраченных на выполнение работы / к моменту t. Если работа к моменту t не начиналась, то S к, 2, /) = 0;
S (t, к, 3, /) — номер варианта состояния в момент t — 1, из которого получено состояние S (^ к, 3, /);
S (t, к, 4, /) — интенсивность выполнения работы / в момент t. Если работа не выполняется в момент t, то S (t, к, 4, /) = 0.
Рассматривая каждое состояние S (t, к) как вершину графа, а переход от состояния S (t, к) к состоянию S (t+1, /) будем считать дугой графа:
\ 103
№ 4 (52) 2014
journal of applied informatics
и(к, I) =< S(t, к),S(t +1,I) >.
Тогда получим граф, который будем называть графом допустимых состояний (ГДС). Рассмотрим правила построения вариантов решения в момент t + 1 (вершин ГДС, соответствующих t +1) при заданном состоянии S (^ к).
Для любой работы I
к,1, I) = 1) => =>S((+1,к,2,)S((, к,2,0+ Ints(хО^; (12)
^ +1, к, 2, I) = tr(I)) => S(t, к, 1, I) = 2. (13)
Соотношение (12) означает, что любая работа, начавшись однажды, продолжается непрерывно с выбранной интенсивностью потребления ресурса. Соотношение (13) означает, что работа I завершается в момент t. Пусть Xr — множество вершин X (I), для которых в момент tS (^ к, 2, I) = 2. Образуем новый граф Gt = ^ \ Xr, MSt>, в котором MSt — матрица MS, в которой удалены строки и столбцы, соответствующие элементам множества Xr. Обозначим множество вершин графа Gt, в которые не входит ни одна дуга, как Xo. Тогда любая вершина из Xo в силу соотношения (6) может быть назначена для выполнения в момент t, также как и не назначена. Если вершина X (к) назначается для выполнения в момент t, то S (^ к, 1, I) = 1. Пусть к: = 1X01. Тогда число возможных вариантов назначения Nn
=с;+сУ+...+ск:. (14)
Например, если Xo = {X (2), X (4)}, то возможные 4 варианта назначений: никого не назначать, назначить X (2), назначить X (4), назначить X (2) и X (4). Последний вариант означает, что начинается параллельное выполнение двух работ X (2) и X (4). Если для каждой работы допустимы два варианта интенсивностей выполнения, то всего в последнем варианте получим 4 варианта назначений. В целом для множества Xo возможны будут всего 1 + 2 + 2 + 4 = 9 вариан-
тов назначений (девять новых вершин ГДС). Пусть F — оператор формирования новых допустимых (т. е. удовлетворяющих всем ограничениям (4.5) — (4.8)) вершин графа из вершины S (^ к). Обозначим S ^ + 1, к, S(^ к)) множество вершин ГДС, полученных из вершины S (^ к) оператором F:
S(t +1, к, S(t, к)) = F(S(t, к)).
Пусть S (0 — множество вершин ГДС в момент t. Тогда, применяя к каждой вершине множества S оператор F, получим множество S ^ + 1):
S(t +1) = у F(S(t, к)). (15)
S(t ¡k)ES(t)
Введем понятие «неперспективная вершина (НВ)». Любую вершину S (^ ¡) будем называть «неперспективной», если для нее существует такая вершина I, для которой справедливо соотношение
Уп^, 1,1, п) > S(t, ¡, 1, п) а Q(t, I) < Q(t, ¡)). (16)
Пусть Snv ^ + 1) множество всех НВ, определенных по соотношению (16) для всех вершин множества S ( + 1). Определим новое множество S ^ +1) по формуле
S(t +1) = S(t +1)\Snv(t +1). (17)
Применяя на каждом шаге построения решения соотношения (16) и (17), получим граф перспективных состояний (ГПС). В таком случае решение нашей задачи сводится к нахождению оптимального пути на ГПС от вершины к с компонентами S (0, к, 1, I) = 0 до вершины ¡ с компонентами S (Т, ¡, 1, 0, I) = 2. В качестве критерия оптимальности принимается величина, вычисляемая по формуле (10). Алгоритм решения такой задачи хорошо известен. С использованием ГПС задача оперативного управления составленным планом решается так же, как и исходная: находится путь от исходной вершины, отражающей реальное состояние, до конечной (все работы выполнены).
№ 4 (52) 2014
Пример реализации алгоритма
На рисунке 1 представлен исходный граф взаимосвязанных работ. В таблице 1 представлены параметры исходного графа в предположении, что на выполнение каждой работы выделен один человек. Работы, входящие в критический путь, выделены символом «*» (работы Х3, Х5). В графе 4 для каждой работы исходя из критического пути указано позднее время начала. Нарушение этого срока увеличит время выполнения проекта. Заданное число ресурсов И = 3.
В таблице 2 представлен граф допустимых состояний (ГДС), полученный при пошаговом построении решения. Столбцы 0, 1, 2, ... соответствуют календарному времени. Строки 1, 2, ... соответствуют но-
XI Х4
Рис. 1. Исходный граф взаимосвязанных работ
Параметры
мерам состояний. Каждая ячейка таблицы соответствует вершине ГДС. Содержимое каждой ячейки табл. 2 рассмотрим на примере ячейки <2, 4> (строка 2, столбец 4): <1, 3, 4, 0, 0>, Q = 2, п = 5. Здесь первая работа выполняется, и на нее затрачен 1 человеко-день, на вторую работу затрачено 3 человеко-дня, и к моменту t = 5 выполнение ее завершено (тройка выделена жирным шрифтом), на третью работу затрачено 4 человеко-дня, четвертая и пятая работы не начинались. Информация Q = 2, п = 5 означает: критерий равен 2 ^ = 2) и вершина <2, 4> получена из вершины <5, 3> (п = 5).
Знаком «*» отмечены неперспективные вершины, так как есть более перспективные. Например, вершина <2, 3> с состоянием <1, 0, 3, 0, 0> и Q = 2 неперспективна, поскольку есть вершина <7, 3> с состоянием <3, 0, 3, 0, 0> и Q = 2 (критерий такой же, а сделано больше). А вот при t = 6 две вершины с одинаковыми состояниями: <1, 6> и <3, 6> (заштрихованные ячейки). Поэтому они объединяются в одну <1, 6>, но при этом вместо одного п получаем вектор п = <1, 2>. В результате отсева неперспективных вершин и объединения вершин получаем граф перспективных состояний (без ячеек, отмеченных знаком «*» в табл. 2). В результате получаем два оптимальных решения, представленных на рис. 2 и 3 в виде графиков Ганта. На рисунке 4 показан график потребления ресурсов для двух вариантов реше-
Таблица 1
одного графа
Работа Трудоемкость, человеко-дни Длительность, дни Позднее время начала, дни
XI 3 3 3
Х2 3 3 3
Л3* 6 6 0
К4 2 2 6
X5* 2 2 6
Длительность критического пути (работы Х3, Х5 — отмечены знаком «*» ) 8 дней
№ 4 (52) 2014
X5 X5
X4 X4
X3 X3
X2 X2
X1 X1
t 0 1 2 3 4 5 6 7 8 t 0 1 2 3 4 5 6 7 8
Рис. 3. График Ганта для второго варианта решения
r = 2
r = 1
t 0 1 2 3 4 5 6 7 8
Рис. 4. График потребления ресурсов (на всем интервале загружены 2 чел.)
Рис. 2. График Ганта для первого варианта решения
ний. В таблице 2 состояния, соответствующие этим вариантам решений, отмечены знаками «1» и «2» соответственно.
информационная технология управления проектом в системе поддержки принятия решений
Рассмотренные главная и вспомогательные задачи реализуются в системе поддержки принятия решений. Соответствующая информационная технология представлена на рис. 5. Блок 1 обеспечивает прием входной информации о работах и ресурсах. После формирования исходного графа в исходном графе блоком 2 отыскиваются контуры и после их удаления производится расчет критического пути и проверяется условие (5). Если в графе есть контуры или нарушено условие (5), то формируется информация об изменениях в исходной информации, ликвидирующих эти нарушения. Эта информация передается в блок 1 из блока 2. Информация без ошибок об исходном графе передается в блок 3. В блоке 3 формируется оптимальный календарный план выполнения работ. Этот план как управляющая информация в виде планового графика Ганта передается в блок 4. Если в процессе построения решения выясняется невозможность построения решения без нарушения всех ограничений, то эта информация передается в блок 2 для выработки не-
обходимых изменений в исходных данных. Блок 4 реализует мониторинг выполнения работ проекта. В заданный момент t в блок 4 поступает внешняя информация о фактическом состоянии работ. В блоке 4 вырабатывается информация о векторе в (0 ГДС и передается в блок 3. В этом блоке по тому же алгоритму, что и для исходного графа, рассчитывается оптимальный план выполнения оставшихся работ, а результат решения — в виде оперативного графика Ганта в качестве управляющей информации.
Заключение
В настоящей статье рассмотрена математическая постановка задачи оптимизации календарного плана взаимосвязанных работ и предложен метод решения, основанный на идеях динамического программирования. Алгоритм пошагового построения решения в виде графа допустимых состояний с использованием правил отсеивания неперспективных вершин и объединения одинаковых состояний графа позволяет резко сократить число рассматриваемых вариантов, что упрощает реализацию метода на современном компьютере. Применение метода предполагается для оптимизации плана выполнения комплексов работ с количеством от 150 до 250. Для эффективной реализации задачи необходима разработка системы поддержки принятия решений. Предложена информаци-
ш а\ о ■а ш
—I
о
о
о Хэ Хэ
Таблица 2
Граф допустимых состояний
О ч
0 1 2 3 <1,1,4, 0,0>0 = 3, п = 1 * 5 6 <3, 3, 6,1,1> 0 = 2,(1 = 1 «1» «2» 8
1 <0, 0, 0,0, 0> 0 = 0, п = 0 «1»«2» <0, 0,1, 0, 0>0=1, п = 1 <0, 0, 2, 0,0> 0 = 1, п = 1 <0, 0, 3, 0,0> 0 = 1,(1 = 1 <2, 3, 5, 0,0> 0 = 2,п = 2 «1 » <3, 3, 6, 0,0> 0 = 2,(1 = 1 <3, 3, 6, 0,0> 0 = 2, п = <1,2> «1» «2» <3, 3, 6, 2,2> 0 = 2,п = 1 «1»«2»
2 <0,1,1, 0, 0> 0 = 2, п = 1 «1 » <0,1,2, 0,0> 0 = 2, п = 1 * <1,0,3, 0,0> 0 = 2, (1 = 1 * <1,3,4, 0,0> 0 = 2, п = 5 «1 » <3, 2, 5, 0,0> 0 = 2,п = 3 «2» <3,3,6,1,0> 0 = 3,(1 = 1 <3, 3, 6, 1,0>0 = 3, (1 = 1 * <3, 3,6,2,1> 0 = 3,п = 2 <3, 3, 6, 2,2> 0 = 3, п = 2 *
3 <1,0,1, 0, 0> 0=2, п=1 «2» <1,0,2, 0,0> 0 = 2, п = 1 * <0,1,3, 0,0> 0 = 2, п = 1 * <3,1,4, 0,0> 0 = 2, п = 7 «2» <3,2,5, 1,0>0 = 3, п = 4 * <3, 3, 6, 0,0> 0 = 2,(1=2 <3, 3,6,2,0> 0 = 3,п = 4
4 <1,1,1, 0, 0> 0 = 2, п = 1 <1,1,2, 0,0>0 = 3, п = 1 * <1,1,3, о,о>о = з, (1 = 1 * <3,1,4, 1,0>0 = 3, п = 8 * <3, 3, 5, 2,0> 0 = 3, п = 6 <3, 3, 6, 2,0> 0 = 3,п=4
5 <0, 2, 2, 0,0> 0 = 2, п = 2 «1 » <0, 3, 3, 0,0> 0 = 2,(1 = 5 «1 » <3, 3, 4, 0,0> 0 = 3,п = 9
6 <1,2,2, 0,0>0 = 3, п = 2 * <1,3,3, о,о>о = з, (1 = 5 * <3,3,4, о,о>о = з, (1 = 9*
7 <2, 0, 2, 0,0> 0 = 2, п = 3 «2» <3, 0, 3, 0,0> 0 = 2,(1 = 7 «2» <3, 3,4,1,0> 0 = 3,п = 9
8 <2,1,2,0,0> 0 = 3, п = 3 <3,1,3,0,0> 0 = 3, п = 7
9 <2,2,2,0, о>о = з, п = 4 <3,3,3, 0,> 0 = 3,п = 9
>
1=1
1С >
23
е
О "О
За
№ 4 (52) 2014
Текущее время t, состояние S (t) ГДС
Рис. 5. Информационная технология управления проектом в системе поддержки принятия решения
онная технология реализации рассмотренного метода в условиях такой системы.
Список литературы
1. Царев В. В. Внутрифирменное планирование. М.; СПб.: Питер, 2002. — 493 с.
2. Организация, планирование и управление проектированием и строительством / под ред. В. А. Ва-режкина. М.: Стройиздат, 1987. — 210 с.
3. Корзунов С. А., Карпов В. И. Типологическое планирование научных работ // Техника и тех-
нология пищевых производств. 2012. № 1. С. 147-149.
4. Кудрявцев Е. М. Project 2003. Сетевое планирование и управление проектами. М.: ДМК Пресс, 2006. — 240 с.
5. Карпов В. И, Виноградов В. А., Сурин А. М. Программа удаления контуров орграфа модулей содержания учебной дисциплины. № свид. 2010612819. Заявка 2010610951 от 02.03.10. Дата рег. в реестре программ (баз данных) 26.04.2010.
V. Karpov, Dr of Technique, Professor of Plekhanov Russian University of Economics, Moscow, [email protected] S. Korsunov, Graduate Student of Moscow State University of Food Production, [email protected] C. Gracheva, Graduate Student of Moscow State University of Food Production, [email protected]
Optimization of calendar plan implementations of complex of associate works in the system of support of making decision
The task of the calendar planning of complex of associate works is examined in the article. The mathematical raising of task of drafting of optimal calendar plan of associate works is presented. The method of decision, based on the ideas of the dynamic programming, offers. The algorithm of incremental construction of decision is worked out as a count of the possible states with the use of rules of screening-out of not perspective variants, that simplifies realization of method on a modern computer. Work of Algorithm is demonstrated by an example. Information technology of the use of method of optimization of the calendar planning is considered in the system of support of decision-making. Keywords: management by projects, optimization, calendar planning, dynamic programming, information technologies, systems of support of making decision.