252
∑
∑
∑
⎪
⎩
⎪
⎨
⎧
=−
>−
=
∈
p
p
Tt
ittiDприjoSjijlt
ittiDприjoSjijltiD
jSit
pp
)(),(*)}),({\,),,((min
)(),(*)}),({\,),,(),(*(
),,,(
Описание параллельного алгоритма синтеза оптимальных
стратегий обслуживания
Формулы (2) – рекуррентные соотношения динамического
программирования для решения задачи (1), ориентированные на
организацию "прямого счета", т.е. в порядке роста значений аргумента
t функции Беллмана Σ(t, i, S). Описание соответствующей
вычислительной процедуры приведено в [5]. Ниже излагается
модификация указанной процедуры, использующая возможности
распараллеливания, а также идеи метода ветвей и границ.
Введем оператор R раскрытия
состояния: если Х = (t, i, S) –
произвольное, отличное от финального состояние системы (т.е.
S ⊂ O
n
\ {o(i)}), то R(t, i, S) – множество состояний, порождаемых
состоянием Х, т.е. непосредственно следующих за этим состоянием.
Раскрыв начальное состояние A
0
и последовательно раскрывая все
далее получаемые состояния, мы в конечном итоге дойдем до
совокупности финальных состояний системы вида (t, i, O
n
\ {o(i)}).
Определим также оператор R*, который, в отличие от оператора R,
раскрывает не состояния, а их расширения – записи. Записью будем
называть кортеж (t, i, S, z, z*, c, h, v), где (t, i, S) = Х – состояние
системы, z – получаемый номер этого состояния, z* – номер
непосредственно предшествующего состояния, c – стоимость
определяемой построенной совокупностью записей траектории от
начального состояния до состояния Х
, h и v – соответственно нижняя и
верхняя оценки стоимостей всех возможных полных траекторий из A
0
в финальные состояния, начальная часть которых совпадает с
траекторией из A
0
в X.
Нижняя оценка h есть сумма с + Σ
H
(t, i, O
n
\ S), где через
Σ
H
(t, i, O
n
\ S) обозначена сумма
∑
∈Sjo
jit
)(
min
),,(
, в которой
ϕ
min
(t, i, j) =
ϕ
(i, t
min
*
(t, i, j)) – величина штрафа по объекту o(j) при
условии, что его обслуживание начинается вслед за объектом o(i), т.е.
в момент времени t
min
(t, i, j) = max(t + l(i, j), t(j)); при этом t
min
*
(t, i, j) –
момент завершения обслуживания o(j), т.е. t
min
(t, i, j) +
τ
(j, t
min
(t, i, j)).
Очевидно, что в силу монотонности функции штрафа, величина