УДК 500:508.217
МЕХАНИЗМЫ РАСПРЕДЕЛЕНИЯ РЕСУРСОВ В КЛАССИФИКАЦИОННОЙ МОДЕЛИ
В.И. Алферов
В статье рассматриваются механизмы распределения ресурсов в классификационной модели, то есть в системе, состоящей из некоторого числа классов
Ключевые слова: классификация, модель, ресурсы, схема
Строительная организация одновременно ведет строительство некоторого комплекса объектов, расположенных на некотором удалении от места постоянного базирования машин, механизмов и трудовых ресурсов, транспортировка которых к фронту работ может потребовать значительных различного рода затрат. Совершенно очевидно, что затраты на перемещение ресурсов могут быть значительны и поэтому требуют их учета.
Примем, что работу выполняет только одна единица ресурса (бригада). Причем следует отметить, что при рассмотрении механизма классификации объектов строительства для одного ресурса понятия объект и работа эквивалентны.
Для классификации объектов строительства будем использовать параметр перемещения ресурсов между объектами. В качестве такого параметра примем стоимость единичного перемещения одной единицы ресурса, а критерием качества разбиения - минимизацию стоимости комплекса работ.
Рассмотрим механизмы распределения ресурсов в классификационной модели, то есть в системе, состоящей из некоторого числа классов.
Совершенно очевидно, что последовательность производства работ одного ресурса внутри класса может быть произвольной, причем схема движения ресурса имеет радиальный вид и может быть представлена в виде рис. 1.
Рис. 1. Радиальная схема
Алферов Виктор Иванович - ВГАСУ, докторант, тел. (473) 276-40-07
Стоимость класса при условии, что центр находится на первом объекте
Sk = 4+4 •£ т + Е 2-%т С1)
i=1 i=2
Такой граф называется псевдопотенциаль-ным [2]. Любой его гамильтонов контур имеет одну
пк
и ту же длину L = £ (i + цл ) .
i=2
Таким образом, продолжительность выполнения всех работ одной бригадой равна
пк
Tk = ZTi (2)
i=1
Пусть заданы некоторые сроки завершения работ, тогда рассмотрим задачу определения очередности выполнения работ, минимизирующей
П = max (ti +Ti - Di), i e Nk, (3)
i
где ti - момент начала i-й работы, Di - желательный срок завершения i-й работы.
Пусть имеем некоторую очередность выполнения работ, тогда
tг = =Е T] -Т , i e Nk. (4)
j=1 j=1
Сопоставляя (3) и (4), получим
i-1
n > ti + Ti - Di, i e Nk, n^Y.Tj +T - Di, i e Nk,
j=1
£Tj < Di +n, i e Nk. (5)
j=1
Откуда видно, что работы следует выполнять в очередности возрастания величины Di. Покажем это.
Пусть в решении приведенной выше задачи имеет место
Di > Di+i.
Поменяем очередность выполнения операций i и i + 1, то есть сначала выполняем операцию
i + i, а затем i.
Покажем, что в новом решении неравенства (5) будут выполняться при той же величине n Имеем
2>; +t+i < 'llTj <Di+i +n,
j=1 j =1
Ъ?] < А+1 +п^Ц +п
1 =1
Таким образом, всегда существует оптимальное решение, в котором операции выполняются в очередности возрастания (неубывания) Рас-
смотрим простейший пример.
Пример 1. Данные приведены в табл. 1.
Таблица 1
i 1 2 З 4 5
т 5 6 8 7 З
D 10 15 14 20 22
t + т 5 19 1З 26 29
Оптимальная очередность выполнения работ - 1, 3, 2, 4, 5. Величина задержки сверх желательных сроков
П = тах (5 - 10; 19 - 15; 13 - 14; 26 - 20; 29 - 22) = тах (-5; 4; -1; 6; 7) = 7.
Пусть теперь число бригад равно т > 1. Рассмотрим задачу минимизации времени выполнения всех работ. Обозначим через Ог множество работ, выполняемых г-ой бригадой. Время выполнения тк согласно (1) составит
тг = Тт (5)
Время выполнения всех операций равно
тк = тах тГ (6)
Г
Задача заключается в разбиении всех операций на т групп, так чтобы величина критерия (6) была минимальной. Это известная «задача о камнях», которая относиться к сложным, комбинаторным задачам. Рассмотрим методы ее решения для крайних случаев, когда бригад «велико» [4].
Пусть число бригад равно 2. В этом случае эффективным является метод динамического программирования. Рассмотрим его на примере.
Пример 2. Продолжительности работ приведены в табл. 2.
_________________________ Таблица 2
i 1 2 З 4 5
Ті 8 5 9 4 6
Заметим, что = 32 . Следовательно,
І
необходимо определить множество работ, О, выполняемых первой бригадой, такое чтобы величина была возможно ближе к 16. Построим систему координат, на одной оси которой отметим номера операций, а на другой время работы первой бригады (рис. 2).
Рассматриваем первую операцию. Если она выполняется первой бригадой, то проводим наклонную линию в точку с координатами (1; т1) = (1;
8). Если она выполняется второй бригадой, то проводим горизонтальную линию в точку с координатами (1; 0). Из каждой полученной точки проводим две линии (наклонную и горизонтальную) в зависимости от того какая бригада выполняет вторую
операцию, и т.д. Получаем сеть, приведенную на рис. 2. Положим длины горизонтальных дуг равными 0, а длины наклонных величинам т соответствующих операций. Задача свелась к определению пути, соединяющего начало координат с одной из конечных вершин и имеющего максимальную длину среди всех путей, длина которых не превышает 16. Таких путей два, и каждый имеет длину 15. Соответственно получаем два оптимальных решения. В первом первая бригада выполняет операции 2, 4 и 5 (время работы равно 15), а вторая - операции 1, 3 (время работы равно 17). Во втором - первая бригада выполняет операции 3, 5 (время работы равно 15), вторая - операции 1, 2, 4 (время работы равно 17).
•4 "
/ /
/ / /
/' / // / /
/ і / / //
/ / / //
г і Г / ,//
/ / / / //
/ / / / // /
/ / / ' / /
/ / /
/ / / /
/ / 1
/ і /
0 1 2 3 4 5
Рис. 2
Приведем к расширению случаи, когда число бригад «велико», Более точно примем, что каждой бригаде назначается не более двух операций. Следовательно, п < 2т. Пусть п = т + р, где р < т. Пусть далее операции пронумерованы по возрастанию ть то есть т1 < т2 < ... < тп. Оптимальное решение получается по следующему правилу: (т - р) операций с номерами (2р + 1), ..., (т + р) выполняются по одной (т - р) бригадами, а 2р операций выполняются по две р бригадами, причем первая бригада выполняет операции 1 и 2р, вторая
- 2 и 2р - 1, третья - 3 и 2р - 2 и т.д.
Работу алгоритма для данного случая рассмотрим на примере.
Пример 3. Пусть п = 9, т = 6. Данные о работах, подлежащих выполнению, приведены в табл. 3.
_______________________________________Таблица 3
і 1 2 З 4 5 6
Ті 2 З 5 6 8 9
Так как n = m + 3, то p = 3. Следовательно, операции 7, 8 и 9 выполняются по одной. Далее одна из бригад выполняет операции 1 и 6, вторая - 2 и 5 и третья - 3 и 4. Время выполнения всех операций Tk = max (10; 11; 11; 2 + 9; 3 + 8; 5 + 6) = 11.
При назначении последовательности выполнения работ классов нужно определить такую
их последовательность, стоимость системы при которой будет минимальной, то есть
ТМу ^ тт.
и ]£Н
Если центры классов рассматривать как вершины графа С{И, М), то целесообразно решить задачу поиска контура минимальной длины [1], проходящей через все вершины неориентированного графа, то есть получим гамильтонов цикл.
Классическим примером задачи поиска гамильтонова контура является задача коммивояжера, заключающаяся в следующем. Бродячий торговец должен посетить некоторое количество городов, побывав в каждом ровно один раз, и вернуться в исходный пункт своего путешествия. Заданы неотрицательные длины дуг, интерпретируемые как расстояние между городами или стоимости проезда. Требуется найти гамильтонов контур минимальной длины. Отметим, что в графе из п вершин существует п! (число перестановок) гамильтоновых контуров, поэтому приведем решение задачи коммивояжера методом ветвей и границ [3, 4].
Пусть ||цц|| - матрица весов (параметров перемещений ресурсов между объектами) графа, причем цу > 0. Определим нижнюю оценку весов гамильтоновых циклов. Для этого в матрице весов найдем минимальные числа каждой строки, то есть
М = ™п .
1
Преобразуем матрицу весов, вычитая из каждой строки соответствующее ей минимальное значение. Получаем матрицу ||цу"||, где цу" = ^у -Цъ в которой определим минимальные числа каждого столбца
М = пип М
и преобразуем ее, вычитая из каждого элемента минимальное значение соответствующее ему столбца, то есть ||цу*||, где Цу* = - ц^.
Для любого гамильтонова цикла X справедлива оценка веса
^(х) > р, где р = ТЦ+Т.
1=1 i=1
Обозначим через (ах, а2, ..., ак) {Ьх, Ь2, ..., множество гамильтоновых циклов, в которых первые к вершин а1, а2, ак, а (к + 1) вершина ак+1 не принадлежит множеству {Ьх, Ь2, ..., Ь^. Используя введенные обозначения, можем разбить рассматриваемую задачу на две подзадачи, поделив множество гамильтоновых циклов на множества (1, кх)0 и (1){кх}.
При рассмотрении множества (1, к1)0 отождествим в графе О вершины 1 и к1, обозначим новую вершину через х и получим новый граф О' = {х, 2, ..., к1 - 1, к1 + 1, ..., И} и матрицу весов
М'=
ГО Мк1, к1-1 Мк1, к+1 Мк1к
* * * *
М21 Ц2, ку-1 М2, *1+1 м2к
* * *
Мк1-1,1 ГО мк-1, к+1 ■ Мкх-\, к
* Цк1+1,1 * Мк+1, кх-1 ГО * * м*1+1, к
* * *
Мы кх-1 Цк, к1+1 ГО
Для графа О' аналогично определяем нижнюю границу р' весов гамильтоновых циклов. Тогда нижняя оценка р1 весов гамильтоновых циклов (1, к1)0 равна р + р1.
При рассмотрении множества (1){к1} в *
матрице весов ||^у*|| элемент заменяется на да
и по полученной матрице определяется нижняя оценка р'' весов гамильтоновых циклов графа с матрицей весов М''. Тогда нижняя оценка р2 весов гамильтоновых циклов множества (1){к1} равна Р + Р'.
Каждая из подзадач разбивается на свои подзадачи, и этот процесс с оцениванием весов гамильтоновых циклов продолжается до тех пор, пока не отыщется самая низкая из оценок, являющаяся весом некоторого гамильтонова цикла, который и будет иметь минимальный вес.
При рассмотрении подзадач целесообразно вести поиск в глубину дерева подзадач, при котором на каждом следующем этаже выбирается та подзадача, которая имеет меньшую нижнюю оценку.
Далее рассмотрим задачу определения очередности выполнения работ классов, имеющие директивные моменты их завершения.
Имеем некоторый контур (цикл) свершения работ классов (рис. 3). Рассмотрим комплекс из И работ, выполнение которых происходит в пунктах, расположенных друг от друга на заданных расстояниях. Все работы выполняются одной бригадой. Обозначим через тк - продолжительность работ к-го класса, Бк - заданный срок завершения работ к-го класса, ^у - параметр перемещения бригады из пункта 1 в пункт ] (^01 - параметр перемещения бригады от центра в пункт I).
Рис. 3
Необходимо, определить очерёдность вы-
полнения работ, обеспечивающую их завершение не позже заданных сроков. Если это невозможно, то минимизировать максимальное запаздывание сверх заданных сроков, то есть минимизировать
П = тах(^ + т - Di), где ^ - момент начала работ 1-
i
ого класса. Задача является №-трудной, поскольку её частным случаем является известная задача Коммивояжера.
Так как центры классов расположены вдоль замкнутого конура, то в этом случае = |^ -
q1|, где ^ - величина параметра перемещения ресурса из центра 0 в пункт у по контуру.
Получим оценку снизу С1п момента завершения работ класса 1 при условии, что они выполняются в последнюю очередь. Для этого необходимо определить длину кратчайшего пути из пункта 0 в пункт 1, проходящую через все остальные пункты.
В случае одностороннего движения эта длина равна
Ь*(п) = Ь + ф, 1 Ф п, Ьп(п) = qni, где Ь - длина контура.
Оценка снизу
Ст =Т Т + Ьг (п) (7)
i=1
В случае двустороннего движения оценка С1п получается более сложным образом, поскольку возможны различные варианты выполнения всех работ так, чтобы операция 1 выполнялась последней.
1 вариант. Выполняем последовательно операции с 1 по п (исключая операцию 1), а затем выполняем операцию 1. В этом случае оценка снизу будет равна Ь^п) = 2qn - qi,
2 вариант. Выполняем последовательно операции с 1 по (1 - 1), а затем операции с п по 1 (в обратном порядке). Оценка снизу будет равна
Ь1(п) = 2qi_l + Ь - ф,
Если варианты 1 и 2 проделать в обратном порядке, то получим еще две оценки Ь1(п) = Ь + qi -2^,Ь1(п) = 2(Ь - ф+0 + qi,
Окончательная оценка снизу равна минимальному из полученных чисел
Далее определим множество О работ, для которых С1п < Б1. Если это множество пустое, то определяем
е = кМСп - Dг ) (8)
г'
и множество О работ, для который С1п - = £.
Выбираем любую работу к из множества
О. Для каждой из оставшихся работ 1 определяем оценку снизу С1, п-1 её завершения при условии, что эта работа выполняется предпоследней. Для этого определяем кратчайший путь Ь1(п - 1) из пункта 0 в пункт 1, проходящей через все пункты за исключением к-го. Оценка снизу
Сг,п-1 = 1г (п - 1)+ТТ (9)
i^ к
Снова определяем множество О и выбираем любую работу из этого множества и т.д. пока не получаем допустимого решения.
Описанный алгоритм может не дать опти-
мального решения. Однако, оценку (7) можно применить в методе ветвей и границ для получения оптимального решения задачи.
Пример 4. Пусть имеются пять работ. Величины q, т1 и приведены в табл. 4. Ь = 6, ^у = 1.
Таблица 4
i 1 2 3 4 5
qi 1 2 3 4 5
Ti 3 2 1 2 4
Di 11 16 18 13 10
Сначала рассмотрим случай одностороннего движения.
1 шаг. Вычисляем (L = 6)
С15 = 7 + 12 = 19, D1 = 11, F1 = 19 - 11 = 8 С25 = 8 + 12 = 20, D2 = 16, F2 = 20 - 16 = 4 С35 = 9 + 12 = 21, D3 = 18, F3 = 21 - 18 = 3 С45 = 10 + 12 = 22, D4 = 13, F4 = 22 - 13 = 9 С55 = 5 + 12 = 17, Ds = 10, Fs = 17 - 10 = 7
Минимальная величина min(Cin - Di) = 3 и
i
действительно на третьей операции. Выберем подмножество решений, в котором последней выполняется третья операция.
2 шаг. Вычисляем
С14 = 7 + 11 = 18, D1 = 11, F1 = 7 С24 = 8 + 11 = 19, D2 = 16, F2 = 3 С44 = 10 + 11 = 21, D4 = 13, F4 = 8 Здесь следует учесть, что выполняется операция, которая расположена ближе к начальному пункту, чем операция 4. Поэтому момент завершения операции 3 увеличится до 2L + q3 + T = 27, следовательно, оценка снизу этого варианта F4 = 9. Для операции 5 имеем
С54 = 5 + 11 = 16, D5 = 10, F5 = 7 Вычисляем предпоследней операцию 2.
3 шаг. Вычисляем
С13 = 14 + 9 = 16, D1 = 11, F1 = 5 С43 = 15 + 9 = 19, D4 = 13, F4 = 6 Однако при этом С24 = 14 + 11 = 25, D2 = 16, F2 = 9 С35 = 15 + 12 = 27, D3 = 18, F3 = 9 Так, что оценка снизу этого варианта равна
9.
С53 = 5 + 9 = 14, D5 = 10, F5 = 4
Выполняем третьей операцию 5
4 шаг. Вычисляем
С12 = 7 + 5 = 12, D1 = 11, F1 = 1 при этом С53, С24 и С35 увеличиваются на длину кольца, то есть на шесть, что дает соответствующее увеличение оценки снизу до 10.
С42 = 4 + 5 = 9, D4 = 13, F4 = - 4 Выбираем вариант, в котором второй выполняется операцию 4, а первой операция 1. Окончательно получаем решение п=(1; 4; 5; 2; 3) со значением целевой функции
F = max (4 - 11; 9 - 13; 14 - 10; 19 - 16; 21 - 18) = 4
Дерево ветвлений приведено на рис. 4. Полученное решение является оптимальным, так как нижние оценки остальных подмножеств не менее 4.
[^Vw; [3A
(V) (Г) 0\и) © (Т) Q (У) (V)
Рис. 4
Рассмотрим теперь случай двустороннего движения.
1 шаг. Вычисляем (L = 6)
L1(5) = 5, С15 = 5 + 12 = 17, D1 = 11, F1 = 6 L2(5) = 6, С25 = 6 + 12 = 18, D2 = 16, F2 = 2 L3(5) = 7, С35 = 7 + 12 = 19, D3 = 18, F3 = 1 L4(5) = 6, С45 = 6 + 12 = 18, D4 = 13, F4 = 5 Ls(5) = 5, С55 = 5 + 12 = 17, D5 = 10, F5 = 7
Выполним последней операцию 3
2 шаг. Вычисляем
L1(4) = 5, С14 = 5 + 11 = 16, D1 = 11, F1 = 5 L2(4) = 6, С24 = 6 + 11 = 17, D2 = 16, F2 = 1 L4(4) = 6, С44 = 6 + 11 = 17, D4 = 13, F4 = 4 L5(4) = 5, С54 = 5 + 11 = 16, D5 = 10, F5 = 6
Четвертой выполним операцию 2
3 шаг. Вычисляем
L1(3) = 5, С13 = 5 + 9 = 14, D1 = 11, F1 = 3
L4(3) = 4, С43 = 4 + 9 = 13, D4 = 13, F4 = 0
L5(3) = 5, С53 = 5 + 9 = 14, D5 = 10, F5 = 4
при этом, увеличив значения L2(4) = 8 и L3(5) = 9,
что приводит к увеличению оценок С24 = 3, С35 = 3. Выполняем третьей операцию 4
4 шаг. Вычисляем
L1(2) = 3, С12 = 3 + 7 = 10, D1 = 11, F1 = - 3 при этом увеличивается на 2 единицы оценки L4(3), L2(4) и L3(5), что дает оценку снизу F1=3.
L5(2) = 3, С52 = 3 + 7 = 10, D5 = 10, F5 = 0
Окончательно получаем вариант п = (1; 5; 4; 2; 3) со значением критерия
F = max (4 - 11; 10 - 10; 13 - 13; 17 - 16; 19 - 18) = 1
Полученное решение является оптимальным, поскольку оценки снизу всех остальных подмножеств больше 3. Для приближенного решения задачи можно применить и метод локальной оптимизации.
Сначала, пользуясь каким-либо эвристическим правилом, получаем допустимое решение.
Так, например, хорошим эвристическим правилом, как показало решение большого числа примеров, является выполнение операции в очередности возрастания Di. В нашем примере это правило дает следующее решение П0=(5; 1; 4; 2; 3) со значением целевой функции F = max (9 - 10; 16 - 11; 21 - 13; 25 - 16; 27 - 18) =
9
Рассмотрим множество соседних перестановок, полученных транспозицией начальной перестановки п0. Имеем
П1=(1; 5; 4; 2; 3), F1=3; П2=(5; 4; 1; 2; 3), F2=7;
П3=(5; 1; 2; 4; 3), F3=11; П4=(5; 1; 4; 3; 2), F4=10.
Лучшее решение является п1 оптимальным.
Литература
1. Бурков В.Н., Ланда Б.Д., Ловецкий С.Е., Тейман А.И., Чернышев В.Н. Сетевые модели и задачи управления. М.: Советское радио, 1967. - 144 с.
2. Алферов, В.И. Разработка графиков движения бригад по объектам строительства. [Текст] / В.И. Алферов, С.А. Баркалов, Г.Д. Юшин // ВЕСТНИК Воронежского государственного технического университета, Том 5, № 1, 2009 - с. 30 - 35.
3. Алферов, В.И. Прикладные задачи управления строительными проектами. [Текст] / В.И. Алферов, С.А. Баркалов, В.Н. Бурков, П.Н. Курочка, Н.В. Хо-рохордина, В.Н. Шипилов В.Н. // Воронеж: «Центрально
- Черноземное книжное издательство», 2008. - 765 с.
4. Алферов, В.И. Управление проектами в дорожном строительстве. [Текст] / В.И. Алферов, С.А. Баркалов, П.Н. Курочка // Воронеж: «Научная книга», 2009 -с. 340.
Воронежский государственный архитектурно-строительный университет
MECHANISMS OF DISTRIBUTION OF RESOURCES IN CLASSIFICATION MODEL
V.I. Alfyorov
In clause mechanisms of distribution of resources in classification model, that is in the system consisting of some number of classes are considered
Key words: classification, model, resources, the scheme