Алгоритм оптимального распределения ресурсов внутри проекта

УДК 638.354.3

АЛГОРИТМ ОПТИМАЛЬНОГО РАСПРЕДЕЛЕНИЯ РЕСУРСОВ ВНУТРИ ПРОЕКТА С.А. Баркалов, В.Н. Бурков, Д.И. Голенко-Гинзбург, Е.А. Сидоренко

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

Ключевые слова: алгоритм, календарный план, ресурсы, сетевой график

Введение

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

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

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

Баркалов Сергей Алексеевич - ВГАСУ, д-р техн. наук, профессор, тел. (4732) 76-40-07

Бурков Владимир Николаевич - ИПУ РАН, д-р техн. наук, профессор, тел. (495) 334-79-00 Голенко-Гинзбург Дмитрий Иванович - Беер-Шева, д-р техн. наук, профессор, e-mail: dimitry@bgu.ac.il Сидоренко Елена Александровна - ВГАСУ, аспирант, тел. (4732) 76-40-07

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

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

Пусть О = {Р, и} - сетевой график, определяемый следующей парой множеств; Р - множество событий (вершин); и - множество работ (дуг); Тн =Ти; 1 у, где (г, у)е и} - календарный план выполнения проекта. Здесь Т] - плановое начало выполнения работы (г, ]), 1у - продолжительность ее выполнения.

Каждой работе (г, ]) е и соответствует числовая функция С у = /у (1), где 1 е ту, Ту - область определения этой функции; £ - директивный

срок выполнения проекта; С - плановая стоимость выполнения проекта в целом.

При этих обозначениях сформулируем задачу отыскания оптимального плана-графика выполнения работ проекта следующим образом.

Пусть календарный план Т удовлетворяет ограничениям:

Ту + 1 у ^ ^ для всех

^ СгФ.3

У t„

где

^у (t )=

1 при Ту < t < T +1 J; 0 в противном случае;

t.. e т ;

у у !

Ту > , г е р,

В области Б, описанной ограничениями (1) - (3), требуется найти план Т *, который обращает в минимум целевую функцию стоимости следующего вида:

С{т)=ЪСк\

(у )еи

Сформулированная задача (1) - (4) относится к задаче математического целочисленного программирования [1, 2]. Учитывая большую размерность задачи (число работ проекта может достигать нескольких тысяч), при ее решении ис-

дир

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

Задача I. Требуется найти план продолжительностей работ 1 {, (, у) е и}, который

удовлетворяет ограничению

Т

кр \ / дир V '

и обращает в минимум целевую функцию

с

Задача II. При заданном векторе продолжительностей С" = {, ( у) е и} требуется найти вектор Т* = {*, {, (, у) е и}, характеризующий начало выполнения каждой работы, который удовлетворяет условию (1) и обращает в минимум целевую функцию следующего вида:

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

тах

(Т 7С(К()-С

(,у )еи Г. £

' -1' г у лип

Другими словами, Ш (т * )= тт Ш (Т ).

Разработанные методы решения задач I и II позволяют, на наш взгляд, преодолеть трудности, связанные с большой их размерностью благодаря учету специфических особенностей топологии рассматриваемых сетевых графиков. Эти особенности состоят в возможности выделения фрагментов и замене каждого из этих фрагментов одной работой или же небольшим количеством укрупненных работ. Идея выделения фрагментов в свое время широко использовалась при расчете временных параметров сетей большого размера, например, в работе [3,4]. В настоящем разделе эта идея обобщается на решение задачи укрупнения исходной информации по времени - стоимости при замене фрагмента укрупненными работами.

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

I. Последовательность («цепочка») работ. Этот тип фрагментов обладает тем свойством, что начало выполнения любой (последующей) работы (кроме первой работы цепочки) является концом выполнения только одной (предыдущей) работы. Обозначим все работы цепочки через (г, у), (уу2),...,(у,у) и пронумеруем их в порядке следования.

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

^к^ ук), где к =1 п,г = у, у = у+1 - задаются числовой функцией вида:

С к = / (1),

где 1 етк.

Далее, пусть С у = / (1) - числовая функция, отражающая варианты выполнения работы (г , у) или цепочки в целом. Очевидно, что эта функция

где а = Т тт тк, Ь = Т тах тк .

В формуле (7) минимум берется по всем наборам {11, . ,1п}, которые в сумме не превосходят заданного числа 1 и 1к е тк. Функция / (1) является монотонно невозрастающей и имеет следующий технико-экономический смысл.

Каждому набору {,..., 1п} однозначно соот-

п

ветствует значение длины цепочки 1 = Т 1к и затрат

к=1

с = Т с, (к). Если каждое 1к пробегает тк, то все

к=1

наборы {/1,..., 1п} отображаются в множество М точек плоскости с осями координат С01. Эти наборы

можно пронумеровать для случая конечных Т,.

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

для каждого из которых найдется вариант с номером ^ Т)- если выполняются условия

С„ < С, Т < Т.

Оставшиеся после удаления точки в плоскости (с^) позволяют построить функцию /у (1) .

Для этого перенумеруем точки в порядке возрастания 1 и проведем из любой точки влево прямую, параллельную оси 1 до тех пор, пока координата 1 не примет значение координаты предыдущей точки.

Нетрудно видеть, что предложенная процедура построения зависимости /у () позволяет

лишь раскрыть ее сущность, однако является практически нереализуемой даже для небольшого количества работ и вариантов. Например, для цепочки с количеством работ, равным 10, и одинаковым числом вариантов, равным 3, для построения функции /у (1) требуется «просматривать» ->10

порядка 3 точек.

Для построения зависимости /у (1) будем

использовать весьма эффективный метод динамического программирования [3,5]. При этом вычисление /у для любого 1 сводится к последовательному вычислению на к-м шаге (к = 1, п) значения 1к е тк так, чтобы получить минимальное

пп

значение суммы Т ск (к) при условии Т 1к < 1.

к=1 к=1

Обозначим через С * )=.т1п Т Ск

Т*к <*N-1 к=1

затраты, соответствующие оптимальному распределению величины *N-1 по (А-1)-му шагу, и че-

к

к

рез

(х*,...,xN_) -

варианты распределения накоплен-

ной суммы £ tt до (N - 1) - го шага, запишем функ-

k=1

циональное уравнение, которому удовлетворяет оптимальное распределение после N шагов:

С (xN)= [С *(XN-1) + CN(tN)]>

XN-1+tN <XN

N=2, ... , n.

Исходя из сказанного, запишем алгоритм вычисления f и (t) для любого t в пределах

Т. < t < Т .

min max

Исходная информация для алгоритма.

1. Массивы значений (CkN, tkN) - вариантов выполнения N-й работы, где N=1,..., n, n - количество разработок.

2. Значения А.

Используемые обозначения в алгоритме.

N - номер шага выбора tN по N-й работе цепочки;

т к

XN_1 - запоминаемое значение накоплен-

N-1

ной суммы £ tk после (Ж-1)-го шага для оптималь-

к=1

ного варианта;

CN_ - соответствующее значение затрат;

А - интервал дискретности для просмотра

°Трезка [7;ш, Tmax]-

Поэтапная реализация алгоритма для последовательной цепочки работ имеет следующий вид:

Этап 1. N : = 1, x00 = 0, xj = го, C0k = 0.

N

Этап 2. aN : £ tt , где tk = minтк.

Этап 3. bN : = £tk, где tk = maxтк.

k=1

Этап 4. Вычисление M =

bN _ aN

А

+1 , где

[x] - целая часть х.

Этап 5. m: = 0 Этап 6. k:= 0, С; = го.

Этап 7. Вычисление zm := aN + m • А. Этап 8. Вычисление: ^ = zm - xtN_1.

Этап 9. Сравнение > 0 . Если нет, то переход к этапу 17.

Этап 10. 5:=1.

Этап 11. Сравнение дкт - > 0 . Если нет,

то переход к этапу 14.

Этап 12. 5: = 5 +1.

Этап 13. Переход к этапу 11.

Этап 14. Вычисление Ст = С*ы-1 + Сы (/:^-1).

Этап 15. Сравнение Ст - Ст < 0 . Если нет, то переход к этапу 17.

Этап 16. Ст := Ст; := х^ + С-1.

Этап 16'. к : к +1. Переход к этапу 8.

Этап 17. т : = т +1.

Этап 18. Сравнение т > М . Если нет, то переход к этапу 7.

Этап 19. N := N +1.

Этап 20. Сравнение N > п . Если да, то переход к этапу 22.

Этап 21. Переход к этапу 2.

Этап 22. Вычисление М : Ст = тт Ст .

Окончание работы алгоритма и выдача результатов: х’М, СМ и значения ^, Сы (^) при N=1, ... , п.

Литература

1. Бурков В.Н., Буркова И.В. Задачи дихотомической оптимизации. - М.: Радио и связь. 2003. - 156 с.

2. Бурков В.Н., Буркова И.В., Овчинникова Т.И., ПОПОК М.В. Метод сетевого программирования - Проблемы управления, 2005. № 3. С. 25-27.

3. Сигал И.Х., Иванова А.П. Введение в прикладное дискретное программирование. М.: ФИЗМАТ-ЛИТ, 2007. - 304 с.

4.Алферов В.И. Управление проектами в дорожном строительстве [Текст]: монография. / В.И. Алферов, С.А. Баркалов, П.Н. Курочка. - Воронеж: «Научная книга», 2009. - 340 с.

5.Теория систем и системный анализ [Текст]: учебное пособие / С.А, Баркалов [и др.]. - Воронеж: «Научная книга», 2009. - 626 с.

Институт проблем управления им. В. А. Трапезникова РАН

Воронежский государственный архитектурно-строительный университет Университет Беер-Шева

ALGORITHM OF OPTIMUM DISTRIBUTION OF RESOURCES INSIDE OF THE PROJECT S.A. Barkalov, V.N. Burkov, D.I. Golenko-Ginzburg, E.A. Sidorenko

In clause ways of the decision of problems of forward planning and forecasting of consumed resources for systems of network planning and management in which works are subject to influence of casual influences are considered is accepted, that duration of works of network model is a random variable

k=1

Key words: algorithm, the planned schedule, resources, the network schedule