SlideShare a Scribd company logo
Теория кодирования
МФТИ, осень 2013
Александр Дайняк
www.dainiak.com
Циклический код
Циклический код — это линейный код, такой, что для любого
кодового слова
𝑎0, 𝑎1 … , 𝑎 𝑛−1
слово 𝑎 𝑛−1, 𝑎0 … , 𝑎 𝑛−2 также является кодовым.
Циклический код — это подмножество 𝐶 кольца 𝔽 𝑥 𝑥 𝑛
− 1 ,
такое, что
• 𝑓1, 𝑓2 ∈ 𝐶 ⇒ ∀𝛼, 𝛽 ∈ 𝔽 𝛼𝑓1 + 𝛽𝑓2 ∈ 𝐶
• 𝑓 ∈ 𝐶 ⇒ 𝑥 ⋅ 𝑓 ∈ 𝐶
Примитивный элемент
Рассмотрим поле 𝔽 𝑞, где 𝑞 = 𝑝 𝑚, 𝑝 простое.
Известно, что множество 𝔽 𝑞 ∖ 0 образует циклическую группу по
умножению.
Каждый образующий элемент этой группы (порядок которого
равен 𝑞 − 1 ) называется примитивным элементом поля.
Иными словами, примитивный элемент — это такой 𝜆 ∈ 𝔽 𝑞, что
1, 𝜆, 𝜆2, … , 𝜆 𝑞−2 = 𝔽 𝑞 ∖ 0 .
Граница Боуза—Чоудхури—Хоквингема
Теорема. (A.Hocquenghem’1959,
R.C. Bose and D.K. Ray-Chaudhuri’1960)
Пусть 𝜆 — примитивный элемент 𝔽 𝑞.
Пусть порождающий многочлен 𝑔 кода 𝐶 ⊆ 𝔽 𝑞
𝑛
таков, что в 𝔽 𝑞
среди его корней есть (различные) числа вида
𝜆 𝑏, 𝜆 𝑏+1, … , 𝜆 𝑏+𝛿−2
Тогда 𝑑 𝐶 ≥ 𝛿.
Граница
Боуза—Чоудхури—Хоквингема
Проблема:
• Если применять теорему «в лоб», то невозможно доказать, что
кодовое расстояние больше мощности кодового алфавита, даже
если это и так.
Решение:
• Код рассмотрим как подмножество в 𝔽 𝑝
𝑛, но при применении
границы БЧХ погрузим поле 𝔽 𝑝 в 𝔽 𝑝 𝑚.
Факты о полях
• При любом простом 𝑝 и любом 𝑚 поле 𝔽 𝑝 можно вложить как
подполе в 𝔽 𝑝 𝑚.
Обычно поле 𝔽 𝑝 — это поле вычетов 𝔽 𝑝,
а 𝔽 𝑝 𝑚 строится как множество многочленов с коэффициентами из
ℤ 𝑝, которые складываются и умножаются по модулю некоторого
многочлена степени 𝑚, неприводимого над ℤ 𝑝.
Тогда вложение 𝔽 𝑝 в 𝔽 𝑝 𝑚 очевидно: элементам 𝔽 𝑝 соответствуют
многочлены степени ≤ 0.
Факты о полях
• Элементам 𝔽 𝑝 𝑚 можно сопоставить вектора из 𝔽 𝑝
𝑚, так, что сумме
элементов 𝔽 𝑝 𝑚 соответствует сумма векторов в 𝔽 𝑝
𝑚.
Раз 𝔽 𝑝 𝑚 — многочлены с коэффициентами из 𝔽 𝑝 степени ≤ 𝑚, то
каждому элементу 𝔽 𝑝 𝑚 сопоставим вектор коэффициентов
многочлена.
Коды БЧХ
Пусть 𝑝 простое.
Рассмотрим циклический код 𝐶 ⊆ 𝔽 𝑝 𝑥 𝑥 𝑛
− 1
с порождающим многочленом 𝑔.
Коэффициенты 𝑔 берутся из 𝔽 𝑝, но их можно считать
одновременно элементами 𝔽 𝑝 𝑚.
Рассмотрим код 𝐶 ⊆ 𝔽 𝑝 𝑚 𝑥 𝑥 𝑛
− 1 , порождённый
многочленом 𝑔 (если считать, что 𝑔 ∈ 𝔽 𝑝 𝑚 𝑥 𝑥 𝑛
− 1 ).
Можно в том же духе считать, что 𝐶 ⊆ 𝐶.
Коды БЧХ
Коэффициенты 𝑔 берутся из 𝔽 𝑝, но их можно считать
одновременно элементами 𝔽 𝑝 𝑚.
𝐶 ⊆ 𝔽 𝑝 𝑚 𝑥 𝑥 𝑛 − 1 порождён 𝑔.
Пусть 𝜆 — примитивный элемент 𝔽 𝑝 𝑚, и
𝑔 𝜆 𝑏 = ⋯ = 𝑔 𝜆 𝑏+𝛿−2 = 0
Тогда граница БЧХ гласит: 𝑑 𝐶 ≥ 𝛿.
Так как 𝐶 ⊆ 𝐶, то и 𝑑 𝐶 ≥ 𝛿.
Коды БЧХ
• Подбираем 𝑔 ∈ 𝔽 𝑝 𝑚 𝑥 𝑥 𝑛 − 1 с коэффициентами из 𝔽 𝑝, так,
чтобы в 𝔽 𝑝 𝑚 было выполнено
𝑔 𝜆 𝑏 = ⋯ = 𝑔 𝜆 𝑏+𝛿−2 = 0 и 𝑔| 𝑥 𝑛 − 1 .
• На основе 𝑔 строим циклический код в 𝔽 𝑝 𝑥 𝑥 𝑛 − 1 , для
которого, по построению, выполнено 𝑑 𝐶 ≥ 𝛿.
Вопросы:
• Существует ли вообще такой 𝑔?
• Как оценить dim 𝐶?
Минимальный многочлен
Хорошие новости (без доказательства):
Для любого 𝛼 ∈ 𝔽 𝑝 𝑚 ∖ 0 существует многочлен 𝑓 ∈ 𝔽 𝑝 𝑚 𝑥 ∖ 0
с коэффициентами из 𝔽 𝑝, для которого 𝑓 𝛼 = 0.
Если взять такой 𝑓 минимальной степени, то
• 𝑓 неприводим над 𝔽 𝑝,
• deg 𝑓 ≤ 𝑚,
• 𝑓 ∣ 𝑥 𝑝 𝑚−1 − 1 .
Такой 𝑓 называется минимальным многочленом элемента 𝛼.
Коды БЧХ
Следствия из хороших новостей:
• Если 𝑛 = 𝑝 𝑚 − 1, то существует 𝑔, такой, что
𝑔 𝜆 𝑏 = ⋯ = 𝑔 𝜆 𝑏+𝛿−2 = 0 и 𝑔| 𝑥 𝑛 − 1 , причём
deg 𝑔 ≤ 𝛿 − 1 𝑚.
• Такой 𝑔 можно взять как
LCM 𝑓 𝜆 𝑏, … , 𝑓 𝜆 𝑏+𝛿−2
где 𝑓 𝜆 𝑏, … , 𝑓 𝜆 𝑏+𝛿−2 — минимальные
многочлены соответствующих элементов.
Коды БЧХ
Окончательный способ построения кода:
• Берём 𝑛 ≔ 𝑝 𝑚
− 1 и
𝑔 ≔ LCM 𝑓 𝜆 𝑏, … , 𝑓 𝜆 𝑏+𝛿−2
где 𝑓 𝜆 𝑏, … , 𝑓 𝜆 𝑏+𝛿−2 — минимальные многочлены соответствующих
элементов в 𝔽 𝑝 𝑚.
• Строим циклический код в 𝔽 𝑝, используя 𝑔 в качестве порождающего
многочлена наименьшей возможной степени
Получаем код с параметрами 𝑝 𝑚 − 1, 𝑘, 𝑑 𝑝, где
• 𝑘 = 𝑛 − deg 𝑔 ≥ 𝑛 − 𝛿 − 1 𝑚
• 𝑑 ≥ 𝛿
Задача восстановления синхронизации
Пусть по каналу передаются слова … 𝒂, 𝒃, 𝒄 …
𝑎1 𝑎2 … 𝑎 𝑛 𝑏1 𝑏2 … 𝑏 𝑛 𝑐1 𝑐2 … 𝑐 𝑛 …
Если в канале выпадают символы, может произойти ошибка
синхронизации:
𝑎𝑖+1 𝑎𝑖+2 … 𝑎 𝑛 𝑏1 𝑏2 … 𝑏 𝑛 𝑐1 𝑐2 … 𝑐 𝑛 …
и есть шанс неправильно разбить принятую последовательность на
слова:
𝑎𝑖+1 … 𝑎 𝑛 𝑏1 … 𝑏𝑖 ∣ 𝑏𝑖+1 … 𝑏 𝑛 𝑐1 … 𝑐𝑖 ∣ 𝑐𝑖+1 …
Если при этом такие слова окажутся кодовыми, то мы далеко не
сразу обнаружим ошибку!
Задача восстановления синхронизации
При потере синхронизации имеем разбиение:
𝑎𝑖+1 … 𝑎 𝑛 𝑏1 … 𝑏𝑖 ∣ 𝑏𝑖+1 … 𝑏 𝑛 𝑐1 … 𝑐𝑖 ∣ 𝑐𝑖+1 …
Циклические коды очень плохие с точки зрения восстановления
синхронизации: если 𝒂 ∈ 𝐶 и в канал передавалось
𝒂𝒂𝒂 …
то при потере синхронизации мы обнаружим ошибку только в
самом конце приёма.
Свобода от запятой
Пусть по каналу передаются слова … 𝒂, 𝒃, 𝒄 …
𝑎1 𝑎2 … 𝑎 𝑛 𝑏1 𝑏2 … 𝑏 𝑛 𝑐1 𝑐2 … 𝑐 𝑛 …
Если при приёме слова 𝒃 «запоздать» на 𝑖 тактов, то мы примем
слово
𝑏𝑖+1 … 𝑏 𝑛 𝑐1 … 𝑐𝑖
а если «забежать вперёд» на 𝑖 тактов, примем
𝑎 𝑛−𝑖+1 … 𝑎 𝑛 𝑏1 … 𝑏 𝑛−𝑖
Код обладает свободой от запятой степени 𝑟, если для любых
кодовых слов 𝒂, 𝒃, 𝒄 и любого 𝑖 ≤ 𝑟 коду не принадлежат слова
𝑏𝑖+1 … 𝑏 𝑛 𝑐1 … 𝑐𝑖 и 𝑎 𝑛−𝑖+1 … 𝑎 𝑛 𝑏1 … 𝑏 𝑛−𝑖.
Свобода от запятой
Код обладает свободой от запятой степени 𝑟, если для любых
кодовых слов 𝒂, 𝒃, 𝒄 и любого 𝑖 ≤ 𝑟 коду не принадлежат слова
𝑏𝑖+1 … 𝑏 𝑛 𝑐1 … 𝑐𝑖 и 𝑎 𝑛−𝑖+1 … 𝑎 𝑛 𝑏1 … 𝑏 𝑛−𝑖.
Если 𝑟 ≥ 𝑛
2
, то считаем, что 𝑟 = ∞, а код называется кодом без
запятой.
Если 𝑟 < ∞, то при приёме можно (перебором) исправить
синхросдвиг на ≤ 𝑟
2
символов.
Если 𝑟 = ∞, то может быть исправлен любой синхросдвиг.
Свобода от запятой
Код обладает свободой от запятой степени 𝑟, если для любых
кодовых слов 𝒂, 𝒃, 𝒄 и любого 𝑖 ≤ 𝑟 коду не принадлежат слова
𝑏𝑖+1 … 𝑏 𝑛 𝑐1 … 𝑐𝑖 и 𝑎 𝑛−𝑖+1 … 𝑎 𝑛 𝑏1 … 𝑏 𝑛−𝑖.
• Циклические коды — не годятся
• Зато смежные классы циклических кодов — вполне!
Смежные классы линейных кодов
Пусть 𝐶 ⊆ 𝔽 𝑛 — линейный код.
Его смежный класс — это множество вида
𝐶 + 𝒂 ≔ 𝒄 + 𝒂 ∣ 𝒄 ∈ 𝐶
Заметьте: при 𝒂 ∉ 𝐶 такой код не линейный!
Для циклического кода с порождающим многочленом 𝑔 смежный
класс имеет вид
𝑓 ⋅ 𝑔 + 𝑠 ∣ 𝑓 ∈ 𝔽 𝑥 𝑥 𝑛 − 1
для некоторого 𝑠 ∈ 𝔽 𝑥 𝑥 𝑛 − 1 .
Смежные классы циклических кодов
Для циклического кода с порождающим многочленом 𝑔 смежный
класс имеет вид
𝑓 ⋅ 𝑔 + 𝑠 ∣ 𝑓 ∈ 𝔽 𝑥 𝑥 𝑛 − 1
для некоторого 𝑠 ∈ 𝔽 𝑥 𝑥 𝑛 − 1 .
Теорема.
При 𝑠 ≡ 1 степень свободы от запятой смежного класса
циклического кода равна
deg 𝑔 − 1
при 𝑛 ≥ 2 deg 𝑔, и равна ∞ при 𝑛 < 2 deg 𝑔.
(Подробно обоснуем только нижнюю оценку.)
Смежные классы циклических кодов
Пусть передавались слова 𝒂, 𝒃 ∈ 𝐶.
Если при приёме слова 𝒂 произошло запаздывание на 𝑖 тактов,
то будет принято слово, которому отвечает многочлен
𝑥−𝑖 ⋅ 𝑓𝒂 − 𝑡1 + 𝑥 𝑛−𝑖 ⋅ 𝑡2,
где 𝑡1 и 𝑡2 — многочлены, образованные 𝑖 первыми
координатами слов 𝒂 и 𝒃 соответственно, а 𝑓𝒂 — многочлен,
отвечающий слову 𝒂.
Смежные классы циклических кодов
В кольце 𝔽 𝑥 𝑥 𝑛 − 1 имеем
𝑥−𝑖 ⋅ 𝑓𝒂 − 𝑡1 + 𝑥 𝑛−𝑖 ⋅ 𝑡2 = 𝑥 𝑛−𝑖 ⋅ 𝑓𝒂 − 𝑡1 + 𝑡2
Аналогично, если при приёме слова 𝒃 произошло «забегание
вперёд», то будет принято слово 𝑥 𝑖
⋅ 𝑓𝒃 + 𝑡3 − 𝑡4 , где 𝑡3 и 𝑡4 —
многочлены, образованные 𝑖 старшими разрядами слова 𝒂 и 𝑖
младшими разрядами 𝒃 соответственно. При этом
deg 𝑡1 , deg 𝑡2 , deg 𝑡3 , deg 𝑡4 < 𝑖
Смежные классы циклических кодов
Итак, в случае рассинхронизации принятое слово будет иметь вид
𝑥 𝑛−𝑖 ⋅ 𝑓 + Δ или 𝑥 𝑖 ⋅ 𝑓 + Δ,
где 𝑓 ∈ 𝐶 и deg Δ < 𝑖.
Нужно, чтобы 𝑥 𝑛−𝑖
⋅ 𝑓 + Δ ∉ 𝐶 и 𝑥 𝑖
⋅ 𝑓 + Δ ∉ 𝐶 при 0 < 𝑖 ≤ 𝑟.
Смежные классы циклических кодов
Пусть 𝐶 — смежный класс ц.к. вида
𝑓 ⋅ 𝑔 + 1 ∣ 𝑓 ∈ 𝔽 𝑥 𝑥 𝑛 − 1
Нужно, чтобы для любых 𝑓1, 𝑓2, Δ, 𝑖, таких, что deg Δ < 𝑖 и 0 < 𝑖 ≤ 𝑟
в кольце 𝔽 𝑥 𝑥 𝑛 − 1 было выполнено
𝑓1 ⋅ 𝑔 + 1 ≠ 𝑥 𝑛−𝑖 ⋅ 𝑓2 ⋅ 𝑔 + 1 + Δ
𝑓1 ⋅ 𝑔 + 1 ≠ 𝑥 𝑖 ⋅ 𝑓2 ⋅ 𝑔 + 1 + Δ
Это равносильно тому, что для любых 𝑓, Δ, 𝑖
𝑓 ⋅ 𝑔 ≠ 𝑥 𝑖
+ Δ − 1
Смежные классы циклических кодов
Пусть 𝐶 — смежный класс ц.к. вида
𝑓 ⋅ 𝑔 + 1 ∣ 𝑓 ∈ 𝔽 𝑥 𝑥 𝑛 − 1
Нужно, чтобы для любых 𝑓, Δ, 𝑖, таких, что deg Δ < 𝑖 и 0 < 𝑖 ≤ 𝑟
в кольце 𝔽 𝑥 𝑥 𝑛 − 1 было выполнено
𝑓 ⋅ 𝑔 ≠ 𝑥 𝑖 + Δ − 1
Имеем 𝑥 𝑖 + Δ − 1 ≢ 0 при любом 𝑖 > 0.
Т.к. deg 𝑥 𝑖 + Δ − 1 = 𝑖 ≤ 𝑟, то достаточно, чтобы deg 𝑔 > 𝑟.
Это и требовалось доказать.
Циклическое представление
кодов Хемминга
Пусть 𝜆 — примитивный элемент поля 𝔽2 𝑚.
Пусть 𝑔 — минимальный многочлен для 𝜆, и 𝐶 ⊂ 𝔽2
2 𝑚−1
— код,
порождённый 𝑔.
Любой кодовый многочлен 𝑓 ∈ 𝐶 имеет корень, равный 𝜆. Поэтому
кодовые вектора 𝑐0, … , 𝑐2 𝑚−2 удовлетворяют соотношению
𝑐0 + 𝑐1 𝜆 + 𝑐2 𝜆2
+ ⋯ + 𝑐2 𝑚−2 𝜆2 𝑚−2
= 0
Циклическое представление
кодов Хемминга
Кодовые вектора 𝑐0, … , 𝑐2 𝑚−2 удовлетворяют соотношению
𝑐0 + 𝑐1 𝜆 + 𝑐2 𝜆2
+ ⋯ + 𝑐2 𝑚−2 𝜆2 𝑚−2
= 0
Так как 𝜆0, 𝜆1, … , 𝜆2 𝑚−2 = 𝔽2 𝑚 ∖ 0 , и так как каждому элементу
𝔽2 𝑚 отвечает вектор из 𝔽2
𝑚
, то проверочная матрица кода равна
𝑣 𝜆0, 𝑣 𝜆1, … , 𝑣 𝜆2 𝑚−2 ∈ 𝔽2
𝑚× 2 𝑚−1
где 𝑣 𝜆 𝑖 — вектор, отвечающий 𝜆𝑖.
Столбцы матрицы — все ненулевые вектора 𝔽2
𝑚
.
Циклическое представление
кодов Хемминга
Утверждение.
Двоичный код Хемминга с параметрами 2 𝑚 − 1, 2 𝑚 − 1 − 𝑚, 3
эквивалентен циклическому коду, порождённому минимальным
многочленом примитивного элемента 𝔽2 𝑚.
Коды Голея
М. Голей (M. J. E. Golay) предложил два кода, позже было
замечено, что они циклические:
• 23,12,7 -код с порождающим многочленом
1 + 𝑥 + 𝑥5 + 𝑥6 + 𝑥7 + 𝑥9 + 𝑥11
• 11,6,5 3-код с порождающим многочленом
2 + 𝑥2
+ 2𝑥3
+ 𝑥4
+ 𝑥5
Расширенные коды Голея:
• 23,12,7 -код → 24,12,8 -код
• 11,6,5 3-код → 12,6,6 3-код
Совершенные коды
Граница Хемминга (сферической упаковки).
Для любого 𝑛, 𝑀, 𝑑 𝑞-кода имеем
𝑀 ≤
𝑞 𝑛
𝑆 𝑑−1 2 𝟎
Для любого линейного 𝑛, 𝑘, 𝑑 𝑞-кода
𝑆 𝑑−1 2 𝟎 ≤ 𝑞 𝑛−𝑘
Коды, достигающие эту границу, — совершенные.
𝒂1
𝒂2
𝒂 𝑀
⋯
Совершенные коды
𝑆 𝑑−1 2 𝟎 = 𝑞 𝑛−𝑘
Утверждение.
Коды Голея и Хемминга — совершенные.
Доказательство:
• Для 23,12,7 -кода Голея: 𝑖=0
3 23
𝑖
= 223−12
• Для 11,6,5 3-кода Голея: 𝑖=0
2 𝑛
𝑖
⋅ 2𝑖 = 311−6
• Для двоичных кодов Хемминга проверяли ранее. Теперь
проверим в общем случае.
Совершенные коды
Проверочная матрица 𝑞-ичного кода Хемминга содержит все
линейно независимые столбцы высоты 𝑚.
Получается 𝑛 = 𝑞 𝑚−1
𝑞−1
, 𝑘 = 𝑛 − 𝑚, 3
𝑞
-код.
Проверяем соотношение 𝑆 𝑑−1 2 𝟎 = 𝑞 𝑛−𝑘:
𝑆1 𝟎 = 1 + 𝑛 𝑞 − 1 = 𝑞 𝑚 = 𝑞 𝑛−𝑘
Тривиальные совершенные коды
• 𝑛, 1, 𝑛 𝑞-код (состоит из одного слова)
• 𝑛, 2, 𝑛 2-код (пара слов-антиподов) при нечётных 𝑛
Совершенные коды
Теорема. (В. А. Зиновьев, В. К. Леонтьев ’1972, A. Tietäväinen ’1973,
J. H. van Lint ’1971, M. R. Best ’1983, Y. Hong ’1983, V. Pless ’1968) — Б/д.
• Нетривиальных совершенных кодов с расстоянием > 7 не существует.
• Единственным с точностью до эквивалентности совершенным кодом
с расстоянием 7 является 23,12,7 -код Голея.
• Любой нетривиальный код над алфавитом мощности 𝑞 = 𝑝 𝑚
с расстоянием ≤ 5 либо эквивалентен 11,6,5 3-коду Голея,
либо имеет те же длину, число слов и кодовое расстояние,
что и 𝑞 𝑡−1
𝑞−1
, 𝑞 𝑡−1
𝑞−1
− 𝑡, 3
𝑞
-код Хемминга.
Совершенные коды
Следствие теоремы:
Для любого совершенного кода над 𝔽 𝑞 существует линейный код
с той же длиной слов, числом слов и кодовым расстоянием.
Нерешённая проблема:
Существуют ли совершенные коды над алфавитами мощности ≠ 𝑝 𝑚
?
Совершенные коды
Теорема. (Ю. Л. Васильев ’1962,
обобщения: J. Schonheim ’1968, B. Lindstrom ‘1969)
Для любого 𝑞 = 𝑝 𝑚 существуют совершенные коды
с расстоянием 3, не эквивалентные линейным кодам.
Докажем только для случая 𝑞 = 2:
При любом 𝑚 существует нелинейный 2 𝑚 − 1, 22 𝑚−𝑚−1, 3 -код.
Совершенные коды
Лемма. (Конструкция Васильева)
Пусть 𝐶′, 𝐶′′ ⊆ 𝔽2
𝑛
— коды с расстояниями 𝑑′ и 𝑑′′, причём 𝑑′
нечётно. Положим 𝜋 𝒂 ≔ 𝑖 𝑎𝑖.
Для произвольного 𝛾: 𝐶′′ → 𝔽2 рассмотрим код
𝐶 ≔ 𝒄′
∣ 𝒄′
+ 𝒄′′
∣ 𝜋 𝒄′
+ 𝛾 𝒄′′
, где 𝒄′
∈ 𝐶′
, 𝒄′′
∈ 𝐶′′
Тогда 𝐶 является 2𝑛 + 1, 𝐶′ ⋅ 𝐶′′ , 𝑑 -кодом, где
𝑑 ≥ min 2𝑑′
+ 1, 𝑑′′
Доказательство:
Нетривиальна только оценка 𝑑 𝐶 .
(Похоже на конструкцию Плоткина.)
Доказательство леммы Васильева
Возьмём пару различных слов кода 𝐶:
𝒂 = 𝒄′
∣ 𝒄′
+ 𝒄′′
∣ 𝜋 𝒄′
+ 𝛾 𝒄′′
𝒂 = 𝒄′ ∣ 𝒄′ + 𝒄′′ ∣ 𝜋 𝒄′ + 𝛾 𝒄′′
Рассматриваем случаи:
• 𝒄′ ≠ 𝒄′ и 𝒄′′ = 𝒄′′.
Если 𝑑 𝒄′, 𝒄′ = 𝑑′, то 𝜋 𝒄′ ≠ 𝜋 𝒄′ и следовательно
𝑑 𝒂, 𝒂 = 2𝑑′
+ 1.
Если 𝑑 𝒄′, 𝒄′ > 𝑑′, то
𝑑 𝒂, 𝒂 > 2𝑑′
.
Доказательство леммы Васильева
Возьмём пару различных слов кода 𝐶:
𝒂 = 𝒄′
∣ 𝒄′
+ 𝒄′′
∣ 𝜋 𝒄′
+ 𝛾 𝒄′′
𝒂 = 𝒄′ ∣ 𝒄′ + 𝒄′′ ∣ 𝜋 𝒄′ + 𝛾 𝒄′′
Рассматриваем случаи:
• 𝒄′ = 𝒄′ и 𝒄′′ ≠ 𝒄′′.
Тогда, очевидно, 𝑑 𝒂, 𝒂 ≥ 𝑑 𝒄′′, 𝒄′′ ≥ 𝑑′′.
Доказательство леммы Васильева
𝒂 = 𝒄′ ∣ 𝒄′ + 𝒄′′ ∣ 𝜋 𝒄′ + 𝛾 𝒄′′
𝒂 = 𝒄′ ∣ 𝒄′ + 𝒄′′ ∣ 𝜋 𝒄′ + 𝛾 𝒄′′
Остался случай 𝒄′ ≠ 𝒄′ и 𝒄′′ ≠ 𝒄′′:
Пусть 𝒄′ и 𝒄′ отличаются на множестве позиций 𝐷1,
а 𝒄′′
и 𝒄′′
отличаются на множестве позиций 𝐷2.
Тогда 𝒄′ + 𝒄′′ и 𝒄′ + 𝒄′′ отличаются по крайней мере
на множестве 𝐷2 ∖ 𝐷1.
Следовательно
𝑑 𝒂, 𝒂 ≥ 𝐷1 + 𝐷2 ∖ 𝐷1 ≥ 𝐷2 ≥ 𝑑′′
Теорема Васильева
Следствие из леммы Васильева.
Пусть 𝐶′′ ⊆ 𝔽2
𝑛
— код с расстоянием 3.
Для произвольного отображения 𝛾: 𝐶′′
→ 𝔽2 код
𝒄′ ∣ 𝒄′ + 𝒄′′ ∣ 𝜋 𝒄′ + 𝛾 𝒄′′ , где 𝒄′ ∈ 𝔽2
𝑛
, 𝒄′′ ∈ 𝐶′′
является 2𝑛 + 1, 2 𝑛
⋅ 𝐶′′
, 3 -кодом.
Доказательство: применяем Лемму с 𝐶′
≔ 𝔽2
𝑛
.
Замечание: если отображения 𝛾 и 𝛾 + 1 нелинейны,
то получаемый код не эквивалентен никакому линейному.
Теорема Васильева
Следствие из леммы Васильева.
Если существует 𝑛, 𝑀, 3 -код, то существует 2𝑛 + 1, 2 𝑛 ⋅ 𝑀, 3 -код,
не эквивалентный никакому линейному.
Теорема.
Для любого 𝑚 ≥ 2 существует совершенный
2 𝑚
− 1, 22 𝑚−𝑚−1
, 3 -код, не эквивалентный никакому линейному.
Доказательство:
Заметим, что при каждом 𝑚 ≥ 2 есть 2 𝑚−1 − 1, 22 𝑚−1−𝑚, 3 -код
Хемминга, и применим Следствие с 𝑛 ≔ 2 𝑚−1
− 1 и 𝑀 ≔ 22 𝑚−1−𝑚
.
Линейные коды не всегда лучшие
Теорема. (F. P. Preparata ’1968, J.-M. Goethals and S. L. Snover ’1972)
• Для ∀𝑚 ≥ 2 существует 4 𝑚, 24 𝑚−4𝑚, 6 -код.
• Любой линейный код длины 4 𝑚 с расстоянием 6 имеет меньшую
мощность.
Коды с параметрами 4 𝑚, 24 𝑚−4𝑚, 6 называют кодами
Препа́раты.

More Related Content

PDF
Циклические коды. Граница БЧХ
PPT
коды хемминга
PDF
Коды, исправляющие ошибки. Простейшие границы. Коды Варшамова—Тененгольца.
PDF
Коды на основе многочленов и алгоритмы их декодирования
PDF
Линейные коды
PDF
Границы Плоткина и Элайеса—Бассалыго
PDF
Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.
PDF
Коды Адамара. Каскадные коды Форни.
Циклические коды. Граница БЧХ
коды хемминга
Коды, исправляющие ошибки. Простейшие границы. Коды Варшамова—Тененгольца.
Коды на основе многочленов и алгоритмы их декодирования
Линейные коды
Границы Плоткина и Элайеса—Бассалыго
Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.
Коды Адамара. Каскадные коды Форни.

Similar to Циклические коды БЧХ, Хемминга. Восстановление синхронизации (20)

PDF
Приложения теории кодирования
PDF
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
PPT
лекция 14
PPT
лекция 14
PPTX
Теорема Алона о нулях и её применения
PPTX
Use of eliptic curves for generating digital signature
PPTX
Теорема Рамсея, оценки чисел Рамсея
PPT
лабораторная работа 3
PPTX
Гиперграфы. Покрытия. Жадный алгоритм.
PPT
Reshenie diofantovyh uravnenij
PPT
Помехоустойчивое кодирование - Циклические коды
PPT
алгоритм
PDF
Алгоритмы и структуры данных осень 2013 лекция 7
PPTX
Советский суперкомпьютер К-340А и секретные вычисления
PPT
651650.ppt651650.ppt651650.ppt651650.ppt651650.ppt
PDF
Алгоритмы и структуры данных осень 2013 лекция 1
PDF
20101030 reals and_integers_matiyasevich_ekb_lecture05-06
PPTX
Производящие функции
PDF
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и коды
Приложения теории кодирования
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
лекция 14
лекция 14
Теорема Алона о нулях и её применения
Use of eliptic curves for generating digital signature
Теорема Рамсея, оценки чисел Рамсея
лабораторная работа 3
Гиперграфы. Покрытия. Жадный алгоритм.
Reshenie diofantovyh uravnenij
Помехоустойчивое кодирование - Циклические коды
алгоритм
Алгоритмы и структуры данных осень 2013 лекция 7
Советский суперкомпьютер К-340А и секретные вычисления
651650.ppt651650.ppt651650.ppt651650.ppt651650.ppt
Алгоритмы и структуры данных осень 2013 лекция 1
20101030 reals and_integers_matiyasevich_ekb_lecture05-06
Производящие функции
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и коды
Ad

More from Alex Dainiak (20)

PDF
Основы теории графов 11: гамильтоновы циклы
PDF
Основы теории графов 10: экстремальная теория графов
PDF
Основы теории графов 09: раскраски планарных графов, совершенные графы
PDF
Основы теории графов 08: раскраски и списочные раскраски
PDF
Основы теории графов 07: сепараторы в планарных графах
PDF
Основы теории графов 06: триангуляции и трёхсвязные планарные графы
PDF
Основы теории графов 05: критерии планарности графов
PDF
Основы теории графов 04: метрики на деревьях
PDF
Основы теории графов 03: связность
PDF
Основы теории графов 01: напоминание определений, теорема Форда—Фалкерсона
PDF
Основы теории графов 02: факторизация графов (разложение на простые подграфы)
DOCX
Конспект лекций по теории кодирования
PDF
Графовая модель канала связи. Шенноновская ёмкость
PPTX
Визуализация графов: left-right алгоритм распознавания планарности
PPTX
Визуализация графов: укладки деревьев
PPTX
Визуализация графов: теорема Татта о барицентрической укладке
PPTX
Визуализация графов: история
PPTX
Визуализация графов: нижние оценки и NP-трудность
PPTX
Размерность Вапника—Червоненкиса
PPTX
Частично-упорядоченные множества, булеан, теоремы о разложении на цепи и анти...
Основы теории графов 11: гамильтоновы циклы
Основы теории графов 10: экстремальная теория графов
Основы теории графов 09: раскраски планарных графов, совершенные графы
Основы теории графов 08: раскраски и списочные раскраски
Основы теории графов 07: сепараторы в планарных графах
Основы теории графов 06: триангуляции и трёхсвязные планарные графы
Основы теории графов 05: критерии планарности графов
Основы теории графов 04: метрики на деревьях
Основы теории графов 03: связность
Основы теории графов 01: напоминание определений, теорема Форда—Фалкерсона
Основы теории графов 02: факторизация графов (разложение на простые подграфы)
Конспект лекций по теории кодирования
Графовая модель канала связи. Шенноновская ёмкость
Визуализация графов: left-right алгоритм распознавания планарности
Визуализация графов: укладки деревьев
Визуализация графов: теорема Татта о барицентрической укладке
Визуализация графов: история
Визуализация графов: нижние оценки и NP-трудность
Размерность Вапника—Червоненкиса
Частично-упорядоченные множества, булеан, теоремы о разложении на цепи и анти...
Ad

Циклические коды БЧХ, Хемминга. Восстановление синхронизации

  • 1. Теория кодирования МФТИ, осень 2013 Александр Дайняк www.dainiak.com
  • 2. Циклический код Циклический код — это линейный код, такой, что для любого кодового слова 𝑎0, 𝑎1 … , 𝑎 𝑛−1 слово 𝑎 𝑛−1, 𝑎0 … , 𝑎 𝑛−2 также является кодовым. Циклический код — это подмножество 𝐶 кольца 𝔽 𝑥 𝑥 𝑛 − 1 , такое, что • 𝑓1, 𝑓2 ∈ 𝐶 ⇒ ∀𝛼, 𝛽 ∈ 𝔽 𝛼𝑓1 + 𝛽𝑓2 ∈ 𝐶 • 𝑓 ∈ 𝐶 ⇒ 𝑥 ⋅ 𝑓 ∈ 𝐶
  • 3. Примитивный элемент Рассмотрим поле 𝔽 𝑞, где 𝑞 = 𝑝 𝑚, 𝑝 простое. Известно, что множество 𝔽 𝑞 ∖ 0 образует циклическую группу по умножению. Каждый образующий элемент этой группы (порядок которого равен 𝑞 − 1 ) называется примитивным элементом поля. Иными словами, примитивный элемент — это такой 𝜆 ∈ 𝔽 𝑞, что 1, 𝜆, 𝜆2, … , 𝜆 𝑞−2 = 𝔽 𝑞 ∖ 0 .
  • 4. Граница Боуза—Чоудхури—Хоквингема Теорема. (A.Hocquenghem’1959, R.C. Bose and D.K. Ray-Chaudhuri’1960) Пусть 𝜆 — примитивный элемент 𝔽 𝑞. Пусть порождающий многочлен 𝑔 кода 𝐶 ⊆ 𝔽 𝑞 𝑛 таков, что в 𝔽 𝑞 среди его корней есть (различные) числа вида 𝜆 𝑏, 𝜆 𝑏+1, … , 𝜆 𝑏+𝛿−2 Тогда 𝑑 𝐶 ≥ 𝛿.
  • 5. Граница Боуза—Чоудхури—Хоквингема Проблема: • Если применять теорему «в лоб», то невозможно доказать, что кодовое расстояние больше мощности кодового алфавита, даже если это и так. Решение: • Код рассмотрим как подмножество в 𝔽 𝑝 𝑛, но при применении границы БЧХ погрузим поле 𝔽 𝑝 в 𝔽 𝑝 𝑚.
  • 6. Факты о полях • При любом простом 𝑝 и любом 𝑚 поле 𝔽 𝑝 можно вложить как подполе в 𝔽 𝑝 𝑚. Обычно поле 𝔽 𝑝 — это поле вычетов 𝔽 𝑝, а 𝔽 𝑝 𝑚 строится как множество многочленов с коэффициентами из ℤ 𝑝, которые складываются и умножаются по модулю некоторого многочлена степени 𝑚, неприводимого над ℤ 𝑝. Тогда вложение 𝔽 𝑝 в 𝔽 𝑝 𝑚 очевидно: элементам 𝔽 𝑝 соответствуют многочлены степени ≤ 0.
  • 7. Факты о полях • Элементам 𝔽 𝑝 𝑚 можно сопоставить вектора из 𝔽 𝑝 𝑚, так, что сумме элементов 𝔽 𝑝 𝑚 соответствует сумма векторов в 𝔽 𝑝 𝑚. Раз 𝔽 𝑝 𝑚 — многочлены с коэффициентами из 𝔽 𝑝 степени ≤ 𝑚, то каждому элементу 𝔽 𝑝 𝑚 сопоставим вектор коэффициентов многочлена.
  • 8. Коды БЧХ Пусть 𝑝 простое. Рассмотрим циклический код 𝐶 ⊆ 𝔽 𝑝 𝑥 𝑥 𝑛 − 1 с порождающим многочленом 𝑔. Коэффициенты 𝑔 берутся из 𝔽 𝑝, но их можно считать одновременно элементами 𝔽 𝑝 𝑚. Рассмотрим код 𝐶 ⊆ 𝔽 𝑝 𝑚 𝑥 𝑥 𝑛 − 1 , порождённый многочленом 𝑔 (если считать, что 𝑔 ∈ 𝔽 𝑝 𝑚 𝑥 𝑥 𝑛 − 1 ). Можно в том же духе считать, что 𝐶 ⊆ 𝐶.
  • 9. Коды БЧХ Коэффициенты 𝑔 берутся из 𝔽 𝑝, но их можно считать одновременно элементами 𝔽 𝑝 𝑚. 𝐶 ⊆ 𝔽 𝑝 𝑚 𝑥 𝑥 𝑛 − 1 порождён 𝑔. Пусть 𝜆 — примитивный элемент 𝔽 𝑝 𝑚, и 𝑔 𝜆 𝑏 = ⋯ = 𝑔 𝜆 𝑏+𝛿−2 = 0 Тогда граница БЧХ гласит: 𝑑 𝐶 ≥ 𝛿. Так как 𝐶 ⊆ 𝐶, то и 𝑑 𝐶 ≥ 𝛿.
  • 10. Коды БЧХ • Подбираем 𝑔 ∈ 𝔽 𝑝 𝑚 𝑥 𝑥 𝑛 − 1 с коэффициентами из 𝔽 𝑝, так, чтобы в 𝔽 𝑝 𝑚 было выполнено 𝑔 𝜆 𝑏 = ⋯ = 𝑔 𝜆 𝑏+𝛿−2 = 0 и 𝑔| 𝑥 𝑛 − 1 . • На основе 𝑔 строим циклический код в 𝔽 𝑝 𝑥 𝑥 𝑛 − 1 , для которого, по построению, выполнено 𝑑 𝐶 ≥ 𝛿. Вопросы: • Существует ли вообще такой 𝑔? • Как оценить dim 𝐶?
  • 11. Минимальный многочлен Хорошие новости (без доказательства): Для любого 𝛼 ∈ 𝔽 𝑝 𝑚 ∖ 0 существует многочлен 𝑓 ∈ 𝔽 𝑝 𝑚 𝑥 ∖ 0 с коэффициентами из 𝔽 𝑝, для которого 𝑓 𝛼 = 0. Если взять такой 𝑓 минимальной степени, то • 𝑓 неприводим над 𝔽 𝑝, • deg 𝑓 ≤ 𝑚, • 𝑓 ∣ 𝑥 𝑝 𝑚−1 − 1 . Такой 𝑓 называется минимальным многочленом элемента 𝛼.
  • 12. Коды БЧХ Следствия из хороших новостей: • Если 𝑛 = 𝑝 𝑚 − 1, то существует 𝑔, такой, что 𝑔 𝜆 𝑏 = ⋯ = 𝑔 𝜆 𝑏+𝛿−2 = 0 и 𝑔| 𝑥 𝑛 − 1 , причём deg 𝑔 ≤ 𝛿 − 1 𝑚. • Такой 𝑔 можно взять как LCM 𝑓 𝜆 𝑏, … , 𝑓 𝜆 𝑏+𝛿−2 где 𝑓 𝜆 𝑏, … , 𝑓 𝜆 𝑏+𝛿−2 — минимальные многочлены соответствующих элементов.
  • 13. Коды БЧХ Окончательный способ построения кода: • Берём 𝑛 ≔ 𝑝 𝑚 − 1 и 𝑔 ≔ LCM 𝑓 𝜆 𝑏, … , 𝑓 𝜆 𝑏+𝛿−2 где 𝑓 𝜆 𝑏, … , 𝑓 𝜆 𝑏+𝛿−2 — минимальные многочлены соответствующих элементов в 𝔽 𝑝 𝑚. • Строим циклический код в 𝔽 𝑝, используя 𝑔 в качестве порождающего многочлена наименьшей возможной степени Получаем код с параметрами 𝑝 𝑚 − 1, 𝑘, 𝑑 𝑝, где • 𝑘 = 𝑛 − deg 𝑔 ≥ 𝑛 − 𝛿 − 1 𝑚 • 𝑑 ≥ 𝛿
  • 14. Задача восстановления синхронизации Пусть по каналу передаются слова … 𝒂, 𝒃, 𝒄 … 𝑎1 𝑎2 … 𝑎 𝑛 𝑏1 𝑏2 … 𝑏 𝑛 𝑐1 𝑐2 … 𝑐 𝑛 … Если в канале выпадают символы, может произойти ошибка синхронизации: 𝑎𝑖+1 𝑎𝑖+2 … 𝑎 𝑛 𝑏1 𝑏2 … 𝑏 𝑛 𝑐1 𝑐2 … 𝑐 𝑛 … и есть шанс неправильно разбить принятую последовательность на слова: 𝑎𝑖+1 … 𝑎 𝑛 𝑏1 … 𝑏𝑖 ∣ 𝑏𝑖+1 … 𝑏 𝑛 𝑐1 … 𝑐𝑖 ∣ 𝑐𝑖+1 … Если при этом такие слова окажутся кодовыми, то мы далеко не сразу обнаружим ошибку!
  • 15. Задача восстановления синхронизации При потере синхронизации имеем разбиение: 𝑎𝑖+1 … 𝑎 𝑛 𝑏1 … 𝑏𝑖 ∣ 𝑏𝑖+1 … 𝑏 𝑛 𝑐1 … 𝑐𝑖 ∣ 𝑐𝑖+1 … Циклические коды очень плохие с точки зрения восстановления синхронизации: если 𝒂 ∈ 𝐶 и в канал передавалось 𝒂𝒂𝒂 … то при потере синхронизации мы обнаружим ошибку только в самом конце приёма.
  • 16. Свобода от запятой Пусть по каналу передаются слова … 𝒂, 𝒃, 𝒄 … 𝑎1 𝑎2 … 𝑎 𝑛 𝑏1 𝑏2 … 𝑏 𝑛 𝑐1 𝑐2 … 𝑐 𝑛 … Если при приёме слова 𝒃 «запоздать» на 𝑖 тактов, то мы примем слово 𝑏𝑖+1 … 𝑏 𝑛 𝑐1 … 𝑐𝑖 а если «забежать вперёд» на 𝑖 тактов, примем 𝑎 𝑛−𝑖+1 … 𝑎 𝑛 𝑏1 … 𝑏 𝑛−𝑖 Код обладает свободой от запятой степени 𝑟, если для любых кодовых слов 𝒂, 𝒃, 𝒄 и любого 𝑖 ≤ 𝑟 коду не принадлежат слова 𝑏𝑖+1 … 𝑏 𝑛 𝑐1 … 𝑐𝑖 и 𝑎 𝑛−𝑖+1 … 𝑎 𝑛 𝑏1 … 𝑏 𝑛−𝑖.
  • 17. Свобода от запятой Код обладает свободой от запятой степени 𝑟, если для любых кодовых слов 𝒂, 𝒃, 𝒄 и любого 𝑖 ≤ 𝑟 коду не принадлежат слова 𝑏𝑖+1 … 𝑏 𝑛 𝑐1 … 𝑐𝑖 и 𝑎 𝑛−𝑖+1 … 𝑎 𝑛 𝑏1 … 𝑏 𝑛−𝑖. Если 𝑟 ≥ 𝑛 2 , то считаем, что 𝑟 = ∞, а код называется кодом без запятой. Если 𝑟 < ∞, то при приёме можно (перебором) исправить синхросдвиг на ≤ 𝑟 2 символов. Если 𝑟 = ∞, то может быть исправлен любой синхросдвиг.
  • 18. Свобода от запятой Код обладает свободой от запятой степени 𝑟, если для любых кодовых слов 𝒂, 𝒃, 𝒄 и любого 𝑖 ≤ 𝑟 коду не принадлежат слова 𝑏𝑖+1 … 𝑏 𝑛 𝑐1 … 𝑐𝑖 и 𝑎 𝑛−𝑖+1 … 𝑎 𝑛 𝑏1 … 𝑏 𝑛−𝑖. • Циклические коды — не годятся • Зато смежные классы циклических кодов — вполне!
  • 19. Смежные классы линейных кодов Пусть 𝐶 ⊆ 𝔽 𝑛 — линейный код. Его смежный класс — это множество вида 𝐶 + 𝒂 ≔ 𝒄 + 𝒂 ∣ 𝒄 ∈ 𝐶 Заметьте: при 𝒂 ∉ 𝐶 такой код не линейный! Для циклического кода с порождающим многочленом 𝑔 смежный класс имеет вид 𝑓 ⋅ 𝑔 + 𝑠 ∣ 𝑓 ∈ 𝔽 𝑥 𝑥 𝑛 − 1 для некоторого 𝑠 ∈ 𝔽 𝑥 𝑥 𝑛 − 1 .
  • 20. Смежные классы циклических кодов Для циклического кода с порождающим многочленом 𝑔 смежный класс имеет вид 𝑓 ⋅ 𝑔 + 𝑠 ∣ 𝑓 ∈ 𝔽 𝑥 𝑥 𝑛 − 1 для некоторого 𝑠 ∈ 𝔽 𝑥 𝑥 𝑛 − 1 . Теорема. При 𝑠 ≡ 1 степень свободы от запятой смежного класса циклического кода равна deg 𝑔 − 1 при 𝑛 ≥ 2 deg 𝑔, и равна ∞ при 𝑛 < 2 deg 𝑔. (Подробно обоснуем только нижнюю оценку.)
  • 21. Смежные классы циклических кодов Пусть передавались слова 𝒂, 𝒃 ∈ 𝐶. Если при приёме слова 𝒂 произошло запаздывание на 𝑖 тактов, то будет принято слово, которому отвечает многочлен 𝑥−𝑖 ⋅ 𝑓𝒂 − 𝑡1 + 𝑥 𝑛−𝑖 ⋅ 𝑡2, где 𝑡1 и 𝑡2 — многочлены, образованные 𝑖 первыми координатами слов 𝒂 и 𝒃 соответственно, а 𝑓𝒂 — многочлен, отвечающий слову 𝒂.
  • 22. Смежные классы циклических кодов В кольце 𝔽 𝑥 𝑥 𝑛 − 1 имеем 𝑥−𝑖 ⋅ 𝑓𝒂 − 𝑡1 + 𝑥 𝑛−𝑖 ⋅ 𝑡2 = 𝑥 𝑛−𝑖 ⋅ 𝑓𝒂 − 𝑡1 + 𝑡2 Аналогично, если при приёме слова 𝒃 произошло «забегание вперёд», то будет принято слово 𝑥 𝑖 ⋅ 𝑓𝒃 + 𝑡3 − 𝑡4 , где 𝑡3 и 𝑡4 — многочлены, образованные 𝑖 старшими разрядами слова 𝒂 и 𝑖 младшими разрядами 𝒃 соответственно. При этом deg 𝑡1 , deg 𝑡2 , deg 𝑡3 , deg 𝑡4 < 𝑖
  • 23. Смежные классы циклических кодов Итак, в случае рассинхронизации принятое слово будет иметь вид 𝑥 𝑛−𝑖 ⋅ 𝑓 + Δ или 𝑥 𝑖 ⋅ 𝑓 + Δ, где 𝑓 ∈ 𝐶 и deg Δ < 𝑖. Нужно, чтобы 𝑥 𝑛−𝑖 ⋅ 𝑓 + Δ ∉ 𝐶 и 𝑥 𝑖 ⋅ 𝑓 + Δ ∉ 𝐶 при 0 < 𝑖 ≤ 𝑟.
  • 24. Смежные классы циклических кодов Пусть 𝐶 — смежный класс ц.к. вида 𝑓 ⋅ 𝑔 + 1 ∣ 𝑓 ∈ 𝔽 𝑥 𝑥 𝑛 − 1 Нужно, чтобы для любых 𝑓1, 𝑓2, Δ, 𝑖, таких, что deg Δ < 𝑖 и 0 < 𝑖 ≤ 𝑟 в кольце 𝔽 𝑥 𝑥 𝑛 − 1 было выполнено 𝑓1 ⋅ 𝑔 + 1 ≠ 𝑥 𝑛−𝑖 ⋅ 𝑓2 ⋅ 𝑔 + 1 + Δ 𝑓1 ⋅ 𝑔 + 1 ≠ 𝑥 𝑖 ⋅ 𝑓2 ⋅ 𝑔 + 1 + Δ Это равносильно тому, что для любых 𝑓, Δ, 𝑖 𝑓 ⋅ 𝑔 ≠ 𝑥 𝑖 + Δ − 1
  • 25. Смежные классы циклических кодов Пусть 𝐶 — смежный класс ц.к. вида 𝑓 ⋅ 𝑔 + 1 ∣ 𝑓 ∈ 𝔽 𝑥 𝑥 𝑛 − 1 Нужно, чтобы для любых 𝑓, Δ, 𝑖, таких, что deg Δ < 𝑖 и 0 < 𝑖 ≤ 𝑟 в кольце 𝔽 𝑥 𝑥 𝑛 − 1 было выполнено 𝑓 ⋅ 𝑔 ≠ 𝑥 𝑖 + Δ − 1 Имеем 𝑥 𝑖 + Δ − 1 ≢ 0 при любом 𝑖 > 0. Т.к. deg 𝑥 𝑖 + Δ − 1 = 𝑖 ≤ 𝑟, то достаточно, чтобы deg 𝑔 > 𝑟. Это и требовалось доказать.
  • 26. Циклическое представление кодов Хемминга Пусть 𝜆 — примитивный элемент поля 𝔽2 𝑚. Пусть 𝑔 — минимальный многочлен для 𝜆, и 𝐶 ⊂ 𝔽2 2 𝑚−1 — код, порождённый 𝑔. Любой кодовый многочлен 𝑓 ∈ 𝐶 имеет корень, равный 𝜆. Поэтому кодовые вектора 𝑐0, … , 𝑐2 𝑚−2 удовлетворяют соотношению 𝑐0 + 𝑐1 𝜆 + 𝑐2 𝜆2 + ⋯ + 𝑐2 𝑚−2 𝜆2 𝑚−2 = 0
  • 27. Циклическое представление кодов Хемминга Кодовые вектора 𝑐0, … , 𝑐2 𝑚−2 удовлетворяют соотношению 𝑐0 + 𝑐1 𝜆 + 𝑐2 𝜆2 + ⋯ + 𝑐2 𝑚−2 𝜆2 𝑚−2 = 0 Так как 𝜆0, 𝜆1, … , 𝜆2 𝑚−2 = 𝔽2 𝑚 ∖ 0 , и так как каждому элементу 𝔽2 𝑚 отвечает вектор из 𝔽2 𝑚 , то проверочная матрица кода равна 𝑣 𝜆0, 𝑣 𝜆1, … , 𝑣 𝜆2 𝑚−2 ∈ 𝔽2 𝑚× 2 𝑚−1 где 𝑣 𝜆 𝑖 — вектор, отвечающий 𝜆𝑖. Столбцы матрицы — все ненулевые вектора 𝔽2 𝑚 .
  • 28. Циклическое представление кодов Хемминга Утверждение. Двоичный код Хемминга с параметрами 2 𝑚 − 1, 2 𝑚 − 1 − 𝑚, 3 эквивалентен циклическому коду, порождённому минимальным многочленом примитивного элемента 𝔽2 𝑚.
  • 29. Коды Голея М. Голей (M. J. E. Golay) предложил два кода, позже было замечено, что они циклические: • 23,12,7 -код с порождающим многочленом 1 + 𝑥 + 𝑥5 + 𝑥6 + 𝑥7 + 𝑥9 + 𝑥11 • 11,6,5 3-код с порождающим многочленом 2 + 𝑥2 + 2𝑥3 + 𝑥4 + 𝑥5 Расширенные коды Голея: • 23,12,7 -код → 24,12,8 -код • 11,6,5 3-код → 12,6,6 3-код
  • 30. Совершенные коды Граница Хемминга (сферической упаковки). Для любого 𝑛, 𝑀, 𝑑 𝑞-кода имеем 𝑀 ≤ 𝑞 𝑛 𝑆 𝑑−1 2 𝟎 Для любого линейного 𝑛, 𝑘, 𝑑 𝑞-кода 𝑆 𝑑−1 2 𝟎 ≤ 𝑞 𝑛−𝑘 Коды, достигающие эту границу, — совершенные. 𝒂1 𝒂2 𝒂 𝑀 ⋯
  • 31. Совершенные коды 𝑆 𝑑−1 2 𝟎 = 𝑞 𝑛−𝑘 Утверждение. Коды Голея и Хемминга — совершенные. Доказательство: • Для 23,12,7 -кода Голея: 𝑖=0 3 23 𝑖 = 223−12 • Для 11,6,5 3-кода Голея: 𝑖=0 2 𝑛 𝑖 ⋅ 2𝑖 = 311−6 • Для двоичных кодов Хемминга проверяли ранее. Теперь проверим в общем случае.
  • 32. Совершенные коды Проверочная матрица 𝑞-ичного кода Хемминга содержит все линейно независимые столбцы высоты 𝑚. Получается 𝑛 = 𝑞 𝑚−1 𝑞−1 , 𝑘 = 𝑛 − 𝑚, 3 𝑞 -код. Проверяем соотношение 𝑆 𝑑−1 2 𝟎 = 𝑞 𝑛−𝑘: 𝑆1 𝟎 = 1 + 𝑛 𝑞 − 1 = 𝑞 𝑚 = 𝑞 𝑛−𝑘
  • 33. Тривиальные совершенные коды • 𝑛, 1, 𝑛 𝑞-код (состоит из одного слова) • 𝑛, 2, 𝑛 2-код (пара слов-антиподов) при нечётных 𝑛
  • 34. Совершенные коды Теорема. (В. А. Зиновьев, В. К. Леонтьев ’1972, A. Tietäväinen ’1973, J. H. van Lint ’1971, M. R. Best ’1983, Y. Hong ’1983, V. Pless ’1968) — Б/д. • Нетривиальных совершенных кодов с расстоянием > 7 не существует. • Единственным с точностью до эквивалентности совершенным кодом с расстоянием 7 является 23,12,7 -код Голея. • Любой нетривиальный код над алфавитом мощности 𝑞 = 𝑝 𝑚 с расстоянием ≤ 5 либо эквивалентен 11,6,5 3-коду Голея, либо имеет те же длину, число слов и кодовое расстояние, что и 𝑞 𝑡−1 𝑞−1 , 𝑞 𝑡−1 𝑞−1 − 𝑡, 3 𝑞 -код Хемминга.
  • 35. Совершенные коды Следствие теоремы: Для любого совершенного кода над 𝔽 𝑞 существует линейный код с той же длиной слов, числом слов и кодовым расстоянием. Нерешённая проблема: Существуют ли совершенные коды над алфавитами мощности ≠ 𝑝 𝑚 ?
  • 36. Совершенные коды Теорема. (Ю. Л. Васильев ’1962, обобщения: J. Schonheim ’1968, B. Lindstrom ‘1969) Для любого 𝑞 = 𝑝 𝑚 существуют совершенные коды с расстоянием 3, не эквивалентные линейным кодам. Докажем только для случая 𝑞 = 2: При любом 𝑚 существует нелинейный 2 𝑚 − 1, 22 𝑚−𝑚−1, 3 -код.
  • 37. Совершенные коды Лемма. (Конструкция Васильева) Пусть 𝐶′, 𝐶′′ ⊆ 𝔽2 𝑛 — коды с расстояниями 𝑑′ и 𝑑′′, причём 𝑑′ нечётно. Положим 𝜋 𝒂 ≔ 𝑖 𝑎𝑖. Для произвольного 𝛾: 𝐶′′ → 𝔽2 рассмотрим код 𝐶 ≔ 𝒄′ ∣ 𝒄′ + 𝒄′′ ∣ 𝜋 𝒄′ + 𝛾 𝒄′′ , где 𝒄′ ∈ 𝐶′ , 𝒄′′ ∈ 𝐶′′ Тогда 𝐶 является 2𝑛 + 1, 𝐶′ ⋅ 𝐶′′ , 𝑑 -кодом, где 𝑑 ≥ min 2𝑑′ + 1, 𝑑′′ Доказательство: Нетривиальна только оценка 𝑑 𝐶 . (Похоже на конструкцию Плоткина.)
  • 38. Доказательство леммы Васильева Возьмём пару различных слов кода 𝐶: 𝒂 = 𝒄′ ∣ 𝒄′ + 𝒄′′ ∣ 𝜋 𝒄′ + 𝛾 𝒄′′ 𝒂 = 𝒄′ ∣ 𝒄′ + 𝒄′′ ∣ 𝜋 𝒄′ + 𝛾 𝒄′′ Рассматриваем случаи: • 𝒄′ ≠ 𝒄′ и 𝒄′′ = 𝒄′′. Если 𝑑 𝒄′, 𝒄′ = 𝑑′, то 𝜋 𝒄′ ≠ 𝜋 𝒄′ и следовательно 𝑑 𝒂, 𝒂 = 2𝑑′ + 1. Если 𝑑 𝒄′, 𝒄′ > 𝑑′, то 𝑑 𝒂, 𝒂 > 2𝑑′ .
  • 39. Доказательство леммы Васильева Возьмём пару различных слов кода 𝐶: 𝒂 = 𝒄′ ∣ 𝒄′ + 𝒄′′ ∣ 𝜋 𝒄′ + 𝛾 𝒄′′ 𝒂 = 𝒄′ ∣ 𝒄′ + 𝒄′′ ∣ 𝜋 𝒄′ + 𝛾 𝒄′′ Рассматриваем случаи: • 𝒄′ = 𝒄′ и 𝒄′′ ≠ 𝒄′′. Тогда, очевидно, 𝑑 𝒂, 𝒂 ≥ 𝑑 𝒄′′, 𝒄′′ ≥ 𝑑′′.
  • 40. Доказательство леммы Васильева 𝒂 = 𝒄′ ∣ 𝒄′ + 𝒄′′ ∣ 𝜋 𝒄′ + 𝛾 𝒄′′ 𝒂 = 𝒄′ ∣ 𝒄′ + 𝒄′′ ∣ 𝜋 𝒄′ + 𝛾 𝒄′′ Остался случай 𝒄′ ≠ 𝒄′ и 𝒄′′ ≠ 𝒄′′: Пусть 𝒄′ и 𝒄′ отличаются на множестве позиций 𝐷1, а 𝒄′′ и 𝒄′′ отличаются на множестве позиций 𝐷2. Тогда 𝒄′ + 𝒄′′ и 𝒄′ + 𝒄′′ отличаются по крайней мере на множестве 𝐷2 ∖ 𝐷1. Следовательно 𝑑 𝒂, 𝒂 ≥ 𝐷1 + 𝐷2 ∖ 𝐷1 ≥ 𝐷2 ≥ 𝑑′′
  • 41. Теорема Васильева Следствие из леммы Васильева. Пусть 𝐶′′ ⊆ 𝔽2 𝑛 — код с расстоянием 3. Для произвольного отображения 𝛾: 𝐶′′ → 𝔽2 код 𝒄′ ∣ 𝒄′ + 𝒄′′ ∣ 𝜋 𝒄′ + 𝛾 𝒄′′ , где 𝒄′ ∈ 𝔽2 𝑛 , 𝒄′′ ∈ 𝐶′′ является 2𝑛 + 1, 2 𝑛 ⋅ 𝐶′′ , 3 -кодом. Доказательство: применяем Лемму с 𝐶′ ≔ 𝔽2 𝑛 . Замечание: если отображения 𝛾 и 𝛾 + 1 нелинейны, то получаемый код не эквивалентен никакому линейному.
  • 42. Теорема Васильева Следствие из леммы Васильева. Если существует 𝑛, 𝑀, 3 -код, то существует 2𝑛 + 1, 2 𝑛 ⋅ 𝑀, 3 -код, не эквивалентный никакому линейному. Теорема. Для любого 𝑚 ≥ 2 существует совершенный 2 𝑚 − 1, 22 𝑚−𝑚−1 , 3 -код, не эквивалентный никакому линейному. Доказательство: Заметим, что при каждом 𝑚 ≥ 2 есть 2 𝑚−1 − 1, 22 𝑚−1−𝑚, 3 -код Хемминга, и применим Следствие с 𝑛 ≔ 2 𝑚−1 − 1 и 𝑀 ≔ 22 𝑚−1−𝑚 .
  • 43. Линейные коды не всегда лучшие Теорема. (F. P. Preparata ’1968, J.-M. Goethals and S. L. Snover ’1972) • Для ∀𝑚 ≥ 2 существует 4 𝑚, 24 𝑚−4𝑚, 6 -код. • Любой линейный код длины 4 𝑚 с расстоянием 6 имеет меньшую мощность. Коды с параметрами 4 𝑚, 24 𝑚−4𝑚, 6 называют кодами Препа́раты.