ПРИЛОЖЕНИЕ XVI
О Б Р А Щ ЕН И Е К ПРО Ц ЕД УРЕ
Процедура З’п. с. в.о (л> прб, сЗ, с4, с5, £р, £в, d) включает в себя: п, прб —■ переменные типа integer; d, tp, tu — переменные типа real; сЗ, с4, с5 — массивы.
Обращение к процедуре может быть записано без формальных параметров, если ввести обозначения, аналогичные принятым в описании процедуры &3П, с. „,
и, |
кроме того, принять что прб — число ремонтных бригад. |
г4, |
В программе, использующей |
процедуру SPn. с .в .0 необходимо описать: гі, гЗ, |
р — переменные типа real; £, |
t2 [1 : n] — массивы. |
О ПИ САНИ Е ПРОЦЕДУРЫ |
|
Начало процедуры &п,с. в.0 совпадает с началом процедуры |
с. в. После |
нахождения min 1£ [t]| и прибавления его к Т поступаем следующим образом: для всех і находим
<1 [і] := (abs (£ [i]) — £m in)xsign (I [£]).
Для всех элементов, кроме отказавшего, после /-го шага £ [г] := £1 [£]. Эле мент, у которого время пребывания в исследуемом состоянии оказалось минималь ным, изменил свое состояние. Если он восстанавливался, то восстановление закон чено и для него определяем время работы. Если он работал, то нужно проверить, имеются ли свободные ремонтные бригады. Если они есть, то для отказавшего эле мента находим время восстановления; если нет, то время восстановления этого эле мента запоминаем, а на его место заносим в регистр большое отрицательное число. В этом случае считаем, что система отказала на у-м шаге, и переходим к проверке изменения состояния системы.
На (у -1- 1)-м шаге снова ищем пребывание системы в исследуемом состоянии. Если минимальное время оказалось у работавшего элемента и свободных ремонтных бригад нет, то, как и на у-м шаге, определяем для этого элемента время восстановле ния, запоминаем его, а на его место заносим в регистр большое отрицательное число. Система при этом продолжает оставаться в состоянии отказа. В том случае, когда свободные бригады есть, отыскиваем элемент, у которого время восстановления минимально, и приписываем ему ранее вычисленное и хранящееся в ячейках памяти значение времени восстановления. Для остальных элементов £ [£] :== £1 [£]. Система в этом случае также находится в состоянии отказа.
Если минимальное время оказалось у ранее восстанавливавшегося элемента, то ищем для него время работы (для остальных элементов £ [£] := £1 [£]) и прове ряем для всех і := 1.......... п, имеются ли элементы, находящиеся в состоянии восстановления. Если их нет — система работает, если они есть — система восста навливается. Проверяем, изменила ли система свое состояние по сравнению с пре дыдущим шагом. Если да, то получаем соответственно значения £р := Т или £в := Т. Если нет, то переходим к отысканию min |£ [£]| и т. д., т. е. выполняем (у -f- 1)-й шаг. При этом процедура подготовлена к последующему обращению к ней (Т := О и т. д.).
Проверка по d происходит, как описано в предыдущих процедурах.