Построение и анализ алгоритмов. Динамическое программирование. Оптимальные деревья поиска. (Лекция 4)
Содержание
- 2. 16.02.2016 Динамическое программирование Пример 3. Оптимальные деревья поиска См. начало в Лекции 3. См. также раздел
- 3. Оптимальные деревья поиска Ранее при рассмотрении БДП, как правило, предполагалось, что для поиска различные ключи предъявляются
- 4. 16.02.2016 Динамическое программирование Пример дерева поиска из трёх элементов a1
- 5. Заданы вероятности предъявления элемента x для поиска: P (x = a1) = α; P (x =
- 6. Постановка задачи Поиск будет осуществляться среди набора данных a1, a2, …, an–1, an. Пусть последовательность упорядочена:
- 7. Все эти 2n + 1 событий (исходов поиска) могут быть упорядочены: B0 Заданы вероятности (или частоты)
- 8. Тогда среднее число (математическое ожидание) сравнений при поиске можно записать в виде где l (x) –
- 9. Такое дерево называют оптимальным БДП. Есть ли сходство этой задачи с задачей построения оптимального префиксного кода
- 10. Очевидное решение поставленной задачи состоит в переборе всех структурно различных бинарных деревьев с n узлами и
- 11. Конец повторения прошлой лекции 16.02.2016 Динамическое программирование
- 12. Построение оптимальных деревьев поиска Дано: набор элементов a1 набор весов Σi∈1..n pi + Σi∈0..n qi =
- 13. Пусть имеется оптимальное дерево. Согласно принципу оптимальности, лежащему в основе метода динамического программирования, левое и правое
- 14. Идея Tij -поддерево БДП из элементов (при 0 ≤ i ≤ j ≤ n). корнем поддерева
- 15. Обозначения Пусть l = l(rij)- уровень корня rij поддерева Tij в дереве T0,n L(X) - уровень
- 16. Вклад поддерева Tij в стоимость C0,n где Cij - стоимость поддерева Tij. wij - вес поддерева
- 17. Идея: структура дерева + принцип оптимальности 16.02.2016 Динамическое программирование
- 18. Преобразование + wij не зависит от структуры поддерева Tij 16.02.2016 Динамическое программирование
- 19. Cii = 0 разности индексов k – 1 − i и j – k в слагаемых
- 20. Таблица (аналогия с задачей о перемножении цепочки матриц) 16.02.2016 Динамическое программирование
- 21. for (i =0; i for (L=1; L for (i=0; i j = i + L; //
- 22. См. пример в файле «2_08_ОДП.doc» С.67,68-… 16.02.2016 Динамическое программирование
- 23. Построение БДП по таблице значений num BinT MakeOptBST (int i, j ) { int k; ElemBinT
- 24. Модификация Д.Кнута ri,j −1 ≤ rij ≤ ri +1,j 16.02.2016 Динамическое программирование Вместо k = (i
- 25. См. с.72 Так в ранее рассмотренном примере на последнем шаге при вычислении C0,4 вместо рассмотрения четырёх
- 27. Скачать презентацию