Теоретические основы выбора оптимального метода поиска в несбалансированном бинарном дереве
Проведен теоретический анализ методов поиска для бинарных деревьев; предложена вероятностная модель движения по бинарному дереву, позволяющая определить лучший метод поиска; решена задача выбора оптимального метода поиска в бинарном дереве с учетом статистики обращений к его элементам. У статті п...
Saved in:
| 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í |