<< Предыдущая

стр. 5
(из 8 стр.)

ОГЛАВЛЕНИЕ

Следующая >>


Построим на плоскости графики зависимости Ak и Вk от
соответствующих моментов совершения событий наиболее поздних
п р
поздних Tk и наиболее ранних Tk . Область между двумя графиками

определяет множество возможных состояний комплекса операций,
определяемых как объем операций, выполненный к соответствующему
моменту t. Любому процессу выполнения операций комплекса
соответствует траектория, соединяющая точку 0 с точкой К на рис. 1.8.
Тангенс угла наклона этой траектории определяет количество ресурсов
в соответствующий момент времени. Очевидно, что решению задачи
выравнивания уровня ресурсов соответствует кратчайшая траектория,
соединяющая точку 0 с точкой К. Точки излома траектории
определяют моменты изменения количества ресурсов. Поиск
кратчайшей траектории можно осуществлять непосредственно на
плоскости с помощью карандаша и линейки.


31
Рис.1.8.


Пример 1.7. Рассмотрим комплекс из четырех операций
(рис 1.9).




Рис. 1.9.


Числа у дуг на рис. 1.9 равны аi, а числа в скобках -
минимальным продолжительностям ?i. Критический путь выделен
толстыми дугами. График зависимостей {Ak} и {Bk} приведены на рис.
1.10.
Из рисунка видно, что кратчайшая траектория проходит через
точку В. Таким образом, мы имеем оптимальный график
использования ресурсов, состоящий из двух участков. На отрезке [0, 5]
32
Рис. 1.10.


уровень ресурсов равен N1 = 26/5 = 5,2, а на отрезке [5, 10] – N2 = 27/5 =
Поэтому комплекс можно представить в виде двух
5,4.
последовательных агрегированных операции. Первая агрегированная
операция объединяет две операции - (0, 1) и (0, 2), имеет объем Wi = 26
и величину А1 = 5,2. Вторая агрегированная операция объединяет три
операции - (1, 2), (1, 3) и (2, 3) имеет объем W2 = 27 и величину
А2 = 5,4. Допуская относительную ошибку порядка 2% можно весь
комплекс заменить одной агрегированной операцией объемом W = 53
и величиной А2 = 5,3.
Пример 1.8. Рассмотрим комплекс из шести операций, рис. 1.11.




Рис. 1.11.
33
Рис. 1.12.


График {Ак}, {Вк} приведен на рис. 1.12. В данном случае
удается уменьшить число операций за счет агрегирования только до
четырех. Однако, если требование равномерной загрузки ресурсов
на комплексах является существенным, можно добиться этого,
увеличив минимальную продолжительность агрегированного
комплекса. Пунктирная прямая OL на рис. 1.12, проходящая через
точку М, соответствует агрегированию комплекса в одну операцию
с параметрами Tmin= 9 9/29, A = 45/6.




34
ГЛАВА 2. Оптимальное распределение
ресурсов в агрегированных комплексах

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


2.1. Сети с упорядоченными событиями

Пусть события сети пронумерованы согласно их упорядочению.
Обозначим Rs – множество операций, которые могут выполняться в s-

ом интервале (в интервале между (s-1) и s-ым событиями, s = 1, r ), Qi –

множество интервалов, в которых может выполняться i-ая операция, xis
– объем i-ой операции, выполняемый в s-ом интервале, ?s(zs), где zs =
{xis: i?Rs}, минимальная продолжительность s-го интервала, как
функция zs. Продолжительность комплекса, очевидно, равна
r
T(z ) = ? ? s (z s ) (2.1.1)
s =1


Теорема 1. [2] T(z) – выпуклая функция z.



35
Задача. Определить {xis ? 0, i = 1, n , s = 1, r }, удовлетворяющие

условиям:

?x i = 1, n
= Wi , (2.1.2)
is
s?Q i


и минимизирующие T(z).
Согласно теореме 1 это задача выпуклого программирования.
Рассмотрим применение приведенных выше общих результатов
к задаче распределения дискретных ресурсов, когда количество
ресурсов на каждой операции фиксировано. На практике такие задачи
возникают при формировании календарных планов работы
?i
специализированных бригад. Обозначим, как и раньше, –
продолжительность i-ой операции, aij – фиксированное количество
ресурсов j-го вида на i-ой операции. Будем обозначать множество
независимых операций комплекса через вектор x = (x1, x2, … , xn), где
xi = 1, если i-ая операция принадлежит множеству, и xi = 0 в
противоположном случае. Вектор x, удовлетворяющий условиям
n

?x a ? N j , j = 1, m , (2.1.3)
i ij
i =1


будем называть допустимым вектором. Пусть x1, x2, … , xq –
множество допустимых векторов. Обозначим через us
продолжительность интервала, в котором выполняются операции,
соответствующие вектору xs.

Задача. Определить us, s = 1, q , удовлетворяющие условиям

?x u i = 1, n
= ?i ,
s
i s
s?Q i

q

?u
и минимизирующие T = .
s
s =1



36
Это задача линейного программирования, в которой матрица
ограничений задается косвенно, в виде (2.1.3). Пусть x1, x2, … , xn –
базисные вектора некоторого начального решения. Обозначим через yi
вектор x, для которого xi = 1, xj = 0, j ? i. Выразим yi через базисные
векторы. Пусть
n
y = ? c ij x j
i
(2.1.4)
j=1

n
и обозначим b i = ? c ij .
j=1


Рассмотрим следующую вспомогательную задачу: определить
вектор x, удовлетворяющий (2.1.3) и максимизирующий
n
c = ? x i bi . (2.1.5)
i =1

Если в оптимальном решении этой задачи c ? 1, то начальное решение
оптимально. В противном случае оптимальное решение
вспомогательной задачи определяет вектор, который нужно ввести в
базис согласно процедуре симплекс-метода.
Замечание 1. Так как допустимый вектор определяет множество
независимых операций, то задача (2.1.3), (2.1.5) решается для каждого
множества Rs независимо.
Замечание 2. Для исключения зацикливания процедуры следует
запоминать вектора, исключаемые из базиса в случае, если им
соответствует u = 0, до тех пор, пока не будет исключен вектор со
значением u > 0.
Задача является задачей линейного
(2.1.3), (2.1.5)
целочисленного программирования с переменными, принимающими
значения 0, 1, и в общем случае не имеет эффективных методов

37
решения. Рассмотрим несколько практически важных случаев, когда
задача (2.1.3), (2.1.5) принимает более простой вид.
I) Пусть операции разбиты на m типов так, что операции j-го

типа выполняются ресурсами j-го вида в количестве ai ( i = 1, n ).

Обозначим через Rjs множество операций j-го типа, которые могут
выполняться в s-ом интервале. В этом случае задача (2.1.3), (2.1.5)
разбивается на несколько независимых подзадач, - для каждого Rjs ? ?:

?b x
c js = > max ,
i i
i?R js
(2.1.6)
?a x ? Nj .
i i
i?R js


Задача (2.1.6) известна как «задача о ранце» и решается
достаточно эффективно методом динамического программирования.
Начальное решение оптимально, если

cjs ? 1, j = 1, m , s = 1, r

cjs = 0, если Rjs = ?.
Задача (2.1.6) решается элементарно, если все ai = 1. Очевидно, в
этом случае cjs равно сумме Nj положительных максимальных bi (или
просто сумме всех положительных bi, если их число меньше, чем Nj).
Пример 2.1. Рассмотрим комплекс из пяти операций (рис. 2.1),
данные о которых приведены в таблице 3. (номера операций указаны у
дуг на рисунке).
Таблица 3.

i 1 2 3 4 5
?i 2 4 6 5 2
6 5 4 4 6
ai


38
1
5
2
I II III IV

4
3

Рис. 2.1.


Все операции выполняются ресурсами одного вида, количество
которых равно N = 11.
1. Получение начального решения. Для получения начального
решения мы применим эвристический алгоритм, согласно которому
приоритет имеет операция с меньшим значением позднего момента

t iп
начала (это правило называется распределением по степени

критичности операций). В случае одинаковых t iп начинаем любую

операцию. Значения t iп приведены ниже.

<< Предыдущая

стр. 5
(из 8 стр.)

ОГЛАВЛЕНИЕ

Следующая >>