Участник:Obirvalger/Метод рекурсивной координатной бисекции: различия между версиями
Строка 31: | Строка 31: | ||
Для <math>D(n)</math> есть точное значение: <math>\sum\limits_{i=0}^{\log_2{n}}2^i S(\frac{n}{2^i})</math>. | Для <math>D(n)</math> есть точное значение: <math>\sum\limits_{i=0}^{\log_2{n}}2^i S(\frac{n}{2^i})</math>. | ||
− | <math>D_k(n) = \sum\limits_{i=0}^{\log_2{k}}2^i S(\frac{n}{2^i})</math>. Если использовать сортировку со сложностью <math>S(n) = O(n\log{n})</math>, то <math>D_k(n) = O(\sum\limits_{i=0}^{\log_2{k}}2^i \frac{n}{2^i} \log{\frac{n}{2^i}}) = O(n\log{k}log(\ | + | <math>D_k(n) = \sum\limits_{i=0}^{\log_2{k}}2^i S(\frac{n}{2^i})</math>. Если использовать сортировку со сложностью <math>S(n) = O(n\log{n})</math>, то <math>D_k(n) = O(\sum\limits_{i=0}^{\log_2{k}}2^i \frac{n}{2^i} \log{\frac{n}{2^i}}) = O(n\log{k}log(\prod\limits_{i=0}^{\log_2{k}\frac{n}{2^i})) = O(\log{k}\cdot n\log{n})</math>. |
== Информационный граф == | == Информационный граф == |
Версия 13:09, 15 октября 2016
Авторы: Гордеев Михаил, Колмаков Евгений.
Содержание
- 1 Свойства и структура алгоритмов
- 1.1 Общее описание алгоритма
- 1.2 Математическое описание алгоритма
- 1.3 Вычислительное ядро алгоритма
- 1.4 Макроструктура алгоритма
- 1.5 Схема реализации последовательного алгоритма
- 1.6 Последовательная сложность алгоритма
- 1.7 Информационный граф
- 1.8 Ресурс параллелизма алгоритма
- 1.9 Входные и выходные данные алгоритма
- 1.10 Свойства алгоритма
- 2 Программная реализация алгоритма
- 2.1 Особенности реализации последовательного алгоритма
- 2.2 Локальность данных и вычислений
- 2.3 Возможные способы и особенности параллельной реализации алгоритма
- 2.4 Масштабируемость алгоритма и его реализации
- 2.5 Динамические характеристики и эффективность реализации алгоритма
- 2.6 Выводы для классов архитектур
- 2.7 Существующие реализации алгоритма
- 3 Литература
1 Свойства и структура алгоритмов
1.1 Общее описание алгоритма
1.2 Математическое описание алгоритма
1.3 Вычислительное ядро алгоритма
1.4 Макроструктура алгоритма
Как записано в описании ядра алгоритма, основную часть метода составляют множественные (всего k-1) сортировки(функция sort).
1.5 Схема реализации последовательного алгоритма
1.6 Последовательная сложность алгоритма
Обозначим через D_k(n) сложность алгоритма рекурсивной координатной бисекции для графа с n вершинами на k частей.
Введем D(n) = D_k(n) при k = n. Для D(n) верно следующее рекуррентное равенство:
\begin{array}{l} D(n) = S(n) + 2D(\frac{n}{2}) \\ D(1) = S(1) = 0 \\ \end{array} , где S(n) это сложность алгоритма сортировки массива из n элементов.
Пусть S(n) = O(n\log{n}), например для сортировки слиянием, тогда по теореме о рекуррентном неравенстве D(n) \lesssim n^{1+\varepsilon}.
Для D(n) есть точное значение: \sum\limits_{i=0}^{\log_2{n}}2^i S(\frac{n}{2^i}).
D_k(n) = \sum\limits_{i=0}^{\log_2{k}}2^i S(\frac{n}{2^i}). Если использовать сортировку со сложностью S(n) = O(n\log{n}), то [math]D_k(n) = O(\sum\limits_{i=0}^{\log_2{k}}2^i \frac{n}{2^i} \log{\frac{n}{2^i}}) = O(n\log{k}log(\prod\limits_{i=0}^{\log_2{k}\frac{n}{2^i})) = O(\log{k}\cdot n\log{n})[/math].