
ЭВМиПУ (ОргЭВМ) / Лабораторные работы / программа / Lab1_help
.doc
Пример расчета основных параметров
р
Рассчитаем
основные параметры реализации на ЭВМ
алгоритма двумя методами: сетевым и
марковским. Граф-схема исходного
алгоритма представлена на рис. 1.6,
где V0
и Vk
обозначают соответственно начальную
и конечную вершины графа, Vi
- вершины, соответствующие операторам
счета, а Vji
- вершины, соответствующие операторам
обращения к файлам
().
П
усть
операторы счета Vi,
число которых равно m0=8
(
),
характеризуются следующими показателями
количества операций Vi:
Vi |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
Vi, опер |
10 |
100 |
50 |
30 |
60 |
40 |
200 |
35 |
Операторы обращения к файлам Vji (где j - номер файла, к которому осуществляется обращение) задаются средним количеством информации li, передаваемой при выполнении данного оператора:
Vji |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
li, байт |
900 |
500 |
800 |
1000 |
100 |
700 |
400 |
300 |
Число операторов ввода-вывода при обращении к каждому из трех файлов (F=3) для данного алгоритма равно: m1=3 (вершины V11, V12, V17); m2=3 (вершины V23, V26, V28); m3=2 (вершины V34, V35).
Области изменения параметров ветвления алгоритма Xi примем следующие:
X1=(-2;2); X2=(-3;4); X3=(1;6);
а области изменения параметров циклов (максимальное значение счетчиков Ii) Ki примем равными
К1=25, К2=50, К3=15.
При этом счетчики циклов Ii в начале реализации алгоритма устанавливаются в единицу, т.е. I1= I2= I3=1.
Марковский метод
Чтобы уменьшить размерность системы линейных уравнений для определения вероятности выполнения операторов, осуществим объединение последовательных операторов алгоритма. В результате такого преобразования образуется укрупненная граф-схема алгоритма. В один общий оператор могут входить только те вершины ГСА, которые при любых условиях выполнения алгоритма реализуются последовательно. На рис. 1.7 представлена укрупненная ГСА исходного алгоритма, на которой через Аi обозначены операторные вершины.
В операторные вершины укрупненной ГСА вошли следующие вершины, соответствующие операторам счета и операторам обращения к файлам исходного алгоритма:
А0=(V0) A1=(V1) A2=(V11)
A3=(V2, V12) A4=(V3, V23) A5=(V4)
A6=(V5, V34) A7=(V6, V35) A8=(V7, V26)
A9=(V17) A10=(V8, V28)
По параметрам Ii и Xi определим вероятности переходов из одного оператора в другой.
Параметр Х1 изменяется в пределах от -2 до +2. Переход из вершины А2 в А3 произойдет при значениях Х1 больших нуля (с вероятностью 2/5=0,4), а в вершину А4 - при значениях Х1 меньших или равных нулю (с вероятностью 3/5=0,6). Аналогично определяются вероятности перехода из вершины А6 в А5 (p65=0,83) и А10 (p6 10=0,17).
И
з
вершины А4
осуществляется переход сразу в три
вершины А6,
А7
и А8.
Согласно параметру Х3=(1;6),
вероятность перехода из А4
в А6
равна 0,5. Следовательно с вероятностью
0,5 осуществится переход либо в вершину
А7,
либо А8.
Исходя из заданного условия I1<K1
и параметра K1=25,
цикл должен выполнятся 24 раза.
Следовательно, в 24/25 (0,96) случаях
осуществиться переход в вершину А8,
а в 1/25 (0,04) случаях - в вершину А7.
Таким образом, p47=0,50,04=0,02
и p48=0,50,96=0,48.
Остальные полученные вероятности переходов следующие: p8 10=0,02, p89=0,98, p10 1=0,93, p10 k=0,07.
Используя рассчитанные вероятности переходов, составим таблицу вероятности переходов.
Таблица 1.4
Таблица вероятностей переходов
-
А1
А2
А3
А4
А5
А6
А7
А8
А9
А10
Ак
А1
-----
1
-----
-----
-----
-----
-----
-----
-----
-----
-----
А2
-----
-----
0,4
0,6
-----
-----
-----
-----
-----
-----
-----
А3
-----
-----
-----
-----
-----
-----
-----
-----
-----
1
-----
А4
-----
-----
-----
-----
-----
0,5
0,02
0,48
-----
-----
-----
А5
-----
-----
-----
1
-----
-----
-----
-----
-----
-----
-----
А6
-----
-----
-----
-----
0,83
-----
-----
-----
-----
0,17
-----
А7
-----
-----
-----
-----
-----
-----
-----
-----
-----
1
-----
А8
-----
-----
-----
-----
-----
-----
-----
-----
0,98
0,02
-----
А9
-----
1
-----
-----
-----
-----
-----
-----
-----
-----
-----
А10
0,93
-----
-----
-----
-----
-----
-----
-----
-----
-----
0,07
Для определения трудоемкости алгоритма и средней трудоемкости этапа счета рассчитаем среднее число пребывания марковского процесса в невозвратных состояниях, решая систему линейных уравнений. Система уравнений строится по столбцам таблицы вероятности переходов.
0,93n10
- n1=
-1 n1=14,3
n1 + n9 - n2=0 n2=27,64
0,4n2 - n3=0 n3=11,056
0,6n2 + n5 - n4=0 n4=28,35
0
0,5n4 - n6=0 n6=14,175
0,02n4 - n7=0 n7=0,567
0,48n4 - n8=0 n8=13,608
0,98n8 - n9=0 n9=13,336
n3 + 0,17n6 + n7 + 0,02n8 - n10=0 n10=14,304
Среднее
число процессорных операций при одном
прогоне алгоритма равно
,
где S0
– множество вершин Vi.
-
Аi
Vi
Vi, опер
ni
Vi*ni, опер
1
1
10
14,3
143
3
2
100
11,056
1105,6
4
3
50
28,35
1417,5
5
4
30
11,765
352,95
6
5
60
14,175
850,5
7
6
40
0,567
22,68
8
7
200
13,608
2721,6
10
8
35
14,304
500,64
=7114,47 операций
Среднее число обращений к файлам равно:
G1=n2+n3+n9=52,032;
G2=n4+n8+n10=56,262;
G3=n6+n7=14,742.
Среднее количество информации, передаваемое при одном обращении к файлам, рассчитывается так:
L1=(n2l1+n3l2+n9l7)/G1=686,854 байт;
L2=(n4l3+n8l6+n10l8)/G2=648,694 байт;
L3=(n6l4+n7l5)/G3=965,385 байт.
Средняя трудоемкость этапа счета определяется следующим образом:
N=n1+ n3+ n4+ n5+ n6+ n7+ n8+ n10=108,125;
=/N=7114,47/108,125=65,7986 операций.
Сетевой метод
Чтобы рассчитать сетевым методом основные параметры алгоритма, необходимо на укрупненной ГСА выделить циклы. Для исходного алгоритма, взятого в примере, выделяются три цикла (рис. 1.8).
С
начала
рассчитывают вложенные циклы, поэтому
рассмотрим первый цикл - цикл
С1 (см.
рис. 1.9).
Определим вероятность выхода из цикла Рвых и вероятность зацикливания Рц. Вероятность выхода из цикла будет равна сумме всех выходов (т.к. выход не единственный).
Рвых=0,48+0,02+0,50,17=0,585 Рц=1 - Рвых=0,415.
Таким образом, среднее число повторений цикла С1 равняется
nC1=1/Pвых=1,71.
Найдем трудоемкость тела цикла: tC1=niVi, где значение Vi - это трудоемкость вершины Vi, соответствующей оператору счета, входящей в i-ю операторную вершину укрупненной ГСА.
n4=1
V4=50
n6=0,5 V6=60 => tC1=50+30+12,45=92,45 операций
n5=0,83* n6=0,415 V5=30
Таким образом средняя трудоемкость цикла С1 равна
C1= tC1nC1=158,09 операций.
Д
ля
определения минимальной и максимальной
трудоемкости цикла С1 необходимо
определить минимальный и максимальный
пути прохождения по циклу.
Максимальная maxС1 и минимальная minС1 трудоемкость цикла определяется как сумма трудоемкостей всех вершин, составляющих соответственно максимальный и минимальный пути цикла, умноженной на среднее число повторений цикла nC1
minС1=501,71=85,5 операций;
maxС1=(50+60+30+50+60) 1,71=427,5 операций.
Цикл С2. После расчета вложенных циклов они представляются на графе других циклов в виде вершины, в данном случае цикл С1 представляется вершиной С1 (рис. 1.10).
В
цикле С2 кроме вероятности выхода из
цикла необходимо определить вероятности
выхода из цикла С1. Так как сумма
вероятностей выходов из С1 равна 1, то,
например, рC1 8=0,48/(0,17+0,02+0,48)=0,72.
Аналогично определяются и остальные
вероятности.
Рвых=0,4+0,6(0,25+0,03)+0,60,720,02=0,577;
Рц=0,423;
Среднее число повторений цикла С2 равняется
nC2=1/Pвых=1,73.
Трудоемкость тела цикла определяется как
n2=1
V2=0
nC1=0,6 VC1=158,09 => tC2=181,254 операций,
n8=0,72 nC1=0,432 V8=200
n9=0,98 n8=0,423 V9=0
а средняя трудоемкость цикла С2 равна
C2=
tC2
nC2=313,57
операций.
Минимальный путь для цикла С2 будет состоять из одной вершины.
Так как в вершине А2 отсутствует оператор счета, то минимальная трудоемкость цикла С2 равно нулю minС2=0 операций.
Максимальный путь равен полному прохождению цикла, и максимальная трудоемкость цикла С2 равна
maxС2=(0+427,5+200+0+0+427,5+200) 1,73=2171,15 операций.
Цикл
С3. Для цикла
С3 (рис. 1.11), как и для цикла С2, нужно
рассчитать вероятности выхода из цикла
С2. Рассуждения аналогичные, но вероятности
берутся те, которые уже рассчитывали
для С2.
Например: рC2 10=(0,02+0,25)/(0,4+0,03+0,25+0,02)=0,39
Рвых=0,07;
Рц=0,93;
nC3=14,29.
Трудоемкость тела цикла равна
n1=1
V1=10
nC2=1 VC2=313,57
n3=0,57 nC2=0,57 V3=100 => tC3=417,17 операций;
n7=0,04 nC2=0,04 V7=40
n10= n3+n7+0,39 nC2=1 V10=35
а средняя трудоемкость цикла С3 и всего алгоритма определяется как
C3= ср= tC3 nC3= 5961,36 операций.
Для цикла С3 характерно ветвление алгоритма - в вершину А10 идут три дуги. Чтобы рассчитать минимальную и максимальную трудоемкости этого цикла, необходимо вычислить минимальные и максимальные пути соответственно.
Расчет минимальной трудоемкости.
min0=0
min1=10
minС2=0+10=10
min3=100+10=110
min7=40+10=50
min10=35+min(min3,minC2,min7)=45
mink=min=4514,29=643,05 операций.
Расчет максимальной трудоемкости.
max0=0
max1=10
maxС2=2171,15+10=2181,15
max3=100+2181,15=2281,15
max7=40+2181,15=2221,15
max10=35+max(max3,maxC2,max7)=35+2281,15=2316,15
maxк=max=2316,1514,29=33097,78 операций.
Таким образом, полученные значения трудоемкостей для цикла С3 и определяют минимальную, среднюю и максимальную трудоемкости всего алгоритма, рассчитанные сетевым методом:
min=643,05 операций;
ср=5961,36 операций;
max=33097,78 операций.