книги из ГПНТБ / Основы теории алгоритмов учеб. пособие
.pdf
|
|
|
|
|
|
|
- |
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 - |
* > • |
|
|
|