SlideShare a Scribd company logo
1 of 40
Download to read offline
Теория кодирования
МФТИ, осень 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 Коды на основе многочленов и алгоритмы их декодирования

Приложения теории кодирования
Приложения теории кодированияПриложения теории кодирования
Приложения теории кодирования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 uravnenijdimonz9
 
нод. взаимно простые числа
нод. взаимно простые числанод. взаимно простые числа
нод. взаимно простые числа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 signatureAndrei Poliakov
 
0 характеристика основных числовых множеств
0 характеристика основных числовых множеств0 характеристика основных числовых множеств
0 характеристика основных числовых множествВячеслав Пырков
 
характеристика основных числовых множеств
характеристика основных числовых множествхарактеристика основных числовых множеств
характеристика основных числовых множествВячеслав Пырков
 
презентация по теме «действительные числа»
презентация по теме «действительные числа»презентация по теме «действительные числа»
презентация по теме «действительные числа»Kirrrr123
 
Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Technopark
 
ТФРВС - весна 2014 - лекция 4
ТФРВС - весна 2014 - лекция 4ТФРВС - весна 2014 - лекция 4
ТФРВС - весна 2014 - лекция 4Alexey Paznikov
 

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

Приложения теории кодирования
Приложения теории кодированияПриложения теории кодирования
Приложения теории кодирования
 
Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.
Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.
Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.
 
Теорема Алона о нулях и её применения
Теорема Алона о нулях и её примененияТеорема Алона о нулях и её применения
Теорема Алона о нулях и её применения
 
Производящие функции
Производящие функцииПроизводящие функции
Производящие функции
 
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—ШпильманаЗадача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
 
Обращение Мёбиуса на ч.у.м.
Обращение Мёбиуса на ч.у.м.Обращение Мёбиуса на ч.у.м.
Обращение Мёбиуса на ч.у.м.
 
Основы теории графов 10: экстремальная теория графов
Основы теории графов 10: экстремальная теория графовОсновы теории графов 10: экстремальная теория графов
Основы теории графов 10: экстремальная теория графов
 
Matanal 31oct
Matanal 31octMatanal 31oct
Matanal 31oct
 
Reshenie diofantovyh uravnenij
Reshenie diofantovyh uravnenijReshenie diofantovyh uravnenij
Reshenie diofantovyh uravnenij
 
нод. взаимно простые числа
нод. взаимно простые числанод. взаимно простые числа
нод. взаимно простые числа
 
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
 
0 характеристика основных числовых множеств
0 характеристика основных числовых множеств0 характеристика основных числовых множеств
0 характеристика основных числовых множеств
 
характеристика основных числовых множеств
характеристика основных числовых множествхарактеристика основных числовых множеств
характеристика основных числовых множеств
 
20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich
 
презентация по теме «действительные числа»
презентация по теме «действительные числа»презентация по теме «действительные числа»
презентация по теме «действительные числа»
 
Gia 2013 modul_algebra_3_
Gia 2013 modul_algebra_3_Gia 2013 modul_algebra_3_
Gia 2013 modul_algebra_3_
 
циклы1
циклы1циклы1
циклы1
 
циклы1
циклы1циклы1
циклы1
 
Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1
 
ТФРВС - весна 2014 - лекция 4
ТФРВС - весна 2014 - лекция 4ТФРВС - весна 2014 - лекция 4
ТФРВС - весна 2014 - лекция 4
 

More from 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
 

More from Alex Dainiak (19)

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

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

  • 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- код. Т.е. выгадали бы единицу в длине слов или расстоянии, но проиграли бы в мощности алфавита в полтора раза.