Теория кодированияМФТИ, осень 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𝑚.
Пусть 𝑔 — минимальный многочлен для 𝜆, и 𝐶 ⊂ 𝔽22𝑚−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 -кода Голея: 𝑖=03 23
𝑖= 223−12
• Для 11,6,5 3-кода Голея: 𝑖=02 𝑛
𝑖⋅ 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 называют кодами
Препа́раты.