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

Материал из Алговики
Перейти к навигации Перейти к поиску
Нет описания правки
Строка 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>


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

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

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

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

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

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

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

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

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

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

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

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

[math]\displaystyle{ H_{n} = \begin{pmatrix} H_{n-1} & H_{n-1}\\ H_{n-1} & -H_{n-1}\end{pmatrix} }[/math]
[math]\displaystyle{ \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]\displaystyle{ H_n = H_{1} \otimes H_{n-1} }[/math]
[math]\displaystyle{ \begin{align} H_1 = \frac{1}{\sqrt2} &\begin{pmatrix}\begin{array}{rr} 1 & 1\\ 1 & -1 \end{array}\end{pmatrix} \end{align} }[/math]

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

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

[math]\displaystyle{ 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]\displaystyle{ 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]\displaystyle{ H_n }[/math] имеет вид

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

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

[math]\displaystyle{ \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]\displaystyle{ \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]

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

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

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

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

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

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

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

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

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

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

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

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

Литература