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

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

.pdf
Скачиваний:
9
Добавлен:
19.10.2023
Размер:
6.6 Mб
Скачать

 

 

 

 

 

 

 

-

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) может быть представлено в общем виде

 

- 25

-

Ajt К

• ' • ,

( j - C O t t s i ,

l * i,2 ,„ .t

Hj) ,

( I . 17)

где

l

лено " j

-

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

no

j -ой операции;

-

общее число

этих алгоритмов в

j -ом наборе.

ли имеется

И1

операций я по кавдой операции состав

 

алгоритмов,

то

общее число таких алгоритмов равно

В развернутом виде такая система представляется следующей!

 

 

( I . 18)

л 55 К ЭСш, Х а з , . .

,

>

12 t^Cl21, № ш , -

* X i i j >

>

ifli —К X ilii, #1*1,2, • •

>X i n t y

>

V

 

^ 2 1

®*

^

X a n ,

X n t , • • • > ?Caij>

^

N

< /Aaa

*

^

# * i t ,

РСлп, * • • >

f

>

# • *

 

*.< • • • * • < » • * » ♦ •

 

 

/4 a/7г =

^

 

Xin»i, • • • » Яиц**

>

 

*

 

 

 

 

 

 

Д mt

^ X m it(X«m, • • • >Xnuif

>

 

J/AtfU

^

X t m i , X m u t • ••, ЭСтгф >

” ,Xmnm{ >

Из множества алгоритмов системы (1,18) можно составите

шокество Р * { ^ ] решений некоторого алгоритма Б

, где

§* 1 , 2 , . . . , S ; ( S - число решений). Каждое^ -

решение характеризуется тем,

что из каждого набора ( j =

c o n s t) внбираетоя до одному алгоритму,

который может быть

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

. Тогда число всевозмож­

ных решений

т

 

S - QHj.

 

4

1

 

 

 

Для более удобного сравнения однозначных параметров ал­

горитмов системы (I.I8) представим их в виде матриц однознач­

ных параметров.

 

 

 

 

Кортежи одного простого алгоритма, например,

 

X tu ( X ju , •••> Х н ц ^

можно записать в виде системы порядка £

однокомпонентных

матриц

:

 

 

 

 

4 *

I

1

(1,19)

 

Х<а *

XJ

|

 

 

Вели алгоритм повторяется нЪ наборном поле програгш R , рае, то система (1*19) является сложной и переход к простой системе соответствует умножению однокомпонеатных

- 27 -

матриц Хр на однокомпонентную матрицу

|Rt| .

При этом

операция умножения Хр для d , t ,

К , &

н а | в , {

должна проводит^оя в соответствии, о сиотемой оптация

(1 .6 ):

 

| d m

 

R i

| d m

R i 11

(1.20)

 

 

 

 

 

 

 

 

■Ьш

 

R i

Jt* it

R i

J*

 

 

 

 

K iU

• | R .

К m l

»

 

 

 

 

G i u

T

G m

 

 

 

 

 

 

 

 

 

ttl

 

 

Рассмотрим матриц» однозначных параметров для

 

 

(

j - 1 , 2 , . . . , ГП

),

полагая,

что для кадой

j

-« •

операции имеетоя по одному проотону алгоритму (

Н; *

I ) . За­

пишем матрица однозначных параметров в вика терт

 

 

X т j

X in i Xjtt j • • * 9Cmu j

 

 

 

 

X a ■ |

X h*

Xtct • • ♦ X mu |

(IJ2 I)

 

 

 

 

 

 

 

a

 

 

 

 

X iip

 

• * • X w tx j| t

 

 

 

Пусть теперь имеется одна операция ( торой составлен набор t -ых ( i = 1 ,2 ,. мов. Тогда

m

=

I ) ,

дмя ме-

Hi

 

« ■ "!■ * -

Xi -

Хг

X iii

Xi a t

** •

X i e ,! ,

X u t

(1.22)

X m

 

9

- 28 -

Hi f

 

Как ввдим, здесь матрица сворачивается в одну колонку

при

Hi

строках,

 

j

 

1 ,2 ,3 , ..., Ml

 

 

В общем случае для

=

и 1 = 1 ,2 ,... ,

ttj

однозначные параметры цростых алгоритмов

могут быть

представлены в виде системы порядка

? многокомпонентных

матриц:

 

 

 

*

X l тир

 

 

 

 

Х д р

 

 

х

X1iiij*

X u p

'

X i i i j p

 

 

у

 

 

 

 

 

 

 

 

 

X<Hip

X щгр

 

*

*

Xm nmp

 

 

 

( f =

i, 2 , . .

■ ><L

) .

(1.23)

 

 

 

 

 

 

 

 

 

 

 

 

 

И большинстве практических случаев матрицы X)j» не яв­ ляются прямоугольными, так как число алгоритмов в наборе мо­ жет быть различно, т .е .

П%Ф Мг • * ' 4* Пт .

Матрицу (1.23) будем считать простой в том случае, ког­ да она составлена из компонент простых алгоритмов. Если же в

нее входит хотя бы одна компонента сложного

кортежа

,

то Х р назовем

сложной и обозначим через

3 # f •

 

Так как в матрице записаны количественные значения

 

параметров

и отсутствуют индексы кортежа, то надпишем

над каждой колонкой ее алгоритм Ед , к которому относится данная колонка.

 

 

 

 

 

 

 

 

 

-2 9 -

 

 

 

 

 

 

 

Пусть матрица

 

# j>

сложная и составлена из

компонент

 

ояокных кортежей

 

Ej

,

тогда

 

 

 

 

 

 

 

 

 

Ei

 

 

 

 

 

 

 

Егг)

 

 

 

 

 

 

 

З х ,-

ЭСир

 

 

 

 

 

• • • X W p

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

XitUf)

 

iCutif

' '

 

 

 

 

 

(1.24)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p

-

 

i,

2,

• • •,

.

 

 

 

 

 

 

 

Для перехода

от

 

 

 

простой матрице

ЭС f>

составим

 

дополнительно матрицу-строку

 

t-< i в которой запишем необхо­

 

димые для преобразований по системе (1.9) численные значения

 

( j

-

( ( R j

-t V j),

( R j

+

^

П

N

^

) j .

 

 

Пусть

 

 

 

 

 

^

 

f

^i> v j

tt*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тогда

 

, f

 

 

 

 

 

 

 

V

1

*"1

1

 

 

 

 

 

L

“ I f t u , t u j

 

 

 

 

f t m i , t m i ] |

 

 

или

 

 

 

L = U

 

L---U\.

(1.25)

 

 

 

 

 

 

 

 

 

 

 

Переход

от

 

J X f K

tfp

осуществляется

путем умножения

матрицы-строки

L

 

на

каждую матрицу Э х ? в

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

 

соотношения!.ш Л . 9 ) .

 

При этом

 

умножается на каждую ком­

 

поненту колонки

E t,

 

£z — на

Е г , . . . ,

£,Ц1

н а

£ m .

 

В множестве

t j

 

величина

I j i

умножается на матрицу

$ d

,

a

-

на

J

i

 

 

.

 

 

 

 

 

 

 

 

 

 

 

Следует

заметить,

что

если все

W

операций в

алгоритме

В> повторяются

по одному разу,

то все компоненты матрици-

 

строки

| .

равны

единице,

тогда

J *

f -

* > •

 

 

 

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