Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Оптимизация процессов грузовой работы

..pdf
Скачиваний:
10
Добавлен:
27.10.2023
Размер:
26.66 Mб
Скачать

ПРИЛОЖЕНИЯ

В любой программе процедурой !РГ можно пользоваться сколько угодно раз,

однако сначала будет строиться одна гистограмма, затем полностью другая и т. д. Пусть, например, нужно построить три гистограммы.

Метки будут выглядеть так:

 

і :

= 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.

2 0 6

ПРИЛОЖЕНИЕ VI

Далее

выполняется второй

этап вычислений. Полагаем объем равным я2 : =

 

 

 

ѵ (п2)

«1 -}- 200.

Вновь

рассчитываем

частоты — — — , затем берем объемы яЗ, я4 и т. д.

до тех пор,

пока

не выполнится

условие

 

(nk)

ѵ(пк-\)

 

і_______ JT______

 

nk

 

(П .14)

 

Ilk — 1

Одновременно с получением гистограммы определяется суммарное время работы

системы

^ ( с, а также ^ t\, £

^

t\.

После выполнения условия (П.14) А

nk, х0 выводится на печать и осуще­

ствляется

переход на вторую метку переключателя.

 

Приложение

П Р О Ц Е Д У Р А

V I

П О Л У Ч Е Н И Я

 

В С Е Х П У Т Е Й Г Р А Ф А

 

Н АЗНАЧЕНИ Е

Процедура составлена для нахождения всех путей графа от начальной вер­

шины до конечной. Процедура составлена так, что все найденные пути запоминаются. Блок-схема процедуры приведена на рис. П.З.

О Б Р А Щ ЕН И Е К П РО Ц ЕДУРЕ

Процедура 5° (q, п,

т , он, ак, а і, а2, с 1, с2) включает в себя: q, п,

пг,

ан, ак

переменные типа integer; c l,

с2 — массивы; а і, а2 — массивы типа integer.

 

Пусть в

основной

программе:

 

 

 

q — число вершин, входящих в самый длинный путь, уменьшенное на

 

 

единицу;

 

 

 

 

п — исходное число дуг;

 

 

 

т — суммарное число вершин, входящих во все пути;

 

 

 

ан— 1 — начальная

вершина графа и всех путей;

 

 

 

ак — конечная вершина всех путей;

 

 

аі

[1 : я ]

— все входы дуг графа;

 

 

а2

[1 : я ]

— все выходы дуг графа;

 

 

cl

[1 : т ]

— массив для записи вершин всех путей графа;

 

 

с2

[1 : т ]

— массив

для

записи номеров мест вершин в массивах

аі

и а2.

Тогда обращение к процедуре может быть записано без формальных параметров.

2 0 7

to

о

00

>

Варжапетян .

ю

о

Р ис. П . 3 . Блок-схема процедуры

со

ЕНИЯ ПРИЛОЖ

VI ЕНИЕ ПРИЛОЖ

ПРИЛОЖЕНИЯ

О ПИ САНИ Е ПРОЦЕДУРЫ

 

Граф задается дугами, записываемыми с помощью определенных выше массивов

с і,

с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.

 

210

ПРИЛОЖЕНИЕ V II

Рис. П .4 . Блок-схема процедуры ^ у .

14*

21 1

ПРИЛОЖЕНИЯ

О Б РА Щ ЕН И Е К П РО Ц ЕД УРЕ И ЕЕ О СО БЕН НО СТИ

Процедура

(<р,

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 -

І — 1

1=1

затем проводим еще 200 реализаций и получаем

200

200

Т р 2 а = ^ tpi, Т'в2а =

/•

(=i

i=i

212

ПРИЛОЖЕНИЕ 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 — ТЧ - М + 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

постоянные;

2 1 3

ПРИЛОЖЕНИЯ

Рис. П .5 . Блок-схема процедуры

п

214

ПРИЛОЖЕНИЕ 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 )

содерж ит

время восстановления.

описании

данного алгоритма

используется обычная (неалгольная)

форма

записи.

215

ПРИЛОЖЕНИЯ

Затем составляем вторую реализацию.

Для получения т[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 — время

работы;

 

 

 

 

 

 

 

 

<в — время

восстановления;

 

 

 

 

 

 

 

ак — конечная

вершина

всех

путей

графа;

 

 

2 1 6

Соседние файлы в папке книги из ГПНТБ