Оптимизация календарного графика работ для различных транспортных схем

й— УДК 65.012

ОПТИМИЗАЦИЯ КАЛЕНДАРНОГО ГРАФИКА РАБОТ ДЛЯ РАЗЛИЧНЫХ ТРАНСПОРТНЫХ СХЕМ

П. С. Баркалов

(1) Министерство путей сообщения РФ;

(2) Воронежский государственный архитектурно-строительный университет

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

ВВЕДЕНИЕ

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

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

В предлагаемой работе рассмотрен ряд новых задач оптимального распределения ресурсов при учете времен их перемещения (двойная сетевая модель) и предложены методы их решения. Заметим, что хотя двойная сетевая модель была предложена В. Н. Бурковым еще в 1960-х гг. [1], точные методы решения задач распределения ресурсов с учетом времени их перемещения отсутствуют. Исключение составляет задача о коммивояжёре.

1. МИНИМИЗАЦИЯ КАЛЕНДАРНОГО ГРАФИКА С УЧЕТОМ ВРЕМЕНИ ПЕРЕМЕЩЕНИЯ БРИГАД

Рассмотрим комплекс из п работ, которые выполняются в пунктах, расположенных друг от друга на заданных расстояниях. Все работы выполняются одной бригадой. Обозначим: т.. — продолжительность /-й работы, ". — заданный срок завершения /-й работы, /~ — время перемещения бригады из пункта / в пункт у (/0/ — время перемещения бригады от места ее расположения в пункт /).

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

Ф

где ^ — момент завершения /-й работы в очередности их выполнения я.

Задача относится к 13-трудным, поскольку ее частным случаем является задача о коммивояжёре.

Рассмотрим частный случай, когда все пункты расположены в линию (например, вдоль железнодорожного пути или автострады) (рис. 1). Тогда

Рис. 1. Линейная транспортная схема

lLj = | qj — qt |, где qj — время переезда бригады из начального пункта 0 в пункт j.

Обозначим через ik номер пункта, работа в котором выполняется в k-ю очередь. Пусть задана последовательность nk = (ik, ik + 1? ..., in), k P n, из (n — k + 1) пунктов. Получим оценку снизу момента окончания работы в пункте ik. Для этого обозначим через р максимальный номер пункта, не вошедшего в последовательность пк (т. е. р z ij,

j = k, n). Определим длину кратчайшего пути (т. е. время перемещения бригады из пункта 0 в пункт ik), проходящего через все пункты за исключением пунктов последовательности пк:

ik) = 2qp — qk.

Теперь можно получить оценку снизу момента окончания работы в пункте ik:

tk = o

i € nk

Зная оценку (3), можно получить оценку снизу моментов завершения работ во всех пунктах последовательности пк.

% = Wik + ХЦ — qiq + J + X Wiq ,

k q = k + 1

j = k + 1, n.

Наконец, зная оценки снизу моментов окончания работ в каждом пункте, определяем оценки снизу критерия

C

k k d j d n J J

Применим метод ветвей и границ для решения задачи на основе полученных оценок.

1-й шаг. Множество всех решений разбивается

на подмножества n(i), i = 1, n, такие, что в подмножестве n(i) работа в пункте i выполняется последней. Вычисляется оценка (5) для каждого подмножества.

2-й и последующие шаги выполняются по единой

схеме. Рассматриваются все полученные подмножества (висячие вершины дерева ветвлений) и выбирается подмножество с минимальной оценкой, определяемое последовательностью nk = (ik, ik + 1, ..., in). Это подмножество разбивается на (k — 1) подмножеств, определяемых последовательностями nk — 1(i) = (i, ik, ik + 1, ..., in), где i z ik, j = k, n.

Для каждого подмножества вычисляется оценка снизу по формуле (5).

Алгоритм заканчивается при получении подмножества (решения) я1 = (/'1, /2, ..., /п) такого, что оценки снизу всех остальных подмножеств дерева ветвлений больше или равны С(л1). Полученное решение оптимально, поскольку С(л1) = Ф(я1), а оценки снизу критерия (1) для всех остальных подмножеств больше или равны С(л1).

Пример. Пусть имеются пять работ. Значения величин т., т. и приведены в таблице.

i 1 2 3 4 5

qt 1 2 3 4 5

3 2 1 2 4

Di 6 7 22 13 16

1-й шаг. Вычисляем оценку (5) для пяти подм-

ножеств. Для этого по формулам (2), (3) и (5) определяем оценку снизу критерия (1) (при условии, что работа в пункте / выполняется последней; заметим, что Р = 5):

?(1) = 9 + 12 = 21, С(1) = 15,

^2) = 8 + 12 = 20, С(2) = 13,

?(3) = 7 + 12 = 19, С(3) = -3,

?(4) = 6 + 12 = 18, С(4) = 5,

^5) = 5 + 12 = 17, С(5) = 1.

2-й шаг. Выбираем подмножество, определяемое последовательностью я5(3), имеющее минимальную оценку. Разбиваем его на четыре подмножества я4(/) = (/, 3), где / = 1, 2, 4, 5. Имеем:

С(1, 3) = тах(20 - 6; 23 - 22) = 14,

С(2, 3) = тах(19 - 7; 21 - 22) = 12,

С(4, 3) = тах(17 - 13; 19 - 22) = 4,

С(5, 3) = тах(16 - 16; 19 - 22) = 0.

3-й шаг. Выбираем подмножество, определяемое последовательностью (5, 3). Разбиваем его на три подмножества л3(/) = (/, 5, 3), где / = 1, 2, 4.

Вычисляем оценки

С(1, 5, 3) = тах(14 - 6; 22 - 16; 25 - 22) = 8,

С(2, 5, 3) = тах(13 - 7; 20 - 16; 23 - 22) = 6,

С(4, 5, 3) = тах(11 - 13; 16 - 16; 19 - 22) = 0.

4-й шаг. Выбираем подмножество я3(4) = (4, 5, 3) с минимальной оценкой 0 и разбиваем его на два подмножества л2(/) = (/, 4, 5, 3), где / = 1, 2.

Вычисляем оценки

С(2, 1, 4, 5, 3) =

= тах(4 - 7; 8 - 6; 13 - 13; 18 - 16; 21 - 22) = 2,

С(1, 2, 4, 5, 3) =

= тах(4 - 6; 7 - 7; 11 - 13; 16 - 16; 19 - 22) = 0.

5-й шаг. Выбираем подмножество, определяемое последовательностью я1 = (1, 2, 4, 5, 3) с минимальной оценкой. Последовательность я1 явля-

ется решением, и оно оптимально (оценки всех остальных подмножеств больше, чем С(1, 2, 4, 5, 3)). Дерево ветвлений приведено на рис. 2, оценки подмножеств указаны в квадратных скобках у соответствующих вершин, жирным выделен путь, ведущий к оптимальному решению.

Рис. 2. Дерево ветвлений

Описанный подход можно применить к ряду других схем расположения пунктов. Пусть все пункты расположены вдоль кольцевой дороги (рис. 3).

Рис. 3. Кольцевая транспортная схема

Обозначим через 4 множество пунктов, не входящих в последовательность пк, а через 6 — максимальный номер среди пунктов і є 4- В случае одностороннего движения оценки 0(лк, ік) определяются следующими выражениями:

0(лк, /к) = / + тік, если ік * 6\;

°(^к, ік) _ %, если ік ~ 6\, где / — длина кольцевой дороги.

В случае двустороннего движения оценка 0(як, /к) получается более сложным образом, поскольку возможны различные варианты выполнения работ (см. рис. 3). Для их перечисления введем обозначения: Р1 — номер пункта, первого после пункта 0 из всех пунктов множества 4 (при движении по часовой стрелке); Р2 е 4 — номер пункта, такой что Р2 < /к, а между пунктами Р2 и /к нет пунктов / е 4; 62 е 4 — номер пункта, такой что 62 ! /к и между пунктами 62 и /к нет пункта / е 4 (номера пунктов 0, Р1, Р2, 61 и 62 могут совпадать).

I вариант. Выполняем работы во всех пунктах / е 4, двигаясь по часовой стрелке, и затем идем в пункт /к также по часовой стрелке. Оценка

Млк, гк) = 1 + % •

II вариант. Выполняем работы во всех пунктах / е 4, двигаясь по часовой стрелке, и затем идём в пункт /к против часовой стрелки. Оценка 02(як, /к) =

=2 т*1 - ч.

III вариант. Выполняем работы во всех пунктах

/ е 4 от Р1 до Р2 (по часовой стрелке), затем от пункта Р2 идем против часовой стрелки, выполняя работы во всех пунктах / е 4 от 61 до 62, и наконец, выполняем работу в пункте /к. Оценка 03(як, /к) = = / - - 2 Тр2 .

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

Оценка 04(як, /к) = 2/ - .

V вариант. Выполняем работы во всех пунктах / е 4, двигаясь против часовой стрелки, а затем идем в пункт /к по часовой стрелке. Оценка

Мяк> г'к) = 1 - % - 2 тр1 .

VI вариант. Выполняем работы во всех пунктах

/ е 4 от 61 до 62, двигаясь против часовой стрелки, затем идем из пункта 62 по часовой стрелке, выполняя работы в пунктах / е 4 от Р1 до Р2, и наконец выполняем работу в пункте /к. Оценка 06(як, /к) = = 2(/ - Т*2) + .

Сравнивая все шесть вариантов, выбираем вариант с минимальной оценкой 06(як, /к) =

= тт 0.(як, /к).

1 < / < 6 1 к к

Оценка снизу критерия (1) получается по формулам (4) и (5).

Рассмотрим вариант линейной схемы, когда начальный пункт расположен между пунктами, в которых должны выполняться работы (рис. 4). Для определенности примем, что пункт /к расположен справа от начального пункта.

Рис. 4. Вариант линейной транспортной схемы

Обозначим через 6 самый удаленный пункт слева от начального пункта из всех і є 4, а через Р — самый удаленный пункт справа от начального пункта из всех і є 4- В этом случае 0(як, ік) = = 2^ + 2тР _ Тік. Оценка критерия (1) также получается по формулам (4) и (5).

2. ОПТИМИЗАЦИЯ КАЛЕНДАРНОГО ГРАФИКА ДЛЯ РАДИАЛЬНОЙ ТРАНСПОРТНОЙ СХЕМЫ

Ранее мы рассмотрели алгоритм построения оптимальных планов перемещения бригады для линейной и кольцевой транспортных схем. Рассмотрим еще один частный случай, когда транспортная схема радиальная (рис. 5).

Рис. 5. Радиальная транспортная схема

Заметим, что время а. перемещения из начального пункта в пункт /, где выполняется работа /, в общем случае не равно времени р. возвращения в начальный пункт. Дело в том, что а. может включать в себя время на подготовительные работы, подбор инструмента и т. д., а р. — время на подготовку техники и инструмента к отъезду. Время перехода бригады от пункта / в пункт у = р. + а^..

Продолжительность выполнения всех операций одной бригадой

т = X

.

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

Пусть к = (.1, .2, ..., .п) — очередность выполнения работ. Тогда

% = X(а Ь + р Ь + т Ь} + а ‘к + т ‘к =

У = 1

= X (а г} + р ^ + т.)) - р 1к.

У = 1

Заметим, что критерий

Ф(к) = тах(- В. ) о г. - В; ,

к .к .к .к .к

к = ТТП.

Покажем, что оптимально выполнение операций в очередности возрастания величины (р. + В).

Пусть в решении К имеет место р I + В{ > р. + 1 + + В1 .

и +1

Поменяем очередность выполнения операций .(1 и + 1, т. е. сначала выполним операцию . + 1, а затем операцию .(. Покажем, что в новом решении неравенства (6) будут выполняться при том же значении Ф(к).

Имеем

д +1

Ф(к) о X (а., + р., + т) - (р.. +1 + В( ) >

" 7 V V 1д + 1 1д + 1

У = 1

> X (^ + р^ + т^) - (р^ + "д

М = 1

Таким образом, всегда существует оптимальное решение, в котором операции выполняются в очередности возрастания (неубывания) величины р. + В.

ЗАКЛЮЧЕНИЕ

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

ЛИТЕРАТУРА

1. Сетевые модели и задачи управления / В. Н. Бурков, Б. Д. Ланда, С. Е. Ловецкий, А. И. Тейман, В. Н. Чернышев. — М.: Сов. радио, 1967.

2. Задачи распределения ресурсов в управлении проектами / П. С. Баркалов, В. Н. Бурков, А. В. Гла голев, В. Н. Колпа-чев. — М.: Институт проблем управления им. В. А. Трапезникова РАН, 2002.

Ш (095) 334-79-00

E-mail: vlab 17@bk. ru

ПРОБЛЕМЫ УПРАВЛЕНИЯ № 2 • 2OO5

53