ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.10.2024
Просмотров: 103
Скачиваний: 1
- 92
|
Ь ♦ |
Если ребро |
|
Gi |
добавить к |
^ |
, |
то граф |
c£ + 6i. |
|
|
||||||
'будет оодержать цикл С = б 1 + ф ( А ,5) |
, |
а |
так как |
О , |
не |
|
|
||||||||||
(имеет циклов, то цикл С |
|
должен содержать, |
по крайней мере, |
||||||||||||||
одно ребро, не принадлежащее |
О . |
Удалив это ребро |
61 |
|
[, |
||||||||||||
мы получим дерево |
|
|
|
|
|
|
|
|
|
|
|
|
i |
||||
| |
|
|
|
|
|
E ' - i C + e i - e i |
|
|
|
|
|
|
| |
||||
о тем же самым чиолом вершин, |
что и |
X |
, |
|
причем его |
тру- |
|
! |
|||||||||
доемкооть равна |
|
|
|
|
|
|
|
|
|
|
|
|
|
j |
|||
! |
|
> |
|
|
|
|
W |
|
+ H c O - i ( « S ) . |
|
|
|
j |
||||
Так как |
& |
имеет наименьшую возможную трудоемкость, |
то |
' |
; |
||||||||||||
|
|
|
Ь ( бс ) |
2* |
i |
|
*>)•. |
|
|
|
|
|
|
|
|
||
Но |
S i |
было звеном наименьшей трудоемкости, |
при добавлении |
|
|
||||||||||||
которого |
к |
6 i , |
£г |
|
S i |
Gl-i |
не получается циклов. Так как |
i |
|||||||||
при добавлении ребра |
к |
этим ребрам мы тоже не получим |
|
, |
|||||||||||||
никакого |
цикла, |
то |
|
|
|
|
Ь ( € [ ) |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
( 6 i ) |
= |
|
|
|
|
|
|
|
|
||
и, |
следовательно, |
X ' |
|
токе имеет минимальную трудоемкость: |
|
; |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
: |
|
Таким образом, |
мы наши другое дерево |
X |
минимальной |
|||||||||||||
трудоемкости, имеющее о оптимальным деревом |
|
О одним ребром |
| |
||||||||||||||
больше, чем |
X |
. |
Мы можем повторять |
эту |
операцию до -тех пор, |
пока окончательно получим соединяющее дерево минимальной тру-! доемкости, совпадающее о Q . Отовда О а также вое дру
гие оптимальные деревья действительно имеют минимальную тру- |
| |
доемкооть их реализации УВС. |
j |
- ш
Г Л А В А 17
СИНТЕЗ АЛГОРИТМОВ ПОВЫШЕННОЙ ТОЧНОСТИ ВЫЧИСЛЕНИЙ ДЛЯ ПРОСТЫХ ОПЕРАЦИЙ ПРИ ОГРАНИЧЕННОЙ
ДЛИНЕ РАЗРЯДНОЙ СЕТКИ УВМ
4 .1 . Предварительные замечания
Работа управляющей вычислительной машины связана с реа лизацией некоторого набора управляющих алгоритмов. При этом каждый управляющий алгоритм о целью обеспечения необходимой : эффективности ущшвления требует различной разрядности управ ляющей машины. Эяо связано, прежде всего., с получением различ ной требуемой точности вычислений выходной информации. На дли ну разрядности УВМ влияют выбор численного метода решения, объем вычиолений, величины погрешностей, еносимые элементар ными алгоритмами (операциями), составляющими алгоритм управле ния. Кроме того, один и тот же алгоритм на некоторых участках управления может вычисляться о повышенной точностью. Естествен но, что для эффективного управления расчет разрядности УВМ сле дует производить из условия обеспечения максимальной точности для воех алгоритмов на всем этапе управления. Однако этот путь не всегда является прие&ь.змым, т . к , рост разрядной сетки неиз бежно ведет к увеличению экономических и габаритовесовых пока зателей УВМ.
Если роот разрядности приводит к нежелательным экономи ческим, задачам и размерам УВМ, то длина разрядной оетки опреде ляется из условия обеспечения этих требований, а повышенная точность (точность, превышающая разрядность УВМ) реализуется ; программным путем.
При введении алгоритмов, реализующих повышенную точность вычислений, следует учитывать тот факт, что 8ти алгоритмы требу ют для своей реализации значительно большего времени и объема памяти УВМ по сравнению с одинарной точностью. Кроме того, для введения этих алгоритмов необходимо произвести некоторые изме
нения и дополнения в |
оиотеме иструктуре команд УВМ. |
|
; |
Поэтому задача |
оптимизации таких алгоритмов являетоя |
одной из важных для обеспечения эффективного управления. Од
- 94 -
нако вопрос оптимизации и согласования структур и характеристик алгоритмов 6 показателями системы управления в большей степе ни относится к первым двум главам, где предполагается возмож ность изменения структур и показателей вычислительник алгорит мов.
Естественно, что чем шире возможность изменения струк тур алгоритмов и их показателей, тем вш е степень оптимиза ции и эффективное управление.
Изложению методов синтеза алгоритмов для проотнх опе раций о различной структурой и показателями, а также методов вычисления некоторых функций о повышенной точностью вычисле ний посвйчены две следующие главы.
4 .2 . Алгоритмы простых арифметических операций
Разработка алгоритмов повышенной точности вычислений, для простых операций являетол одной из важных, т .к , эти ал горитмы представляют собой основу построения более сложных
алгоритмов. От их показателей |
существенным образом зависят по |
||
казатели алгоритма управления |
и всей |
системы управления в целом. |
|
Чиоло многократной точности |
1£) ' |
в машинах о фикси |
рованной запятой определено как число, состоэдее из знака чис ла и правильной дроби из "к" пооледовательш " : слов памяти [б 0 |. Если основание системы счисления Cj, = 2, а >аждое слово вычис
лительного устройства включает |
И двоичных разрядов, то |
|||||
|
|
|
т - s * , |
|
£ v , 2 - ‘\ |
|
где |
S v |
- |
знак числа |
¥ |
(для ¥;>о. Sч’-О, |
S<c= l ) } |
|
’f t |
- |
целая цифровая |
И -разрядная |
С-я часть |
|
|
|
|
чиола (слово). |
|
|
|
Если чиоло Sf в целом представлено в |
одном из кодов |
|||||
(прямом, |
обратном, дополнительном), то в общем виде его можно |
|||||
запиоать |
так: |
|
|
|
|
|
|
|
[ f l - s . , |
Е<пгг" |
|
С*1 *
- 95 -
где |
- целая цифровая П-разрядная t -я |
часть числа |
|
(слово). |
( |
|
|
|
Каждое слово ^ |
хранится в отдельной |
ячейке памяти ма |
ш ин. |
Исследуем некоторые возможные алгоритмы, реализующие |
простые операции о повышенной точностью. Для каждого алгорит ма будем оценивать погрешность метода реализации данной опе рации при условии, что ошибка представления исходных данных равна нулю. Таким образом, данный показатель характеризует погрешность,вносимую оамим алгоритмом.
Сложение "длинных" чисел характеризуется тем, что скла дываются последовательно слова, начиная с младших. Если при сложении слов возникла единица переноса, то она прибавляется к младшему разряду суммы соседних старших слов.
Таким образом, при сложении длинных чисел возникает не обходимость в анализе сумм отдельных слов с целью выявления единицы переноса в соседнюю старшую часть суммы или в запо минании значения переноса в специальном разряде о последующим его добавлением к сумме старших частей.
ПУ” Ь |
[« f 1 - |
S * . ^ |
Ч«е' |
|
||
• |
|
[ у ] = S r . £ |
|
г Л п . |
|
|
|
|
i*» |
виде итерационной после |
|||
Сложение 1~х |
олов можно записать в |
|||||
довательности |
|
|
|
|
|
|
|
|
( i=k, |
|
2,i) ; |
(4.1) |
|
здесь P i- |
значение перенооа от |
сложения ( |
L+ 1)-х слов; |
|||
P i- i - |
значение переноса от |
сложения |
L-х слов; |
|||
(¥ + ~Чт)*- |
значение суммы |
i - x |
олов |
|
При сложении слов 1= I |
возникший |
перенос |
ре |
от |
|||
сложения цифровых частей поступает в |
знаковые разряды. |
При |
|||||
этом |
+ |
+ро = |
2 |
+ |
S > 0 |
£ |
+ v ) |
S y |
( 4 . 2 )
|
|
|
|
- 96 |
- |
|
где |
2 |
- |
значение переноса |
от |
сложения |
i= I слов совместно |
со |
знаками. Если сложение длинных чисел происходит в обратных |
|||||
;кодах, |
то |
Z - значение |
циклического |
переноса - прибавляет |
||
с я |
к младшему разряду полученной суммы длинного числа. Это |
можно записать в виде следующей итерационной последовательности
|
|
(4’3) |
где для С ~ к имеем |
рк = И |
. |
Если сложение длинных чиоел происходит в дополнительном |
||
коде, то значаще И |
не учитывается. |
|
U учетом оказанного, |
если длинные числа в памяти маищ- |
ны хранятся в прямых или обратных кодах и сложение происходит в обратном коде, то для получения ошибки алгоритма, равной ну лю, необходимо реализоватьитерационные последовательности (4 .1 ), (4 .2 ), (4 .3 ). Кроме того, для чисел, представленных в
других кодах, необходима их отдельные слова хранить со знаком,
соответствующим знаку старшего олова ( |
= I ) . Присвоение зна |
|||
ков младшим словам (S(r+v}i-+ SCf-rvJi ) |
мо:;яо |
осуществить |
j |
|
совместно о реализацией (4 .3 ). |
|
|
|
|
Таким образом, |
если длинные числа |
хр чятся в памяти ма |
||
шины в прямых кодах, |
а сложение их происходит в |
обратных кодаке, |
||
то реализуются последовательности: |
|
|
j |
|
[ Я , * ] . + [ S * ,ч*1 +P i - Pi + 0 , ( 4 + y ) i , |
|
|
|||
( С |
|
|
( c - k , k-н,-.-, 2; |
p x ~ 0 ) , |
(4.4) |
|
1 |
- |
обратные коды слагаемых). |
|
|
||
Для |
t = |
I |
имеем |
|
.' -' |
. |
|
|
|
^ ] «+Pi = Z+ S(^Y)i(Y + y)i . |
(4,5) |
|
С учетом циклического переноса и присвоения знаков млад шим частям имеал
______ «Sjcip+yji -*■ 8{чч-+)с
г |
|
|
|
- |
97 - |
. |
4.6) |
( |
|
L S ( *4*)t, ( ¥ * * ) & + Pi= p._t+Sm4,k |
|||||||||
j m |
Lm'1 |
U |
- |
k |
2; p « - z ; . |
|
|
|
|
C S(f*v)i,(tf+1k)r] +ft * |
SOf+VJi, (tf+’ipji • |
(4.7) |
> ес |
||||||
Можно построить алгоритм о вносимой погрешностью * 2 |
4 |
||||||||
ли не учитывать значение циклического |
переноса 2 |
. |
Тогда |
||||||
выражения (4,6) |
й (4.7) можно изменить на последовательность |
||||||||
|
Scv+V'ji |
S c i f ^ ) i |
(с= к ,к-V " ) 2 ) , |
(4.8) |
|
||||
|
Если сложение длинных чисел проводить в дополнительных |
||||||||
кодах, |
то |
|
|
|
|
|
|
|
|
[ S v i , f J0 +Z<e + [ |
S 44, % ] o+ Z<t=* рк-i + 0,(tf+*)*:, |
|
|
||||||
|
( e « 0, |
сслц |
S “ 0 |
и |
2 = 2 ^ , |
еслч |
|
|
|
[Svi^iJo+ C St^H 'cjo + Pi ^ p c - i + o X y + Y U ,
( £ - k - ! , f c - 2 , . " , 3 , 2 ) ;
[S f^ V ’Jo + f5+ i,V i]0 +pi « |
S(v++)t> (V’ +VS'Ji; |
||
|
S ( ^ i - * S ( ¥ + v j i |
(4 = ic, |
- |
Без учета |
Z-y и 'Z f'возможны наборы алгоритмов |
с погрешностью,1 |
|
равной |
Z + * 2 - 2 " ки , |
|
I |
Для длинных чисел, представленных в ячейках памяти ма шины в обратных кодах, реализуются следующие итерационные по следовательности;
З ъ , *1 + S |
+Pi - |
|
p i-1 + о, O f + г ) ? |
|
( |
ь^к, |
к-1, •••> 2 |
; |
Р к а 0 ) } |
S f i , |
+ S *i, Vi' +pi |
- |
z + S c w f a C v + 't ) ? 1, (4.9) |