
книги из ГПНТБ / Папернов А.А. Методы упорядочения информации в цифровых системах
.pdf330 ГЛ. 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 элементов, осуществляется постепен но по мере записи на эту ветвь отдельных элементов.
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 т+т |
|
|
|
2т+ 1 |
|
|
|
2к— 1 |
2 - 1 j |
|
|
|
i=i |
(9.29) |
(В+і) 2 т |
2к—1 |
|
|
( л + i ) 2 |
+ 1 |
||
|
|
і=2 |
|