Скачать презентацию Деревья оптимального поиска ДОП До сих пор предполагалось Скачать презентацию Деревья оптимального поиска ДОП До сих пор предполагалось

6_Derevya_optimalnogo_poiska.pptx

  • Количество слайдов: 32

Деревья оптимального поиска (ДОП) До сих пор предполагалось, что все вершины дерева ищутся одинаково Деревья оптимального поиска (ДОП) До сих пор предполагалось, что все вершины дерева ищутся одинаково часто. Однако встречаются ситуации, когда известны вероятности обращения к отдельным ключам дерева. Обычно для таких ситуаций характерно постоянство ключей (структура дерева остается неизменной).

Типичный пример - сканер компилятора, который определяет, относится ли каждое слово программы (идентификатор) к Типичный пример - сканер компилятора, который определяет, относится ли каждое слово программы (идентификатор) к классу ключевых слов. Статистические измерения на сотнях компилируемых программ могут дать информацию об относительных частотах появления в тексте программы конкретных ключевых слов.

 •

 •

 • 60 60 30 30 10 10 10 60 30 10 10 30 • 60 60 30 30 10 10 10 60 30 10 10 30 60 60 30

 •

Задача построения ДОП может ставиться в двух вариантах: 1. Известны вершины и их веса Задача построения ДОП может ставиться в двух вариантах: 1. Известны вершины и их веса (дерево не меняется в процессе поиска). 2. Вес вершины определяется в процессе работы (после каждого поиска вершины её вес увеличивается на единицу). В этом случае нужно перестраивать структуру дерева.

 •

 •

 •

 • № 1 2 3 … n K K 1 K 2 K • № 1 2 3 … n K K 1 K 2 K 3 … Kn

 • 0 0 1 2 3 0 60 90 100 0 30 40 • 0 0 1 2 3 0 60 90 100 0 30 40 0 10 0

 • 0 0 1 2 3 1 0 60 0 2 3 30 • 0 0 1 2 3 1 0 60 0 2 3 30 0 10 0

 • 0 0 1 2 3 0 0 60 120 150 0 0 • 0 0 1 2 3 0 0 60 120 150 0 0 30 50 1 0 10 2 0 3 1 2 3 0 1 1 1 0 2 2 0 3 0

 •

 • 0 0 1 2 3 4 5 6 7 8 9 0 • 0 0 1 2 3 4 5 6 7 8 9 0 1 1 4 4 5 5 5 0 2 2 4 5 5 7 0 3 4 5 5 5 5 7 0 5 5 5 7 7 0 6 7 7 9 0 8 9 0

 (0, 9) (5, 9) (0, 4) (0, 0) (1, 4) (1, 3) (1, (0, 9) (5, 9) (0, 4) (0, 0) (1, 4) (1, 3) (1, 1) (4, 4) (2, 3) (2, 2) (5, 8) (5, 6) (9, 9) (7, 8) (5, 5) (6, 6) (7, 7) (8, 8) (3, 3)

 •

 • Алгоритм построения ДОП • Алгоритм построения ДОП

Алгоритм построения ДОП При h>1: h = j–i – размер поддерева DO ( h Алгоритм построения ДОП При h>1: h = j–i – размер поддерева DO ( h = 2, 3, …, n ) DO ( i = 0, . . . , n – h ) j : = i + h m : = AR i, j-1 min : = AP i, m-1 + AP m, j DO ( k = m+1, . . . , AR i+1, j ) x : = AP i, k-1 + AP k, j IF ( x < min ) m : = k , min : = x FI OD AP i, j : = min + AW i, j AR i, j : = m OD OD

 •

Приближенные алгоритмы построения ДОП Известны быстрые алгоритмы, строящие почти оптимальные деревья поиска. Назовем эти Приближенные алгоритмы построения ДОП Известны быстрые алгоритмы, строящие почти оптимальные деревья поиска. Назовем эти алгоритмы А 1 и А 2. Алгоритм А 1: В качестве корня берем вершину с наибольшим весом, будем поступать так же для каждого поддерева.

1 2 3 4 5 6 7 8 9 10 5 20 5 10 1 2 3 4 5 6 7 8 9 10 5 20 5 10 10 5 5 25 25 20 10 5 5 5

 •

 •

1 3 4 5 6 7 8 9 10 5 2 20 5 10 1 3 4 5 6 7 8 9 10 5 2 20 5 10 10 5 5 25

 •

 •

К У Р А П О В А Е Л Е Н А В К У Р А П О В А Е Л Е Н А В И К Т О Р О В Н А К Р А П О В Е Л Н И Т 2 1 2 4 1 3 3 2 1 1 А В Е И К Л Н О П Р Т У 4 У 3 2 1 2 3 1 2 1 1

Relax Relax