Участник:Obirvalger/Метод рекурсивной координатной бисекции

Материал из Алговики
Перейти к навигации Перейти к поиску

Авторы: Гордеев Михаил, Колмаков Евгений.

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}), то 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(\prod\limits_{i=0}^{\log_2{k}}\frac{n}{2^i})) = O(n\log{\frac{n^{\log_2{k}}}{2^\frac{\log_2{k}(\log_2{k}+1))}{2}}}) = O(n(\log{n}\log{k} - \frac{\log^2_2{k}}{2})) = O(n\log{n}\log{k}).

1.7 Информационный граф

1.8 Ресурс параллелизма алгоритма

1.9 Входные и выходные данные алгоритма

Входные данные: граф G = (V, E) , вложенный в \mathbb{R}^N, и число k частей (доменов), на которое нужно разбить граф. Таким образом, помимо матрицы смежности (или любого другого представления графа) для каждой вершины v \in V задан набор её координат v = (v_1, \dots, v_N) \in \mathbb{R}^N, поэтому V задаётся массивом N-мерных векторов или матрицей размера |V| \times N.

Объём входных данных: N|V| + |G|, где |G| - объём данных, представляющих граф G, который в общем случае зависит от выбранного представления.

Выходные данные: k доменов графа G, задающих его декомпозицию.

Объём выходных данных: |V| - для каждого домена достаточно хранить соответствующие вершинам из этого домена индексы строк в матрице, представляющей множество вершин.

1.10 Свойства алгоритма

2 Программная реализация алгоритма

2.1 Особенности реализации последовательного алгоритма

2.2 Локальность данных и вычислений

2.3 Возможные способы и особенности параллельной реализации алгоритма

2.4 Масштабируемость алгоритма и его реализации

2.5 Динамические характеристики и эффективность реализации алгоритма

2.6 Выводы для классов архитектур

2.7 Существующие реализации алгоритма

3 Литература