Уровень алгоритма

Участник:Khotkin/Построение матрицы Адамара произвольного размера: различия между версиями

Материал из Алговики
Перейти к навигации Перейти к поиску
Строка 55: Строка 55:
</math>
</math>
является матрицей Адамара порядка <math>2^{m+1}</math>
является матрицей Адамара порядка <math>2^{m+1}</math>
Кроме того матрицу Адамара порядка <math>2^m</math> можно получить по следующей формуле <math>H^{\otimes m} </math>


=== Математическое описание алгоритма ===
=== Математическое описание алгоритма ===

Версия от 16:30, 15 октября 2016

Всем привет! Здесь Кирилл Хоткин и Михаил Царев делают задание по суперкомпьютерам.


Сюда тоже запилим
Последовательный алгоритм
Последовательная сложность [math]\displaystyle{ O(n^3) }[/math]
Объём входных данных [math]\displaystyle{ \frac{n (n + 1)}{2} }[/math]
Объём выходных данных [math]\displaystyle{ \frac{n (n + 1)}{2} }[/math]
Параллельный алгоритм
Высота ярусно-параллельной формы [math]\displaystyle{ O(n) }[/math]
Ширина ярусно-параллельной формы [math]\displaystyle{ O(n^2) }[/math]


Основные авторы описания: А.В.Фролов, Вад.В.Воеводин (раздел 2.2), А.М.Теплов (разделы 2.4, 2.5)

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

Общее описание алгоритма

Матрица Адамара [math]\displaystyle{ H }[/math] порядка [math]\displaystyle{ n }[/math] представляет собой матрицу размера n×n из элементов [math]\displaystyle{ +1 }[/math] и [math]\displaystyle{ -1 }[/math], такую, что: [math]\displaystyle{ H \cdot H^T = n \cdot E_n, }[/math] где [math]\displaystyle{ E_n }[/math] — это единичная матрица размера n×n.

Матрицы Адамара находят широкое применение в теории кодирования (коды, исправляющие ошибки), теории планирования многофакторных экспериментов (ортогональные блок-схемы), квантовой информатике и прочих областях.

Матрица Адамара остаётся матрицей Адамара при следующих преобразованиях:

  • умножение строчки или столбца на −1;
  • перестановка строчек или столбцов местами.

Матрицы Адамара, получаемые друг из друга многократным применением указанных выше преобразований называются эквивалентными.

Матрица Адамара называется нормализованной, если её первая строка и столбец состоят только из единиц.

Под матрицией Адамара [math]\displaystyle{ H_m }[/math] подразумевается матрица порядка [math]\displaystyle{ 2^m }[/math]

Примерами матриц Адамара различных размеров являются следующие матрицы:

[math]\displaystyle{ H_0 = (1); }[/math]

[math]\displaystyle{ H_1 = \begin{pmatrix} 1 & 1 \\1 & -1 \end{pmatrix}; }[/math]

[math]\displaystyle{ H_2 = \begin{pmatrix} 1 & 1 & 1 & 1 \\1 & -1 & 1 & -1 \\1 & 1 &- 1 & -1 \\1 & -1 & -1 & 1 \end{pmatrix}. }[/math]

Вообще, если [math]\displaystyle{ H_m }[/math] матрица Адамара порядка [math]\displaystyle{ 2^m }[/math], то матрица [math]\displaystyle{ H_{m+1} = \begin{pmatrix} H_m & H_m \\H_m & -H_m \end{pmatrix} }[/math] является матрицей Адамара порядка [math]\displaystyle{ 2^{m+1} }[/math]

Кроме того матрицу Адамара порядка [math]\displaystyle{ 2^m }[/math] можно получить по следующей формуле [math]\displaystyle{ H^{\otimes m} }[/math]

Математическое описание алгоритма

Вычислительное ядро алгоритма

Макроструктура алгоритма

Схема реализации последовательного алгоритма

Последовательная сложность алгоритма

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

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

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

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

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

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

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

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

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

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

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

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

Литература