Теоретические основы выбора оптимального метода поиска в несбалансированном бинарном дереве

Проведен теоретический анализ методов поиска для бинарных деревьев; предложена вероятностная модель движения по бинарному дереву, позволяющая определить лучший метод поиска; решена задача выбора оптимального метода поиска в бинарном дереве с учетом статистики обращений к его элементам. У статті п...

Full description

Saved in:
Bibliographic Details
Date:2008
Main Author: Синельников, С.С.
Format: Article
Language:Russian
Published: Інститут проблем штучного інтелекту МОН України та НАН України 2008
Subjects:
Online Access:https://nasplib.isofts.kiev.ua/handle/123456789/7654
Tags: Add Tag
No Tags, Be the first to tag this record!
Journal Title:Digital Library of Periodicals of National Academy of Sciences of Ukraine
Cite this:Теоретические основы выбора оптимального метода поиска в несбалансированном бинарном дереве / С.С. Синельников // Штучний інтелект. — 2008. — № 4. — С. 693-703. — Бібліогр.: 6 назв. — рос.

Institution

Digital Library of Periodicals of National Academy of Sciences of Ukraine
_version_ 1859837577545121792
author Синельников, С.С.
author_facet Синельников, С.С.
citation_txt Теоретические основы выбора оптимального метода поиска в несбалансированном бинарном дереве / С.С. Синельников // Штучний інтелект. — 2008. — № 4. — С. 693-703. — Бібліогр.: 6 назв. — рос.
collection DSpace DC
description Проведен теоретический анализ методов поиска для бинарных деревьев; предложена вероятностная модель движения по бинарному дереву, позволяющая определить лучший метод поиска; решена задача выбора оптимального метода поиска в бинарном дереве с учетом статистики обращений к его элементам. У статті проведений теоретичний аналіз методів пошуку для бінарних дерев; запропонована ймовірнісна модель руху по бінарному дереву, яка дозволяє визначити найкращий метод пошуку; розв’язана задача вибору оптимального методу пошуку в бінарному дереві з урахуванням статистики звернень до елементів.
first_indexed 2025-12-07T15:35:35Z
format Article
fulltext «Штучний інтелект» 4’2008 693 8С УДК 004.896 С.С. Синельников Государственный университет информатики и искусственного интеллекта, г. Донецк, Украина ssergs82@mail.ru Теоретические основы выбора оптимального метода поиска в несбалансированном бинарном дереве Проведен теоретический анализ методов поиска для бинарных деревьев; предложена вероятностная модель движения по бинарному дереву, позволяющая определить лучший метод поиска; решена задача выбора оптимального метода поиска в бинарном дереве с учетом статистики обращений к его элементам. Введение С ростом требований к скорости выполнения задачи поиска и сортировки данных в интеллектуальных системах их разработчики все чаще используют для решения этой задачи различные древовидные структуры. В связи с чем возникают проблемы, связанные с понижением вычислительной сложности алгоритма поиска дан- ных, выбором оптимального метода поиска и балансировкой деревьев [1-4]. Данные проблемы достаточно важны, а их решения на данный момент не имеют серьезной теоретической основы и носят частный характер. Второй важной задачей в интеллектуальных системах есть задача выбора оптимального метода поиска с учетом статистики обращений к каждому элементу бинарного дерева, решение которой позволяет повысить интеллектуальность системы, применяющей его, и увеличить скорость выполнения задачи поиска. В данной работе предлагается теоретическая основа (методы теории вероятностей [5], [6]) для описания модели движения по бинарному дереву, которая позволяет решить задачу выбора оптимального метода поиска данных, а также задачу выбора оптимального метода поиска данных с учетом статистики обращений к каждому элементу бинарного дерева. Будет показана возможность применения данной модели к бинарному методу поиска, используемого в массивах. Выбор оптимального метода поиска в несбалансированном бинарном дереве на основе анализа его структуры Построение сбалансированного бинарного дерева – одна из важнейших задач, решение которой позволяет применять методы поиска с большей эффективностью. Но ее решение связано с трудностями, которые приводят к большому количеству вычислитель- ных затрат. Поэтому возникает задача поиска данных в несбалансированном бинарном дереве с наименьшими затратами, в частности с минимальным количеством сравнений. Синельников С.С. «Искусственный интеллект» 4’2008 694 8С Классическая реализация алгоритма поиска в дереве выглядит следующим образом (рис. 1). Рисунок 1 – Метод поиска в бинарном дереве search_in_tree1 Проанализируем работу данного метода на различных топологиях несбалан- сированного бинарного дерева. Для случая, продемонстрированного на рис. 2а), метод search_in_tree1 ведет себя как линейный поиск и тратит минимум сравнений, в сред- нем N/2 сравнений для поиска. Это происходит благодаря тому, что работа алго- ритма начинается с условия проверки «<», что и определило успех. Рисунок 2 – Топологии несбалансированного бинарного дерева … … … … а) «лево- лево» б) «право- право» в) … … … … root, key конец Да Нет root==NULL Да Нет key < root->data Да Нет key > root->data root=root->right элемент найден root->data root=root->left элемент не найден начало Теоретические основы выбора оптимального метода поиска... «Штучний інтелект» 4’2008 695 8С Заметим, что для топологии а) проверка условия «>» вообще никогда не производится при поиске заведомо имеющегося элемента. Рассмотрим вариант, представленный на рис. 2б). Для него метод search_in_tree1 ведет себя наихудшим образом, выполняя при этом максимум сравнений – в среднем их количество равно N. Данная ситуация происходит из-за того, что проверка «<» ни разу не срабатывает, что приводит к переходу на условие «>». Рисунок 3 – Метод поиска в бинарном дереве search_in_tree2 Очевидно, что для случая б) логично выполнять сначала проверку на «>», а затем на «<». С таким подходом получим метод search_in_tree2, который для топологии б) даст в среднем N/2 сравнений. Для топологии а) метод search_in_tree2 будет выполнять максимум сравнений. Таким образом, для каждой топологии лучше выбирать определенный метод. Заметим, что для достаточно сбалансированного дерева любой из этих методов будет иметь равные показатели. Худшим вариантом для методов search_in_tree1 и search_in_tree2 является топология вида рис. 2в). Для нее методы выполняют в среднем порядка ¾N сравнений. Таким образом, приходим к выводу, что для несбалансированных деревьев методы search_in_tree1 и search_in_tree2 не подходят и требуется новый алгоритм, не имеющий этих недостатков. Для реализации такого метода понадобится циклический подход к решению задачи – поиск в одном направлении (только по левому поддереву или только по правому). Как только поиск по одному направлению невозможен, переходим на другое направление. Реализация метода представлена на рис. 4. конец Да Нет root==NULL Да Нет key > root->data Да Нет key < root->data root=root->left элемент найден root->data root=root-> right элемент не найден начало root, key Синельников С.С. «Искусственный интеллект» 4’2008 696 8С Рисунок 4 – Блок-схема алгоритма search_in_tree_new Метод search_in_tree_new выполняет стабильно в среднем порядка N/2 сравне- ний для каждой топологии, представленных на рис. 2. Недостатком выступает то, что для деревьев, в которых «правые» элементы имеют одного «левого» сына или «левые» элементы имеют одного «правого» сына, скорость поиска данного метода значительно увеличивается. root, key начало Да Нет root==NULL Да Нет key > root->data 3 2 6 Да Нет key > root->data root=root->right Да Нет root==NULL Да Нет key > root->data 2 1 5 6 4 конец элемент найден root->data 5 6 элемент не найден Да Нет key < root->data root=root->left Да Нет root==NULL Да Нет key < root->data 3 4 5 1 6 Теоретические основы выбора оптимального метода поиска... «Штучний інтелект» 4’2008 697 8С Особенно наглядна эта ситуация на топологиях, представленных на рис. 5. В этих случаях происходит чередование движения – «влево-вправо», что приводит к среднему количеству сравнений для варианта б) и в) – порядка N. Рисунок 5 – Топологии сбалансированного а), несбалансированного б) и в) бинарного дерева Для варианта а) – сбалансированного дерева – порядок производимых сравнений тот же, как и для методов search_in_tree1 и search_in_tree2, и соответствует порядку logN. Таким образом, для различных топологий имеем методы, работающие с разной эффективностью, и задача сводится к объединению этих методов для получения наилучшего результата. Очевидно, что такой метод должен учитывать статистические данные о дереве, каких топологий больше, и в соответствии с этой информацией выбирать наилучший метод. Для деревьев с доминированием топологии «право-лево» или «право-лево» лучше применять методы search_in_tree1 и search_in_tree2, а при доминировании топологий «лево-лево» или «право-право» – метод search_in_tree_new. Такой подход при решении задачи сортировки позволит уменьшить количество сравнений без применения механизма балансировки деревьев. Недостаток метода – перед применением необходимо произвести просчет количества левых и правых сыновей или различных топологий. Вероятностная модель обхода бинарного несбалансированного дерева В рассуждениях, проведенных выше, не учитывалась особенность расположения элемента – чем выше он расположен и чем больше у него сыновей, тем чаще при поиске через него проходит путь к искомым данным. Рассмотрим вероятностную модель обхода несбалансированного бинарного дерева при поиске элемента. … а) б) «право-лево» … в) «лево-право» … … … … … … … Синельников С.С. «Искусственный интеллект» 4’2008 698 8С Будем считать, что все элементы бинарного дерева различны (копий нет). Возьмем один элемент и рассмотрим его вероятностную модель переходов (рис. 6). На рис. 6 представлены: pv – вероятность попадания на элемент, p – вероятность того, что это искомый элемент, x – вероятность перехода по левой ветке, y – вероятность перехода по правой ветке. Тогда pv N 1 p  , где N – количество элементов поддерева           yx yppvb y yx xppva x , где Nla Nl Np Npb Nl Np     , , Nl – количество элементов левого поддерева, Np – количество элементов правого поддерева (Nl + Np = N). С учетом того, что p + x + y = pv, получаем: x a (pv p) y b (pv p)        . Рассмотрим общий случай. Пусть pi,j – вероятность того, что j-й элемент i-го уровня является искомым, а pvi,j – вероятность перехода на j-й элемент (i + 1)-го уровня. Тогда i,j i-1,j 1p pv , N   где N количество элементов поддерева с вершиной у j-го элемента i-го уровня i 1, (j 1)/2 i,(j 1)/2 i,j i 1, (j 1)/2 i,(j 1)/2 a ( p v p ), если j не четное p v b ( p v p ) , если j четное               . Для каждого j-го элемента i-го уровня справедливо: pi,j + pvi,j*2-1 + pvi,j*2 = pvi-1,(j + 1)/2, что обеспечивает охват всех возможных шагов. Сумма всех вероятностей pi,j равна 1, что позволяет всегда найти искомый элемент. На рис. 7 и 8 представлен наглядный пример, позволяющий рассчитать вероятность перехода по каждой «ветке». Данные вероятностей перехода позволяют оценить, какой из методов наиболее эффективен для поиска. Например, количество левых ветвей равно 5, а правых – 6, но использовать метод поиска search_in_tree2, начинающийся с проверки на «>», не выгодно. Теоретические основы выбора оптимального метода поиска... «Штучний інтелект» 4’2008 699 8С Сравним, что больше: вероятность движения влево или вправо. Сумма вероят- ностей перехода влево составляет 1,75, а вправо – 0,75. Количество сравнений для поиска всех элементов, произведенных методом search_in_tree1, начинающимся с проверки на «<», составляет 63, а методом search_in_tree2, начинающимся с проверки на «>», – 75. Рисунок 6 – Вероятностная модель переходов для одного элемента Рисунок 7 – Вероятностная модель обхода несбалансированного бинарного дерева 4 7 3 8 2 5 6 1 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 10 9 11 12 p1,1= 1/12 p2,2 = 1/2*pv1,2 p2,1 = 1/9*pv1,1 p3,1 = 1/7*pv2,1 p3,2 = 1/1*pv2,2 p4,1 = 1/3*pv3,1 p4,2 = 1/3*pv3,2 pv1,1 = 9/11*(pv0,1 – p1,1) p5,1 = 1/1* pv4,1 p5,2=1/1* pv4,2 p5,3 = 1/1* pv4,3 p5,4 = 1/1* pv4,4 pv1,2 = 2/11*(pv0,1 – p1,1) pv2,1 = 7/8*(pv1,1 – p2,1) pv2,2 = 1/8*(pv1,1 – p2,1) pv3,1 = 3/6*(pv2,1 – p31) pv4,1 = 1/2*(pv3,1 – p4,1) pv4,2 = 1/2*(pv3,1 – p4,1) pv4,3 = 1/2*(pv3,2 – p4,2) pv3,2 = 3/6*(pv2,1 – p3,1) pv4,4 = 1/2*(pv3,2 – p4,2) p3,4 = 1/1* pv2,4 pv2,4 = 1/1*(pv1,2 – p2,2) pv0,1 = 1 pv p y x Синельников С.С. «Искусственный интеллект» 4’2008 700 8С Рисунок 8 – Вероятностная модель обхода несбалансированного бинарного дерева с расчетом вероятностей Итак, вероятностная модель обхода несбалансированного бинарного дерева обеспечила правильный ответ с учетом расположения элементов, количества их сыновей и элементов в поддереве. Таким образом, данная модель позволяет выбрать, с какого сравнения начать: «>» или с «<», что позволяет определить, какой алгоритм будет эффективнее: search_in_tree1 или search_in_tree2, search_in_tree_new, начинающийся с проверки «>», или «<». Полученная модель может быть использована не только для выбора оптимального метода поиска, но и для задачи сортировки с применением бинарного дерева, а также служить основой для решения задачи поиска с использованием статистических особенностей – в частности количества обращения к каждому элементу дерева. 4 7 3 8 2 5 6 1 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 10 9 11 12 p1,1 = 0,0833 p2,2 =0,0833 p2,1 = 0,083 p3,1 = 0,083 p3,2 = 0,083 p4,1 = 0,083 p4,2=0,083 pv1,1 = 0,75 p5,1 = 0,083 p5,2 = 0,083 p5,3=0,083 p5,4=0,083 pv1,2 = 0,1667 pv2,1 = 0,583 pv2,2 = 0,083 pv3,1 = 0,25 pv4,1 = 0,083 pv4,2 = 0,083 pv4,3 = 0,083 pv3,2 = 0,25 pv4,4 = 0,083 p3,4 =0,083 pv2,4 = 0,083 pv0,1 = 1 Теоретические основы выбора оптимального метода поиска... «Штучний інтелект» 4’2008 701 8С Решение задачи выбора оптимального метода поиска данных с учетом статистики обращений к каждому элементу Рассмотрим задачу выбора оптимального метода для поиска данных с заранее известными вероятностями обращения к каждому элементу и покажем, что данная задача может быть решена с помощью вероятностной модели движения по несбаланси- рованному бинарному дереву. Действительно, если рассматривать количество обращений к определенному элементу не как один элемент, а как количество элементов, то получаем задачу выбора оптимального метода поиска, которая решается с помощью вероятностной модели движения по несбалансированному бинарному дереву. Пусть pi,j – вероятность того, что j-й элемент i-го уровня является искомым, а pvi,j – вероятность перехода на j-й элемент (i+1)-го уровня. Тогда i,j i-1,j 1p pv , если N 0 N    , где N количество элементов поддерева с вершиной у j-го элемента i-го уровня i 1, (j 1)/2 i,(j 1)/2 i,j i 1, (j 1)/2 i,(j 1)/2 a ( p v p ) , если j не четное и Nl 0 pv b ( p v p ) , если j четное Np 0 0, иначе.                      Для каждого j-го элемента i-го уровня справедливо: pi,j + pvi,j*2-1 + pvi,j*2 = pvi-1,(j+1)/2, что обеспечивает охват всех возможных шагов. Сумма всех вероятностей pi,j равна 1, что позволяет всегда найти искомый элемент. Рассмотрим наглядный пример (рис. 9), позволяющий оценить вероятность пере- хода по каждой «ветке» с учетом количества обращений к каждому элементу (табл. 1). Таблица 1 – Количество обращений к каждому элементу № элемента 1 2 3 4 5 6 7 8 9 10 11 12 Количество обращений 0 4 1 0 2 3 1 5 1 1 0 1 Сравним, что больше вероятность движения влево или вправо. Сумма вероятностей перехода влево составляет 0,7894737 + 0,4736 + 0,1578 + 0,05263 = 1,4736, а вправо = 0,2105263 + 0,1052 + 0,1578 + 0,3157 + 0,05263 + 0,05263 = 0,89473. Синельников С.С. «Искусственный интеллект» 4’2008 702 8С Количество сравнений для поиска всех элементов с учетом статистики (табл. 1), произведенных методом search_in_tree1, начинающимся с проверки на «<», состав- ляет 100, а методом search_in_tree2, начинающимся с проверки на «>», – 111. Рисунок 9 – Вероятностная модель обхода несбалансированного бинарного дерева с учетом количества обращений к каждому элементу Таким образом, вероятностная модель обхода несбалансированного бинарного дерева обеспечила правильный ответ не только с учетом расположения элементов, количества их сыновей и элементов в поддереве, а и дополнительных статистических особенностей, в частности количества обращений к каждому элементу. Полученная модель может быть использована для выбора оптимального метода поиска, для задачи сортировки с применением бинарного дерева, а также служить основой для решения задачи выбора оптимального метода поиска с использованием статистических особенностей из класса бинарных алгоритмов, которые по принципу работы сходны с алгоритмами поиска в бинарных деревьях. 4 7 3 8 2 5 6 1 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 10 9 11 12 p1,1 = 0 p2,2 = 1/4*pv1,2 p2,1 = 4/15*pv1,1 p3,1 = 0/9*pv2,1 p3,2 = 2/2*pv2,2 p4,1 = 1/3*pv3,1 p4,2 = 5/6*pv3,2 pv1,1 = 15/19* (pv0,1 –p1,1) p5,1=1/1* pv4,1 p5,2 = 1/1* pv4,2 p5,3 = 0 p5,4 =1/1* pv4,4 pv1,2 = 4/19*(pv0,1 – p1,1) pv2,1 = 9/11*(pv1,1 – p2,1) pv2,2 = 2/11*(pv1,1 – p2,1) pv3,1 = 3/9*(pv2,1 – p31) pv4,1 = 1/2*(pv3,1 – p4,1) pv4,2 = 1/2*(pv3,1 – p4,1) pv4,3 = 0 pv3,2 = 6/9*(pv2,1 – p3,1) pv4,4 = 1/1*(pv3,2 – p4,2) p3,4= 3/3* pv2,4 pv2,4 = 3/3*(pv1,2 – p2,2) pv0,1 = 1 Теоретические основы выбора оптимального метода поиска... «Штучний інтелект» 4’2008 703 8С Выводы Разработаны методы поиска для бинарных деревьев с минимальным количеством сравнений. Предложена теоретическая основа – методы теории вероятностей – для описания модели обхода несбалансированного бинарного дерева, которая позволяет решить задачу выбора оптимального метода поиска данных, а также задачу выбора оптимального метода поиска данных с учетом статистики обращений к каждому элементу бинарного дерева. Показана возможность применения данной модели к бинарному методу поиска, используемого в массивах. В перспективе планируется анализ использования полученной модели для процесса балансировки деревьев, анализа графов. Полученные результаты позволяют увеличить скорость выполнения задачи поиска, а также повысить интеллектуальность системы, применяющей новые методы поиска и анализа данных. Литература 1. Томас Х. Кормен, Чарльз И. Лейзерсон, Рональд Л. Ривест, Клиффорд Штайн. Алгоритмы: построение и анализ. – 2-е издание. – Вильямс, 2005. – 1296 с. 2. Кнут Д. Искусство программирования. – 3-е издание. – Вильямс, 2005. – 720 c. 3. Седжвик Р. Фундаментальные алгоритмы на C++: Ч. 1 – 4: Анализ, структуры данных, сортировка, поиск: Пер. с англ. – Diasoft. – 2001. –687 c. 4. Бьерн Страуструп. Язык программирования С++. – М.: Бином, 2005. 5. Колмогоров А.Н. Основные понятия теории вероятностей. – М.: Наука, 1974. – 120 c. 6. Гмурман В.Е. Теория вероятности и математическая статистика: Учебное пособие. – М.: Высшая школа, 2005. – 479 c. С.С. Синельников Теоретичні основи вибору оптимального методу пошуку в незбалансованому бінарному дереві У статті проведений теоретичний аналіз методів пошуку для бінарних дерев; запропонована ймовірнісна модель руху по бінарному дереву, яка дозволяє визначити найкращий метод пошуку; розв’язана задача вибору оптимального методу пошуку в бінарному дереві з урахуванням статистики звернень до елементів. Статья поступила в редакцию 18.06.2008.
id nasplib_isofts_kiev_ua-123456789-7654
institution Digital Library of Periodicals of National Academy of Sciences of Ukraine
issn 1561-5359
language Russian
last_indexed 2025-12-07T15:35:35Z
publishDate 2008
publisher Інститут проблем штучного інтелекту МОН України та НАН України
record_format dspace
spelling Синельников, С.С.
2010-04-06T12:47:16Z
2010-04-06T12:47:16Z
2008
Теоретические основы выбора оптимального метода поиска в несбалансированном бинарном дереве / С.С. Синельников // Штучний інтелект. — 2008. — № 4. — С. 693-703. — Бібліогр.: 6 назв. — рос.
1561-5359
https://nasplib.isofts.kiev.ua/handle/123456789/7654
004.896
Проведен теоретический анализ методов поиска для бинарных деревьев; предложена вероятностная модель движения по бинарному дереву, позволяющая определить лучший метод поиска; решена задача выбора оптимального метода поиска в бинарном дереве с учетом статистики обращений к его элементам.
У статті проведений теоретичний аналіз методів пошуку для бінарних дерев; запропонована ймовірнісна модель руху по бінарному дереву, яка дозволяє визначити найкращий метод пошуку; розв’язана задача вибору оптимального методу пошуку в бінарному дереві з урахуванням статистики звернень до елементів.
ru
Інститут проблем штучного інтелекту МОН України та НАН України
Архитектура, алгоритмическое и программное обеспечение интеллектуальных многопроцессорных систем
Теоретические основы выбора оптимального метода поиска в несбалансированном бинарном дереве
Теоретичні основи вибору оптимального методу пошуку в незбалансованому бінарному дереві
Article
published earlier
spellingShingle Теоретические основы выбора оптимального метода поиска в несбалансированном бинарном дереве
Синельников, С.С.
Архитектура, алгоритмическое и программное обеспечение интеллектуальных многопроцессорных систем
title Теоретические основы выбора оптимального метода поиска в несбалансированном бинарном дереве
title_alt Теоретичні основи вибору оптимального методу пошуку в незбалансованому бінарному дереві
title_full Теоретические основы выбора оптимального метода поиска в несбалансированном бинарном дереве
title_fullStr Теоретические основы выбора оптимального метода поиска в несбалансированном бинарном дереве
title_full_unstemmed Теоретические основы выбора оптимального метода поиска в несбалансированном бинарном дереве
title_short Теоретические основы выбора оптимального метода поиска в несбалансированном бинарном дереве
title_sort теоретические основы выбора оптимального метода поиска в несбалансированном бинарном дереве
topic Архитектура, алгоритмическое и программное обеспечение интеллектуальных многопроцессорных систем
topic_facet Архитектура, алгоритмическое и программное обеспечение интеллектуальных многопроцессорных систем
url https://nasplib.isofts.kiev.ua/handle/123456789/7654
work_keys_str_mv AT sinelʹnikovss teoretičeskieosnovyvyboraoptimalʹnogometodapoiskavnesbalansirovannombinarnomdereve
AT sinelʹnikovss teoretičníosnoviviboruoptimalʹnogometodupošukuvnezbalansovanomubínarnomudereví