Файл: Основы теории алгоритмов учеб. пособие.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 24.10.2024

Просмотров: 85

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

 

 

 

 

 

 

 

-

20

-

 

 

 

 

 

кортежа

В

можно упростить,

умножив кортеж

A j

на число

его повторений R j

 

в множестве

В

. Для сокращения запи­

си множества

В

введем обозначения для одинаковых кортежей

 

так

что

Й

 

Л

-

А

Г

 

,

Такой кортеж будем на-

зывать сложным, т ,к ,

 

e j4 \эффективность не определена, Парамет-

ры нового элемента

A i *

можно вычислить по следующим зави-

симостям;

 

 

 

'<1

 

 

 

 

 

 

 

 

 

(Rj>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ri

d j

 

 

 

 

(1.6)

 

 

ф '

- R, V

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

KfiJ

- К, .

 

 

 

 

 

 

 

 

 

 

 

 

- G, ■

 

 

 

 

 

после чего сложный кортеж превращается в простой.

 

Естественно,

что

 

и

Q

 

также будут изменять­

ся и могут быть вычислены для каждого конкретного случая.

■ Если алгоритм

 

В

 

содержит

программы

P j

, повторя­

ющиеся на наборном поле программы

Р р .

раз,

то их можно рас­

сматривать как некоторые алгоритмы

Д ;

,

повторяющиеся R;

раз, для которых применимы операции

(1 .6 ).

 

 

 

Рассмотрим случай,

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

А ]

повторяется

в цикле

N j

раз.

Обозначим такие

алгоритмы через

" А

и будем называть их кортежи сложными.

Для нахождения простого

кортежа

р . '

i '

очевидны следующие соотношения:

 

 

 

d

- ф

 

-

d j .

 

 

 

 

 

 

 

 

 

.

N

i t

,

 

 

 

 

 

 

 

 

■j

 

 

~

 

 

 

 

 

г > Ц ) V7:

(1 =7)


 

 

 

 

- 21

-

 

 

 

 

Соотношения

(1.7)

применимы также для программ

 

и програш

* набранных на

подпрограммном поле и повто­

ряющихся в

алгоритме управления

h/j

раз

 

Если алгоритм А

 

находится в сложном цикле (цикл

в цикле), при атом если

У

-цикл .

(

Ч

= 1 , 2 , . , . ,

Y )

повторяется

М у

раз,

то

система

(1 .7)

будет иметь

вид

. d r

d i •

■bj( v * ) ** Ni• Wa • • • Л/vfcj “ hi П N+ »

 

J x ]

 

" K i

r

' " '

 

* Ki

 

 

 

 

> ь

 

 

( 1 . 8 )

 

 

 

 

 

 

 

 

 

 

В общем случае алгоритм

ELj

множества Ь

,

имеющий

сложный кортеж,

может встречаться

R j раз на наборном поле

вне цикла и 'f

J

раз в простых или сложных циклах.

Пусть

Ч j -й

алгоритм

(

 

= 1 , 2 , . . . ,

-'£ j)

находится в

У

циклах в

цикле

(

Ч

= 1 , 2 , . . . ,

) .

При атом

Ч

-цикл

повторяется

 

 

р аз.

Тогда

^

 

 

 

d Ej - R j d i + ^ d j

- ( R j + ^ ) d j ,

 

 

+ b i

f l

 

 

N

 

ш ( j ? i

4

ЧЫ 1

 

4

fj-i twi N v H ' ,

^ ■ 6 i

 

G *i - P 4 .

Отсюда система преобразований сложного кортежа Ё^ простой для общего случая будет

d s j - ( R j + ^ ) d j *


 

 

 

 

 

 

-

22 -

 

 

 

 

its " ( R j

+ 5 .

П

N ^ ) b ; ,

 

 

>

 

*

vr

i

 

 

4

' d

 

 

 

 

 

 

 

 

 

 

(1.9)

 

При

*?

=

0 система

(1.9)

преобразуется в систему

(1 .6 ).

При

R, -

о .

4J =

I получаем систему (1 .8 ).

 

Таким ооразом, если алгоритм

В

содержит множество

сложных кортежей,

то для перевода

их в простые можно., исполь­

зовать

систему преобразований

(1 .9 ),

после чего оистемы опе­

раций (1 .2 ),

(1 .3 ),

(1 .4 ),

(1.5) позволяют получить

 

В -

< Х а , Х г ь , . . . , X g s > .

 

Обозначим в

системе

(1.9)

 

 

 

Rj

+ Z

П N't;* =Si2 .

 

<I-I0)

 

4

 

V.L

4

4

 

 

Здесь ^ j i

-

число

одноименных

j -x алгоритмов, набран­

ных на наборном поле программы и подпрограммы;

опреде­

ляет количество обращений к данному

j -му

алгоритм в пронес

се реализации

алгоритма

£> .

 

 

 

Чиоленные значения

£ j L и

u j z

могут быть легко по­

лучены из операторной схемы алгоритма

0>

. Для этого над one

раторной схемой необходимо провести ряд несложных преобразо­

ваний.

 

 

 

 

В операторной схеме ш(декоом

р

обозначим алгоритмы,

размещенные на подпрограммном поле.

Кроме того,

стрелкой с чис

яоы М

над операторами обозначим,

что данные операторы на­

ходятся в

цикле о числом циклов N .

 

 

Например. Пусть алгоритм

имеет следующую опера­

торную схему:

 

^

 

М s С Вр Ар УС р Ур СС

( i . i i )


где С , 5 , р

I Д

,

, V - некоторые простые ал­

горитмы, кортежи которых определены.

х

 

W

 

 

 

A

 

- это алгоритм (группа алгоритмов),

который заключен в

цикл с

количеством циклов N

►Здесь

М- степень данного алгоритма. В соответствии о этим

обозначением перепишем ( I . I I ) в виде

М * С 6 р ( Л , ^ Р) 3 у ( C p ( y f <fp) a c / ( i

сСлв^ЛрчЛ’рОНЛ'с.

В соответствии

с (1 .8) для

"fc-j

,

если некоторый ал­

горитм Д

охвачен несколькими циклами с числом циклов N i .

N a .........

N y ,

то

его показатель степени

 

 

 

т

 

 

 

 

т .е .

Wa

а

П

N + ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(1 л з)

Перешшем ( I .I 2 ) , используя

( I .I 3 ) ,

тогда

М* с ВрЛ’рf

ус у у

 

с'с

 

л ’ &’р М ^ р У ^ с .

 

 

 

 

 

 

 

 

(I .I4 )

Одноименные алгоритмы

с индексом

р

можно аапаоать

один раз, т .к . они на

наборном поле подпрограмм не повторяют­

ся,

причем показатели степени этих алгоритмов складываются.

 

Выделив эти алгоритмы в квадратные скобки а исключив г

них

индексы р

, получим


 

 

 

 

- 24

-

 

M

s

С В р У С У С ’ С Л ' б р р С М У ^ ' ] .

 

 

 

 

 

 

< I.I5 )

 

Из выражения, приведенного в ( I .I 5 ) , можно найти вели­

чины

Eji

и

С}г .

.

 

 

 

Для определения

Ь U необходимо посчитать

число одно­

именных алгоритмов, включая также и подпрограммы,

тогда

t a

" 5 ,

i e 2 >

t y l *s 2 )

ip 1mA , Ей* * 2 ,

 

 

Для определения

необходимо показатели

стейени

одноименных алгоритмов на наборном поле программ и подпрограмм оложить, тогда

Еса “ 9 . Еаа

t n i miO ,

t fa “ 8 ,

1<$лж( 4 .

Выше рассматривалась

оценка параметров

алгоритма

£>

, не

содержащего условных И безусловных переходов (разветвлений). Для разветвляющихся программ оценивается отдельно па­

раметр

'fcrtiax » для ч его ‘рассматриваются

только те алгоритмы,

которые

составляют максимальный путь по V-

.

Остальные па­

раметры определяются о учетом всех алгорт

ов,

условно отбросив

разветвления.

 

 

Одна и та же операция или функция мажет бить реализо­ вана множеством простых алгоритмов (набором алгоритмов по j -й операции)

A ji ” ^ Xjli, • * *)

vAj2 Xjii, • • • i

..........................................................................(1 .16)

Aj Mj* < XjNji,Xj^2,

выражение ( I . 16) может быть представлено в общем виде