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

книги из ГПНТБ / Папернов А.А. Методы упорядочения информации в цифровых системах

.pdf
Скачиваний:
16
Добавлен:
25.10.2023
Размер:
13 Mб
Скачать

330 ГЛ. 9. МЕТОДЫ ПЕРЕСТРОЙКИ ДВОИЧНЫХ ДЕРЕВЬЕВ

Т а б л и ц а 9.2

Вес

дерева

п

1

2

3

4

С

О

6

7

О

О

Q

и

Математическое

Математическое

Вероятности

записи

ожидание

прираще­

ожидание

количества

ния количества

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

 

узлов

 

узлов

при записи

на точки

роста

 

 

 

 

n ~\- 1-го

элемента

 

разного

типа

"п

% =

"кп

Дл

Д»„

=

Дп

Р,і

Р.ш

 

=

п кн

п

= 4 п к н

кп

 

 

 

 

 

 

0

 

0

1

0

1

 

—1

0

1

0

0

 

1

0

1

—1

2

1

0

о

 

3

3

 

 

 

 

 

 

 

 

 

1

 

0

2

0

1

 

—1

0

1

0

1

 

1

1

3

 

1

4

1

2

1

 

5

5

5

5

5

5

 

 

 

 

8

 

4

9

о

1

 

1

2

9

4

5

 

5

5

5

5

 

5

15

15

15

2

 

1

2

3

1

 

2

1

4

2

 

7

7

 

7

7

7

7

 

 

 

 

 

17

 

8

16

3

1

 

2

1

4

2

7

 

7

7

7

7

 

7

7

7

7

20

 

9

18

3

1

 

2

1

4

2

7

 

7

7

7

7

 

7

7

7

7

23

10

20

3

1

 

2

1

4

2

7

 

7

7

7

7

 

7

7

7

7

Если при некотором п указанные величины стабили­ зировались, то это значит, что приращение отношения ПіКп+І) (і — произвольный индекс при п) при увеличе­ нии п на единицу равно нулю.

Из условия

д I ttj

\ = ni + A rij _

ni

_ à ni

in

Q

\ n + l /

n + 2

n+l

n + 2

(л + 1) (я +

2)

следует,

что

 

 

 

 

 

 

 

 

 

(9.4)

§ 9.2. ПЕРЕСТРОЙКА НЕПОЛНЫХ УЗЛОВ ДЕРЕВА

331

Приравнивая Апкп, полученное из (9.4), его математиче­ скому ожиданию (9.3в) получим

 

 

 

д п

= 9 — 6

П к

П +

1

 

 

 

 

 

 

 

Я + 1

 

 

т. е.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7 Т Т - Т •

 

 

 

( 9 ' 5 )

что и подтверждает высказанное предположение.

 

 

Выражения (9.3) с учетом (9.5)

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

формулы:

 

 

 

 

 

 

 

 

 

 

 

ЛГ(Алп ) =

р н

+ р К І 1 =

у ,

 

 

 

(9.6а)

 

M (Д nH ) =

M (Д я к н ) =

р к п р„ — р к н

= - L ,

(9.66)

 

М(А пт)

=

2

А , - 2Р

к п

+ 2pKH=-j

 

.

(9.6B)

Из

уравнений

(9.6)

легко

определяются

вероятности

Ркп,

Рки и

р н :

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рк„ =

4/7,

 

 

 

(9.7а)

 

 

 

 

 

Рк„ =

2/7,

 

 

 

(9.76)

 

 

 

 

 

Рн =

1/7.

 

 

 

(9.7в)

Математическое

ожидание

 

изменения средней

длины

пути в дереве

при записи

в него

я-го

элемента

опреде­

лим

так

же,

как

и для

 

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

дерева

(п. 8.4.1).

 

 

 

 

 

 

 

 

 

 

При записи п-го элемента на точку роста типа H или

К.П

с длиной пути

т. е. записи

без

перестройки дере-

ва, средняя длина

пути / с р

увеличивается

на

 

д7 _ /" _ іп-х

— _ І

 

 

 

— Г " ' =

 

n + 1 + n + 1

332 ГЛ. 9. МЕТОДЫ ПЕРЕСТРОЙКИ ДВОИЧНЫХ ДЕРЕВЬЕВ

или в среднем по ансамблю деревьев на

 

 

 

Л—1

.Л—1

 

 

 

(9.8)

 

 

 

ср н, кп

'ср

 

 

 

 

 

 

п +

1

 

 

 

 

где

/срн.кп средняя длина пути

для совокупности то­

 

роста типов H и КП в дереве

из п—1 элемента.

чек

При

записи

л-го элемента

на точку роста

типа

КН,

т. е. записи с перестройкой дерева,

приращение средней

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

 

 

 

 

 

1

 

 

 

 

| Л — 1

1

 

 

[п&

+ 1}+

и - с

1

ср

 

 

п +

п +

1

 

1

 

 

 

П + 1

или в среднем

 

 

 

 

 

 

 

 

 

/Л—1

,п— I

 

 

 

 

 

 

 

'ср кн

'ср

+

 

 

(9.9)

 

 

 

п +

1

 

 

 

,п-\

 

 

 

 

 

 

 

 

 

 

 

где /сркнсредняя длина пути для совокупности точек

роста класса

КН в дереве из п1 элемента.

 

 

Среднее приращение средней длины пути равно

 

 

г «л—1

_

/ л—1

 

 

 

 

 

 

 

(Рн + Ркп)

'ср н, кп

'ср

+

 

 

 

 

 

 

я + 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,п—1

 

.л—1

+ п +

 

 

 

 

+

Рк

 

'ср кн

 

'ср

1

 

 

 

 

 

 

п +

1

 

 

 

 

 

 

 

л—1

 

 

Ркп 'ср кн '

 

 

 

I

,І -

 

ср н, кп i

 

 

 

Ркп) 1\

 

 

 

 

"ср

+

 

 

 

 

 

 

 

п +

1

 

 

 

 

 

 

 

 

 

 

2 (Рн +

Ркп) + Рк

(9.10)

 

 

 

 

 

 

 

 

п + 1

 

 

 

 

 

 

 

 

 

 

 

Однако

 

 

 

 

 

 

 

 

 

 

 

 

(Рн ~Т~ Ркп)

'ср н, кп ~Т~ Ркн 'ср кн — 'ср

>

(9.11)

т.е. 1-е слагаемое в правой части (9.10) равно нулю. Сле­ довательно, среднее по ансамблю деревьев приращение

§ 9.3. ПЕРЕСТРОЙКА ДЕРЕВА С ОГРАНИЧЕНИЕМ ВЕСА УЗЛОВ 333

средней длины пути на п-м шаге определяется как

A I (п) = 2 (Рн + Ркп) + Ркн n + 1

или с учетом (9.7)

Приближенной оценкой для / с р (я) может служить вы­ ражение

г2тттА т1 п <л + 1 ) -

( 9 Л З )

і=1

По сравнению с неперестраиваемым деревом (формула (8.14)) средняя длина пути уменьшается на 14,3%. Но все же она остается на 19% больше, чем у заполненного симметричного дерева.

Максимальное значение средней длины пути в наи­ худшем случае уменьшается в два раза по сравнению с наихудшим случаем при неразветвленном дереве.

Вероятность ркп позволяет в известной степени оце­ нить сложность перестройки. Она выполняется в 2/7 всех случаев записи в дерево нового элемента.

§ 9.3. Метод перестройки дерева с ограничением веса

перестраиваемых узлов

Воставшейся части настоящей главы рассматривают­ ся методы перестройки дерева, промежуточные как по своей сложности, так и по степени уменьшения средней длины поиска между полной перестройкой и перестрой­ кой неполных узлов. Метод перестройки, рассматривае­ мый в настоящем параграфе, является в известном смыс­ ле обобщением как метода полной перестройки, так и метода перестройки неполных узлов.

Валгоритме метода предусматриваются два режима: режим без перестройки и режим с перестройкой. Алго­ ритм записи в дерево нового элемента начинается с уста­ новки режима без перестройки. Переключение в режим

334 ГЛ. 9. МЕТОДЫ ПЕРЕСТРОЙКИ ДВОИЧНЫХ ДЕРЕВЬЕВ

перестройки осуществляется специальными признаками, называемыми признаками переключения, которыми могут помечаться любые узлы дерева. Узлы дерева, в кото­ рые записан признак переключения, будем называть отмеченными узлами. После того, как во время записи нового элемента на пути от вершины дерева к соответст­ вующей точке роста встречается отмеченный узел, алго­ ритм переводится в режим перестройки и остается в нем до конца записи. Ветвь отмеченного узла при записи в нее каждого нового элемента подвергается полной пере­ стройке, алгоритм которой был описан в § 9.1.

Устанавливается следующее правило формирования признака переключения: первому элементу, с которого начинается рост дерева, приформировывается признак переключения. Тем самым при записи в дерево последую­ щих элементов алгоритм записи, после соответствующей проверки в вершине дерева переключается в режим пе­ рестройки. При этом считается, что признак переключе­ ния придается не элементу дерева, а узлу, т. е. не изме­ няется в случае записи в отмеченный узел в процессе пе­ рестройки дерева другого элемента. В процессе записи в дерево новых элементов фиксируется вес отмеченных узлов. После того как вес отмеченного узла достигает величины, равной 2к 1 (k — целое положительное число, представляющее собой параметр метода), в отмеченном узле выполняется последняя перестройка, в результате которой формируется симметричная заполненная ^-ярус­ ная ветвь дерева. После завершения перестройки в отме­

ченной вершине

ветви признак переключения стирается,

а в

2k~l

концевых

узлах

ветви — формируется

признак

переключения.

 

 

 

 

 

Вместе

с

признаком

переключения

в

концевые

узлы

записывается

их

исходный вес,

равный еди­

нице. Стирание признака в вершине ветви означает, что все элементы ветви, кроме концевых, фиксируются и ис­ ключаются из последующих перестроек дерева. Отмечен­ ные концевые узлы превращаются в вершины новых вет­ вей дерева, подлежащих перестройке при последующей записи новых элементов до тех пор, пока их вес не дости­ гает 2к1 и т. д.

Существенным параметром описываемого метода пе­ рестройки дерева является показатель k. При k=\ алго-

§ 9.3. ПЕРЕСТРОЙКА ДЕРЕВА С ОГРАНИЧЕНИЕМ ВЕСА УЗЛОВ

335

ритм вырождается в алгоритм случайного роста дерева без перестройки. При k = 2 он преобразуется в описанный в § 9.2 алгоритм перестройки неполных узлов. При k = co он переходит в алгоритм полной перестройки дерева.

Определим среднюю длину поиска в дереве как функцию веса дерева и показателя k.

Для этого составим таблицу изменения количества узлов разного типа при записи в дерево нового элемен­ та. В таблице все узлы дерева классифицируются сле­ дующим образом:

1) фиксированные узлы (индекс Ф), не расположен­ ные на ветвях каких-либо отмеченных узлов, т. е. нахо­ дящиеся на путях от вершины дерева к отмеченным узлам;

2)отмеченные узлы, каждый из которых обозначает­ ся индексом О, дополненным весом ветви отмеченного узла;

3)нефиксированные узлы (индекс НФ), расположен­ ные на ветвях отмеченных узлов.

В первом столбце табл. 9.3 записаны веса отмечен­ ных узлов перед записью на их ветви новых элементов, принимающие значения от 1 до 2*—2. Остальным столб­

цам таблицы соответствуют все перечисленные

выше

типы узлов.

 

 

 

 

 

Если вес отмеченного узла равен і, то на его ветви

размещается і+1

точка

роста. Это значит, что в

дереве

из

п элементов

между

количествами отмеченных

узлов

с

разным весом

должно

выдерживаться соотношение

 

 

2

(*+ ! К / = п+ 1,

(9.14)

где пол— количество отмеченных узлов с весом і. Вероятность того, что элемент, записываемый в дере­

во из п элементов, попадает на ветвь отмеченного эле­ мента с весом і, составляет

(i

+ 1) пр. i

(9.15)

РІ

n + 1

 

 

Как указывалось выше, перестройка ветви дерева, содержащей 2к —1 элементов, осуществляется постепен­ но по мере записи на эту ветвь отдельных элементов.

336 ГЛ. !). МЕТОДЫ ПЕРЕСТРОЙКИ ДВОИЧНЫХ ДЕРЕВЬЕВ

Т а б л и ц а 9.3

, л s о

£ О м я

g a g a s s « о „ «

S , „ - c ^ i f

о SI'S

S ч S

Я >.c

 

Изменение количества узлов нижеуказанных типов Узлы с индексом О

Узлы

Второй индекс узла типа «О»

Узлы

с индексом

 

с индексом

Ф

1—2

НФ

 

2к-2

— 1 + 1

+ 1

—1

+ 1

/—1

+ 1

+ 1

 

 

+ 1

+ 1

 

2к—2

2 * - і — 1 2*-

—(2*

-2)

Однако среднюю длину пути нам удобно определить, исходя из предположения, что отмеченный узел не под­ вергается перестройке до тех пор, пока его вес не до­ стигает 2к •—1, после чего он сразу перестраивается в узел с симметричными заполненными ветвями. При та­ ком предположении вероятность

(2* - 12k ,

можно интерпретировать как вероятность перестройки после записи в дерево нового элемента (относя к пере­ стройкам и те маловероятные случаи, когда правильные заполненные ветви из 2к 1 элементов формируются без перестройки; это допущение, однако, как будет видно из дальнейшего изложения, никак не отражается на конеч­ ных результатах вывода).

Для того чтобы определить значение вероятности (9.16) для ансамбля деревьев, необходимо в формулу

§ 9.3. ПЕРЕСТРОЙКА

ДЕРЕВА С ОГРАНИЧЕНИЕМ

ВЕСА УЗЛОВ 337

(9.16) подставить

вместо nQ 2k_2 его

математическое

ожидание.

 

 

Для математических ожиданий изменения количества отмеченных узлов после записи в дерево из я элементов нового, т. е. (я+1) - го элемента, из табл. 9.3 и формулы (9.15) имеем

M

(Дло. і) =

Р 2 * _ 2 2

я „ , 2 * - 2 — Pin o, i

=

 

 

 

 

 

2 * - M 2 * - l ) « 0 i 2 f e _ 2

2 я 0

> 1 ,

(9.17)

 

 

 

 

 

п +

1

 

M

(А "о, ,) = P l

п0, ^ -

р, До, i =

-

( і + '» "°- '

(9.18)

 

 

 

 

п + 1

n +

1

 

 

 

( * - 2 , 3,

2* —2).

 

 

 

При достаточно большом я вероятности (9.15) стабили­ зируются.

 

Условием стабилизации вероятностей является равен­

ство нулю

приращения

отношения п0і1/(п+1),

входя­

щего в выражение

(9.15)

для ріг

при увеличении п.

 

Из условия

 

 

 

 

 

л

I по, і \

 

 

паі + А п0 i

п0 i

A п0 і

п0

i

 

п + 1 /

 

п + 2

/ г + 1

п + 2

(/г + 2)

( /г + 1)

следует, что

 

 

 

 

 

 

 

 

 

 

 

Дп 0 ; . =

п 0 > і / ( п + 1 ) .

 

(9.19)

Приравнивая Дя0 > г

его математическому ожиданию (9.17)

и

(9.18),

получим

 

 

 

 

 

 

 

 

 

 

2 * - i ( 2 f t — 1 ) л „ ь

о

 

 

A H

U

=

/ г + 1

_

 

° - 2 - 2

2 " ° - і

, (9.20)

 

 

 

 

 

/ г + 1

п + 1

 

 

А Яд

. =

'

^ ' "•>• ^

( ' + 1 } "°> '

 

(9.21)

 

 

' '

 

/ г + 1

/ г + 1

п + 1

 

 

( / = 2 , 3 , . . . , 2 * - 2 ) .

338 ГЛ. 9. МЕТОДЫ ПЕРЕСТРОЙКИ ДВОИЧНЫХ ДЕРЕВЬЕВ

Из

(9.20)

следует, что

 

 

 

 

 

M (По, г) = 2 * ~ 1

( з * - 1 )

M (п0> 2 k _ 2 ) .

(9.22)

Из

(9.21)

следует, что

 

 

 

М ( "° . ') =

М { П ° -м )

{ І =

2, 3,.... 2* - 2).

(9.23)

Последовательно подставляя в (9.23) аналогичное выра­ жение для

 

 

^ К І - І

) .

л « К

4

 

 

M(n0tt)

по формуле (9.23)

и, наконец,

M 0 > ] )

по

формуле

(9.22)), получим

 

 

 

 

 

 

 

АЛ/

\

1

t — 1

£ — 2

3

2

2 * - і ( 2 А

1)

 

M ("о

«) =

 

•••

 

 

"

' X

 

'

 

i + 2 t + 1

i

5

4

3

 

 

X M (/г0 2 *_2 )

=

2k

(2" -

 

1) M (n0< 2u_ 2

) =

Условие (9.24) совместно с условием (9.14) позволяет определить M(nQ2k_2). Действительно, из (9.14) сле­ дует, что

2*-2

 

 

 

2 (/+ \)M(n0j

=

 

 

1=1

 

 

 

 

1к2

j

 

= / Щ п 0 2 * _ 2

) 2 * ( 2 * - 1 ) 2

— ^ = / » + 1 .

(9-25)

§ 9.3. ПЕРЕСТРОЙКА ДЕРЕВА С ОГРАНИЧЕНИЕМ ВЕСА УЗЛОВ 339

Подставляя

(9.26)

в (9.16),

получим

для вероятности

перестройки /?2 *_2

формулу

 

 

 

 

 

 

 

 

2к-2

 

 

(9.27)

 

 

 

 

 

 

 

 

 

 

2*

2 т

 

 

 

В результате каждой перестройки изменяется длина

пути до точек роста дерева,

расположенных

на

пере­

страиваемой ветви. Количество таких точек

роста

равно 2 *.

 

 

 

 

 

 

 

Средняя

длина

пути

от

вершины

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

ветви, состоящей из 2к

1 элементов,

до точки

роста в

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

с (8.11) равна

 

 

 

 

 

 

2 К - \

— .

 

 

 

 

 

2

у

 

 

 

 

 

 

J L

i+i

 

 

 

После полной перестройки ветви длина пути до всех то­ чек роста оказывается равной k.

Следовательно, среднее изменение длины пути до каждой из 2к точек роста, расположенных на перестраи­ ваемой ветви, равно

22

(9.28)

 

Математическое ожидание изменения средней длины пути в дереве за счет его возможной перестройки после запи­ си в дерево нового элемента равно

2 Ѵ _ 2

2fe—1

 

 

2 2 ті + 1

 

 

п -}- 1

2 т+т

 

 

+ 1

 

 

2к1

2 - 1 j

 

 

 

i=i

(9.29)

(В+і) 2 т

2к—1

 

( л + i ) 2

+ 1

 

 

і=2

 

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