📄Работа №60068

Тема: Октодерево для хранения и обработки линейных запросов поиска

📝
Тип работы Бакалаврская работа
📚
Предмет информатика
📄
Объем: 60 листов
📅
Год: 2017
👁️
Просмотров: 69
Не подходит эта работа?
Закажите новую по вашим требованиям
Узнать цену на написание
ℹ️ Настоящий учебно-методический информационный материал размещён в ознакомительных и исследовательских целях и представляет собой пример учебного исследования. Не является готовым научным трудом и требует самостоятельной переработки.

📋 Содержание

Введение 4
1 Линейные запросы поиска 6
1.1 Определения 6
1.2 Визуальное представление 8
1.3 Сведение к линейным запросам 9
2 Октодерево для обработки линейных запросов поиска 11
2.1 Определение 11
2.2 Структура 13
2.2.1 Построение 14
2.2.2 Запросы 16
2.3 Реализация 17
3 Анализ структуры данных 19
3.1 Аналоги 19
3.1.1 Массив 19
3.1.2 Простое октодерево 19
3.1.3 K-мерное дерево 19
3.1.4 Таблица асимптотик 20
3.2 Сравнение эффективности 20
3.2.1 Генерация данных 20
3.2.2 Эффективность построения структуры 21
3.2.3 Эффективность обработки запросов 22
3.3 Анализ 22
Заключение 25
Список литературы 26

📖 Введение

Информация являлась и является одним из самых ценных ресурсов. С появлением вычислительной техники в XX-м веке стала актуальна проблема хранения, упорядочивания и поиска информации. Человек пишет книги, сочиняет
музыку, делает фотографии, снимает видео — это только самые популярные
виды информации. Каждый год её количество только увеличивается. В следствие чего возрастает нагрузка на вычислительные машины. Требуются все более быстрые и быстрые алгоритмы. Для каждого отдельного типа информации
стараются подобрать как можно более оптимальный алгоритм.
При хранении информации встает проблема её поиска по нескольким, зачастую числовым, параметрам. Одним из ярких и визуальных примеров является
трёхмерное пространство с заданным в нём множеством точек. Необходимо по
различным интерактивным ограничивающим запросам находить соответствующую им информации [1]. Частным случаем данного примера может быть база
данных, содержащая список людей с их датами рождений. Среди которых, например, требуется находить записи с годами от 1990 до 2000, месяцами от 1 до
7, а днями от 15 до 30.
Ещё во второй половине XX-го века были начаты и ведутся до сих пор разработки алгоритмов для хранения, упорядочивания и поиска элементов трёхмерного пространства [2, 3]. Многие из них основаны на мощном фундаменте
из сбалансированных деревьев, частным случаем которых являются двоичные
деревья поиска [4]. Изменение условий, накладываемых на такие структуры
данных, позволяет варьировать алгоритмическую сложность, балансируя между сложностями операций построения, изменения и поиска.5
Такие структуры данных используются в совершенно различных областях:
от военных тренажеров до симуляции и визуализации различных физических
явлений [5], что только увеличивает к ним интерес.

Возникли сложности?

Нужна качественная помощь преподавателя?

👨‍🎓 Помощь в написании

✅ Заключение

В настоящее время алгоритмы обработки линейных запросов находят своё
применение в различных областях, от военной промышленности до сферы развлечений. Одним из самых мощных фундаментов данных алгоритмов являются сбалансированные деревья. Для которых введение дополнительных условий
позволяет балансировать между производительностью и потреблением памяти, времени работы для определенного типа запросов. Поэтому была предложена модификация дерева, в которой каждая вершина имеет не более восьми
потомков, а разбивается так, чтобы разность между размером минимального
и максимального потомка была минимальна. И есть основания полагать, что
предложенный алгоритм является хорошей альтернативой для уже существующих, так как работает эффективнее на определённых типах данных. И для
проверки данного предположения был разработан программный комплекс для
численных экспериментов и сравнения производительностей алгоритмов.
В результате проверки на различных входных данных было выявлено улучшение производительности на таких типах данных как: равномерное распределение, распределение в виде сетки, разряженное распределение с большими
одиночными скоплениями. Что подтверждается теоретическими расчетами анализа алгоритма.
Нужна своя уникальная работа?
Срочная разработка под ваши требования
Рассчитать стоимость
ИЛИ

📕 Список литературы

1. Tropf H., Herzog H. Multidimensional Range Search in Dynamically Balanced Trees. — 1981. — Pp. 71-77.
2. Ungor Alper. Kd-trees and range trees. — 2009. —
https://www.cise.ufl.edu/class/cot5520fa09/CG_RangeKDtrees.pdf.
3. R-Tree Introduction. — http://www.bowdoin.edu/ ltoma/teaching/cs340/spring08/P chap1.pdf.
4. Алгоритмы: построение и анализ / Томас Кормен, Чарльз Лейзерсон, Рональд Ривест, Клиффорд Штайн. — 3 edition. — 2009.
5. Losasso Frank, Gibou Frederic, Fedkiw Ron. Simulating Water and Smoke with an Octree Data Structure. — 2004.
6. Devillard Nicolas. Fast median search: an ANSI C implementation. — 1998. — Jul.
7. Guttman A. R-Trees: A Dynamic Index Structure for Spatial Searching // ACM SIGMOD International Conference on Management of Data. — 1984. — Pp. 47¬57.
8. Brown Russell A. Building a Balanced fc-d Tree in O(kn log n) Time // Journal of Computer Graphics Techniques. — 2015. — Vol. 4, no. 1.
9. Meagher D. Geometric Modeling Using Octree Encoding // Computer Graphics And Image Processing 1. — 1982. — Pp. 129-147.
10. Yianilos Peter N. Data structures and algorithms for nearest neighbor search in general metric spaces. — 1993. — P. 311-321.
11. Laine Samuli, Karras Tero. Efficient Sparse Voxel Octrees - Analysis, Exten¬sions, and Implementation: NVIDIA Technical Report NVR-2010-001: NVIDIA Corporation, 2010. — Feb.
12. Lengyel Eric. Projection Matrix Tricks. — 2007. —
http://www.terathon.com/gdc07_lengyel.pdf.
13. House Donald H. Orthographic and Perspective Projection. — 2014. —
https://people.cs.clemson.edu/ dhouse/courses/405/notes/projections.pdf.
14. Kakde. Hemant M. Range Searching using Kd Tree. — 2005. — Aug.
15. Agarwal Pankaj K., Gao Jie, Guibas Leonidas J. Kinetic Medians and kd-Trees.
16. Crespo Maria Merce Pons. Design, Analysis and Implementation of New Vari¬ants of Kd-trees. — 2010. — Sep.
17. Moore Andrew W. An intoductory tutorial on kd-trees. — 1991.
18. Bentley J. L. Multidimensional Divide and Conquer. — 1980.
19. Preparata F. P., Shamos M. Computational Geometry. — 1985.
20. Revelles J., Urena C., Lastra M. An Efficient Parametric Algorithm for Octree Traversal.
21. Eppstein David, Goodrich Michael T., Sun Jonathan Z. The Skip Quadtree: A Simple Dynamic Data Structure for Multidimensional Data.
22. Aluru S. Quadtrees and octrees. — 2005.
23. Bentley J. L. Multidimensional binary search trees used for associative searching. — 1975. — Sep. — P. 509-517.

🛒 Оформить заказ

Работу высылаем в течении 5 минут после оплаты.

©2026 Cервис помощи студентам в выполнении работ