ПРИЛОЖЕНИЕ VI
Далее |
выполняется второй |
этап вычислений. Полагаем объем равным я2 : = |
|
|
|
ѵ (п2) |
«1 -}- 200. |
Вновь |
рассчитываем |
частоты — — — , затем берем объемы яЗ, я4 и т. д. |
до тех пор, |
пока |
не выполнится |
условие |
|
(nk) |
ѵ(пк-\) |
|
і_______ JT______ |
|
nk |
|
(П .14) |
|
Ilk — 1 |
Одновременно с получением гистограммы определяется суммарное время работы |
системы |
^ ( с, а также ^ t\, £ |
^ |
t\. |
После выполнения условия (П.14) А |
nk, х0 выводится на печать и осуще |
ствляется |
переход на вторую метку переключателя. |
|
Приложение |
П Р О Ц Е Д У Р А |
V I |
П О Л У Ч Е Н И Я |
|
В С Е Х П У Т Е Й Г Р А Ф А |
|
Н АЗНАЧЕНИ Е
Процедура 5Р составлена для нахождения всех путей графа от начальной вер
шины до конечной. Процедура составлена так, что все найденные пути запоминаются. Блок-схема процедуры приведена на рис. П.З.
О Б Р А Щ ЕН И Е К П РО Ц ЕДУРЕ
Процедура 5° (q, п, |
т , он, ак, а і, а2, с 1, с2) включает в себя: q, п, |
пг, |
ан, ак — |
переменные типа integer; c l, |
с2 — массивы; а і, а2 — массивы типа integer. |
|
Пусть в |
основной |
программе: |
|
|
|
q — число вершин, входящих в самый длинный путь, уменьшенное на |
|
|
единицу; |
|
|
|
|
п — исходное число дуг; |
|
|
|
т — суммарное число вершин, входящих во все пути; |
|
|
|
ан— 1 — начальная |
вершина графа и всех путей; |
|
|
|
ак — конечная вершина всех путей; |
|
|
аі |
[1 : я ] |
— все входы дуг графа; |
|
|
а2 |
[1 : я ] |
— все выходы дуг графа; |
|
|
cl |
[1 : т ] |
— массив для записи вершин всех путей графа; |
|
|
с2 |
[1 : т ] |
— массив |
для |
записи номеров мест вершин в массивах |
аі |
и а2. |
Тогда обращение к процедуре может быть записано без формальных параметров.
ПРИЛОЖЕНИЯ
О ПИ САНИ Е ПРОЦЕДУРЫ
|
Граф задается дугами, записываемыми с помощью определенных выше массивов |
с і, |
с2, |
|
а і, |
а2. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
П е р в ы й |
э т а п . |
Началу всех путей ан = |
|
1 (в массиве сі) |
при условии, что |
сі |
[1] |
: |
= |
1, |
|
всегда |
соответствует с2 |
[1] |
: = |
0. Далее, если сі |
[2] |
: = |
о2 |
[1], то |
с2 |
[2] |
: = |
1. |
Если |
сі |
[3] : = |
а2 |
[/], то с2 |
[3] |
: |
= |
/ |
и т. д. Затем среди аі ищем |
вход, |
который |
совпадает с выходом, записанным |
в сі |
[2]. Когда он найден, то: |
|
1) запоминаем |
его |
номер j : — ja |
: — |
j (первый |
раз); |
|
|
|
|
|
|
2) |
|
а2 [/] записываем |
в сі |
[3], а в с2 [3] записываем номер / |
найденных аі и а2. |
|
Теперь среди аі отыскиваем вход, который совпадает с последним из найденных |
сі и т. д. до тех пор, |
пока вновь найденное сі не будет совпадать с ак. |
|
|
|
Ищем |
новый |
путь. |
Снова |
сі [А] |
: = |
1, |
с2 |
[ft] |
: = 0, cl |
[ft -)- |
1 ] |
: = |
о2 [1 ], |
с2 |
[ft + |
1 ] : |
= |
1, |
и |
далее |
в |
а і |
ищем, |
начиная |
с |
аі |
[уз -)- 1], |
вход, |
совпадающий |
с cl [ft + |
1 ], |
и т. д ., |
пока |
не найдем все пути, имеющие первыми двумя |
вершинами |
аі |
[1] и а2 [1]. Так ж е ищем все пути, имеющие первыми двумя вершинами а і [2] |
и а2 [2] и т. д. Когда дойдем до такой пары аі |
[s] |
и а2 [s], что а і |
[s ] = |
ан, то в сі |
после очередного пути заносим признак конца первого этапа — 1, |
а в соответствую |
щие с2 заносим п + |
1, где п — номер |
последней дуги |
графа. |
|
|
|
|
|
|
В т о р о й |
э т а п . |
Берем первые три вершины первого пути и ищем среди а 1 |
вход, совпадающий с сі |
[3], но такой, чтобы соответствующее ему а2 было отлично |
от сі |
[4], |
и далее продолжаем вычисления, как на первом этапе. |
|
|
|
|
После того как все отвечающие указанному условию пути исчерпаны, в сі зано |
сим признак конца второго этапа —2 и после проверки выполнения условия г2 < [ q
(г2 — счетчик) |
можно |
переходить к следующему этапу. |
Т р е т и й |
э т а п . |
Берем четыре вершины и поступаем так ж е, как на предыду |
щих этапах. При выполнении условия г2^> q в сі заносим после последней вершины
0.1 — конец всех путей. Затем осуществляем выход из процедуры.
П Р О Ц Е Д У Р А П О Л У Ч Е Н И Я Х А Р А К Т Е Р И С Т И К Н А Д Е Ж Н О С Т И
В О С С Т А Н А В Л И В А Е М Ы Х С И С Т Е М П О Р Е А Л И З А Ц И Я М А Л Ь Т Е Р Н И Р У Ю Щ Е Й
П О С Л Е Д О В А Т Е Л Ь Н О С Т И (С Р Е Д Н И Е Д А Н Н Ы Е )
Н А ЗН АЧЕН И Е
Процедура |
служит для получения среднего |
времени работы, среднего времени |
восстановления |
и коэффициента готовности по |
формулам: |
Е *.і
і=і
где tp — случайное время работы; N |
— число реализаций; |
tB — случайное время |
восстановления; Т ср~— среднее время |
работы; tcp — среднее |
время восстановления; |
ftp — коэффициент готовности. |
|
|
Блок-схема процедуры приведена |
на рис. П .4. |
|
ПРИЛОЖЕНИЕ V II
Рис. П .4 . Блок-схема процедуры ^ у .
ПРИЛОЖЕНИЯ
О Б РА Щ ЕН И Е К П РО Ц ЕД УРЕ И ЕЕ О СО БЕН НО СТИ
Процедура |
(<р, |
fa, |
d, e l, s2, k\, k.2, |
N max) |
включает |
в себя: |
k2 — пере |
менную типа integer; tp, te, d, |
e l, |
E2, k\, Wmax — переменные типа real. |
Обращение к процедуре может быть записано и без формальных параметров, |
если в основной программе ввести следующие обозначения: |
|
|
tp — случайное |
время |
работы; |
|
|
|
|
/в — случайное |
время |
восстановления; |
|
|
|
d — постоянная, |
принимающая значение |
0 или 1; |
|
|
е I, е2 — погрешности; |
|
|
|
|
|
|
|
k l , k2 — постоянные; |
|
|
|
|
|
|
|
Лішах — число, которое ограничивает |
количество реализаций. |
|
Среди указанных обозначений |
tp, fa, e l, |
е2, Al, |
Лішах — входные |
параметры; |
k2, d — выходные параметры. |
|
|
|
|
|
|
Процедура |
имеет |
следующие |
особенности: |
|
|
|
1. При первом обращении к процедуре надо положить А1 = |
0, в результате чего |
величинам присваиваются начальные значения, а для дальнейшего счета надо поло
жить |
k\ |
Ф 6. |
|
|
|
|
|
2. |
В |
программе, |
где используется |
процедура |
^ у, необходимо |
описать Тра, |
Тва , Т р \а , Т в і а , N a , |
іа, j a — переменные типа real. |
|
3. |
В |
программе, |
где используется |
процедура |
необходимо |
предусмотреть |
переключатель с двумя метками |
|
|
|
|
|
|
|
switch L1 |
: = |
N1, N2, |
|
|
где N1 : процедура получения <р ів\ â°y; |
go to L\ |
[A2]; |
|
N2 : продолжение |
программы. |
|
|
|
|
4. |
Процедура |
построена так, что при первом обращении к процедуре полу |
чения ф |
и /в должно обязательно получаться только время работы, при втором обра |
щении — только время восстановления и т. д ., т. е. при нечетном обращении должно получаться время работы, а при четном — время восстановления.
5. |
В процедуре & у введена постоянная d, которая после первого обращения к ^ у |
имеет значение 1, а потом все время равна 0 (так ж е, как и в процедуре |
п, в опи |
сании |
которой этот вопрос изложен подробно). |
|
6. |
Процедура & у выдает на печать следующие числа: первое — среднее время |
работы; второе — среднее время восстановления; третье — коэффициент готовности; четвертое — количество реализации.
Если ж е количество реализаций N больше или равно ІѴтах, а приводимое ниже
условие (П .15) не выполнено, то будут печататься следующие числа: первое — сред нее время работы за N реализаций; второе — среднее время восстановления за N реализаций; третье — среднее время работы за N — 100 реализаций.
ОПИ САН И Е ПРО ЦЕДУРЫ
Вначале программы проводим 200 реализаций, т. е. 200 раз обращаемся к блоку получения случайного времени работы и случайного времени восстановления, в ре зультате чего получаем суммарное время работы и суммарное время восстановления
100 100
Т р 1 в = 2 / Р /, 7 b l f l = . j * B t -
затем проводим еще 200 реализаций и получаем
200 |
200 |
Т р 2 а = ^ tpi, Т'в2а = |
/• |
(=i |
i=i |
ПРИЛОЖЕНИЕ VIII
После этого проверяем выполнение условий
|(Г р 1а — Т р 2 а ) І Т р \ а \ ^ . e l и | (Т віа — Гв2а)/Гв1а |
е2. |
(П .15) |
Если хотя бы одно неравенство не выполняется, то проводим еще 200 реализаций и опять делаем проверку и т. д ., пока условие (П.15) не выполнится. Если условие (П.15) выполняется, то выводим на печать среднее время работы, восстановления, коэффициент готовности и количество реализаций. Если ж е условие (П .15) не выпол няется, а количество реализаций N больше N m ax, то выводятся на печать среднее время работы и среднее время восстановления за N реализаций и за /V — 100 реали
заций.
|
Приложение |
П Р О Ц Е Д У Р А П О Л У Ч Е Н И Я |
Ѵ Ш |
Х А Р А К Т Е Р И С Т И К Н А Д Е Ж Н О С Т И |
|
В О С С Т А Н А В Л И В А Е М Ы Х С И С Т Е М |
|
ПО Р Е А Л И З А Ц И Я М
АЛ Ь Т Е Р Н И Р У Ю Щ Е Й П О С Л Е Д О В А Т Е Л Ь Н О С Т И
(Д А Н Н Ы Е Н Е С Т А Ц И О Н А Р Н О Г О П Е Р И О Д А )
Н А ЗН А Ч ЕН И Е
Процедура была составлена для получения коэффициента kr (t{) в заданные мо
менты времени по формуле
|
М М = |
Р (и 6 [Т2Л-1> т 2п]) |
( і = 1, |
2, . . ., L) |
и |
вероятности исправного |
функционирования |
системы |
на заданном интервале (t, |
t |
-|- Д t): |
|
|
|
|
P ( t , t -|- A i ) = Р (т; ё |
и , і + Ы ] ) , |
где |
|
|
|
т 2к — т 2 * - 1 4 “ М б т 2 *+ 1 — Т2к Ч - М + 1 (k — 1 , 2 , . . . );
т0 = 0; тг = /рг;
М— случайные времена работы; /в*>— случайные времена восстановления. Блок-схема процедуры представлена на рис. П .5.
ОБРА Щ ЕН И Е К ПРО Ц ЕД УРЕ И ЕЕ О СО БЕН НО СТИ
Процедура 0>н. п (ф , (в, d, бв, k l , k2, |
ТО, |
te, |
Ate, T ie , M ш ах, |
L , Д) |
вклю |
чает в себя k2 — |
переменную типа integer; |
ф , ts, d, |
k\, ТО, /в, Дйз, М |
max, L, Д — |
переменные типа |
real; бв, Т і в — массивы типа |
real. |
|
|
|
Среди указанных обозначений k2, d — выходные параметры, а остальные |
пара |
метры входные. |
|
|
|
|
|
|
Пусть в основной программе: |
|
|
|
|
|
ф— случайное время работы;
Ф— случайное время восстановления;
d — |
число, равное 1 или 0; |
kl , k2 — |
постоянные; |