ПРИЛОЖЕНИЯ
В любой программе процедурой !РГ можно пользоваться сколько угодно раз,
однако сначала будет строиться одна гистограмма, затем полностью другая и т. д. Пусть, например, нужно построить три гистограммы.
Метки будут выглядеть так:
|
і : |
= 0; Ml : процедура получения |
tc; |
& т \ go |
to L |
[йі ] |
|
|
|
|
М2 : &w. D; |
k l : = |
0; |
k l : = 2; i |
: = |
i -\- |
1; if i < 3 then go to M l. |
|
Необходимо задать |
tc, s, М2, б — входные формальные параметры и М , |
М, At, |
Т , |
й , |
й ; t4; k 1 — выходные |
формальные |
параметры. |
|
|
|
|
В основной программе необходимо описать следующие переменные х0, |
х і, х99, |
х 1 0 0 — переменные типа |
real; |
й , і 4 — переменные |
типа integer; |
m l [0 : 13] — |
массив |
типа real. |
|
|
|
|
|
|
|
|
|
|
|
О ПИ САНИ Е ПРОЦЕДУРЫ |
|
|
|
|
|
|
|
|
|
|
|
Для определения Т’зад (sup |
х) и A t производится выборка 100 случайных чисел; |
под |
случайными числами |
понимается |
случайное |
время работы системы tc. Кроме |
|
|
|
|
|
|
|
|
л |
|
х99 |
л |
|
|
того, определяются квантили 0,99 и 0,01, т. е. а'0і09 = |
и х0і01 = х0, так, что х99 |
меньше только одного |
числа из выборки, а тогда |
|
|
|
|
|
|
|
|
Гзэд = х99 - |
х0; |
At = |
І 2 & . . |
|
|
(П .1 1) |
|
После определения |
Т зяд и At берется |
выборка чисел объема я і = |
200 и произ |
водится |
расчет эмпирических |
частот |
|
|
|
|
|
|
|
|
|
|
|
|
лі |
(і : = |
0, |
1, . . |
13), |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
где ѵ (п1' — количество элементов в выборке объема п і, попавших в t-й интервал.
Величина ѵ (пк'1 вычисляется следующим образом.
Если в t-й реализации система отказала в момент времени tc, то номер интервала, соответствующий /-й реализации, определяется по формуле
|
|
|
|
|
= |
entier ((tc — х0)/Д t + |
1), |
|
(П .12) |
где entier |
(х) — целая |
часть |
х. |
|
|
|
|
|
|
|
|
После |
каждой |
реализации |
в і-й |
интервал, |
определяемый |
по формуле (П.12), |
добавляется |
1, т. е. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
( |
ѵ н |
15 |
+ |
если |
*(/> = |
* і; |
(П .13) |
|
|
|
|
|
I |
|
|
если t (^ =j=k 1. |
|
|
|
|
|
|
|
|
Если 1 = |
0, |
то |
= |
0 для |
k l |
= |
0 ............13, |
причем |
в |
13-й |
интервал попадают |
все случайные числа, превосходящие х99, а в нулевой интервал — все случайные числа, меньшие, чем х0.
ПРИЛОЖЕНИЕ 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 — |
постоянные; |
ПРИЛОЖЕНИЕ VIII
ГО — величина |
рассматриваемого интервала |
времени; |
|
/в, Д / в — величины |
времени для вычисления Р |
(/, |
/ -(- Д/); |
/'/max — число, которым |
ограничивается количество |
реализаций; |
L |
— количество точек |
і і , в которых вычисляется |
/гг (//); |
А — погрешность, |
с |
которой |
вычисляется |
Р (/, |
/ 4 - Д /) ; |
бв [1 ; L] — погрешности, |
с |
которыми |
вычисляются |
kr |
[//]; |
Гів [1 : L ] — интервалы времени, для |
которых вычисляется |
kr. |
Тогда обращение к процедуре может быть |
записано |
и |
без формальных пара |
метров. |
|
|
|
|
|
|
|
|
|
|
Процедура |
имеет следующие |
особенности: |
|
|
|
|
|
1. При первом обращении |
к процедуре |
надо положить |
kl |
= |
0, в результате |
чего величинам присваиваются начальные значения, а для дальнейшего счета надо положить /гі =f= 0.
|
2. В программе, где используется процедура 5°,,. п, |
необходимо описать сле |
дующие переменные: /в — переменную типа integer; Рв, |
Р ів, Гв, N в, Пв, / в, /1 в — |
переменные типа real; |
A T , Air [1 : L] — массивы типа |
real. |
|
3. В программе, где используется процедура |
£Рп, п, необходимо предусмотреть |
переключатель с двумя |
метками |
|
|
|
|
|
sw itch L1 : = |
N 1, |
N2, |
|
где |
N 1 : процедура получения /р и /в; ^ н. п; |
go to LI [А2]: |
|
N2 : продолжение программы. |
|
|
|
|
4. Процедура построена так, что при первом обращении к процедуре получения |
/р |
и /в должно обязательно получаться только время работы, а при втором обраще |
нии — только время восстановления и т. д ., т. е. при нечетном обращении должно
получиться время |
работы, |
а при четном — время восстановления. |
|
5. |
В процедуру введена постоянная d, которая принимает значение 1, когда начи |
нается |
новая реализация, |
и значение 0, когда идет продолжение одной реализации |
в течение времени |
ТО. |
|
|
|
|
|
6. |
Процедура |
п выдает на печать массив чисел, причем |
сначала идут значе |
ния kr в точках і/і |
(і = |
1, |
. . ., L), а (L -)- 1)-м |
идет число Р |
(/, / -)- Д /)., |
Если же |
количество реализаций |
N в больше или равно |
N m ax, а приводимое ниже |
условие |
(П.16) не выполняется, то выдаются два следующих массива чисел: в первом массиве
печатаются |
L значений Аг и (L + 1)-м значение Р (/, / — Д /), которые получаются |
в результате N реализаций, а во втором массиве — те ж е самые значения, полученные |
за N — 100 |
реализаций. |
О ПИ САНИ Е ПРО ЦЕДУРЫ *
Для вычисления Аг (/;) и Р (/, |
I |
Д 0 получаем первую реализацию альтерни |
рующей |
последовательности тг|1), |
|
........... тАѴ,г д е т іѴ |
|
таково, |
что |
т£11)_ 1 < |
Г0, |
а |
rs; |
Т0, причем когда получаем т [г), то полагаем d — 1, а при получении после |
дующих |
чисел первой |
реализации |
берем |
|
d = |
0. По |
этой |
реализации проверяется |
выполнение события |
/,.£ ( T^ |
J , |
|
т^ ) , |
і = |
1, |
. . ., |
L, |
и |
т(1; £ |
(/, |
t - \- At), |
т. е. |
|
|
kr [//] = |
( |
kr (/,) + |
1, |
если |
/; |
лежит |
в рабочем |
интервале; |
|
|
|
|
{ |
, |
,, . |
|
|
, |
|
|
в |
интервале |
восстановления, |
|
|
|
|
[ |
яг (/;), если |
/,• лежит |
|
и |
|
Р в -|- 1, |
|
если интервал |
(/, |
/ |
|
At) |
не содержит |
интервала времени |
|
|
|
|
|
|
{ |
|
восстановления; |
|
|
|
|
|
|
|
|
|
|
|
* |
В |
Р в, |
|
если интервал |
(/, |
/ + |
At ) |
содерж ит |
время восстановления. |
описании |
данного алгоритма |
используется обычная (неалгольная) |
форма |
записи.
ПРИЛОЖЕНИЯ
Затем составляем вторую реализацию.
Для получения т[2) опять берем d — 1, а для получения следующих членов пола
гаем d = 0. Сначала получаем 100 реализаций с номерами от 1 до 100 и подсчитываем
вероятность указанных событий как отношение числа опытов, в которых события
|
|
|
|
|
|
|
|
|
выполнялись, к |
общему |
числу опытов, |
т. е. |
находим |
/г ^ (іг), . . |
(tL ) и |
P (1* (t, |
t -)- At), |
затем получаем еще 100 новых реализаций |
с номерами от 101 до 200 |
и подсчитываем указанную вероятность исходя из 200 опытов, |
т. е. находим |
fcj.2) (/г), |
. . ., |
(tL) и |
P (2) (t, |
t + At) . После |
этого |
проверяем |
условия |
|
К 2Ч гі ) - ^ Ч ч > к 6г, | ^ ( / 2) - é < 1 )( ^ ) | ^ 6 2;
|
|
|
|
|
|
|
(П .16) |
|
|Р (2) (t, |
t + A t ) — |
P {1) {t, t - \ - A t ) |
Д. |
|
|
В |
случае невыполнения |
условий |
(П.16) |
получаем еще |
100 |
новых |
реализаций |
с номерами реализации от 201 до 300 и т. д. |
Когда условие, аналогичное условиям |
(П .16), |
выполнится, печатаются следующие |
результаты: |
к Г |
( h ) ........... |
/гг ( і / ) и |
Р (/, / + At) . |
|
|
|
|
|
|
|
|
|
|
|
|
П рилож ение |
П Р О Ц Е Д У Р А П О Л У Ч Е Н И Я |
|
|
|
|
IX |
В Р Е М Е Н И Р А Б О Т Ы И В Р Е М Е Н И |
|
|
|
|
|
В О С С Т А Н О В Л Е Н И Я С И С Т Е М Ы , |
|
|
|
|
|
З А Д А Н Н О Й Г Р А Ф О М |
|
|
|
|
|
|
Н А ЗН АЧЕН И Е
Процедура £Рр, в служит для получения случайного времени работы и восстановления
системы, заданной графом.
Блок-схема процедуры приведена на рис. П .6.
О Б Р А Щ ЕН И Е К П РО Ц ЕД УРЕ И Е Е О СО БЕН Н О СТИ
|
Процедура tPp. в (Ч> |
п > aK> о і. |
с і, |
сЗ, с4, |
с5, <р, Ів) включает |
в |
себя: |
ак, |
т), |
п — переменные типа |
integer; d, |
tp, |
ts — переменные типа real; |
a l, |
а2, |
c l, |
сЗ, |
с4, |
с5 — массивы. |
|
|
|
|
|
|
|
|
Обращение к процедуре может быть записано и без формальных параметров, |
если ввести |
в основной программе следующие обозначения: |
|
|
|
|
|
tp — время |
работы; |
|
|
|
|
|
|
|
|
<в — время |
восстановления; |
|
|
|
|
|
|
|
ак — конечная |
вершина |
всех |
путей |
графа; |
|
|