Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
30
Добавлен:
27.04.2015
Размер:
187.9 Кб
Скачать

Пример расчета основных параметров

р

еализации алгоритмов на ЭВМ

Рассчитаем основные параметры реализации на ЭВМ алгоритма двумя методами: сетевым и марковским. Граф-схема исходного алгоритма представлена на рис. 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,50,04=0,02 и p48=0,50,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

,83n6 - n5=0 n5=11,765

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,50,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= tC1nC1=158,09 операций.

Д ля определения минимальной и максимальной трудоемкости цикла С1 необходимо определить минимальный и максимальный пути прохождения по циклу.

Максимальная maxС1 и минимальная minС1 трудоемкость цикла определяется как сумма трудоемкостей всех вершин, составляющих соответственно максимальный и минимальный пути цикла, умноженной на среднее число повторений цикла nC1

minС1=501,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,60,720,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=4514,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,1514,29=33097,78 операций.

Таким образом, полученные значения трудоемкостей для цикла С3 и определяют минимальную, среднюю и максимальную трудоемкости всего алгоритма, рассчитанные сетевым методом:

min=643,05 операций;

ср=5961,36 операций;

max=33097,78 операций.

Соседние файлы в папке программа