Теорема о списочном декодировании
Теорема (О кодах Адамара или о списочном декодировании)
Пусть hx(y)=x⊙y - код Адамара слова x∈{0,1}n. Пусть ˉh(y) - такая функция, что доля y удовлетоворяющих ˉh(y)=hx(y) больше либо равна 12. Тогда существует вероятностный алгоритм, работающий poly(nε), имеющий произвольный доступ к ˉh, выдающий список слов длины n, с вероятностью ≥12 содержит x.
Доказательство (теоремы о списочном декодировании)
hx(y)=hx(y+r)+hx(r) Отсюда еще можно заметить, что если бы было испорчено не более четверти битов, то можно было hx(y),hx(r) заменить на ˉh и выбирать максимум. hx(y)=majorityr(ˉh(y+r)+hx(r)) Можно взять выборку из попарно независимых ri. Как их построить? Есть небольшое количество случайных вектор-строк длины n: u1,…,us.
r1,…,r2s−1 - все нетривиальные суммы uj. Они будут попарно независимыми равномерно распределенными. Представим ri в виде вектор-столбца R=A⋅U.
hx(u1+u2+us)=hx(u1)+hx(u2)+hx(us). То есть hx(ri) полностью определяется hx(u1),…,hx(us).
k-ый бит x: xk=hk(ek)=x⊙ek
Алгоритм восстановления x (списком):
Для всех строк длины b∈{0,1}s
Для всех k=1,…,n
xk=majorityi=1,…,2s−1(ˉh(ek+ri)+hx(ri)) где hx(ri) посчитан при условии hx(u1)=b1,…,hx(us)=bsДобавить x в список.
Введем случайные перменные ξi - индикаторы ˉh(y+ri)=hx(y+ri). ri - случайные, следовательно Pr{ξi=1}≥12+ε. Посчитаем вероятность плохого исхода: ≤14ε2⋅12s−1⋅n. Хотим, чтобы последняя величина была меньше 12. Откуда s≃lognε2. Весь алгоритм, как легко проверить, полиномиальный.