ݺߣ

ݺߣShare a Scribd company logo
Теория кодирования
МФТИ, осень 2013
Александр Дайняк
www.dainiak.com
Коды Рида—Соломона
(I.S. Reed, G. Solomon)
Пусть 𝑘 ≤ 𝑛 ≤ 𝑞.
Пусть 𝑡1, … , 𝑡 𝑛 ∈ 𝔽 𝑞 — фиксированные, попарно различные
элементы.
Рассмотрим такое множество слов:
𝐶 ≔ 𝑃 𝑡1 , … , 𝑃(𝑡 𝑛) ∣ 𝑃 ∈ 𝔽 𝑞 𝑥 ∧ deg 𝑃 < 𝑘
Непосредственно проверяется, что 𝐶 — линейное пространство:
𝛼 ⋅ 𝑃1 𝑡1 , … , 𝑃1 𝑡 𝑛 + 𝛽 ⋅ 𝑃2 𝑡1 , … , 𝑃2 𝑡 𝑛 =
= 𝛼𝑃1 + 𝛽𝑃2 𝑡1 , … , 𝛼𝑃1 + 𝛽𝑃2 𝑡 𝑛
Коды Рида—Соломона
По условию, 𝑘 ≤ 𝑛 ≤ 𝑞.
𝐶 ≔ 𝑃 𝑡1 , … , 𝑃(𝑡 𝑛) ∣ 𝑃 ∈ 𝔽 𝑞 𝑥 ∧ deg 𝑃 < 𝑘
• У многочлена степени < 𝑘 может быть не более 𝑘 − 1 корней,
поэтому если 𝑃 ≢ 0, то в векторе 𝑃 𝑡1 , … , 𝑃(𝑡 𝑛) не более
𝑘 − 1 нулевых координат.
Отсюда
𝑑 𝐶 = min
𝒂∈𝐶
𝒂≠𝟎
𝒂 = min
𝑃≢0
# 𝑖 ∣ 𝑃 𝑡𝑖 ≠ 0 = 𝑛 − 𝑘 − 1
Коды Рида—Соломона
По условию, 𝑘 ≤ 𝑛 ≤ 𝑞.
𝐶 ≔ 𝑃 𝑡1 , … , 𝑃(𝑡 𝑛) ∣ 𝑃 ∈ 𝔽 𝑞 𝑥 ∧ deg 𝑃 < 𝑘
• Вектора 𝑃 𝑡1 , … , 𝑃(𝑡 𝑛) при разных 𝑃 различны: если
выполнено 𝑃1 𝑡1 , … , 𝑃1(𝑡 𝑛) = 𝑃2 𝑡1 , … , 𝑃2(𝑡 𝑛) ,
то у многочлена 𝑃1 − 𝑃2 не менее 𝑛 корней, а т.к. deg( 𝑃1 −
Коды Рида—Соломона
Итак, для любых 𝑘 ≤ 𝑛 ≤ 𝑞 множество
𝑃 𝑡1 , … , 𝑃(𝑡 𝑛) ∣ 𝑃 ∈ 𝔽 𝑞 𝑥 ∧ deg 𝑃 < 𝑘
является 𝑛, 𝑘, 𝑑 𝑞-кодом, где 𝑑 = 𝑛 − 𝑘 + 1.
Вспомним границу Синглтона: «для любого 𝑛, 𝑘, 𝑑 𝑞-кода
выполнено 𝑘 ≤ 𝑛 − 𝑑 + 1».
То есть построенный код достигает границы Синглтона!
Недостаток кода: кодовый алфавит нужно брать очень большим,
т.к. 𝑞 ≥ 𝑛.
Коды Рида—Соломона: декодирование
Т.к. 𝑑 𝐶 = 𝑛 − 𝑘 + 1, то код может исправлять 𝑛−𝑘
2
ошибок.
Постановка задачи декодирования:
• Дано искажённое кодовое слово кода Р.—С. 𝑝1, … , 𝑝 𝑛 ∈ 𝔽 𝑞
𝑛
• Найти 𝑃 ∈ 𝔽 𝑞 𝑥 , такой, что deg 𝑃 ≤ 𝑘 − 1 и
# 𝑖 ∣ 𝑃 𝑡𝑖 ≠ 𝑝𝑖 ≤ 𝑛−𝑘
2
(нам гарантируется, что такой 𝑃 существует)
Далее приведём алгоритм Берлекэмпа—Велча (E.R. Berlekamp,
L.R. Welch).
Коды Рида—Соломона: декодирование
Дано 𝑝1, … , 𝑝 𝑛 ∈ 𝔽 𝑞
𝑛.
Найти 𝑃: deg 𝑃 < 𝑘 ∧ # 𝑖 ∣ 𝑃 𝑡𝑖 ≠ 𝑝𝑖 ≤ 𝑛 − 𝑘 2
Рассмотрим многочлен ошибок
𝐸 𝑥 ≔
𝑖: 𝑃 𝑡 𝑖 ≠ 𝑝 𝑖
𝑥 − 𝑡𝑖
и вспомогательный многочлен 𝑈 𝑥 ≔ 𝐸 𝑥 ⋅ 𝑃 𝑥 .
Заметим, что
• deg 𝐸 = 𝑠 и coef 𝑥 𝑠 𝐸 = 1, где 𝑠 ≔ # 𝑖 ∣ 𝑃 𝑡𝑖 ≠ 𝑝𝑖
• deg 𝑈 ≤ deg 𝐸 + deg 𝑃 ≤ 𝑠 + 𝑘 − 1
• Для любого 𝑖 ∈ 1, … , 𝑛 выполнено равенство
𝑈 𝑡𝑖 = 𝐸 𝑡𝑖 ⋅ 𝑝𝑖
Коды Рида—Соломона: декодирование
Дано 𝑝1, … , 𝑝 𝑛 ∈ 𝔽 𝑞
𝑛
.
Найти 𝑃: deg 𝑃 < 𝑘 ∧ # 𝑖 ∣ 𝑃 𝑡𝑖 ≠ 𝑝𝑖 ≤ 𝑛 − 𝑘 2
Идея: мы не знаем 𝑃, так что попытаемся найти какие-то многочлены 𝐸
и 𝑈, для которых
• deg 𝐸 = 𝑠 и coef 𝑥 𝑠 𝐸 = 1, где 𝑠 ≤ 𝑛 − 𝑘 2
• deg 𝑈 ≤ 𝑠 + 𝑘 − 1
• Для любого 𝑖 ∈ 1, … , 𝑛 выполнено равенство
𝑈 𝑡𝑖 = 𝐸 𝑡𝑖 ⋅ 𝑝𝑖
Мы знаем, что 𝐸 и 𝑈 точно найдутся. Вопросы:
1) как это сделать эффективно, и
2) что если найденные 𝐸 и 𝑈 не совпадут с нужными нам 𝐸 и 𝑈?
Коды Рида—Соломона: декодирование
• deg 𝐸 = 𝑠 и coef 𝑥 𝑠 𝐸 = 1, где 𝑠 ≤ 𝑛 − 𝑘 2
• deg 𝑈 ≤ 𝑠 + 𝑘 − 1
• ∀𝑖 ∈ 1, … , 𝑛 выполнено 𝑈 𝑡𝑖 = 𝑝𝑖 ⋅ 𝐸 𝑡𝑖
Зафиксируем 𝑠 и положим 𝐸 = 𝑥 𝑠
+ 𝑗≤𝑠−1 𝑒𝑗 𝑥 𝑗
и 𝑈 = 𝑗≤𝑠+𝑘−1 𝑢𝑗 𝑥 𝑗
, где
𝑒0, … , 𝑒 𝑠−1, 𝑢0, … , 𝑢 𝑠+𝑘−1 — неопределённые коэффициенты. Получим систему:
𝑝1 𝑡1
𝑠
+
0≤𝑗≤𝑠−1
𝑝1 𝑒𝑗 𝑡1
𝑗
=
0≤𝑗≤𝑘+𝑠−1
𝑢𝑗 𝑡1
𝑗
⋮
𝑝 𝑛 𝑡 𝑛
𝑠
+
0≤𝑗≤𝑠−1
𝑝 𝑛 𝑒𝑗 𝑡 𝑛
𝑗
=
0≤𝑗≤𝑘+𝑠−1
𝑢𝑗 𝑡 𝑛
𝑗
Коды Рида—Соломона: декодирование
При любом фиксированном 𝑠 ≤ 𝑛 − 𝑘 2 система
𝑝1 𝑡1
𝑠
= −
0≤𝑗≤𝑠−1
𝑝1 𝑡1
𝑗
⋅ 𝑒𝑗 +
0≤𝑗≤𝑘+𝑠−1
𝑡1
𝑗
⋅ 𝑢𝑗
⋮
𝑝 𝑛 𝑡 𝑛
𝑠 = −
0≤𝑗≤𝑠−1
𝑝 𝑛 𝑡 𝑛
𝑗
⋅ 𝑒𝑗 +
0≤𝑗≤𝑘+𝑠−1
𝑡 𝑛
𝑗
⋅ 𝑢𝑗
линейная относительно 𝑒0, … , 𝑒𝑠−1, 𝑢0, … , 𝑢 𝑠+𝑘−1.
Коды Рида—Соломона: декодирование
При любом фиксированном 𝑠 система
𝑝1 𝑡1
𝑠
= −
0≤𝑗≤𝑠−1
𝑝1 𝑡1
𝑗
⋅ 𝑒𝑗 +
0≤𝑗≤𝑘+𝑠−1
𝑡1
𝑗
⋅ 𝑢𝑗
⋮
𝑝 𝑛 𝑡 𝑛
𝑠 = −
0≤𝑗≤𝑠−1
𝑝 𝑛 𝑡 𝑛
𝑗
⋅ 𝑒𝑗 +
0≤𝑗≤𝑘+𝑠−1
𝑡 𝑛
𝑗
⋅ 𝑢𝑗
линейная относительно 𝑒0, … , 𝑒 𝑠−1, 𝑢0, … , 𝑢 𝑠+𝑘−1 ⇒ если у неё есть
решение, находится оно быстро.
Перебирая 𝑠 = 0,1, …, найдём то 𝑠, при котором решение есть
(такое 𝑠 точно существует, так как есть исходные многочлены 𝐸 и 𝑈).
Тем самым найдём 𝐸 и 𝑈.
Коды Рида—Соломона: декодирование
Нашли какие-то 𝐸 и 𝑈.
Если бы это были те самые 𝐸 и 𝑈, то мы сразу нашли бы 𝑃 𝑥 = 𝑈 𝑥
𝐸 𝑥
.
Оказывается, и в ином случае 𝑃 будет выражаться так же:
Утверждение.
Если пары 𝐸1, 𝑈1 и 𝐸2, 𝑈2 удовлетворяют системе
• deg 𝐸 = 𝑠 и coef 𝑥 𝑠 𝐸 = 1, где 𝑠 ≤ 𝑛 − 𝑘 2
• deg 𝑈 ≤ 𝑠 + 𝑘 − 1
• ∀𝑖 ∈ 1, … , 𝑛 выполнено 𝑈 𝑡𝑖 = 𝑝𝑖 ⋅ 𝐸 𝑡𝑖
то 𝑈1
𝐸1
≡ 𝑈2
𝐸2
.
Коды Рида—Соломона: декодирование
Доказательство утверждения:
Пусть 𝐸1, 𝑈1 и 𝐸2, 𝑈2 удовлетворяют системе
• deg 𝐸 = 𝑠 и coef 𝑥 𝑠 𝐸 = 1, где 𝑠 ≤ 𝑛 − 𝑘 2
• deg 𝑈 ≤ 𝑠 + 𝑘 − 1
• ∀𝑖 ∈ 1, … , 𝑛 выполнено 𝑈 𝑡𝑖 = 𝑝𝑖 ⋅ 𝐸 𝑡𝑖
Имеем deg 𝑈1 𝐸2 ≤ deg 𝑈1 + deg 𝐸2 ≤ 𝑛−𝑘
2
+ 𝑘 − 1 + 𝑛−𝑘
2
≤ 𝑛 − 1.
Аналогично deg 𝐸1 𝑈2 ≤ 𝑛 − 1.
Далее, для любого 𝑖 имеем
𝑈1 𝑡𝑖 𝐸2 𝑡𝑖 = 𝑝𝑖 𝐸1 𝑡𝑖 𝐸2 𝑡𝑖 = 𝐸1 𝑡𝑖 𝑝𝑖 𝐸2 𝑡𝑖 = 𝐸1 𝑡𝑖 𝑈2 𝑡𝑖
Коды Рида—Соломона: декодирование
Завершение доказательства леммы:
Мы установили, что
• deg 𝑈1 𝐸2 − 𝐸1 𝑈2 ≤ 𝑛 − 1
• 𝑈1 𝑡𝑖 𝐸2 𝑡𝑖 − 𝐸1 𝑡𝑖 𝑈2 𝑡𝑖 = 0 для 𝑖 = 1, … , 𝑛
Отсюда следует, что
𝑈1 𝑥 𝐸2 𝑥 − 𝐸1 𝑥 𝑈2 𝑥 ≡ 0
а это эквивалентно тождеству
𝑈1
𝐸1
≡
𝑈2
𝐸2
Коды Рида—Соломона
Простор для обобщений:
• Рассматривать многочлены не от одной, а от многих переменных
(коды Рида—Маллера и другие)
• Рассматривать не все возможные многочлены, а специально
выбранное их подмножество
(алгеброгеометрические коды)
Коды Рида—Маллера (I.S. Reed, D.E. Muller)
Зафиксируем параметры 𝑟, 𝑚 , где 𝑟 ≤ 𝑚.
Полагаем 𝑞 ≔ 2 и берём многочлены от 𝑚 переменных степени ≤ 𝑟.
Базис в пространстве 𝑃 ∈ 𝔽2 𝑥1, … , 𝑥 𝑚 , deg 𝑃 ≤ 𝑟 :
1 ∪
∪ 𝑥1, 𝑥2, … , 𝑥 𝑚 ∪
∪ 𝑥1 𝑥2, 𝑥1 𝑥3, … , 𝑥 𝑚−1 𝑥 𝑚 ∪
⋮
∪ 𝑥𝑖1
𝑥𝑖2
⋯ 𝑥𝑖 𝑟
∣ 1 ≤ 𝑖1, … , 𝑖 𝑟 ≤ 𝑚
Размерность этого пространства равна 𝑘 = 𝑡≤𝑟
𝑚
𝑡
.
Коды Рида—Маллера
Рассматриваем значения многочленов во всех точках 𝔽2
𝑚
:
𝐶 ≔ { 𝑃 0 … 00 , 𝑃 0 … 01 , … , 𝑃 1 … 11
где 𝑃 ∈ 𝔽2 𝑥1, … , 𝑥 𝑚 и deg 𝑃 ≤ 𝑟
Получаем 𝑛, 𝑘, 𝑑 -код, где 𝑛 = 2 𝑚 и 𝑘 = 𝑡≤𝑟
𝑚
𝑡
.
Чтобы оценить 𝑑, понадобится доказать лемму:
Лемма.
Если 𝑃 ∈ 𝔽2 𝑥1, … , 𝑥 𝑚 , 𝑃 ≢ 0 и deg 𝑃 ≤ 𝑟, то
# 𝑠1, … , 𝑠 𝑚 ∈ 𝔽2
𝑚
∣ 𝑃 𝑠1, … , 𝑠 𝑚 = 1 ≥ 2 𝑚−𝑟
Коды Рида—Маллера: кодовое расстояние
Лемма.
Если 𝑃 ∈ 𝔽2 𝑥1, … , 𝑥 𝑚 , 𝑃 ≢ 0 и deg 𝑃 ≤ 𝑟, то
# 𝑠1, … , 𝑠 𝑚 ∈ 𝔽2
𝑚
∣ 𝑃 𝑠1, … , 𝑠 𝑚 = 1 ≥ 2 𝑚−𝑟
Доказательство: индукция по 𝑚.
База: 𝑚 = 1. Тогда 𝑃 ∈ 1, 𝑥1, 𝑥1 + 1 — очевидно.
Переход: 𝑚 − 1 → 𝑚. Б.о.о. будем считать, что 𝑃 существенно
зависит от 𝑥 𝑚. Распишем
𝑃 𝑥1, … , 𝑥 𝑚 = 𝑃1 𝑥1, … 𝑥 𝑚−1 + 𝑥 𝑚 𝑃2 𝑥1, … 𝑥 𝑚−1
Так как 𝑃2 ≢ 0 и deg 𝑃2 ≤ 𝑟 − 1, то
# 𝑠1, … , 𝑠 𝑚−1 ∣ 𝑃2 𝑠1, … , 𝑠 𝑚−1 = 1 ≥ 2 𝑚−1 − 𝑟−1
Коды Рида—Маллера: кодовое расстояние
𝑃 𝑥1, … , 𝑥 𝑚 = 𝑃1 𝑥1, … 𝑥 𝑚−1 + 𝑥 𝑚 𝑃2 𝑥1, … 𝑥 𝑚−1
# 𝑠1, … , 𝑠 𝑚−1 ∣ 𝑃2 𝑠1, … , 𝑠 𝑚−1 = 1 ≥ 2 𝑚−𝑟
Каждый набор 𝑠1, … , 𝑠 𝑚−1 на котором 𝑃2 = 1, можно дополнить
до набора, на котором 𝑃 = 1:
• если 𝑃1 𝑠1, … , 𝑠 𝑚−1 = 0, то возьмём набор 𝑠1, … , 𝑠 𝑚−1, 1 ,
• если 𝑃1 𝑠1, … , 𝑠 𝑚−1 = 1, то возьмём набор 𝑠1, … , 𝑠 𝑚−1, 0 .
Значит, 𝑃 = 1 не менее чем на 2 𝑚−𝑟 наборах.
Коды Рида—Маллера:
мажоритарное декодирование
Код Рида—Маллера с параметрами 𝑟, 𝑚 является
2 𝑚
, 𝑡≤𝑟
𝑚
𝑡
, 2 𝑚−𝑟
-кодом.
Значит, он может исправлять вплоть до 2 𝑚−𝑟−1 − 1 ошибок, и это можно
делать очень быстро многоэтапным голосованием (этот способ
декодирования также называют мажоритарным).
Постановка задачи:
• В векторе из кода Р.—М. (т.е. векторе значений многочлена степени ≤ 𝑟)
изменяются менее 2 𝑚−𝑟−1 координат (т.е. значение многочлена искажается
менее чем в стольких точках)
• Нужно восстановить по искажённому вектору значений исходный вектор
значений (т.е. исходный многочлен)
Коды Рида—Маллера:
мажоритарное декодирование
Кодовое слово — это значения многочлена, выразимого линейной
комбинацией в базисе
1 ∪ 𝑥1, 𝑥2, … , 𝑥 𝑚 ∪ ⋯ ∪ 𝑥𝑖1
𝑥𝑖2
⋯ 𝑥𝑖 𝑟
∣ 1 ≤ 𝑖1, … , 𝑖 𝑟 ≤ 𝑚
Восстановить кодовое слово — это то же, что найти коэффициенты
этой линейной комбинации.
Лемма о старшем коэффициенте
многочленов над 𝔽2
Лемма.
Для любого 𝑃 ∈ 𝔽2 𝑥1, … , 𝑥 𝑟 справедлива формула
coef 𝑥1⋅…⋅𝑥 𝑟
𝑃 =
𝛼1,…,𝛼 𝑟∈𝔽2
𝑃 𝛼1, … , 𝛼 𝑟
Доказательство:
Многочлен 𝑃 можно представить в виде
𝑃 = 𝑐 ⋅ 𝑥1 … 𝑥 𝑟 + 𝑃1 + ⋯ + 𝑃𝑟
где в 𝑃𝑖 не входит 𝑥𝑖. Получаем
𝛼1,…,𝛼 𝑟∈𝔽2
𝑃 𝛼1, … , 𝛼 𝑟 =
𝛼1,…,𝛼 𝑟∈𝔽2
𝑐 ⋅ 𝛼1 … 𝛼 𝑟
=𝑐
+
1≤𝑖≤𝑟 𝛼1,…,𝛼 𝑟∈𝔽2
𝑃𝑖 𝛼1, … , 𝛼 𝑟
=0
Лемма о старшем коэффициенте
многочленов над 𝔽2
𝛼1,…,𝛼 𝑟∈𝔽2
𝑃𝑖 𝛼1, … , 𝛼 𝑟 =
𝛼1,…𝛼 𝑖−1,𝛼 𝑖+1,…,𝛼 𝑟∈𝔽2
𝑃𝑖 𝛼1, … 𝛼𝑖−1, 0, 𝛼𝑖+1, … , 𝛼 𝑟
+𝑃𝑖 𝛼1, … 𝛼𝑖−1, 1, 𝛼𝑖+1, … , 𝛼 𝑟
Но т.к. в слагаемые 𝑃𝑖 переменная 𝑥𝑖 не входит, то
𝑃𝑖 𝛼1, … 𝛼𝑖−1, 0, 𝛼𝑖+1, … , 𝛼 𝑟 = 𝑃𝑖 𝛼1, … 𝛼𝑖−1, 1, 𝛼𝑖+1, … , 𝛼 𝑟
а значит по модулю 2 каждое слагаемое в последней сумме равно нулю.
Лемма доказана.
Коды Рида—Маллера:
мажоритарное декодирование
Пусть 𝑃 — произвольный многочлен из кода Рида—Маллера.
Зафиксируем произвольные 𝛽1, … , 𝛽 𝑚−𝑟 ∈ 𝔽2, и обозначим
𝑃 𝛽1,…,𝛽 𝑚−𝑟
≔ 𝑃 𝑥1, … , 𝑥 𝑟, 𝛽1, … , 𝛽 𝑚−𝑟
Имеем 𝑃 𝛽1,…,𝛽 𝑚−𝑟
∈ 𝔽2 𝑥1, … , 𝑥 𝑟 , поэтому по лемме, доказанной
только что, получаем
𝛼1,…,𝛼 𝑟∈𝔽2
𝑃 𝛽1,…,𝛽 𝑚−𝑟
𝛼1, … , 𝛼 𝑟 = coef 𝑥1⋅…⋅𝑥 𝑟
𝑃 𝛽1,…,𝛽 𝑚−𝑟
= coef 𝑥1⋅…⋅𝑥 𝑟
𝑃
Коды Рида—Маллера:
мажоритарное декодирование
Для любых 𝛽1, … , 𝛽 𝑚−𝑟 ∈ 𝔽2 мы получили
coef 𝑥1⋅…⋅𝑥 𝑟
𝑃 =
𝛼1,…,𝛼 𝑟∈𝔽2
𝑃 𝛼1, … , 𝛼 𝑟, 𝛽1, … , 𝛽 𝑚−𝑟
Если нам дано кодовое слово с не более чем 2 𝑚−𝑟−1
− 1
ошибками, это означает, что нам для дан некий набор величин
𝑃 𝑡1, … , 𝑡 𝑚 , где 𝑃 𝑡1, … , 𝑡 𝑚 = 𝑃 𝑡1, … , 𝑡 𝑚 для всех 𝑡1, … , 𝑡 𝑚 ∈
𝔽2
𝑚
∖ 𝑇bad, где 𝑇bad ≤ 2 𝑚−𝑟−1
− 1.
Подставим 𝑃 𝑡1, … , 𝑡 𝑚 вместо 𝑃 𝑡1, … , 𝑡 𝑚 в нашу формулу…
Коды Рида—Маллера:
мажоритарное декодирование
Для каждого набора 𝛽1, … , 𝛽 𝑚−𝑟 ∈ 𝔽2
𝑚−𝑟
рассмотрим сумму
𝑆 𝛽1,…,𝛽 𝑚−𝑟
≔
𝛼1,…,𝛼 𝑟∈𝔽2
𝑃 𝛼1, … , 𝛼 𝑟, 𝛽1, … , 𝛽 𝑚−𝑟
У сумм 𝑆 𝛽1,…,𝛽 𝑚−𝑟
при разных нет общих слагаемых. Поэтому
𝑆 𝛽1,…,𝛽 𝑚−𝑟
= coef 𝑥1⋅…⋅𝑥 𝑟
𝑃
для всех 𝛽1, … , 𝛽 𝑚−𝑟 ∈ 𝔽2
𝑚−𝑟
, кроме, быть может, 𝑇bad штук.
Всего сумм 2 𝑚−𝑟, и 𝑇bad < 2 𝑚−𝑟−1, а значит большинство этих
сумм равны coef 𝑥1⋅…⋅𝑥 𝑟
𝑃.
Коды Рида—Маллера:
мажоритарное декодирование
Итоговый метод определения coef 𝑥1⋅…⋅𝑥 𝑟
𝑃:
• Для каждого 𝛽1, … , 𝛽 𝑚−𝑟 ∈ 𝔽2
𝑚−𝑟
вычисляем соответствующую
сумму 𝑆 𝛽1,…,𝛽 𝑚−𝑟
• Находим coef 𝑥1⋅…⋅𝑥 𝑟
𝑃 голосованием:
т.е. как то значение, которое встречается чаще всего среди
𝑆 𝛽1,…,𝛽 𝑚−𝑟
.
Ясно, что так можно определить любой из коэффициентов
coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟
𝑃.
Коды Рида—Маллера:
мажоритарное декодирование
Пусть уже найдены все coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟
𝑃.
Рассмотрим многочлен
𝑃 𝑟−1 ≔ 𝑃 −
𝑖1,…,𝑖 𝑟
coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟
𝑃 ⋅ 𝑥𝑖1
… 𝑥𝑖 𝑟
В 𝑃 𝑟−1 уже все слагаемые степени ≤ 𝑟 − 1.
Рассмотрим величины 𝑃 𝑟−1 𝑡1, … , 𝑡 𝑚 , равные
𝑃 𝑡1, … , 𝑡 𝑚 −
𝑖1,…,𝑖 𝑟
coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟
𝑃 ⋅ 𝑡𝑖1
… 𝑡𝑖 𝑟
Ясно, что 𝑃 𝑟−1 𝑡1, … , 𝑡 𝑚 = 𝑃 𝑟−1 𝑡1, … , 𝑡 𝑚 на множестве точек 𝔽2
𝑚
∖ 𝑇bad.
Коды Рида—Маллера:
мажоритарное декодирование
Пусть уже найдены все coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟
𝑃.
Вычисляем величины 𝑃 𝑟−1 𝑡1, … , 𝑡 𝑚 , равные
𝑃 𝑡1, … , 𝑡 𝑚 −
𝑖1,…,𝑖 𝑟
coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟
𝑃 ⋅ 𝑡𝑖1
… 𝑡𝑖 𝑟
Т.к. 𝑃 𝑟−1 𝑡1, … , 𝑡 𝑚 = 𝑃 𝑟−1 𝑡1, … , 𝑡 𝑚 на множестве 𝔽2
𝑚
∖ 𝑇bad, то
как и ранее, голосованием определяем coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟−1
𝑃 𝑟−1 .
Но coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟−1
𝑃 𝑟−1 = coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟−1
𝑃, то есть теперь мы знаем
коэффициенты при слагаемых 𝑃 степени ≤ 𝑟 − 1.
Коды Рида—Маллера:
мажоритарное декодирование
Общая схема:
• Определяем все coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟
𝑃
• Рассматриваем
𝑃 𝑟−1 ≔ 𝑃 −
𝑖1,…,𝑖 𝑟
coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟
𝑃 ⋅ 𝑥𝑖1
… 𝑥𝑖 𝑟
• Определяем все coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟−1
𝑃
• Рассматриваем
𝑃 𝑟−2 ≔ 𝑃 𝑟−1 −
𝑖1,…,𝑖 𝑟−1
coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟−1
𝑃 ⋅ 𝑥𝑖1
… 𝑥𝑖 𝑟−1
• Определяем все coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟−2
𝑃
• И так далее…
Лемма Шварца—Зиппеля
Чтобы оценивать 𝑑 𝐶 кодов на основе многочленов многих
переменных, подходит
Теорема. (R.J. Lipton, R.A. DeMillo, J. Schwartz, R. Zippel)
Пусть 𝑃 ∈ 𝔽 𝑥1, … , 𝑥 𝑚 и 𝑃 ≢ 0.
Пусть 𝑆 ⊆ 𝔽 — произвольное множество мощности 𝑁.
Тогда
# 𝑠1, … , 𝑠 𝑚 ∈ 𝑆 𝑚 ∣ 𝑃 𝑠1, … , 𝑠 𝑚 = 0 ≤ 𝑁 𝑚−1 ⋅ deg 𝑃
Лемма Шварца—Зиппеля
Доказательство: индукция по 𝑚.
База: 𝑚 = 1. Это стандартная теорема из алгебры: «число корней
многочлена 𝑃 ∈ 𝔽 𝑥1 не превосходит deg 𝑃».
Индукт. переход: Распишем 𝑃 по степеням 𝑥 𝑚:
𝑃 𝑥1, … , 𝑥 𝑚 =
𝑘=0
𝑡
𝑥 𝑚
𝑘 ⋅ 𝑃𝑘 𝑥1, … , 𝑥 𝑚−1
где 𝑃1, … , 𝑃𝑡 ∈ 𝔽 𝑥1, … , 𝑥 𝑚−1 .
Лемма Шварца—Зиппеля
𝑃 𝑥1, … , 𝑥 𝑚 =
𝑘=0
𝑡
𝑥 𝑚
𝑘
⋅ 𝑃𝑘 𝑥1, … , 𝑥 𝑚−1
Обозначим
𝑆 ≔ 𝑠1, … , 𝑠 𝑚−1 ∈ 𝑆 𝑚−1
∣ 𝑃𝑡 𝑠1, … , 𝑠 𝑚−1 = 0
Из неравенства deg 𝑃𝑡 ≤ deg 𝑃 − 𝑡 и из предположения индукции
следует:
𝑆 ≤ 𝑁 𝑚−2 ⋅ deg 𝑃𝑡 ≤ 𝑁 𝑚−2 ⋅ deg 𝑃 − 𝑡
Лемма Шварца—Зиппеля
𝑃 𝑥1, … , 𝑥 𝑚 =
𝑘=0
𝑡
𝑥 𝑚
𝑘 ⋅ 𝑃𝑘 𝑥1, … , 𝑥 𝑚−1
𝑆 ≔ 𝑠1, … , 𝑠 𝑚−1 ∈ 𝑆 𝑚−1 ∣ 𝑃𝑡 𝑠1, … , 𝑠 𝑚−1 = 0
Теперь оценим:
𝑠1, … , 𝑠 𝑚 ∈ 𝑆 𝑚
∣ 𝑃 𝑠1, … , 𝑠 𝑚 = 0 =
= 𝑠1, … , 𝑠 𝑚 ∣ 𝑃 𝑠1, … , 𝑠 𝑚 = 0 ∧ 𝑠1, … , 𝑠 𝑚−1 ∈ 𝑆
+ 𝑠1, … , 𝑠 𝑚 ∣ 𝑃 𝑠1, … , 𝑠 𝑚 = 0 ∧ 𝑠1, … , 𝑠 𝑚−1 ∉ 𝑆
≤ 𝑆 ⋅ 𝑁 + 𝑁 𝑚−1 − 𝑆 ⋅ 𝑡 ≤ 𝑆 ⋅ 𝑁 + 𝑁 𝑚−1 ⋅ 𝑡 ≤
≤ 𝑁 𝑚−1 ⋅ deg 𝑃 − 𝑡 + 𝑁 𝑚−1 ⋅ 𝑡 = 𝑁 𝑚−1 ⋅ deg 𝑃
Лемма Шварца—Зиппеля
Формулировка леммы Шварца—Зиппеля в вероятностных
терминах:
Пусть 𝑃 ∈ 𝔽 𝑥1, … , 𝑥 𝑚 и 𝑃 ≢ 0.
Тогда, если 𝑠1, … , 𝑠 𝑚 выбираются равновероятно и независимо из
некоторого множества мощности 𝑁, то
Pr 𝑃 𝑠1, … , 𝑠 𝑚 = 0 ≤ deg 𝑃
𝑁
Пример кода на основе
многочленов от двух переменных
Пусть 𝔽 𝑞 = 𝑡1, … , 𝑡 𝑞 .
Рассмотрим код
𝐶 ≔ 𝑃 𝑡1, 𝑡1 , 𝑃 𝑡1, 𝑡2 … , 𝑃 𝑡 𝑞, 𝑡 𝑞 ∣ 𝑃 𝑥, 𝑦 = 0≤𝑖,𝑗<𝑙 𝛼𝑖𝑗 𝑥 𝑖 𝑦 𝑗
Он является 𝑞2, 𝑙2, 𝑞 𝑞 − 2𝑙 𝑞-кодом (оценка 𝑑 𝐶 по лемме
Шварца—Зиппеля).
Можно также доказать более сильную оценку
𝑑 𝐶 ≥ 𝑞 − 𝑙 2
Алгеброгеометрические коды
(коды В.Д. Гоппы)
Код Рида—Соломона выглядит так:
𝑃 𝑡1 , … , 𝑃 𝑡 𝑛 ∣ 𝑃 ∈ 𝔽 𝑞 𝑥 ∧ deg 𝑃 < 𝑘
Идея: многочлен маленькой степени имеет мало нулей.
Как можно улучшить конструкцию:
• Тщательно выбрать множество точек 𝑡1, … , 𝑡 𝑛 ,
в которых вычисляется значение 𝑃
• Брать не всевозможные многочлены ограниченной степени,
а специально выбранное их подмножество.
Пример
алгеброгеометрического кода
Идея: в качестве точек 𝑡1, … , 𝑡 𝑛 берём нули некоторого многочлена
𝑃base небольшой степени.
В качестве многочленов, по которым строится 𝐶, берём
многочлены, имеющие мало общих нулей с 𝑃base.
Пример.
Будем работать в 𝔽13, взяв
𝑃𝑏𝑎𝑠𝑒 ≔ 𝑦2 − 2𝑥3 + 2𝑥
Множество нулей этого многочлена:
𝑆 𝑏𝑎𝑠𝑒 = { 0,0 , ±1; 0 , 2; ±5 , 3; ±3 , 4; ±4 ,
6; ±2 , 7; ±3 , 9; ±6 , 10; ±2 , 11; ±1
Пример
алгеброгеометрического кода
𝑞 ≔ 13
𝑃𝑏𝑎𝑠𝑒 ≔ 𝑦2 − 2𝑥3 + 2𝑥
𝑛 ≔ 𝑆 𝑏𝑎𝑠𝑒 = 19
Рассмотрим множество многочленов
𝑃 ≔ 𝛼1 + 𝛼2 𝑥 + 𝛼3 𝑥2 + 𝛼4 𝑥3 + 𝛼5 𝑦 + 𝛼6 𝑥𝑦
Лемма.
Если 𝑃 ∈ 𝑃 и 𝑃 ≢ 0, то у многочленов 𝑃 и 𝑃base не больше шести общих нулей.
Следствие.
Множество 𝐶 ≔ 𝑃 𝑥0, 𝑦0 𝑥0,𝑦0 ∈𝑆base
∣ 𝑃 ∈ 𝑃 является 19,6,13 13-кодом.
Пример
алгеброгеометрического кода
𝑞 ≔ 13
𝑃𝑏𝑎𝑠𝑒 ≔ 𝑦2 − 2𝑥3 + 2𝑥
𝑛 ≔ 𝑆 𝑏𝑎𝑠𝑒 = 19
𝑃 ≔ 𝛼1 + 𝛼2 𝑥 + 𝛼3 𝑥2 + 𝛼4 𝑥3 + 𝛼5 𝑦 + 𝛼6 𝑥𝑦
Множество 𝐶 ≔ 𝑃 𝑥0, 𝑦0 𝑥0,𝑦0 ∈𝑆base
∣ 𝑃 ∈ 𝑃 , образует 19,6,13 13-код.
Сравнение с конструкцией Рида—Соломона:
Чтобы с помощью конструкции Р.—С. получить 𝑘 ≥ 6 и 𝑑 ≥ 13, пришлось бы
взять 𝑞 ≥ 𝑛 ≥ 𝑘 + 𝑑 − 1 ≥ 18, и это дало бы 18,6,13 19-код или 19,6,14 19-
код.
Т.е. выгадали бы единицу в длине слов или расстоянии, но проиграли бы в
мощности алфавита в полтора раза.

More Related Content

Similar to Коды на основе многочленов и алгоритмы их декодирования (20)

Приложения теории кодирования
Приложения теории кодированияПриложения теории кодирования
Приложения теории кодирования
Alex Dainiak
Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.
Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.
Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.
Alex Dainiak
Теорема Алона о нулях и её применения
Теорема Алона о нулях и её примененияТеорема Алона о нулях и её применения
Теорема Алона о нулях и её применения
Alex Dainiak
Производящие функции
Производящие функцииПроизводящие функции
Производящие функции
Alex Dainiak
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—ШпильманаЗадача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
Alex Dainiak
Обращение Мёбиуса на ч.у.м.
Обращение Мёбиуса на ч.у.м.Обращение Мёбиуса на ч.у.м.
Обращение Мёбиуса на ч.у.м.
Alex Dainiak
Основы теории графов 10: экстремальная теория графов
Основы теории графов 10: экстремальная теория графовОсновы теории графов 10: экстремальная теория графов
Основы теории графов 10: экстремальная теория графов
Alex Dainiak
Reshenie diofantovyh uravnenij
Reshenie diofantovyh uravnenijReshenie diofantovyh uravnenij
Reshenie diofantovyh uravnenij
dimonz9
нод. взаимно простые числа
нод. взаимно простые числанод. взаимно простые числа
нод. взаимно простые числа
paramzina40
Use of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signatureUse of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signature
Andrei Poliakov
0 характеристика основных числовых множеств
0 характеристика основных числовых множеств0 характеристика основных числовых множеств
0 характеристика основных числовых множеств
Вячеслав Пырков
характеристика основных числовых множеств
характеристика основных числовых множествхарактеристика основных числовых множеств
характеристика основных числовых множеств
Вячеслав Пырков
презентация по теме «действительные числа»
презентация по теме «действительные числа»презентация по теме «действительные числа»
презентация по теме «действительные числа»
Kirrrr123
Gia 2013 modul_algebra_3_
Gia 2013 modul_algebra_3_Gia 2013 modul_algebra_3_
Gia 2013 modul_algebra_3_
Иван Иванов
Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1
Technopark
ТФРВС - весна 2014 - лекция 4
ТФРВС - весна 2014 - лекция 4ТФРВС - весна 2014 - лекция 4
ТФРВС - весна 2014 - лекция 4
Alexey Paznikov
Приложения теории кодирования
Приложения теории кодированияПриложения теории кодирования
Приложения теории кодирования
Alex Dainiak
Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.
Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.
Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.
Alex Dainiak
Теорема Алона о нулях и её применения
Теорема Алона о нулях и её примененияТеорема Алона о нулях и её применения
Теорема Алона о нулях и её применения
Alex Dainiak
Производящие функции
Производящие функцииПроизводящие функции
Производящие функции
Alex Dainiak
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—ШпильманаЗадача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
Alex Dainiak
Обращение Мёбиуса на ч.у.м.
Обращение Мёбиуса на ч.у.м.Обращение Мёбиуса на ч.у.м.
Обращение Мёбиуса на ч.у.м.
Alex Dainiak
Основы теории графов 10: экстремальная теория графов
Основы теории графов 10: экстремальная теория графовОсновы теории графов 10: экстремальная теория графов
Основы теории графов 10: экстремальная теория графов
Alex Dainiak
Reshenie diofantovyh uravnenij
Reshenie diofantovyh uravnenijReshenie diofantovyh uravnenij
Reshenie diofantovyh uravnenij
dimonz9
нод. взаимно простые числа
нод. взаимно простые числанод. взаимно простые числа
нод. взаимно простые числа
paramzina40
Use of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signatureUse of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signature
Andrei Poliakov
0 характеристика основных числовых множеств
0 характеристика основных числовых множеств0 характеристика основных числовых множеств
0 характеристика основных числовых множеств
Вячеслав Пырков
характеристика основных числовых множеств
характеристика основных числовых множествхарактеристика основных числовых множеств
характеристика основных числовых множеств
Вячеслав Пырков
презентация по теме «действительные числа»
презентация по теме «действительные числа»презентация по теме «действительные числа»
презентация по теме «действительные числа»
Kirrrr123
Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1
Technopark
ТФРВС - весна 2014 - лекция 4
ТФРВС - весна 2014 - лекция 4ТФРВС - весна 2014 - лекция 4
ТФРВС - весна 2014 - лекция 4
Alexey Paznikov

More from Alex Dainiak (19)

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

Коды на основе многочленов и алгоритмы их декодирования

  • 1. Теория кодирования МФТИ, осень 2013 Александр Дайняк www.dainiak.com
  • 2. Коды Рида—Соломона (I.S. Reed, G. Solomon) Пусть 𝑘 ≤ 𝑛 ≤ 𝑞. Пусть 𝑡1, … , 𝑡 𝑛 ∈ 𝔽 𝑞 — фиксированные, попарно различные элементы. Рассмотрим такое множество слов: 𝐶 ≔ 𝑃 𝑡1 , … , 𝑃(𝑡 𝑛) ∣ 𝑃 ∈ 𝔽 𝑞 𝑥 ∧ deg 𝑃 < 𝑘 Непосредственно проверяется, что 𝐶 — линейное пространство: 𝛼 ⋅ 𝑃1 𝑡1 , … , 𝑃1 𝑡 𝑛 + 𝛽 ⋅ 𝑃2 𝑡1 , … , 𝑃2 𝑡 𝑛 = = 𝛼𝑃1 + 𝛽𝑃2 𝑡1 , … , 𝛼𝑃1 + 𝛽𝑃2 𝑡 𝑛
  • 3. Коды Рида—Соломона По условию, 𝑘 ≤ 𝑛 ≤ 𝑞. 𝐶 ≔ 𝑃 𝑡1 , … , 𝑃(𝑡 𝑛) ∣ 𝑃 ∈ 𝔽 𝑞 𝑥 ∧ deg 𝑃 < 𝑘 • У многочлена степени < 𝑘 может быть не более 𝑘 − 1 корней, поэтому если 𝑃 ≢ 0, то в векторе 𝑃 𝑡1 , … , 𝑃(𝑡 𝑛) не более 𝑘 − 1 нулевых координат. Отсюда 𝑑 𝐶 = min 𝒂∈𝐶 𝒂≠𝟎 𝒂 = min 𝑃≢0 # 𝑖 ∣ 𝑃 𝑡𝑖 ≠ 0 = 𝑛 − 𝑘 − 1
  • 4. Коды Рида—Соломона По условию, 𝑘 ≤ 𝑛 ≤ 𝑞. 𝐶 ≔ 𝑃 𝑡1 , … , 𝑃(𝑡 𝑛) ∣ 𝑃 ∈ 𝔽 𝑞 𝑥 ∧ deg 𝑃 < 𝑘 • Вектора 𝑃 𝑡1 , … , 𝑃(𝑡 𝑛) при разных 𝑃 различны: если выполнено 𝑃1 𝑡1 , … , 𝑃1(𝑡 𝑛) = 𝑃2 𝑡1 , … , 𝑃2(𝑡 𝑛) , то у многочлена 𝑃1 − 𝑃2 не менее 𝑛 корней, а т.к. deg( 𝑃1 −
  • 5. Коды Рида—Соломона Итак, для любых 𝑘 ≤ 𝑛 ≤ 𝑞 множество 𝑃 𝑡1 , … , 𝑃(𝑡 𝑛) ∣ 𝑃 ∈ 𝔽 𝑞 𝑥 ∧ deg 𝑃 < 𝑘 является 𝑛, 𝑘, 𝑑 𝑞-кодом, где 𝑑 = 𝑛 − 𝑘 + 1. Вспомним границу Синглтона: «для любого 𝑛, 𝑘, 𝑑 𝑞-кода выполнено 𝑘 ≤ 𝑛 − 𝑑 + 1». То есть построенный код достигает границы Синглтона! Недостаток кода: кодовый алфавит нужно брать очень большим, т.к. 𝑞 ≥ 𝑛.
  • 6. Коды Рида—Соломона: декодирование Т.к. 𝑑 𝐶 = 𝑛 − 𝑘 + 1, то код может исправлять 𝑛−𝑘 2 ошибок. Постановка задачи декодирования: • Дано искажённое кодовое слово кода Р.—С. 𝑝1, … , 𝑝 𝑛 ∈ 𝔽 𝑞 𝑛 • Найти 𝑃 ∈ 𝔽 𝑞 𝑥 , такой, что deg 𝑃 ≤ 𝑘 − 1 и # 𝑖 ∣ 𝑃 𝑡𝑖 ≠ 𝑝𝑖 ≤ 𝑛−𝑘 2 (нам гарантируется, что такой 𝑃 существует) Далее приведём алгоритм Берлекэмпа—Велча (E.R. Berlekamp, L.R. Welch).
  • 7. Коды Рида—Соломона: декодирование Дано 𝑝1, … , 𝑝 𝑛 ∈ 𝔽 𝑞 𝑛. Найти 𝑃: deg 𝑃 < 𝑘 ∧ # 𝑖 ∣ 𝑃 𝑡𝑖 ≠ 𝑝𝑖 ≤ 𝑛 − 𝑘 2 Рассмотрим многочлен ошибок 𝐸 𝑥 ≔ 𝑖: 𝑃 𝑡 𝑖 ≠ 𝑝 𝑖 𝑥 − 𝑡𝑖 и вспомогательный многочлен 𝑈 𝑥 ≔ 𝐸 𝑥 ⋅ 𝑃 𝑥 . Заметим, что • deg 𝐸 = 𝑠 и coef 𝑥 𝑠 𝐸 = 1, где 𝑠 ≔ # 𝑖 ∣ 𝑃 𝑡𝑖 ≠ 𝑝𝑖 • deg 𝑈 ≤ deg 𝐸 + deg 𝑃 ≤ 𝑠 + 𝑘 − 1 • Для любого 𝑖 ∈ 1, … , 𝑛 выполнено равенство 𝑈 𝑡𝑖 = 𝐸 𝑡𝑖 ⋅ 𝑝𝑖
  • 8. Коды Рида—Соломона: декодирование Дано 𝑝1, … , 𝑝 𝑛 ∈ 𝔽 𝑞 𝑛 . Найти 𝑃: deg 𝑃 < 𝑘 ∧ # 𝑖 ∣ 𝑃 𝑡𝑖 ≠ 𝑝𝑖 ≤ 𝑛 − 𝑘 2 Идея: мы не знаем 𝑃, так что попытаемся найти какие-то многочлены 𝐸 и 𝑈, для которых • deg 𝐸 = 𝑠 и coef 𝑥 𝑠 𝐸 = 1, где 𝑠 ≤ 𝑛 − 𝑘 2 • deg 𝑈 ≤ 𝑠 + 𝑘 − 1 • Для любого 𝑖 ∈ 1, … , 𝑛 выполнено равенство 𝑈 𝑡𝑖 = 𝐸 𝑡𝑖 ⋅ 𝑝𝑖 Мы знаем, что 𝐸 и 𝑈 точно найдутся. Вопросы: 1) как это сделать эффективно, и 2) что если найденные 𝐸 и 𝑈 не совпадут с нужными нам 𝐸 и 𝑈?
  • 9. Коды Рида—Соломона: декодирование • deg 𝐸 = 𝑠 и coef 𝑥 𝑠 𝐸 = 1, где 𝑠 ≤ 𝑛 − 𝑘 2 • deg 𝑈 ≤ 𝑠 + 𝑘 − 1 • ∀𝑖 ∈ 1, … , 𝑛 выполнено 𝑈 𝑡𝑖 = 𝑝𝑖 ⋅ 𝐸 𝑡𝑖 Зафиксируем 𝑠 и положим 𝐸 = 𝑥 𝑠 + 𝑗≤𝑠−1 𝑒𝑗 𝑥 𝑗 и 𝑈 = 𝑗≤𝑠+𝑘−1 𝑢𝑗 𝑥 𝑗 , где 𝑒0, … , 𝑒 𝑠−1, 𝑢0, … , 𝑢 𝑠+𝑘−1 — неопределённые коэффициенты. Получим систему: 𝑝1 𝑡1 𝑠 + 0≤𝑗≤𝑠−1 𝑝1 𝑒𝑗 𝑡1 𝑗 = 0≤𝑗≤𝑘+𝑠−1 𝑢𝑗 𝑡1 𝑗 ⋮ 𝑝 𝑛 𝑡 𝑛 𝑠 + 0≤𝑗≤𝑠−1 𝑝 𝑛 𝑒𝑗 𝑡 𝑛 𝑗 = 0≤𝑗≤𝑘+𝑠−1 𝑢𝑗 𝑡 𝑛 𝑗
  • 10. Коды Рида—Соломона: декодирование При любом фиксированном 𝑠 ≤ 𝑛 − 𝑘 2 система 𝑝1 𝑡1 𝑠 = − 0≤𝑗≤𝑠−1 𝑝1 𝑡1 𝑗 ⋅ 𝑒𝑗 + 0≤𝑗≤𝑘+𝑠−1 𝑡1 𝑗 ⋅ 𝑢𝑗 ⋮ 𝑝 𝑛 𝑡 𝑛 𝑠 = − 0≤𝑗≤𝑠−1 𝑝 𝑛 𝑡 𝑛 𝑗 ⋅ 𝑒𝑗 + 0≤𝑗≤𝑘+𝑠−1 𝑡 𝑛 𝑗 ⋅ 𝑢𝑗 линейная относительно 𝑒0, … , 𝑒𝑠−1, 𝑢0, … , 𝑢 𝑠+𝑘−1.
  • 11. Коды Рида—Соломона: декодирование При любом фиксированном 𝑠 система 𝑝1 𝑡1 𝑠 = − 0≤𝑗≤𝑠−1 𝑝1 𝑡1 𝑗 ⋅ 𝑒𝑗 + 0≤𝑗≤𝑘+𝑠−1 𝑡1 𝑗 ⋅ 𝑢𝑗 ⋮ 𝑝 𝑛 𝑡 𝑛 𝑠 = − 0≤𝑗≤𝑠−1 𝑝 𝑛 𝑡 𝑛 𝑗 ⋅ 𝑒𝑗 + 0≤𝑗≤𝑘+𝑠−1 𝑡 𝑛 𝑗 ⋅ 𝑢𝑗 линейная относительно 𝑒0, … , 𝑒 𝑠−1, 𝑢0, … , 𝑢 𝑠+𝑘−1 ⇒ если у неё есть решение, находится оно быстро. Перебирая 𝑠 = 0,1, …, найдём то 𝑠, при котором решение есть (такое 𝑠 точно существует, так как есть исходные многочлены 𝐸 и 𝑈). Тем самым найдём 𝐸 и 𝑈.
  • 12. Коды Рида—Соломона: декодирование Нашли какие-то 𝐸 и 𝑈. Если бы это были те самые 𝐸 и 𝑈, то мы сразу нашли бы 𝑃 𝑥 = 𝑈 𝑥 𝐸 𝑥 . Оказывается, и в ином случае 𝑃 будет выражаться так же: Утверждение. Если пары 𝐸1, 𝑈1 и 𝐸2, 𝑈2 удовлетворяют системе • deg 𝐸 = 𝑠 и coef 𝑥 𝑠 𝐸 = 1, где 𝑠 ≤ 𝑛 − 𝑘 2 • deg 𝑈 ≤ 𝑠 + 𝑘 − 1 • ∀𝑖 ∈ 1, … , 𝑛 выполнено 𝑈 𝑡𝑖 = 𝑝𝑖 ⋅ 𝐸 𝑡𝑖 то 𝑈1 𝐸1 ≡ 𝑈2 𝐸2 .
  • 13. Коды Рида—Соломона: декодирование Доказательство утверждения: Пусть 𝐸1, 𝑈1 и 𝐸2, 𝑈2 удовлетворяют системе • deg 𝐸 = 𝑠 и coef 𝑥 𝑠 𝐸 = 1, где 𝑠 ≤ 𝑛 − 𝑘 2 • deg 𝑈 ≤ 𝑠 + 𝑘 − 1 • ∀𝑖 ∈ 1, … , 𝑛 выполнено 𝑈 𝑡𝑖 = 𝑝𝑖 ⋅ 𝐸 𝑡𝑖 Имеем deg 𝑈1 𝐸2 ≤ deg 𝑈1 + deg 𝐸2 ≤ 𝑛−𝑘 2 + 𝑘 − 1 + 𝑛−𝑘 2 ≤ 𝑛 − 1. Аналогично deg 𝐸1 𝑈2 ≤ 𝑛 − 1. Далее, для любого 𝑖 имеем 𝑈1 𝑡𝑖 𝐸2 𝑡𝑖 = 𝑝𝑖 𝐸1 𝑡𝑖 𝐸2 𝑡𝑖 = 𝐸1 𝑡𝑖 𝑝𝑖 𝐸2 𝑡𝑖 = 𝐸1 𝑡𝑖 𝑈2 𝑡𝑖
  • 14. Коды Рида—Соломона: декодирование Завершение доказательства леммы: Мы установили, что • deg 𝑈1 𝐸2 − 𝐸1 𝑈2 ≤ 𝑛 − 1 • 𝑈1 𝑡𝑖 𝐸2 𝑡𝑖 − 𝐸1 𝑡𝑖 𝑈2 𝑡𝑖 = 0 для 𝑖 = 1, … , 𝑛 Отсюда следует, что 𝑈1 𝑥 𝐸2 𝑥 − 𝐸1 𝑥 𝑈2 𝑥 ≡ 0 а это эквивалентно тождеству 𝑈1 𝐸1 ≡ 𝑈2 𝐸2
  • 15. Коды Рида—Соломона Простор для обобщений: • Рассматривать многочлены не от одной, а от многих переменных (коды Рида—Маллера и другие) • Рассматривать не все возможные многочлены, а специально выбранное их подмножество (алгеброгеометрические коды)
  • 16. Коды Рида—Маллера (I.S. Reed, D.E. Muller) Зафиксируем параметры 𝑟, 𝑚 , где 𝑟 ≤ 𝑚. Полагаем 𝑞 ≔ 2 и берём многочлены от 𝑚 переменных степени ≤ 𝑟. Базис в пространстве 𝑃 ∈ 𝔽2 𝑥1, … , 𝑥 𝑚 , deg 𝑃 ≤ 𝑟 : 1 ∪ ∪ 𝑥1, 𝑥2, … , 𝑥 𝑚 ∪ ∪ 𝑥1 𝑥2, 𝑥1 𝑥3, … , 𝑥 𝑚−1 𝑥 𝑚 ∪ ⋮ ∪ 𝑥𝑖1 𝑥𝑖2 ⋯ 𝑥𝑖 𝑟 ∣ 1 ≤ 𝑖1, … , 𝑖 𝑟 ≤ 𝑚 Размерность этого пространства равна 𝑘 = 𝑡≤𝑟 𝑚 𝑡 .
  • 17. Коды Рида—Маллера Рассматриваем значения многочленов во всех точках 𝔽2 𝑚 : 𝐶 ≔ { 𝑃 0 … 00 , 𝑃 0 … 01 , … , 𝑃 1 … 11 где 𝑃 ∈ 𝔽2 𝑥1, … , 𝑥 𝑚 и deg 𝑃 ≤ 𝑟 Получаем 𝑛, 𝑘, 𝑑 -код, где 𝑛 = 2 𝑚 и 𝑘 = 𝑡≤𝑟 𝑚 𝑡 . Чтобы оценить 𝑑, понадобится доказать лемму: Лемма. Если 𝑃 ∈ 𝔽2 𝑥1, … , 𝑥 𝑚 , 𝑃 ≢ 0 и deg 𝑃 ≤ 𝑟, то # 𝑠1, … , 𝑠 𝑚 ∈ 𝔽2 𝑚 ∣ 𝑃 𝑠1, … , 𝑠 𝑚 = 1 ≥ 2 𝑚−𝑟
  • 18. Коды Рида—Маллера: кодовое расстояние Лемма. Если 𝑃 ∈ 𝔽2 𝑥1, … , 𝑥 𝑚 , 𝑃 ≢ 0 и deg 𝑃 ≤ 𝑟, то # 𝑠1, … , 𝑠 𝑚 ∈ 𝔽2 𝑚 ∣ 𝑃 𝑠1, … , 𝑠 𝑚 = 1 ≥ 2 𝑚−𝑟 Доказательство: индукция по 𝑚. База: 𝑚 = 1. Тогда 𝑃 ∈ 1, 𝑥1, 𝑥1 + 1 — очевидно. Переход: 𝑚 − 1 → 𝑚. Б.о.о. будем считать, что 𝑃 существенно зависит от 𝑥 𝑚. Распишем 𝑃 𝑥1, … , 𝑥 𝑚 = 𝑃1 𝑥1, … 𝑥 𝑚−1 + 𝑥 𝑚 𝑃2 𝑥1, … 𝑥 𝑚−1 Так как 𝑃2 ≢ 0 и deg 𝑃2 ≤ 𝑟 − 1, то # 𝑠1, … , 𝑠 𝑚−1 ∣ 𝑃2 𝑠1, … , 𝑠 𝑚−1 = 1 ≥ 2 𝑚−1 − 𝑟−1
  • 19. Коды Рида—Маллера: кодовое расстояние 𝑃 𝑥1, … , 𝑥 𝑚 = 𝑃1 𝑥1, … 𝑥 𝑚−1 + 𝑥 𝑚 𝑃2 𝑥1, … 𝑥 𝑚−1 # 𝑠1, … , 𝑠 𝑚−1 ∣ 𝑃2 𝑠1, … , 𝑠 𝑚−1 = 1 ≥ 2 𝑚−𝑟 Каждый набор 𝑠1, … , 𝑠 𝑚−1 на котором 𝑃2 = 1, можно дополнить до набора, на котором 𝑃 = 1: • если 𝑃1 𝑠1, … , 𝑠 𝑚−1 = 0, то возьмём набор 𝑠1, … , 𝑠 𝑚−1, 1 , • если 𝑃1 𝑠1, … , 𝑠 𝑚−1 = 1, то возьмём набор 𝑠1, … , 𝑠 𝑚−1, 0 . Значит, 𝑃 = 1 не менее чем на 2 𝑚−𝑟 наборах.
  • 20. Коды Рида—Маллера: мажоритарное декодирование Код Рида—Маллера с параметрами 𝑟, 𝑚 является 2 𝑚 , 𝑡≤𝑟 𝑚 𝑡 , 2 𝑚−𝑟 -кодом. Значит, он может исправлять вплоть до 2 𝑚−𝑟−1 − 1 ошибок, и это можно делать очень быстро многоэтапным голосованием (этот способ декодирования также называют мажоритарным). Постановка задачи: • В векторе из кода Р.—М. (т.е. векторе значений многочлена степени ≤ 𝑟) изменяются менее 2 𝑚−𝑟−1 координат (т.е. значение многочлена искажается менее чем в стольких точках) • Нужно восстановить по искажённому вектору значений исходный вектор значений (т.е. исходный многочлен)
  • 21. Коды Рида—Маллера: мажоритарное декодирование Кодовое слово — это значения многочлена, выразимого линейной комбинацией в базисе 1 ∪ 𝑥1, 𝑥2, … , 𝑥 𝑚 ∪ ⋯ ∪ 𝑥𝑖1 𝑥𝑖2 ⋯ 𝑥𝑖 𝑟 ∣ 1 ≤ 𝑖1, … , 𝑖 𝑟 ≤ 𝑚 Восстановить кодовое слово — это то же, что найти коэффициенты этой линейной комбинации.
  • 22. Лемма о старшем коэффициенте многочленов над 𝔽2 Лемма. Для любого 𝑃 ∈ 𝔽2 𝑥1, … , 𝑥 𝑟 справедлива формула coef 𝑥1⋅…⋅𝑥 𝑟 𝑃 = 𝛼1,…,𝛼 𝑟∈𝔽2 𝑃 𝛼1, … , 𝛼 𝑟 Доказательство: Многочлен 𝑃 можно представить в виде 𝑃 = 𝑐 ⋅ 𝑥1 … 𝑥 𝑟 + 𝑃1 + ⋯ + 𝑃𝑟 где в 𝑃𝑖 не входит 𝑥𝑖. Получаем 𝛼1,…,𝛼 𝑟∈𝔽2 𝑃 𝛼1, … , 𝛼 𝑟 = 𝛼1,…,𝛼 𝑟∈𝔽2 𝑐 ⋅ 𝛼1 … 𝛼 𝑟 =𝑐 + 1≤𝑖≤𝑟 𝛼1,…,𝛼 𝑟∈𝔽2 𝑃𝑖 𝛼1, … , 𝛼 𝑟 =0
  • 23. Лемма о старшем коэффициенте многочленов над 𝔽2 𝛼1,…,𝛼 𝑟∈𝔽2 𝑃𝑖 𝛼1, … , 𝛼 𝑟 = 𝛼1,…𝛼 𝑖−1,𝛼 𝑖+1,…,𝛼 𝑟∈𝔽2 𝑃𝑖 𝛼1, … 𝛼𝑖−1, 0, 𝛼𝑖+1, … , 𝛼 𝑟 +𝑃𝑖 𝛼1, … 𝛼𝑖−1, 1, 𝛼𝑖+1, … , 𝛼 𝑟 Но т.к. в слагаемые 𝑃𝑖 переменная 𝑥𝑖 не входит, то 𝑃𝑖 𝛼1, … 𝛼𝑖−1, 0, 𝛼𝑖+1, … , 𝛼 𝑟 = 𝑃𝑖 𝛼1, … 𝛼𝑖−1, 1, 𝛼𝑖+1, … , 𝛼 𝑟 а значит по модулю 2 каждое слагаемое в последней сумме равно нулю. Лемма доказана.
  • 24. Коды Рида—Маллера: мажоритарное декодирование Пусть 𝑃 — произвольный многочлен из кода Рида—Маллера. Зафиксируем произвольные 𝛽1, … , 𝛽 𝑚−𝑟 ∈ 𝔽2, и обозначим 𝑃 𝛽1,…,𝛽 𝑚−𝑟 ≔ 𝑃 𝑥1, … , 𝑥 𝑟, 𝛽1, … , 𝛽 𝑚−𝑟 Имеем 𝑃 𝛽1,…,𝛽 𝑚−𝑟 ∈ 𝔽2 𝑥1, … , 𝑥 𝑟 , поэтому по лемме, доказанной только что, получаем 𝛼1,…,𝛼 𝑟∈𝔽2 𝑃 𝛽1,…,𝛽 𝑚−𝑟 𝛼1, … , 𝛼 𝑟 = coef 𝑥1⋅…⋅𝑥 𝑟 𝑃 𝛽1,…,𝛽 𝑚−𝑟 = coef 𝑥1⋅…⋅𝑥 𝑟 𝑃
  • 25. Коды Рида—Маллера: мажоритарное декодирование Для любых 𝛽1, … , 𝛽 𝑚−𝑟 ∈ 𝔽2 мы получили coef 𝑥1⋅…⋅𝑥 𝑟 𝑃 = 𝛼1,…,𝛼 𝑟∈𝔽2 𝑃 𝛼1, … , 𝛼 𝑟, 𝛽1, … , 𝛽 𝑚−𝑟 Если нам дано кодовое слово с не более чем 2 𝑚−𝑟−1 − 1 ошибками, это означает, что нам для дан некий набор величин 𝑃 𝑡1, … , 𝑡 𝑚 , где 𝑃 𝑡1, … , 𝑡 𝑚 = 𝑃 𝑡1, … , 𝑡 𝑚 для всех 𝑡1, … , 𝑡 𝑚 ∈ 𝔽2 𝑚 ∖ 𝑇bad, где 𝑇bad ≤ 2 𝑚−𝑟−1 − 1. Подставим 𝑃 𝑡1, … , 𝑡 𝑚 вместо 𝑃 𝑡1, … , 𝑡 𝑚 в нашу формулу…
  • 26. Коды Рида—Маллера: мажоритарное декодирование Для каждого набора 𝛽1, … , 𝛽 𝑚−𝑟 ∈ 𝔽2 𝑚−𝑟 рассмотрим сумму 𝑆 𝛽1,…,𝛽 𝑚−𝑟 ≔ 𝛼1,…,𝛼 𝑟∈𝔽2 𝑃 𝛼1, … , 𝛼 𝑟, 𝛽1, … , 𝛽 𝑚−𝑟 У сумм 𝑆 𝛽1,…,𝛽 𝑚−𝑟 при разных нет общих слагаемых. Поэтому 𝑆 𝛽1,…,𝛽 𝑚−𝑟 = coef 𝑥1⋅…⋅𝑥 𝑟 𝑃 для всех 𝛽1, … , 𝛽 𝑚−𝑟 ∈ 𝔽2 𝑚−𝑟 , кроме, быть может, 𝑇bad штук. Всего сумм 2 𝑚−𝑟, и 𝑇bad < 2 𝑚−𝑟−1, а значит большинство этих сумм равны coef 𝑥1⋅…⋅𝑥 𝑟 𝑃.
  • 27. Коды Рида—Маллера: мажоритарное декодирование Итоговый метод определения coef 𝑥1⋅…⋅𝑥 𝑟 𝑃: • Для каждого 𝛽1, … , 𝛽 𝑚−𝑟 ∈ 𝔽2 𝑚−𝑟 вычисляем соответствующую сумму 𝑆 𝛽1,…,𝛽 𝑚−𝑟 • Находим coef 𝑥1⋅…⋅𝑥 𝑟 𝑃 голосованием: т.е. как то значение, которое встречается чаще всего среди 𝑆 𝛽1,…,𝛽 𝑚−𝑟 . Ясно, что так можно определить любой из коэффициентов coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟 𝑃.
  • 28. Коды Рида—Маллера: мажоритарное декодирование Пусть уже найдены все coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟 𝑃. Рассмотрим многочлен 𝑃 𝑟−1 ≔ 𝑃 − 𝑖1,…,𝑖 𝑟 coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟 𝑃 ⋅ 𝑥𝑖1 … 𝑥𝑖 𝑟 В 𝑃 𝑟−1 уже все слагаемые степени ≤ 𝑟 − 1. Рассмотрим величины 𝑃 𝑟−1 𝑡1, … , 𝑡 𝑚 , равные 𝑃 𝑡1, … , 𝑡 𝑚 − 𝑖1,…,𝑖 𝑟 coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟 𝑃 ⋅ 𝑡𝑖1 … 𝑡𝑖 𝑟 Ясно, что 𝑃 𝑟−1 𝑡1, … , 𝑡 𝑚 = 𝑃 𝑟−1 𝑡1, … , 𝑡 𝑚 на множестве точек 𝔽2 𝑚 ∖ 𝑇bad.
  • 29. Коды Рида—Маллера: мажоритарное декодирование Пусть уже найдены все coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟 𝑃. Вычисляем величины 𝑃 𝑟−1 𝑡1, … , 𝑡 𝑚 , равные 𝑃 𝑡1, … , 𝑡 𝑚 − 𝑖1,…,𝑖 𝑟 coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟 𝑃 ⋅ 𝑡𝑖1 … 𝑡𝑖 𝑟 Т.к. 𝑃 𝑟−1 𝑡1, … , 𝑡 𝑚 = 𝑃 𝑟−1 𝑡1, … , 𝑡 𝑚 на множестве 𝔽2 𝑚 ∖ 𝑇bad, то как и ранее, голосованием определяем coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟−1 𝑃 𝑟−1 . Но coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟−1 𝑃 𝑟−1 = coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟−1 𝑃, то есть теперь мы знаем коэффициенты при слагаемых 𝑃 степени ≤ 𝑟 − 1.
  • 30. Коды Рида—Маллера: мажоритарное декодирование Общая схема: • Определяем все coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟 𝑃 • Рассматриваем 𝑃 𝑟−1 ≔ 𝑃 − 𝑖1,…,𝑖 𝑟 coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟 𝑃 ⋅ 𝑥𝑖1 … 𝑥𝑖 𝑟 • Определяем все coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟−1 𝑃 • Рассматриваем 𝑃 𝑟−2 ≔ 𝑃 𝑟−1 − 𝑖1,…,𝑖 𝑟−1 coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟−1 𝑃 ⋅ 𝑥𝑖1 … 𝑥𝑖 𝑟−1 • Определяем все coef 𝑥 𝑖1⋅…⋅𝑥 𝑖 𝑟−2 𝑃 • И так далее…
  • 31. Лемма Шварца—Зиппеля Чтобы оценивать 𝑑 𝐶 кодов на основе многочленов многих переменных, подходит Теорема. (R.J. Lipton, R.A. DeMillo, J. Schwartz, R. Zippel) Пусть 𝑃 ∈ 𝔽 𝑥1, … , 𝑥 𝑚 и 𝑃 ≢ 0. Пусть 𝑆 ⊆ 𝔽 — произвольное множество мощности 𝑁. Тогда # 𝑠1, … , 𝑠 𝑚 ∈ 𝑆 𝑚 ∣ 𝑃 𝑠1, … , 𝑠 𝑚 = 0 ≤ 𝑁 𝑚−1 ⋅ deg 𝑃
  • 32. Лемма Шварца—Зиппеля Доказательство: индукция по 𝑚. База: 𝑚 = 1. Это стандартная теорема из алгебры: «число корней многочлена 𝑃 ∈ 𝔽 𝑥1 не превосходит deg 𝑃». Индукт. переход: Распишем 𝑃 по степеням 𝑥 𝑚: 𝑃 𝑥1, … , 𝑥 𝑚 = 𝑘=0 𝑡 𝑥 𝑚 𝑘 ⋅ 𝑃𝑘 𝑥1, … , 𝑥 𝑚−1 где 𝑃1, … , 𝑃𝑡 ∈ 𝔽 𝑥1, … , 𝑥 𝑚−1 .
  • 33. Лемма Шварца—Зиппеля 𝑃 𝑥1, … , 𝑥 𝑚 = 𝑘=0 𝑡 𝑥 𝑚 𝑘 ⋅ 𝑃𝑘 𝑥1, … , 𝑥 𝑚−1 Обозначим 𝑆 ≔ 𝑠1, … , 𝑠 𝑚−1 ∈ 𝑆 𝑚−1 ∣ 𝑃𝑡 𝑠1, … , 𝑠 𝑚−1 = 0 Из неравенства deg 𝑃𝑡 ≤ deg 𝑃 − 𝑡 и из предположения индукции следует: 𝑆 ≤ 𝑁 𝑚−2 ⋅ deg 𝑃𝑡 ≤ 𝑁 𝑚−2 ⋅ deg 𝑃 − 𝑡
  • 34. Лемма Шварца—Зиппеля 𝑃 𝑥1, … , 𝑥 𝑚 = 𝑘=0 𝑡 𝑥 𝑚 𝑘 ⋅ 𝑃𝑘 𝑥1, … , 𝑥 𝑚−1 𝑆 ≔ 𝑠1, … , 𝑠 𝑚−1 ∈ 𝑆 𝑚−1 ∣ 𝑃𝑡 𝑠1, … , 𝑠 𝑚−1 = 0 Теперь оценим: 𝑠1, … , 𝑠 𝑚 ∈ 𝑆 𝑚 ∣ 𝑃 𝑠1, … , 𝑠 𝑚 = 0 = = 𝑠1, … , 𝑠 𝑚 ∣ 𝑃 𝑠1, … , 𝑠 𝑚 = 0 ∧ 𝑠1, … , 𝑠 𝑚−1 ∈ 𝑆 + 𝑠1, … , 𝑠 𝑚 ∣ 𝑃 𝑠1, … , 𝑠 𝑚 = 0 ∧ 𝑠1, … , 𝑠 𝑚−1 ∉ 𝑆 ≤ 𝑆 ⋅ 𝑁 + 𝑁 𝑚−1 − 𝑆 ⋅ 𝑡 ≤ 𝑆 ⋅ 𝑁 + 𝑁 𝑚−1 ⋅ 𝑡 ≤ ≤ 𝑁 𝑚−1 ⋅ deg 𝑃 − 𝑡 + 𝑁 𝑚−1 ⋅ 𝑡 = 𝑁 𝑚−1 ⋅ deg 𝑃
  • 35. Лемма Шварца—Зиппеля Формулировка леммы Шварца—Зиппеля в вероятностных терминах: Пусть 𝑃 ∈ 𝔽 𝑥1, … , 𝑥 𝑚 и 𝑃 ≢ 0. Тогда, если 𝑠1, … , 𝑠 𝑚 выбираются равновероятно и независимо из некоторого множества мощности 𝑁, то Pr 𝑃 𝑠1, … , 𝑠 𝑚 = 0 ≤ deg 𝑃 𝑁
  • 36. Пример кода на основе многочленов от двух переменных Пусть 𝔽 𝑞 = 𝑡1, … , 𝑡 𝑞 . Рассмотрим код 𝐶 ≔ 𝑃 𝑡1, 𝑡1 , 𝑃 𝑡1, 𝑡2 … , 𝑃 𝑡 𝑞, 𝑡 𝑞 ∣ 𝑃 𝑥, 𝑦 = 0≤𝑖,𝑗<𝑙 𝛼𝑖𝑗 𝑥 𝑖 𝑦 𝑗 Он является 𝑞2, 𝑙2, 𝑞 𝑞 − 2𝑙 𝑞-кодом (оценка 𝑑 𝐶 по лемме Шварца—Зиппеля). Можно также доказать более сильную оценку 𝑑 𝐶 ≥ 𝑞 − 𝑙 2
  • 37. Алгеброгеометрические коды (коды В.Д. Гоппы) Код Рида—Соломона выглядит так: 𝑃 𝑡1 , … , 𝑃 𝑡 𝑛 ∣ 𝑃 ∈ 𝔽 𝑞 𝑥 ∧ deg 𝑃 < 𝑘 Идея: многочлен маленькой степени имеет мало нулей. Как можно улучшить конструкцию: • Тщательно выбрать множество точек 𝑡1, … , 𝑡 𝑛 , в которых вычисляется значение 𝑃 • Брать не всевозможные многочлены ограниченной степени, а специально выбранное их подмножество.
  • 38. Пример алгеброгеометрического кода Идея: в качестве точек 𝑡1, … , 𝑡 𝑛 берём нули некоторого многочлена 𝑃base небольшой степени. В качестве многочленов, по которым строится 𝐶, берём многочлены, имеющие мало общих нулей с 𝑃base. Пример. Будем работать в 𝔽13, взяв 𝑃𝑏𝑎𝑠𝑒 ≔ 𝑦2 − 2𝑥3 + 2𝑥 Множество нулей этого многочлена: 𝑆 𝑏𝑎𝑠𝑒 = { 0,0 , ±1; 0 , 2; ±5 , 3; ±3 , 4; ±4 , 6; ±2 , 7; ±3 , 9; ±6 , 10; ±2 , 11; ±1
  • 39. Пример алгеброгеометрического кода 𝑞 ≔ 13 𝑃𝑏𝑎𝑠𝑒 ≔ 𝑦2 − 2𝑥3 + 2𝑥 𝑛 ≔ 𝑆 𝑏𝑎𝑠𝑒 = 19 Рассмотрим множество многочленов 𝑃 ≔ 𝛼1 + 𝛼2 𝑥 + 𝛼3 𝑥2 + 𝛼4 𝑥3 + 𝛼5 𝑦 + 𝛼6 𝑥𝑦 Лемма. Если 𝑃 ∈ 𝑃 и 𝑃 ≢ 0, то у многочленов 𝑃 и 𝑃base не больше шести общих нулей. Следствие. Множество 𝐶 ≔ 𝑃 𝑥0, 𝑦0 𝑥0,𝑦0 ∈𝑆base ∣ 𝑃 ∈ 𝑃 является 19,6,13 13-кодом.
  • 40. Пример алгеброгеометрического кода 𝑞 ≔ 13 𝑃𝑏𝑎𝑠𝑒 ≔ 𝑦2 − 2𝑥3 + 2𝑥 𝑛 ≔ 𝑆 𝑏𝑎𝑠𝑒 = 19 𝑃 ≔ 𝛼1 + 𝛼2 𝑥 + 𝛼3 𝑥2 + 𝛼4 𝑥3 + 𝛼5 𝑦 + 𝛼6 𝑥𝑦 Множество 𝐶 ≔ 𝑃 𝑥0, 𝑦0 𝑥0,𝑦0 ∈𝑆base ∣ 𝑃 ∈ 𝑃 , образует 19,6,13 13-код. Сравнение с конструкцией Рида—Соломона: Чтобы с помощью конструкции Р.—С. получить 𝑘 ≥ 6 и 𝑑 ≥ 13, пришлось бы взять 𝑞 ≥ 𝑛 ≥ 𝑘 + 𝑑 − 1 ≥ 18, и это дало бы 18,6,13 19-код или 19,6,14 19- код. Т.е. выгадали бы единицу в длине слов или расстоянии, но проиграли бы в мощности алфавита в полтора раза.