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

Материал из Алговики
Перейти к навигации Перейти к поиску
Строка 3: Строка 3:
 
== Общее описание алгоритма ==
 
== Общее описание алгоритма ==
  
Привет
+
=== Общее описание алгоритма ===
 +
 
 +
 
 +
 
 +
Важную роль в алгебре и комбинаторике играют матрицы Адамара, которые впервые были введены в математический обиход в конце прошлого века одним из крупнейших французских математиков Жаком Адамаром (1865-1963). Их применение в науке и технике посвящены тысячи публикаций. Они предоставляют эффективные возможности для организации хранения, обработки и передачи информации.
 +
 
 +
Квадратная матрица Н порядка ''n'' с элементами ±1 называется матрицей Адамара, если выполняется условие
 +
 
 +
:<math> H_n\,H_n^T = n\,E_n </math>
 +
 
 +
Нетрудно показать, что различные строки матрицы Адамара попарно ортогональны. Также можно увидеть из определения, что n четно и любые две строки совпадают ровно в n/2 позициях и различаются в остальных.
 +
 
 +
Матрицу Адамара можно определить эквивалентным образом:
 +
 
 +
:<math>
 +
H_{n} = H_1\otimes H_{n-1}
 +
</math>
 +
 
 +
:<math>
 +
\begin{align}
 +
  H_1 =
 +
  &\begin{pmatrix}\begin{array}{rr}
 +
    1 & 1\\
 +
    1 & -1
 +
  \end{array}\end{pmatrix}
 +
\end{align}
 +
</math>
 +
где <math> \otimes </math> представляет собой тензорное произведение, то есть
 +
 
 +
:<math>
 +
H_{n} =
 +
\begin{pmatrix}
 +
H_{n-1} &  H_{n-1}\\
 +
H_{n-1}  & -H_{n-1}\end{pmatrix}
 +
</math>
 +
 
 +
:<math>
 +
\begin{align}
 +
  H_1 =
 +
  &\begin{pmatrix}\begin{array}{rr}
 +
    1 & 1\\
 +
    1 & -1
 +
  \end{array}\end{pmatrix}
 +
\end{align}
 +
</math>
 +
 
 +
С матрицами Адамара связан ряд нерешенных проблем, одна из которых состоит в следующем. Мы уже видели, что порядок n матрицы Адамара при n ≥ 3 может быть лишь четным. Более того, при n ≥ 4 порядок обязан делиться на 4. До сих пор остается открытым вопрос: для любого ли n, кратного 4, существует матрица Адамара порядка n? Неизвестно, в частности, существует ли матрица Адамара порядка 268 (это наименьший порядок, кратный 4, для которого матрица Адамара еще не построена).
 +
 
 +
Часто размерность матрицы Адамара считают равной степени 2 и нормализируют её. Определение принимает следующий вид:
 +
 
 +
Матрицей Адамара ''H''<sub>''n''</sub> эта матрица размера 2<sup>''n''</sup>&nbsp;&times;&nbsp;2<sup>''n''</sup>, для которой справедливо равенство
 +
 
 +
:<math>H_n = H_{1} \otimes H_{n-1}</math>
 +
 
 +
:<math>\begin{align}
 +
  H_1 = \frac{1}{\sqrt2}
 +
  &\begin{pmatrix}\begin{array}{rr}
 +
    1 & 1\\
 +
    1 & -1
 +
  \end{array}\end{pmatrix}
 +
\end{align}</math>
 +
 
 +
где <math> \otimes </math> представляет собой тензорное произведение.
 +
 
 +
Также, мы можем вычислить значения каждого элемента матрицы Адамара <math>H_n</math>. Для этого представим порядковые номера ''k'' и ''l'' элемента <math>h_{kl}</math> в виде двоичного разложения
 +
 
 +
: <math>k = \sum^{m-1}_{i=0} {k_i 2^i} = k_{m-1} 2^{m-1} + k_{m-2} 2^{m-2} + \cdots + k_1 2 + k_0</math>
 +
 
 +
и
 +
: <math>l = \sum^{m-1}_{i=0} {l_i 2^i} = l_{m-1} 2^{m-1} + l_{m-2} 2^{m-2} + \cdots + l_1 2 + l_0</math>
 +
 
 +
где ''k''<sub>''j''</sub> и ''l''<sub>''j''</sub> коэффициенты двоичного разложения чисел ''k'' и ''l'' (1 или 0).
 +
 
 +
Тогда каждый элемент матрицы Адамара <math>H_n</math> имеет вид
 +
:<math>h_{k,l} = \frac{1}{2^\frac{n}{2}} (-1)^{\sum_j k_j l_j}</math>
 +
 
 +
Представим некоторые частные примеры матриц Адамара:
 +
:<math>\begin{align}
 +
  H_0 = &+1\\
 +
  H_1 = \frac{1}{\sqrt2}
 +
  &\begin{pmatrix}\begin{array}{rr}
 +
    1 & 1\\
 +
    1 & -1
 +
  \end{array}\end{pmatrix}
 +
\end{align}</math>
 +
:<math>\begin{align}
 +
  H_2 = \frac{1}{2}
 +
  &\begin{pmatrix}\begin{array}{rrrr}
 +
    1 &  1 &  1 &  1\\
 +
    1 & -1 &  1 & -1\\
 +
    1 &  1 & -1 & -1\\
 +
    1 & -1 & -1 &  1
 +
  \end{array}\end{pmatrix}\\
 +
  H_3 = \frac{1}{2^{\frac{3}{2}}}
 +
  &\begin{pmatrix}\begin{array}{rrrrrrrr}
 +
    1 &  1 &  1 &  1 &  1 &  1 &  1 &  1\\
 +
    1 & -1 &  1 & -1 &  1 & -1 &  1 & -1\\
 +
    1 &  1 & -1 & -1 &  1 &  1 & -1 & -1\\
 +
    1 & -1 & -1 &  1 &  1 & -1 & -1 &  1\\
 +
    1 &  1 &  1 &  1 & -1 & -1 & -1 & -1\\
 +
    1 & -1 &  1 & -1 & -1 &  1 & -1 &  1\\
 +
    1 &  1 & -1 & -1 & -1 & -1 &  1 &  1\\
 +
    1 & -1 & -1 &  1 & -1 &  1 &  1 & -1
 +
  \end{array}\end{pmatrix}\\
 +
\end{align}</math>
  
 
== Математическое описание алгоритма ==
 
== Математическое описание алгоритма ==

Версия 10:50, 14 октября 2016

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

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

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

Важную роль в алгебре и комбинаторике играют матрицы Адамара, которые впервые были введены в математический обиход в конце прошлого века одним из крупнейших французских математиков Жаком Адамаром (1865-1963). Их применение в науке и технике посвящены тысячи публикаций. Они предоставляют эффективные возможности для организации хранения, обработки и передачи информации.

Квадратная матрица Н порядка n с элементами ±1 называется матрицей Адамара, если выполняется условие

[math] H_n\,H_n^T = n\,E_n [/math]

Нетрудно показать, что различные строки матрицы Адамара попарно ортогональны. Также можно увидеть из определения, что n четно и любые две строки совпадают ровно в n/2 позициях и различаются в остальных.

Матрицу Адамара можно определить эквивалентным образом:

[math] H_{n} = H_1\otimes H_{n-1} [/math]
[math] \begin{align} H_1 = &\begin{pmatrix}\begin{array}{rr} 1 & 1\\ 1 & -1 \end{array}\end{pmatrix} \end{align} [/math]

где [math] \otimes [/math] представляет собой тензорное произведение, то есть

[math] H_{n} = \begin{pmatrix} H_{n-1} & H_{n-1}\\ H_{n-1} & -H_{n-1}\end{pmatrix} [/math]
[math] \begin{align} H_1 = &\begin{pmatrix}\begin{array}{rr} 1 & 1\\ 1 & -1 \end{array}\end{pmatrix} \end{align} [/math]

С матрицами Адамара связан ряд нерешенных проблем, одна из которых состоит в следующем. Мы уже видели, что порядок n матрицы Адамара при n ≥ 3 может быть лишь четным. Более того, при n ≥ 4 порядок обязан делиться на 4. До сих пор остается открытым вопрос: для любого ли n, кратного 4, существует матрица Адамара порядка n? Неизвестно, в частности, существует ли матрица Адамара порядка 268 (это наименьший порядок, кратный 4, для которого матрица Адамара еще не построена).

Часто размерность матрицы Адамара считают равной степени 2 и нормализируют её. Определение принимает следующий вид:

Матрицей Адамара Hn эта матрица размера 2n × 2n, для которой справедливо равенство

[math]H_n = H_{1} \otimes H_{n-1}[/math]
[math]\begin{align} H_1 = \frac{1}{\sqrt2} &\begin{pmatrix}\begin{array}{rr} 1 & 1\\ 1 & -1 \end{array}\end{pmatrix} \end{align}[/math]

где [math] \otimes [/math] представляет собой тензорное произведение.

Также, мы можем вычислить значения каждого элемента матрицы Адамара [math]H_n[/math]. Для этого представим порядковые номера k и l элемента [math]h_{kl}[/math] в виде двоичного разложения

[math]k = \sum^{m-1}_{i=0} {k_i 2^i} = k_{m-1} 2^{m-1} + k_{m-2} 2^{m-2} + \cdots + k_1 2 + k_0[/math]

и

[math]l = \sum^{m-1}_{i=0} {l_i 2^i} = l_{m-1} 2^{m-1} + l_{m-2} 2^{m-2} + \cdots + l_1 2 + l_0[/math]

где kj и lj коэффициенты двоичного разложения чисел k и l (1 или 0).

Тогда каждый элемент матрицы Адамара [math]H_n[/math] имеет вид

[math]h_{k,l} = \frac{1}{2^\frac{n}{2}} (-1)^{\sum_j k_j l_j}[/math]

Представим некоторые частные примеры матриц Адамара:

[math]\begin{align} H_0 = &+1\\ H_1 = \frac{1}{\sqrt2} &\begin{pmatrix}\begin{array}{rr} 1 & 1\\ 1 & -1 \end{array}\end{pmatrix} \end{align}[/math]
[math]\begin{align} H_2 = \frac{1}{2} &\begin{pmatrix}\begin{array}{rrrr} 1 & 1 & 1 & 1\\ 1 & -1 & 1 & -1\\ 1 & 1 & -1 & -1\\ 1 & -1 & -1 & 1 \end{array}\end{pmatrix}\\ H_3 = \frac{1}{2^{\frac{3}{2}}} &\begin{pmatrix}\begin{array}{rrrrrrrr} 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1\\ 1 & -1 & 1 & -1 & 1 & -1 & 1 & -1\\ 1 & 1 & -1 & -1 & 1 & 1 & -1 & -1\\ 1 & -1 & -1 & 1 & 1 & -1 & -1 & 1\\ 1 & 1 & 1 & 1 & -1 & -1 & -1 & -1\\ 1 & -1 & 1 & -1 & -1 & 1 & -1 & 1\\ 1 & 1 & -1 & -1 & -1 & -1 & 1 & 1\\ 1 & -1 & -1 & 1 & -1 & 1 & 1 & -1 \end{array}\end{pmatrix}\\ \end{align}[/math]

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

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

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

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

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

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

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

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

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

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

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

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

3 Литература