Тип работы:
Предмет:
Язык работы:


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

Работа №60068

Тип работы

Бакалаврская работа

Предмет

информатика

Объем работы60
Год сдачи2017
Стоимость4760 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
36
Не подходит работа?

Узнай цену на написание


Введение 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.

Работу высылаем на протяжении 30 минут после оплаты.




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