УДК 002.53+004.65+004.62/.63+338.2 ББК 32.816, 65.05.0.2
МЕТОД СЕТЕВОГО ПРОГРАММИРОВАНИЯ В ЗАДАЧАХ УПРАВЛЕНИЯ ПРОЕКТАМИ
Бурков В. Н.1, Буркова И. В.2
(Учреждение Российской академии наук Институт проблем управления РАН, Москва)
Метод сетевого программирования разработан для получения точных решений или верхних (нижних) оценок задач многоэкстремальной (в частном случае - дискретной) оптимизации. Идея метода заключается в представлении задачи в виде суперпозиции более простых задач. Такое представление удобно изображать в виде сети (сетевое представление), вершины которой соответствуют задачам, входящим в суперпозицию. В каждой вершине решаются простые задачи оптимизации. Решение задачи в конечной вершине сети дает верхнюю (нижнюю) оценку для исходной задачи. Если сетевое представление является деревом, то решение задачи в конечной вершине сети дает оптимальное решение исходной задачи. В статье дается обзор применения метода для решения различных задач управления проектами.
Ключевые слова: сетевое программирование, управление проектами, дискретная оптимизация.
1. Введение
Задачи оптимизации в управлении проектами в основном связаны с определением предметной области проекта (т. е. состава работ проекта) и с построением календарного плана при ограниченных ресурсах. Как правило, это задачи многоэкстре-
1 Владимир Николаевич Бурков, д.т.н., профессор ([email protected])
2 Ирина Владимировна Буркова, к.т.н. ([email protected])
40
мальной (в частном случае - дискретной) оптимизации. В общем случае для их решения применяются эвристические алгоритмы. Из точных методов следует отметить метод ветвей и границ и метод динамического программирования. Эффективность метода ветвей и границ в большой степени зависит от качества верхних или нижних оценок (границ). Для получения таких оценок достаточно универсальным является метод множителей Лагранжа.
В 2004 году авторами был предложен метод дихотомического программирования [3], а несколько позднее его обобщение - метод сетевого программирования (МСП) [4]. Как метод точного решения задач, МСП обобщает метод динамического программирования, а как метод получения верхних (нижних) оценок - метод множителей Лагранжа.
В статье дается обзор применения МСП к задачам управления проектами. Дадим краткое описание МСП.
2. Метод сетевого программирования
Рассмотрим следующую задачу дискретной оптимизации: определить вектор х е X, обеспечивающий
(1) тах f (х)
хеХ
при ограничении
(2) р(х) < Ъ .
Далее будем предполагать, что X = П X ,где Xi - дискрет-
i
ное множество чисел.
Любая функция дискретных переменных допускает сетевое представление, такое, что вычисление значений функции сводится к последовательному вычислению значений более простых функций.
Пример 1. Рассмотрим функцию четырех переменных
(3) Ах) = (х1х2 + х12)х3 + х3х4 + х1х4.
Ее сетевое представление приведено на рис. 1, где
2
У1 = Х1Х2 + Х1 , У2 =У 1X3, У3 =Х1Х4, у4 =Х3Х4, У5 = У2 + У3 + У4-
Рис. 1. Пример сетевого представления функции
Определение 1. Функции Дх) и рх) называются структурно-подобными (с-подобными) в заданном классе сетевых представлений, если существуют сетевые представления этих функций такие, что соответствующие сетевые структуры совпадают. Пример 2. Рассмотрим функцию
(4) (р(х) = (хі + х2)х3(хі + х4) + х3х4.
Нетрудно показать, что одно из сетевых представлений этой функции имеет вид рис. і.
Пусть функции Дх) и рх) в задаче (1), (2) являются с-подобными. Построим их общее сетевое представление. Пусть далее целевая функция / является монотонной функцией обобщенных переменных у (без ограничения общности можно принять, что / - возрастающая функция у). Аналогично примем, что функция р также является возрастающей функцией у. В сетевом представлении выделим вершины нулевого уровня, которым соответствуют переменным хг. Вершинам первого уровня соответствуют задачи оптимизации следующего вида: максимизировать
(5) Уг = /г(х) при ограничении ^ = р(х) < р,
где р принимает все допустимые значения.
Как уже отмечалось выше, в сетевом представлении те задачи, которые соответствуют вершинам сетевого представления (за исключением вершин первого уровня) имеют более простой вид, такой, что существуют эффективные алгоритмы их решения. В частности, если сетевое представление является дихотомическим, то каждая задача является задачей оптимизации функции двух переменных и в дискретном случае легко решается на основе матричного представления. Решив задачи первого уровня, переходим к решению задач второго уровня, и т. д. Последней решается задача, соответствующая выходу сети. Обозначим ук(Ь) - значение целевой функции в оптимальном решении задачи, соответствующей выходу сети.
Теорема 1. Величина ук(Ь) является верхней оценкой для исходной задачи (1), (2).
3. Задача выбора портфеля проектов
Имеется п проектов, каждый из которых характеризуется затратами аг- на реализацию и эффектом с от реализации проекта. Задача заключается в выборе портфеля проектов с максимальным суммарным эффектом при заданной величине Я инвестиционного фонда. Формально задача сводится к классической задаче о ранце [6].
Математическая постановка задачи имеет вид:
(6) /(х) = £е]х] ® тах,
j
(7) ррх) = Ха]х] £ Я,
j
(8) х] е{0,1}, j = 1, п.
Структура сетевого представления является деревом, поэтому метод сетевого или дихотомического программирования дает оптимальное решение.
Различные обобщения этой задачи связаны с учетом ограничений на совместимость проектов, с учетом риска или ограничений на число проектов в тех или иных областях рассмотрены в [1, 2].
4. Задача календарного планирования
Рассмотрим задачу формирования календарного плана реализации проекта, состоящего из n работ.
Примем, что плановый период разбит на Т интервалов определенной длины А (недели, месяцы, кварталы и т. д.)
Обозначим Ri - множество интервалов, в которых может выполняться работа i; Ps]- - множество работ j-го вида которые могут выполняться в s-ом интервале. Заданы ограничения Qtj- на объем проектных работ каждого вида в каждом интервале. Для каждой проектной работы, в свою очередь, задан объем работ, выполняемый ресурсами каждого вида. Более того, примем, что каждая работа выполняется только одним видом ресурсов. Таким образом, все работы разбиты на m подмножеств так, что работы j-го подмножества выполняются ресурсами j-го вида. Обозначим через xis объем i-ой работы, выполняемый в s-ом интервале; cis - максимальный объем i-ой работы, который можно выполнить в s-ом интервале. Задача заключается в определении {xis}, i = 1, n , s = 1, T , так, чтобы
(9) xis £ Cis , i e Ps , s = 1T ,
Z Xis £ Wi , i = 1 П ,
seRi
где Wi - объем i-ой работы,
(10) Z x*£ Qj, j =1, m,
iePsj
а суммарный объем выполненных работ j-го вида
T
(11) ZZ хи
s=1 iePsj
был максимален.
Ограничимся случаем независимых работ. Для решения задачи определим двудольный граф G(X, Y). Вершины i e X соответствуют работам, а вершины s e Y соответствуют интервалам. Пропускные способности вершин i e X равны объектам Wi соответствующих работ, а пропускные способности вершины
s е У равны объему работ, который можно будет выполнить в соответствующем интервале, т. е. Qs.
Пропускные способности дуг (7, 5), 7 = 1, п , 5 е Я7, равны С75. Задача свелась к определению максимального потока в полученной сети, что соответствует минимальному объему работ, отдаваемых на субподряд. Опишем алгоритм определения потока максимальной величины, основанный на методе сетевого программирования.
ЗАДАЧА О МАКСИМАЛЬНОМ ПОТОКЕ
Рассмотрим произвольную сеть без контуров на дугах (7, у), которой заданы пропускные способности С7у > 0. Как известно, потоком в сети называется совокупность чисел 0 < х} < сф (7,у) е и (и - множество дуг сети), таких что
(12) X х1} =х хы
у к
для всех 7 Ф 0, п, где 0 - вход сети, а п - выход сети. Величиной потока называется
(13) % =Х Х0г =Х Хуп .
7 ]
Задача заключается в определении потока максимальной величины. Для решения этой задачи, как правило, применяется алгоритм Форда-Фалкерсона. Мы рассмотрим другой подход, в основе которого лежит метод сетевого программирования. Сначала дадим определение агрегируемой сети. Определение 2. Последовательным множеством называется подмножество дуг сетевого графика, образующих путь такой, что любая вершина, за исключением начальной, имеет степень захода 1, и любая вершина, за исключением конечной, имеет степень исхода 1 (рис. 2).
Рис. 2. К определению последовательного множества
Заметим, что последовательное множество дуг можно агрегировать в одну дугу, пропуская способность которой равна минимальной из пропускных способностей дуг подмножества.
Определение 3. Параллельным множеством дуг называется подмножество дуг сети, у которых начальная и конечная вершины совпадают.
Параллельное множество дуг можно агрегировать в одну дугу, пропуская способность которой равна сумме пропускных способностей дуг подмножества.
Определение 4. Сеть называется агрегируемой, если путем агрегирования последовательных и (или) параллельных множеств дуг ее можно свести к одной дуге.
Задача о максимальном потоке для агрегируемой сети эффективно решается. Как известно, задача о максимальном потоке для агрегируемой сети может быть представлена сетевой структурой типа дерева. На рис. 3. приведен пример агрегируемой сети (числа у дуг равны пропускным способностям), а на рис. 4. сетевое представление задачи о максимальном потоке. Числа в нижних половинах вершин равны пропускным способностям соответствующих дуг, а в верхних половинах указаны операции, которые проводятся над числами вершин нижних уровней для определения величины максимального потока. Операции взятия минимума выполняются для последовательного множества дуг, а операция суммирования для параллельного множества дуг. Число в корневой вершине дерева равно величине максимального потока.
Рис. 4. Сетевое представление задачи о максимальном потоке
Числа в нижних половинах вершин равны пропускным способностям соответствующих дуг, а в верхних половинах указаны операции, которые проводятся над числами вершин нижних уровней для определения величины максимального потока. Операции взятия минимума выполняются для последовательного множества дуг, а операция суммирования для параллельного множества дуг. Число в корневой вершине дерева равно величине максимального потока.
Двигаясь сверху вниз, отмечаем двойными линиями все дуги, заходящие в вершину со знаком суммирования, и отмечаем двойной линией дугу, имеющую минимальную пропускную способность среди дуг, заходящих в вершину с операцией взятия минимума (в случае равенства пропускных способностей для нескольких вершин берем любую из них). В результате определяется разрез, имеющий минимальную пропускную способность (дуги разреза выделены двойными линиями на рис. 3 и двойными кружками на рис. 4). Заметим, что при движении сверху вниз одновременно определяются и потоки по дугам.
Рассмотрим произвольную сеть. Произвольную сеть всегда можно преобразовать в агрегируемую сеть путем разделения ряда вершин на несколько вершин. Так, если в сети (рис. 5) вершину 4 разделить на две вершины 4 и 4', то получим агрегируемую сеть, приведенную на рис. 6.
Поскольку вместо одной дуги (4,5) мы получили две дуги
(4,5) и (4',5), то разделим пропускную способность С45 = 5 на две части произвольным образом. Возьмем, например, С45 = 4, С45 = 1. Определим поток максимальной величины и соответственно разрез минимальной пропускной способности в полученной сети, применяя описанный выше алгоритм для агрегируемых сетей.
Нетрудно видеть, что величина потока равна 7, а в разрез заходят дуги (0,1) и (4',5). Имеет место
Теорема 2. Величина максимального потока в агрегируемой сети меньше или равна величине максимального потока в исходной сети.
Доказательство следует из очевидного факта, что любому потоку в агрегируемой сети однозначно соответствует некоторый поток в исходной сети.
Теорема 3 (двойственности). Существует разбиение пропускных способностей дуг, исходящих из разделенных вершин, такое, что величина максимального потока в агрегируемой сети равна величине максимального потока в исходной сети.
Следствие. Если (/, у) - дуга, заходящая в разрез минимальной пропускной способности в исходной сети, то все дуги (4 у) также заходят в разрез минимальной пропускной способности в агрегируемой сети.
Из теоремы и следствия мы получаем необходимые и достаточные условия оптимальности потока в агрегируемой сети: все дуги, исходящие из разделенной вершины, либо заходят в разрез минимальной пропускной способности, либо ни одна из них не заходит в разрез минимальной пропускной способности.
Рассмотрим пример сети (рис. 6). В разрез минимальной пропускной способности заходит дуга (4',5), но не заходит дуга
(4,5). Поэтому поток можно увеличить, если «перекинуть» часть пропускной способности дуги (4,5) на дугу (4',5). Увеличим С4,5 на 3 единицы, уменьшив С45 на 3 единицы (рис. 7).
Рис. 7. Увеличение потока за счет переброски части пропускной способности дуги
Получаем разрез минимальной пропускной способности с дугами (1,3), (4,5) и (4’,5), заходящими в разрез.
Поскольку обе дуги (4,5) и (4',5) заходят в разрез, то условия оптимальности выполнены. Следовательно, поток максимальной величины 00 = 10 получен.
5. Оптимальное размещение работ между подразделениями организации
Пусть в организации имеется подразделений, располагающих мощностями ресурсов одного вида. Обозначим й7 объем работ, который может выполнить 7-е подразделение; Ж7 -
объем 7-й работы, 7 = 1, п . Требуется распределить работы между подразделениями так, чтобы загрузка подразделений (или их перегрузка) была максимально равномерной. Обозначим х7]- = 1 если 7-ая работа выполняется подразделением у, х7]- = 0 в противном случае. Тогда уровень загрузки (перегрузки) подразделения 7 можно оценить величиной
(14) Рг =Е ™гХу - & .
]
Задача заключается в распределении работ по подразделениям так, чтобы минимизировать
Г
(15) тах X™гхг] -&
г I у
Рассмотрим сначала частный случай, когда й7 = & для всех 7. В этом случае задача сводится к классической «задаче о камнях».
Дадим постановку «задачи о камнях». Имеется п «камней» разного веса. Требуется разбить их на т групп так, чтобы максимальный вес камней в группе был минимален. Задача о камнях имеет многочисленные варианты применения (равномерное распределение работ между исполнителями, функций по подразделениям организационной структуры и т. д.). Дадим формальную постановку задачи.
Задача 1. Обозначим через ai вес 1-го камня, х. = 1, если камень i попал в j-ую кучку (группу), х. = 0 в противном случае. Суммарный вес камней в ]-ой группе равен
(16) Tj = ^aixl] .
i
Максимальный вес группы
(17) T = max2aixi] ®min.
ji
Поскольку каждый камень должен быть помещен только в одну группу, имеем ограничения:
(18) 2 х. = 1, i = 1, n .
j
Задача заключается в минимизации (17) при ограничениях
(18). Мы будем рассматривать вспомогательную задачу следующего вида:
Задача 2. Фиксируем допустимый вес каждой группы Т и сформулируем следующую задачу: максимизировать сумму весов размещенных в ящики вместимостью Т камней:
(19) Ф = 2aixi]- ® max .
i,j
при ограничениях (18) и (19):
(20) 2а,Ху < T, j = 1,m .
i
Связь между задачами (17)-(18) и (18)-(20) очевидна. Минимальное Т, при котором в оптимальном решении задачи 2 размещены все камни, дает оптимальное решение задачи 1.
Сначала получим сетевое представление задачи 2. Оно представлено на рис. 8 для случая n = 3, m = 2.
Поскольку структура сетевого представления имеет вид сети, а не дерева, то для построения оценочной задачи разделяем каждую вершину, нижнего уровня на две вершины. Преобразованная структура приведена на рис. 9.
Все ai также делим на 2 части и. и v. для каждой вершины нижнего уровня так, что
(21) ui]- + v. = ai, для всех i, j.
Рассмотрим следующие две задачи.
Задача 3. Определить хі}- так, чтобы максимизировать
(22) X иг1Хг]
¡, ]
при ограничениях (18).
Задача 4. Максимизировать
(23) X УУХУ
І, ]
при ограничениях (20).
Обозначим 8т(и) и Ьт(у) оптимальные решения первой и второй задач при заданных и и V. Оценочная задача заключается в определении {иу} и ^у}, минимизирующих
(24) ¥(и, V) = Бт(и) + Ьт(У)
при ограничении (21). Заметим, во-первых, что в оптимальных решениях первой и второй задач можно принять
Щ = Уг, ^7] = аг - Уг, ] = 1, т .
Во-вторых, решение первой задачи очевидно:
(25) ^ т (и) = Х Уг
г
В третьих, решение т вторых задач при заданных {у7} сводится к решению одной задачи о ранце: определить х7 = 0,1, максимизирующие
(26) X Х7 (аг - Уг )
г
при ограничении
(27) X ха < Т .
г
Решим задачу (26) и (27) при у7 = 0, 7 = 1, п . Обозначим через й = {&]} множество векторов х, удовлетворяющих (27) и упорядоченных по убыванию аг , У у= X Уг , а
2 = тах(М 1-У7). у
Заметим, что при заданных {у7} 2 определяет оптимальное решение каждой из т вторых задач. Оценка (24) при этом равна
(28) ^(у) = т2 + ХУг .
г
где у7 > 0 удовлетворяют неравенствам
(29) X Уг + 2 >М], ] = .
где N - число различных решений неравенства (27). Таким образом, оценочная задача свелась к определению 0 < Уг < аг,
7 = 1, п и 0 < 2 < М, максимизирующих (28) при ограничениях
(29). Это обычная задача линейного программирования. Фиксируем величину 2 и определяем максимальный номер к такой, что 2 < Мк.Рассматриваем следующую задачу линейного программирования: определить 0 < у7 < а7, 7 = 1, п , минимизирующие
(30) Y(Z) = £У .
i
при ограничениях (29), где j = 1, k . Двойственная задача имеет вид: определить Uj > 0, j = 1,k , максимизирующие
t (Mj - Z)Uj ,
j=i
при ограничениях
t U j < 1, i = 1, n
где Ri - множество номеров Qj, содержащих камень i.
Обозначим через Y0(Z) минимальное значение Y(Z). Оценочная задача сводится к минимизации функции одного переменного
(31) Y0(Z) + mZ ^ min.
Берем T0 = A/m, где A = tai , и решаем задачу 2. Если
i
Фтах(Т0) < A, то увеличиваем Т0 до Ti так, чтобы появился хотя бы один новый вектор Qj. Если Фтах(Т1) < A, то продолжаем увеличение T до тех пор, пока не получим величину Tk такую, что Фтах(Тк) > A. Величина Tk является нижней оценкой для задачи 1. Далее можно применить метод ветвей и границ на основе полученной оценки.
6. Распределение ресурсов с учетом времени их перемещения между работами проекта
При решении задач распределения ресурсов как правило не учитываются времена перемещения ресурсов с работы на работу. Однако в ряде случаев времена перемещения ресурсов сравнимы с продолжительностью работ и пренебрегать ими нельзя. Рассмотрим, например, задачу ремонта мостов или участков дорог. Ремонт производится одной бригадой. Необходимо определить очередность ремонта мостов (участков дорог) так, чтобы продолжительность ремонта была минимальной. Задача
сводится к задаче коммивояжера. Дадим ее постановку и решим на основе метода сетевого программирования [5].
Задан (п + 1)-вершинный граф с длинами дуг /ц, которые интерпретируются как расстояние между городами i и j. Требуется найти кратчайший гамильтонов контур (маршрут коммивояжера). Обозначим xij = 1, если дуга (i, j) входит в маршрут, xij- = 0 в обратном случае. Тогда задача сводится к минимизации
(32) L(x ) = Х /цхг1
и J
при ограничениях
(33) I Xj = 1 "j
i
(34) I х^ = 1 "i
j
(35) ui - Uj + nXj < n -1,
где ui > 0; i, j = 1, 2, ... , n; i Фj. Условие (35) гарантирует получение гамильтонова контура [4].
Рассмотрим симметричную задачу коммивояжера, т. е.
/ij = /ji " i, j.
Разобьем ограничения задачи на две группы. В одну группу включим ограничения (33) и (35), а во вторую - (34) и (35) Соответственно разделим на две части коэффициенты /у, т. е. представим /ij в виде
(36) lv = Pj + Чц , J .
Рассмотрим две оценочные задачи.
Задача 5. Определить {хц}, удовлетворяющие ограничениям (33) и (35) и минимизирующие
(37) P(x) = I Pjxj .
ij
Задача 6. Определить {xy}, удовлетворяющие ограничениям (34) и (35) и минимизирующие
(38) ß(x)=Iq4x4 .
ij
Обозначим L1(P) (L2(q)) значение целевой функции в оптимальном решении первой (второй) задачи.
В соответствии с основной теоремой [3], сумма
(39) Ь (Р) + Ь2 (в) = Ь (Р, в)
дает оценку снизу для исходной задачи коммивояжера. Таким образом, двойственная задача заключается в определении р и д, удовлетворяющих (36) и максимизирующих (39).
Теорема 4. Двойственная задача является задачей выпуклого программирования.
РЕШЕНИЕ ОЦЕНОЧНЫХ ЗАДАЧ ДЛЯ СИММЕТРИЧНОЙ ЗАДАЧИ КОММИВОЯЖЕРА
Метод решения оценочных задач для симметричных матриц основан на понятии /-дерева [6].
Выбираем некоторую вершину /. Для подграфа без вершины / строим кратчайшее /-дерево Т/, т. е. дерево кратчайшей длины 1(Т) Для построения кратчайшего /-дерева Т построим кратчайшее дерево на вершинах графа без вершины / и добавим к нему два кратчайших ребра, инцидентных вершине / [6].
Оценка снизу для каждой задачи определяется /-деревом, для которого /(Тг) максимальна.
Пример 3. Рассмотрим граф, рис. 10.
Оценка снизу определяется любым /-деревом и равна 1(Т) = 9, / = 1,6 . Разобьем граф на 2 (рис. 11). Имеем для первого графа 1(Т3) = 9, а для второго 1(Т2) = 9. Оценка снизу равна 1(Т3) + 1(Т2) = 18, т. е. в два раза лучше. Более того, она является достижимой. Оптимальный маршрут - (1, 2, 6, 5, 4, 3, 1).
Рис. 11. Разбиение на два графа
7. Оптимизация программ по стоимости
Рассмотрим задачу формирования программы развития региона (либо предприятия, холдинга, корпорации), обеспечивающей требуемое значение комплексной оценки с минимальными затратами. Примем, что задана процедура формирования комплексной оценки программы. Программа оценивается по т критериям. Обозначим 3/ минимальное (граничное) значение ■го критерия, которому соответствует оценка / (/ = 1, 2, 3, 4). Таким образом, если значение критерия у/ лежит в полуинтервале
8 < у ■ < 8.+,,
У ^ ■ У+1 ’
то оценка по соответствующему направлению равна/.
Имеется п проектов - претендентов на участие в программе. Каждый проект характеризуется затратами ск и показателями эффекта аы , которые определяют вклад к-го проекта в 7-ый критерий. Обозначим хк = 1, если к-ый проект включен в программу, хк = 0 в противном случае. Предполагая, что эффекты суммируются, получаем, что увеличение ■-го критерия в результате реализации программы составит
(40) А У■ = ^ашхг,
а соответствующая оценка по ■-му направлению равна
(41) / = ОД = в(У° + Д У,)
к
где у0 - начальное значение 7-го критерия; в - преобразование
численного значения критерия в дискретную (качественную) шкалу. Суммарные затраты на реализацию программы составят
(42) С (х) = Е ОХ,.
■
Обозначим К(^) - комплексную оценку программы при оценках направлений
^ = (/2 ..., /т)
Задача. Определить множество проектов, обеспечивающих К(1) = КТ при минимальных затратах (42). Задача относится к сложным задачам дискретной оптимизации.
Назовем многоцелевыми проекты, которые дают эффект в несколько направлений. Обозначим Ф - множество многоцелевых проектов; п - число направлений, в которые дает эффект 7-ый проект. Разделим каждый проект 7 на т7 подпроектов с затратами и7/- такими, что
(43) Еи,/ = о,
]
и, соответственно, эффектами а7/. Получаем ситуацию, когда для каждого направления существует свое множество проектов и подпроектов. В этом случае решение задачи становится значительно проще.
Обозначим Я7 - множество одноцелевых проектов для 7-го направления, Q7 с Q - множество многоцелевых проектов, дающих вклад в 7-е направление.
1 шаг. Решаем т задач о ранце для каждого критерия: минимизировать
(44) С7 (x, и )=Е ОкХк
при ограничении
(45) ЕакХк + Еик7Хк > 8г4 - У7 = А74
кейг keQ¡
Как известно, решение задачи о ранце при правой части ограничения Д74 дает оптимальные решения и для всех меньших значений правой части, т. е. для Д73 Д72 и Д71. Обозначим Би-
минимальные затраты, требуемые для достижения оценки J по /ому критерию.
2 шаг. Поскольку структура формирования комплексной оценки является деревом, то решаем задачу, последовательно решая для каждой матрицы процедуры комплексного оценивания задачу с двумя переменными.
Согласно теореме 1, полученная величина затрат Б(и) является нижней оценкой для исходной задачи.
Двойственная задача. Определить и = {и/]} так, чтобы максимизировать Б(и) при ограничениях (45).
Теорема 5. Двойственная задача является задачей выпуклого программирования.
Полученную оценку можно применить в методе ветвей и границ.
8. Заключение
Анализируя рассмотренные задачи можно заметить универсальность схемы применения метода сетевого программирования, включающей четыре этапа:
1. Построение сетевых представлений для целевой функции и ограничений с одинаковой структурой.
2. Выбор начальных значений двойственных переменных.
3. Решение оценочных задач.
4. Целенаправленное изменение значений двойственных переменных.
В настоящее время на основе этой схемы предложены алгоритмы решения задач размещения объектов обслуживания, задача оптимизации сетей по стоимости, задача оптимального управления объектами недвижимости, задач слияния предприятий и ряд других.
На повестке дня стоит задача разработки программного комплекса для решения широкого класса задач дискретной оптимизации на основе метода сетевого программирования.
Литература
1. АЛФЕРОВ В И., БАРКАЛОВ С А., КУРОЧКА П.Н. Управление проектами в дорожном строительстве. - Воронеж: «Научная книга», 2009. - 340 с.
2. БАРКАЛОВ С.А. Теория систем и системный анализ: учебное пособие. - Воронеж: «Научная книга», 2009. -626 с.
3. БУРКОВ В.Н., БУРКОВА И.В. Задачи дихотомической оптимизации. - М.: Радио и связь, 2003. - 156 с.
4. БУРКОВ В.Н., БУРКОВА И.В., ОВЧИННИКОВА Т.И., ПОПОК М.В. Метод сетевого программирования // Проблемы управления. - 2005. - №3. - С. 25-27.
5. БУРКОВА И.В. Метод сетевого программирования в симметричной задаче коммивояжера. // Проблемы управления. - 2008. - №4. - С. 7-10.
6. СИГАЛ И.Х., ИВАНОВА А.П. Введение в прикладное дискретное программирование. - М.: ФИЗМАТЛИТ, 2007. -304 с.
NETWORK PROGRAMMING IN PROJECT MANAGEMENT
Vladimir N. Burkov, Institute of Control Sciences of RAS, Moscow, Doctor of Science, professor ([email protected]).
Irina V. Burkova, Institute of Control Sciences of RAS, Moscow, Cand. Sci. ([email protected]).
Abstract: The method of network programming was developed to give exact or approximate solutions for multi-extremal (in particular, discrete) optimization problems. The idea of the method is based on reduction of the problem in hand to a superposition of simpler problems. The scheme of reduction is conveniently represented in the form of a network (the, so called, network representation), with nodes being the sub-problems. Simple optimization
problems are solved at each node, while the solution at the terminal node of the network delivers the upper (or lower) bound estimate for the initial problem. For the tree-shaped network representation the solution at the terminal node of the network delivers the exact solution of the initial optimization problem. This paper surveys applications of the network programming method to the several problems of project management.
Keywords: network programming, project management, discrete optimization.
Статья представлена к публикации членом редакционной коллегии М. В. Губко