Upload
alex-dainiak
View
634
Download
8
Embed Size (px)
DESCRIPTION
Матрицы Адамара. Конструкции Сильвестра и Пэли. Коды на основе матриц Адамара. Каскадные коды. Коды Форни: конструкция и простой алгоритм декодирования.
Citation preview
Теория кодированияМФТИ, осень 2013
Александр Дайняк
www.dainiak.com
Матрицы Адамара (J. Hadamard)
Матрица Адамара — это квадратная матрица из −1, 1 𝑛×𝑛, в которой любые две строки ортогональны.
Примеры:1 11 −1
1 1 1 11 1 −1 −11 −1 −1 11 −1 1 −1
Теорема Адамара
Матрицы Адамара берут начало от следующей теоремы:
Теорема. (J. Hadamard)Если 𝐴 = 𝑎𝑖𝑗 1≤𝑖,𝑗≤𝑛
∈ ℝ𝑛×𝑛 и 𝑎𝑖𝑗 ≤ 1 для любых 𝑖, 𝑗, то тогда
det 𝐴 ≤ 𝑛 𝑛 2
Доказательство:
• det 𝐴 — это объём параллелепипеда, построенного на векторах-строках матрицы 𝐴
• Объём максимален, когда длины сторон максимальны (максимум равен 𝑛 при 𝑎𝑖𝑗 = 1) и углы между сторонами прямые (т.е. векторы ортогональны).
Матрицы Адамара
Если 𝐻 — матрица Адамара, то
• Матрица, полученная из 𝐻 перестановками строк/столбцов, тоже является матрицей Адамара.
• Матрица, полученная из 𝐻 умножением строк/столбцов на −1,тоже является матрицей Адамара.
Матрицы Адамара, получаемые друг из друга такими преобразованиями, эквивалентны.
Матрицы Адамара
Любую матрицу Адамара умножением строк/столбцов на −1можно привести к виду
1 1 ⋯ 11⋮1
Такая матрица Адамара называется нормализованной.
Порядок матриц Адамара
Утверждение.
Если 𝐻 ∈ −1, 1 𝑛×𝑛 — матрица Адамара, и 𝑛 > 2, то 4|𝑛.
Доказательство:
От матрицы 𝐻 перейдём к эквивалентной матрице, в которой первые три строки такие:
1 1 ⋯ 11 1 ⋯ 11 1 ⋯ 1
𝑖
1 1 ⋯ 11 1 ⋯ 1−1 −1 ⋯ −1
𝑗
1 1 ⋯ 1−1 −1 ⋯ −11 1 ⋯ 1
𝑘
1 1 ⋯ 1−1 −1 ⋯ −1−1 −1 ⋯ −1
𝑙
Отсюда𝑖 + 𝑗 + 𝑘 + 𝑙 = 𝑛𝑖 + 𝑗 − 𝑘 − 𝑙 = 0𝑖 − 𝑗 − 𝑘 + 𝑙 = 0𝑖 − 𝑗 + 𝑘 − 𝑙 = 0
Решение этой системы: 𝑖 = 𝑗 = 𝑘 = 𝑙 = 𝑛 4.
Порядок матриц Адамара
Гипотеза Адамара (не доказана).Матрицы Адамара порядка 𝑛 существуют(?) для всех натуральных 𝑛, кратных четырём.
Наименьший порядок, для которого пока не доказано существование матрицы Адамара, равен 668.
Конструкция Сильвестра
Утверждение.Матрица Адамара порядка 𝑛 существует для любого 𝑛 = 2𝑘.
Доказательство: (J. J. Sylvester)
Заметим, что если 𝐻 — матрица Адамара, то матрицей Адамара
будет и такая: 𝐻 𝐻𝐻 −𝐻
.
Утверждение теперь следует по индукции из того факта, что 1 11 −1
— матрица Адамара.
Матрицы Адамара
Теорема. (R. E. A. C. Paley ’1933)Если 𝑝 простое и 4| 𝑝𝑚 + 1 , то существует матрица Адамара порядка 𝑝𝑚 + 1 .
(Конструкция Пэли на основе квадратичных вычетов.)
Квадратичные вычеты
Элемент 𝑎 ∈ 𝔽𝑞 ∖ 0 называется квадратичным вычетом, если 𝑎 = 𝑥2 для некоторого 𝑥 ∈ 𝔽𝑞.
Остальные элементы из 𝔽𝑞 ∖ 0 называются квадратичными невычетами.
Например, в ℤ7 элементы 1,2,4 — к.в., а 3,5,6 — к.н.
Квадратичные вычеты
Утверждение.
• Если 𝜆 — примитивный элемент 𝔽𝑞, то элементы вида 𝜆2𝑡
являются к.в., а вида 𝜆2𝑡+1 — к.н.
• Если 𝑞 = 𝑝𝑚 и 𝑝 > 2, то ровно половина элементов из 𝔽𝑞 ∖ 0
являются к.в., а половина — к.н.
Везде далее будем предполагать, что 𝑝 > 2.
Символ Лежандра
Символ Лежандра 𝜒 𝑎 определяется так:
𝜒 𝑎 = 0, если 𝑎 = 01, если 𝑎 к. в.−1, если 𝑎 к. н.
Утверждение.Для любых 𝑎, 𝑏 ∈ 𝔽𝑞 имеет место равенство
𝜒 𝑎 ⋅ 𝜒 𝑏 = 𝜒 𝑎𝑏
Квадратичные вычеты
Утверждение.
Для любого 𝑐 ∈ 𝔽𝑞 ∖ 0 имеет место равенство
𝑏∈𝔽𝑞
𝜒 𝑏 ⋅ 𝜒 𝑏 + 𝑐 = −1
Доказательство:
Т.к. ровно половина элементов 𝔽𝑞 ∖ 0 квадратичными вычетами, то 𝑎∈𝔽𝑞
𝜒 𝑎 = 0.
Также заметим, что
𝑏∈𝔽𝑞
𝜒 𝑏 ⋅ 𝜒 𝑏 + 𝑐 =
𝑏∈𝔽𝑞∖ 0
𝜒 𝑏 ⋅ 𝜒 𝑏 + 𝑐
Квадратичные вычеты
С учётом замеченного, получаем
𝑏∈𝔽𝑞∖ 0
𝜒 𝑏 ⋅ 𝜒 𝑏 + 𝑐 =
𝑏∈𝔽𝑞∖ 0
𝜒 𝑏 ⋅ 𝜒 𝑏 ⋅ 𝑏−1 𝑏 + 𝑐 =
=
𝑏∈𝔽𝑞∖ 0
𝜒 𝑏2⋅ 𝜒 𝑏−1 𝑏 + 𝑐 =
𝑏∈𝔽𝑞∖ 0
𝜒 𝑏−1 𝑏 + 𝑐 =
=
𝑏∈𝔽𝑞∖ 0
𝜒 1 + 𝑏−1𝑐 =
𝑎∈𝔽𝑞∖ 1
𝜒 𝑎 =
𝑎∈𝔽𝑞
𝜒 𝑎 − 𝜒 1 = −1
Матрица Якобшталя (E. Jacobsthal)
Рассмотрим матрицу 𝑡𝑎,𝑏 𝑎,𝑏∈𝔽𝑞∈ −1, 0, 1 𝑞×𝑞, в которой
𝑡𝑎,𝑏 ≔ 𝜒 𝑎 − 𝑏 .
Скалярное произведение любых двух различных строк 𝑡𝑎′,𝑏 𝑏∈𝔽𝑞
и 𝑡𝑎′′,𝑏 𝑏∈𝔽𝑞равно
𝑏∈𝔽𝑞
𝜒 𝑎′ − 𝑏 ⋅ 𝜒 𝑎′′ − 𝑏 =
𝑏∈𝔽𝑞
𝜒 𝑏 ⋅ 𝜒 𝑏 + 𝑎′′ − 𝑎′ = −1
«Подправленная» матрица Якобшталя
Рассмотрим матрицу 𝑡𝑎,𝑏′
𝑎,𝑏∈𝔽𝑞∈ −1, 1 𝑞×𝑞, в которой 𝑡𝑎,𝑏
′ = 𝜒 𝑎 − 𝑏 , если
𝑎 ≠ 𝑏 и 𝑡𝑎,𝑏′ = −1 иначе.
Скалярное произведение различных строк 𝑡𝑎′,𝑏′
𝑏∈𝔽𝑞и 𝑡𝑎′′,𝑏
′
𝑏∈𝔽𝑞равно
𝑏∈𝔽𝑞
𝜒 𝑎′ − 𝑏 ⋅ 𝜒 𝑎′′ − 𝑏 − 𝜒 𝑎′ − 𝑎′′ − 𝜒 𝑎′′ − 𝑎′ =
= −1 − 𝜒 𝑎′ − 𝑎′′ − 𝜒 𝑎′′ − 𝑎′
Если −1 является квадратичным невычетом в 𝔽𝑞, то
𝜒 𝑎′′ − 𝑎′ = 𝜒 −1 ⋅ 𝜒 𝑎′ − 𝑎′′ = −𝜒 𝑎′ − 𝑎′′ ,
и скалярное произведение получается равным −1.
«Подправленная» и «дополненная» матрица Якобшталя
𝑇′ ≔ 𝑡𝑎,𝑏′
𝑎,𝑏∈𝔽𝑞∈ −1, 1 𝑞×𝑞,
где 𝑡𝑎,𝑏′ = 𝜒 𝑎 − 𝑏 , если 𝑎 ≠ 𝑏, и 𝑡𝑎,𝑏
′ = −1 иначе.
Если −1 является квадратичным невычетом в 𝔽𝑞, то скалярное произведение любых двух строк матрицы 𝑇′ равно −1. Тогда матрица
1 1 ⋯ 11⋮ 𝑇′
1является нормализованной матрицей Адамара.
Матрицы Адамара
Утверждение. (Без доказательства)При 4| 𝑞 + 1 элемент −1 является квадратичным невычетом в 𝔽𝑞.
Следствие.Если 𝑝 простое и 4| 𝑝𝑚 + 1 , то существует матрица Адамара порядка 𝑝𝑚 + 1 .
Коды Адамара
Введены R. C. Bose, S. S. Shrikhande ’1959.
Идея:В матрице Адамара любые две строки 𝒂, 𝒃 ортогональны. Т.к. 𝑎, 𝑏 ∈−1, 1 𝑛 , это значит, что ровно половина координат у них
совпадает, а половина противоположны.
Заменяем координаты −1 → 0 и получаем из строк матрицы двоичный код с большим кодовым расстоянием.
Коды Адамара
Пусть 𝐴 ∈ 0,1 𝑛×𝑛 — матрица, полученная из нормализованной матрицы Адамара заменой элементов −1 на 0.
• Множество строк матрицы 𝐴 с отброшенной первой координатой
образует двоичный 𝑛 − 1, 𝑛, 𝑛2
-код
• Множество строк матрицы 𝐴 и их дополнений образует
𝑛, 2𝑛, 𝑛2
-код
Оптимальность кодов Адамара
Граница Плоткина (в двоичном случае)
Если 𝑁 < 2𝑑, то для любого 𝑁,𝑀, 𝑑 -кода
𝑀 ≤2𝑑
2𝑑 − 𝑁
Коды Адамара с параметрами 𝑛 − 1, 𝑛, 𝑛2
достигают границы
Плоткина, имея максимально число слов при заданных длине и кодовом расстоянии.
Каскадные коды(предложены G. D. Forney ’1966)Пусть
• 𝐶internal — 𝑛,𝑚, 𝑑 𝑞-код (внутренний код)
• 𝐶external — 𝑁,𝑀,𝐷 𝑚-код (внешний код)
Символам алфавита кода 𝐶ext сопоставим слова кода 𝐶int.
Тогда кодовым словам кода 𝐶ext соответствуют слова длины 𝑁𝑛 в алфавите кода 𝐶int.
Получаем каскадный 𝑁𝑛,𝑀, 𝑑′ 𝑞-код, где 𝑑′ ≥ 𝐷𝑑.
Каскадные коды(линейный двоичный случай)Пусть
• 𝐶int — 𝑛, 𝑘, 𝑑 -код (внутренний код)
• 𝐶ext — 𝑁,𝐾, 𝐷 2𝑘-код (внешний код)
Элементам 𝔽2𝑘 сопостaвим слова кода 𝐶int, так, чтобы линейная комбинация элементов 𝔽2𝑘 соответствовала линейной комбинации слов кода 𝐶int.
Тогда кодовым словам кода 𝐶ext соответствуют слова длины 𝑁𝑛 в алфавите кода 𝐶int.
Получаем каскадный 𝑁𝑛, 𝑘𝐾, 𝑑𝐷 -код.
Коды Форни
В качестве внешнего кода удобно взять оптимальный (например, MDS) код над алфавитом большой (не слишком) мощности.
В качестве внутреннего кода можно взять близкий к оптимальному код с не очень большим числом кодовых слов.
Сможем получить асимптотически хорошее семейство линейных кодов, для которых есть полиномиальный алгоритм декодирования.
Асимптотически хорошие коды
Пусть задано семейство двоичных кодов 𝐶 ≔ 𝐶𝑛 𝑛=1
∞
Асимптотической скоростью семейства 𝐶 называется величина
rate 𝐶 ≔ lim𝑛→∞
log2 𝐶𝑛𝑛
Асимптотическим относительным кодовым расстояниемсемейства 𝐶 называется величина
𝛿 𝐶 ≔ lim𝑛→∞
𝑑 𝐶𝑛𝑛
Асимптотически хорошие коды
rate 𝐶 ≔ lim𝑛→∞
log2 𝐶𝑛𝑛
𝛿 𝐶 ≔ lim𝑛→∞
𝑑 𝐶𝑛𝑛
Семейство кодов называется асимптотически хорошим, если для
него rate 𝐶 > 0 и 𝛿 𝐶 > 0
До кодов Форни было неизвестно, существуют ли асимптотически хорошие семейства кодов с полиномиальными алгоритмами декодирования.
Теорема Варшамова—Гилберта
Теорема. (Р. Р. Варшамов, E. N. Gilbert)Пусть натуральные числа 𝑛, 𝑘, 𝑑′ таковы, что
𝑗=0
𝑑′−1𝑛 − 1
𝑗< 2𝑛−𝑘
Тогда существует 𝑛, 𝑘, 𝑑 -код, где 𝑑 > 𝑑′.
Следствие.Если 𝛿 < 0.5 и 𝜌 таковы, что 𝐻 𝛿 ≤ 1 − 𝜌, то существует
семейство линейных кодов 𝐶, для которого rate 𝐶 ≥ 𝜌 и 𝛿 𝐶 ≥ 𝛿.
Теорема Варшамова—Гилберта(асимптотическая версия)
Доказательство следствия:
Если 𝑛, 𝑘, 𝑑′ таковы, что 𝐻 𝑑′ 𝑛 ≤ 1 − 𝑘
𝑛, то
𝑗=0
𝑑′−1𝑛 − 1
𝑗< 2𝑛⋅𝐻 𝑑′ 𝑛 ≤ 2𝑛−𝑘 ,
то есть условия теоремы В.—Г. выполнены, и существует линейный 𝑛, 𝑘, 𝑑 -код, где 𝑑 > 𝑑′.
Если 𝐻 𝛿 ≤ 1 − 𝜌, то берём для каждого 𝑛𝑘 ≔ 𝜌𝑛 , 𝑑′ ≔ 𝛿𝑛 , и получаем требуемое.
Цель
Теорема Варшамова—Гилберта не даёт полиномиальных (по длине кодовых слов) алгоритмов построения кода и декодирования.
А хочется следующего:
• Для каждого 𝑛 строить порождающую или проверочную матрицу некоторого линейного кода с длиной слов, размерностью и кодовым расстоянием Ω 𝑛 . И всё за полиномиальное от 𝑛время.
• Исправлять Ω 𝑛 ошибок в кодовых словах за полиномиальное от 𝑛 время.
Каскадный код Форни на основе конструкции В.—Г. и кода Р.—С.Пусть 𝑡 ∈ ℕ, и пусть 𝛿 < 0.5 — произвольное фиксированное число.
По теореме В.—Г., существует линейный код с параметрами𝑡
1−𝐻 𝛿, 𝑡, 𝛿𝑡
1−𝐻 𝛿
Возьмём этот код в качестве внутреннего.
В качестве внешнего возьмём RS-код с параметрами 2𝑡 , 2𝑡−1, 2𝑡−1 + 1 2𝑡 .
Получаем каскадный 𝑛, 𝑘, 𝑑 -код, для которого
𝑛 =𝑡 ⋅ 2𝑡
1 − 𝐻 𝛿, 𝑘 =
𝑡 ⋅ 2𝑡
2, 𝑑 >
𝛿𝑡 ⋅ 2𝑡
2 1 − 𝐻 𝛿
Каскадный код Форни на основе конструкции В.—Г. и кода Р.—С.
Получаем каскадный 𝑛, 𝑘, 𝑑 -код, для которого
𝑛 =𝑡 ⋅ 2𝑡
1 − 𝐻 𝛿, 𝑘 =
𝑡 ⋅ 2𝑡
2, 𝑑 >
𝛿𝑡 ⋅ 2𝑡
2 1 − 𝐻 𝛿
Этот код является асимптотически хорошим, т.к. 𝑑𝑛≥ 𝛿
2 1−𝐻 𝛿> 0 и
𝑘
𝑛≥ 1
2 1−𝐻 𝛿> 0.
Каскадный код Форни на основе конструкции В.—Г. и кода Р.—С.
Получаем каскадный 𝑛, 𝑘, 𝑑 -код, для которого
𝑛 =𝑡 ⋅ 2𝑡
1 − 𝐻 𝛿, 𝑘 =
𝑡 ⋅ 2𝑡
2, 𝑑 >
𝛿𝑡 ⋅ 2𝑡
2 1 − 𝐻 𝛿
Вычислить порождающую матрицу кода можно при каждом 𝑡 за полиномиальное время, т.к.
• коды Р.—С. строятся за полиномиальное время от своих параметров,
• проверочная матрица кода в теореме В.—Г. строится хотя и перебором, но параметры этого кода логарифмичны по 𝑛.
Каскадный код Форни на основе конструкции В.—Г. и кода Р.—С.
Получаем каскадный 𝑛, 𝑘, 𝑑 -код, для которого
𝑛 =𝑡 ⋅ 2𝑡
1 − 𝐻 𝛿, 𝑘 =
𝑡 ⋅ 2𝑡
2, 𝑑 >
𝛿𝑡 ⋅ 2𝑡
2 1 − 𝐻 𝛿
Существует «почти тривиальный» полиномиальный алгоритм,
декодирующий кодовые слова, принятые с не более чем 𝛿𝑡⋅2𝑡
8 1−𝐻 𝛿
ошибками.
Тривиальный алгоритм декодирования кодов ФорниКаждое слово кода Форни имеет вид
𝒄 = 𝒂1𝒂2…𝒂2𝑡
где 𝒂𝑖 — слова кода В.—Г. длины 𝑡
1−𝐻 𝛿.
Если в слове 𝒄 произошло ≤ 𝛿𝑡⋅2𝑡
8 1−𝐻 𝛿ошибок, и в результате принято слово
𝒄 = 𝒂1 𝒂2… 𝒂2𝑡, то слово 𝒄 восстанавливаем в два шага:
• Для каждого 𝒂𝑖 перебором ищем ближайшее к нему слово кода В.—Г. При этом неверно восстановленных слов может быть не более
𝛿𝑡⋅2𝑡
8 1−𝐻 𝛿
𝛿𝑡
2 1−𝐻 𝛿= 2𝑡−2.
• Кодовое расстояние внешнего кода равно 2𝑡−1 + 1 , поэтому даже 2𝑡−2
ошибок он успешно исправит.
Пояснения к алгоритму декодирования кодов Форни
Пусть слово 𝒄 = 𝒂1𝒂2…𝒂2𝑡 исказилось в 𝑠 разрядах и перешло в слово 𝒄 = 𝒂1 𝒂2… 𝒂2𝑡 .𝒂𝑖 — слова кода В.—Г. с расстоянием 𝑑int.
Пусть 𝐼 = 𝑖 ∣ 𝑑 𝒂𝑖 , 𝒂𝑖 ≥ 𝑑int2
, где 𝐼 ≤ 2𝑠
𝑑int.
Т.к. на первом шаге проблемы с исправлением могут быть только у слов 𝒂𝑖, у которых 𝑖 ∈ 𝐼, то на втором шаге, рассматривая каждое 𝒂𝑖 как один элемент поля 𝔽2𝑡 , мы получаем задачу восстановления слова кода Р.—С. с ошибками не более чем в 2𝑠
𝑑intразрядах.