УДК 519.8 В. В. Сервах, Т. А. Щербинина О СЛОЖНОСТИ ОДНОЙ ЗАДАЧИ КАЛЕНДАРНОГО ПЛАНИРОВАНИЯ СО СКЛАДИРУЕМЫМИ РЕСУРСАМИ В работе рассматривается задача календарного планирования проектов с учетом ограничений на складируемые ресурсы и критерием чистой приведенной прибыли. Доказано, что данная задача является N P -трудной в сильном смысле. Исследован частный случай задачи при независимых работах. Для этого случая предложен точный алгоритм решения, основанный на методе динамического программирования. Получены необходимые условия, при которых алгоритм является псевдополиномиальным. Введение В настоящее время в теории и на практике возникает множество разнообразных задач календарного планирования проектов с учетом ограничений на ресурсы. Под проектом будем понимать множество взаимосвязанных работ, выполнение которых направлено на достижение определенной цели. Взаимосвязь между работами задается технологией выполнения проекта. Каждая работа характеризуется длительностью и некоторыми ресурсными требованиями. Необходимо, с учетом ограничений на ресурсы, определить сроки выполнения работ проекта, при которых значение целевой функции оптимально. Задачам календарного планирования проектов с учетом ограничений на ресурсы посвящено множество работ [3, 9, 11]. Если ресурсы возобновимые, то задача календарного планирования проектов c ограниченными ресурсами N P -трудна в сильном смысле [6]. Для задачи с ресурсами складируемого типа и критерием общего времени завершения всего проекта предложен полиномиальный алгоритм [1]. В работе [7] доказано, что задача календарного планирования со складируемыми ресурсами и критерием общего времени завершения работ проекта при наличии работ с отрицательными потребностями является N P -трудной в сильном смысле. В данной работе рассматривается задача календарного планирования проектов с одним видом складируемого ресурса и критерием чистой приведенной прибыли. Целью работы является анализ сложности задачи. § 1. Постановка задачи Пусть V = {1, . . . , N } — множество взаимосвязанных работ проекта. Взаимосвязь задается технологией выполнения проекта и определяется отношениями предшествования вида i → j, где работа j не может начать свое выполнение до завершения работы i. Данная структура может быть представлена ориентированным ацикличным графом G = (V, E), где через V обозначим множество вершин, а E = {(i, j) | i, j ∈ V, i → j} — ISSN 1818-7897. Вестник НГУ. Серия: Математика, механика, информатика. 2008. Т. 8, вып. 3. C. 105–111 c В. В. Сервах, Т. А. Щербинина, 2008 ° 106 В. В. Сервах, Т. А. Щербинина множество дуг. Пусть T — горизонт планирования проекта. На начало периода [t − 1, t) в наличии имеются складируемые ресурсы объемом K(t), t = 1, . . . , T . Работа j ∈ V характеризуется длительностью pj ∈ Z+ и потребностью в складируемом ресурсе kj (τ ) для каждого периода [τ − 1, τ ), τ = 1, 2, . . . , pj . Прибыль, получаемая от выполнения работы j ∈ V , задана потоком поступлений cj , где cj (τ ) ≥ 0 — поступление в момент τ от начала выполнения работы j ∈ V , τ ∈ Z+ \{0}. Весь поток поступлений с помощью операции дисконтирования может быть приведен к началу выполнения работы, и тогда прибыль составит ∞ X N P Vj = τ =1 cj (τ ) , (1 + r0 )τ где r0 — цена капитала на рынке, или базовая процентная ставка. Предполагается, что все работы выполняются непрерывно. Обозначим через sj момент начала выполнения работы j. Вектор S = (s1 , s2 , . . . , sN ) называется расписанием выполнения работ проекта. В силу целочисленности длительностей pj достаточно рассмотреть расписания с целыми sj . Множество работ, выполняемых в интервале [t − 1, t), t ∈ Z+ \{0} обозначим через Nt = {j ∈ V | sj < t 6 sj + pj }. Расписание S называется допустимым, если: — сохраняется заданный частичный порядок выполнения работ: si + pi ≤ sj , (i, j) ∈ E; (1) sj ∈ {0, 1, . . . , T − 1}; (2) — в каждый момент времени ресурсов достаточно для выполнения работ проекта: t X X t0 =1 0 kj (t − sj ) ≤ j∈Nt0 t X K(t0 ), t ∈ {1, 2, . . . , T }; (3) t0 =1 Требуется определить допустимое расписание выполнения работ проекта S с учетом технологического порядка и ограничений на ресурсы, при котором чистая приведенная прибыль (Net Present Value, NPV) максимальна: N P V (S) = X j∈V N P Vj → max . (1 + r0 )sj (4) Обзоры по задачам календарного планирования со складируемыми ресурсами и N P V -критерием представлены в работах [5; 8; 9]. § 2. N P -трудность задачи календарного планирования с независимыми работами Важным частным случаем является задача календарного планирования (2)–(4) с независимыми работами. Для данной задачи справедлива следующая теорема. Теорема 1. Задача календарного планирования проектов со складируемыми ресурсами и критерием чистой приведенной прибыли является N P -трудной, даже в случае независимых работ единичной длительности. О сложности одной задачи календарного планирования 107 ДОКАЗАТЕЛЬСТВО. Рассмотрим проект, состоящий из множества V = {1, . . . , N } независимых работ. Все работы имеют единичные длительности pj = 1, j ∈ V . Величина kj задает капиталовложения, необходимые для выполнения работы j, а N P Vj — получаемый доход. Без ограничения общности, будем считать, что все kj целые, а отсчет времени ведется с нулевого момента. P Пусть выполнено условие kj 6 K(1)+K(2), которое предполагает, что все работы j∈V гарантированно выполняются за два временных интервала. Для работы j ∈ V будем полагать xj = 1, если работа выполняется в первый период времени, и xj = 0, если во второй. В первый период времени потребуется ресурс объемом P P kj xj , а полученная прибыль равна N P Vj · xj . Соответственно, во второй период j∈V j∈V P P потребуется kj · (1 − xj ) ресурса, а прибыль составит N P Vj · (1 − xj ). j∈V j∈V Общая прибыль от выполнения работ проекта будет равна X 1 X N P Vj · xj + N P Vj · (1 − xj ). 1 + r0 j∈V j∈V Для соблюдения ограничений на ресурсы достаточно выполнения следующего нераP венства kj xj 6 K(1). После упрощения целевой функции имеем j∈V ³ X 1 X 1 ´ N P Vj + N P Vj · 1 − xj = 1 + r0 1 + r0 j∈V j∈V X r0 r0 X = const + N P Vj · xj = const + N P Vj · xj . 1 + r0 1 + r0 j∈V j∈V Получаем задачу булевого линейного программирования следующего вида: X N P Vj · xj → max, (5) j∈V X kj xj 6 K(1), (6) j∈V xj ∈ {0, 1}, j ∈ V. (7) К задаче календарного планирования (2)–(4) с независимыми работами сводится задача о рюкзаке: n X j=1 n X vj xj → max, mj xj 6 M, j=1 xj ∈ {0, 1}, j = 1, 2, . . . , n, которая является N P -трудной в сильном смысле [10]. Для этого достаточно в задаче (5)–(7) положить: N P Vj = vj , kj = mj , K(1) = M . Тем самым N P -трудность задачи календарного планирования (2)–(4) с независимыми работами доказана. Заметим, что задача календарного планирования (2)–(4) с независимыми работами при T = 2 может быть решена алгоритмом динамического программирования, трудоемкость которого не превосходит O(N · K(1)). 108 В. В. Сервах, Т. А. Щербинина § 3. Алгоритм динамического программирования Рассмотрим задачу календарного планирования проектов (2)–(4), когда работы имеют произвольную длительность и выполняются независимо друг от друга. Для существования допустимого расписания необходимо выполнение следующих условий: pj N X X kj (τ ) ≤ j=1 τ =1 T X K(t) и pj ≤ T, j = 1, 2, . . . , N. t=1 Но эти два условия не являются достаточными. Рассмотрим проект, состоящий из двух независимых работ. Пусть горизонт планирования проекта T = 2. Длительности работ равны горизонту планирования p1 = p2 = 2. Cкладируемый ресурс имеется в объемах K(1) = 10, K(2) = 14. Каждая работа потребляет по 6 единиц ресурса в единицу времени. Очевидно, что необходимые условия выполнены. Но при построении расписания при t = 1 ресурса хватает только на одну из работ. Следовательно, выполнение второй работы должно быть сдвинуто на одну единицу. И с учетом длительностей работ получаем, что при заданном горизонте планирования T = 2 допустимого расписания реализации проекта не существует. Для построения точного решения данной задачи нами предложен алгоритм, основанный на схеме динамического программирования. Основными элементами алгоритма динамического программирования являются множество состояний и рекуррентное соотношение. Под состоянием будем понимать промежуточный проект hn, b1 , b2 , . . . , bT i, которому отвечает задача календарного планирования с работами 1, 2, . . . , n, где n ≤ N и объемами ресурса bt , 0 ≤ bt ≤ K(t), t = 1 , 2, . . . , T . Состояния вида h0, b1 , b2 , . . . , bT i называются начальными состояниями, а hN, K(1), K(2), . . . , K(T )i — конечным состоянием. Обозначим через ϕ(n, b1 , b2 , . . . , bT ) максимальное значение чистой приведенной прибыли для состояния hn, b1 , b2 , . . . , bT i. Предлагаемый алгоритм перебирает состояния hn, b1 , b2 , . . . , bT i и вычисляет значения ϕ(n, b1 , b2 , . . . , bT ) по следующей схеме: Шаг 1. Формирование начальных условий. Полагаем ϕ(0, b1 , b2 , . . . , bT ) = 0 для всех bt = 0, 1, . . . , K(t), t = 1, 2, . . . , T . Шаг 2. Реализация рекуррентного соотношения. Для n = 1, 2, . . . , N и bt = 0, 1, . . . , K(t) при t = 1, 2, . . . , T выполняем: Первоначально ϕ(n, b1 , b2 , . . . , bT ) = −∞. pj n P T P P — Если kj (τ ) ≤ K(t), то для τ = 1, 2, . . . , T − pn + 1 выполняем j=1 τ =1 t=1 процедуру «Вычисление остатков ресурсов». 0 0 — Если результат процедуры true, то для полученных остатков ресурсов b1 , b2 , 0 . . . , bT вычисляем: ϕ(n, b1 , b2 , . . . , bT ) = max{ϕ(n, b1 , b2 , . . . , bT ), N P Vn 0 0 0 + ϕ(n − 1, b1 , b2 , . . . , bT )}. τ (1 + r0 ) При достижении максимума на втором члене запоминаем текущее значение τ . О сложности одной задачи календарного планирования 109 Оно будет задавать лучшее время начала работы n для текущего состояния. Конец цикла по τ . Опишем процедуру «Вычисление остатков ресурсов». Для текущего значения переменной τ вычисляем: 0 0 0 bτ = bτ − kn (1); bτ +1 = bτ − kn (2); . . . ; bτ +pn −1 = bτ − kn (pn ). 0 Далее пересчитываем значения bτ . Цикл τ ∗ = τ + pn − 1 до 2: 0 0 0 0 0 — Если bτ ∗ < 0, то bτ ∗ −1 = bτ ∗ −1 − |bτ ∗ |; bτ ∗ = 0 ; 0 Если b1 < 0, то ресурсов не хватает, и процедура возвращает false; иначе результат процедуры true. — Если для конечного состояния имеем ϕ(N, K(1), K(2), . . . , K(T )) = −∞, то допустимого расписания выполнения работ не существует. Иначе переходим к шагу 3. Шаг 3. Восстановление оптимального расписания. Для конечного состояния hN, K(1), K(2), . . . , K(T )i на шаге 2 запоминалось оптимальное значение начала выполнения работы N . Фиксируем его, вычитаем ресурсы и переходим к состоянию с N − 1 работой. Для него также запоминали оптимальный срок выполнения работы N − 1. Далее действуем аналогично. Предложенный алгоритм осуществляет неявный перебор всех решений. Его трудоемкость составляет O(N T 2 K(1)K(2) · . . . · K(T )). Таким образом, доказано следующее утверждение. Утверждение 1. Если горизонт планирования T фиксирован, то задача календарного планирования (2)–(4) псевдополиномиально разрешима. § 4. Сильная N P -трудность задачи календарного планирования со складируемыми ресурсами В данном параграфе исследуется сложность задачи (1)–(4). Теорема 2. Задача календарного планирования проектов со складируемыми ресурсами и критерием чистой приведенной прибыли является N P -трудной в сильном смысле, даже в случае работ единичной длительности. ДОКАЗАТЕЛЬСТВО. Рассмотрим задачу о клике. Даны неориентированный граф Γ = (V Γ , E Γ ) и натуральное число y0 . Существует ли в Γ такой полный подграф (клика) Γ0 = (V 0 , E 0 ), что |V 0 | ≥ y0 ? Пусть v = |V Γ |, а e = |E Γ |. Задача о клике N P -трудна в сильном смысле [10]. Без ограничения общности будем считать, что в графе Γ изолированных вершин нет. Рассмотрим следующую задачу планирования проектов: существует ли такое допустимое относительно графа G = (V, E) расписание S 0 выполнения работ проекта, что N P V (S 0 ) ≥ y для заданного значения y. 110 В. В. Сервах, Т. А. Щербинина Покажем, что задача о клике полиномиально сводится к этой задаче. Используем идею сводимости, предложенную в [4]. По графу Γ сформируем задачу планирования проектов. Множество V зададим следующим образом. Каждой вершине j графа Γ сопоставляется работа vj , далее такие работы будем называть вершинными работами, а каждому ребру (i, j) ∈ E Γ — работа ei,j , которые будем называть реберными работами. На построенном множестве V определим отношение порядка предшествования E: vi → ei,j и vj → ei,j для всех (i, j) ∈ E Γ . Объемы имеющегося в наличии ресурса равны K(1) = y0 , K(2) = (v − y0 ) + y0 (y0 −1) 2 и K(3) = e − y0 (y0 −1) . 2 Для каждой работы j ∈ V потребность в ресурсе kj = 1, чистая приведенная прибыль работы N P Vj = 1 и базовая процентная ставка r0 = 1. Положим y = y0 + 12 ((v − y0 ) + Очевидно, что расписание S 0 удовлетворяет условию y0 (y0 −1) ) + 14 (e 2 N P V (S 0 ) ≥ y − y0 (y0 −1) ). 2 тогда и только тогда, когда выполнены следующие условия: (a) в течение временного интервала [0, 1) будут выполнены y0 вершинных работ; (b) в течение временного интервала [1, 2) — остальные v − y0 вершинных работ и y0 (y0 −1) 2 реберных работ; (c) в течение временного интервала [2, 3) будут выполнены e− y0 (y20 −1) реберных работ. Докажем, что расписание S 0 , удовлетворяющее перечисленным условиям (a)–(c), будет допустимым тогда и только тогда, когда граф Γ имеет клику, содержащую не менее y0 вершин. Предположим, что в графе Γ существует клика, содержащая не ме0 0 0 0 нее y0 вершин. Тогда существует такая клика Γ = (V , E ), что |V | = y0 . Рассмотрим расписание S 0 , при котором a) в интервале времени [0, 1) выполнены y0 вершинных 0 работ, соответствующие вершинам Γ ; b) в интервале времени [1, 2) выполнены 0 y0 (y0 −1) 2 реберных работ, соответствующие ребрам Γ и оставшиеся вершинные работы и c) в интервале времени [2, 3) выполнены оставшиеся реберные работы. Поскольку выполнены ресурсные требования для вершинных и реберных работ и все имеющиеся в наличии ресурсы были использованы, то S 0 — допустимое относительно G расписание и N P V (S 0 ) = y0 + 12 ((v − y0 ) + Пусть S0 y0 (y0 −1) ) 2 + 14 (e − y0 (y0 −1) ) 2 = y. — оптимальное расписание сформированной задачи планирования проек- тов, которое удовлетворяет условию: N P V (S 0 ) ≥ y0 + 12 ((v − y0 ) + y0 (y0 −1) ) 2 + 41 (e − − y0 (y20 −1) ) = y. Тогда в интервале времени [0, 1) выполняется ровно y0 вершинных работ. Обозначим множество этих вершинных работ через V 0 . Реберные работы вы- полняться в этом интервале не могут, так как любой реберной работе ei,j предшествуют две вершинные работы vi и vj , где (i, j) ∈ E Γ . В интервале [1, 2) выполняются y0 (y0 −1) 2 реберных работ. Обозначим это множество через E 0 . Также в интервале [1, 2) выполняются оставшиеся вершинные работы из множества V \V 0 . В интервале [2, 3) вершинные работы из множества V \V 0 выполняться не могут, потому что в графе Γ изолированных вершин нет. Следовательно, оставшиеся реберные работы выполняются в интервале времени [2, 3). Так как расписание S 0 допустимо, то реберные работы E 0 не связаны с вершинными работами из V \V 0 . Но тогда реберные работы из E 0 связаны с вершинными работами из V 0 и только с ними. Тогда имеем подграф, состоящий из вершин, О сложности одной задачи календарного планирования 111 соответствующих множеству V 0 , и ребер, соответствующих множеству E 0 . А так как |E 0 | = y0 (y0 −1) , 2 а |V 0 | = y0 , то этот подграф полный. В итоге получаем, что расписание S 0 , удовлетворяющее перечисленным условиям (a)–(c), будет допустимым тогда и только тогда, когда граф Γ имеет клику, содержащую не менее y0 вершин. Сведение задач является полиномиальным, так как для его реализации требуется не более O((v + e)2 ) операций. Список литературы 1. Гимади Э. Х., Залюбовский В. В., Севастьянов С. В. Полиномиальная разрешимость задач календарного планирования со складируемыми ресурсами и директивными сроками // Дискретный анализ и исследование операций. Новосибирск, 2000. Сер. 2. Т. 7, №. 1. С. 9–34. 2. Сервах В. В., Щербинина Т. А. О задаче календарного планирования проекта с различными критериями и складируемыми ресурсами // III Всерос. конф. «Проблемы оптимизации и экономические приложения». Омск, 2006. С. 125. 3. Brucker P., Drexl A., Mohring R. et al. Resource-constrained Project Scheduling: Notation, Classification, Models, and Methods // European Journal of Operational Research. 1999. Vol. 112. P. 3–41. 4. Brucker P., Lenstra J. K., Rinnooy Kan A. H. G. Complexity of Machine Scheduling Problems. Amsterdam: Math. Cent. Afd. Math. Beslisk. 1975. BW 43. 5. Doersch R. H., Patterson J. H. Scheduling a Project to Maximaze its Present Value: A Zero-one Programming Approach // Management Science. 1977. Vol. 23. No. 8. P. 882–889. 6. Garey M. R., Johnson D. S. Complexity Result for Multiprocessor Scheduling Under Resource Constraints // SIAM J. Comput. 1975. Vol. 4. No. 4. P. 397–411. 7. Gimadi E., Sevastianov S. On Solvability of the Project Scheduling Problem with Accumulative Resources of an Arbitrary Sign // Operations Research Proceedings. Springer. 2002. P. 241–246. 8. Icmeli O., Erenguc S. S. A Branch and Bound Procedure for the Resource Constrained Project Scheduling Problem with Discounted Cash Flows // Management Science. 1996. Vol. 42. No. 10. P. 1395–1408. 9. Herroelen W. S., Van Dommelen P., Demeulemeester E. L. Project Network Models with Discounted Cash Flows a Quided Tour through Recent Revelopments // European Journal of Operational Research. 1997. Vol. 100. P. 97–121. 10. Karp R. M. Reducibility among Combinatorial Problems. In R.E. Miller, J.W. Thatcher (eds.), Complexity of Computer Computations, N.Y.: Plenum Press. 1972. P. 85– 103. 11. Kolish R., Padman R. An Integrated Survey of Deterministic Project Scheduling // OMEGA — The International Journal of Management Science. 2001. Vol. 29. P. 249–272. Материал поступил в редколлегию 21.12.2007 112 В. В. Сервах, Т. А. Щербинина Адреса авторов СЕРВАХ Владимир Вицентьевич ЩЕРБИНИНА Татьяна РОССИЯ, 644099, Омск Александровна ул. Певцова, 13 РОССИЯ, 644077, Омск Омский филиал пр. Мира, 55А Института математики СО РАН Омский государственный e-mail: svv_usa@rambler.ru университет им. Ф. М. Достоевского тел. 8-960-985-15-36 e-mail: shcherbinina@bk.ru