Loading [MathJax]/jax/output/HTML-CSS/jax.js
Now you are in the subtree of Lecture Notes public knowledge tree. 

Теорема о списочном декодировании

Теорема (О кодах Адамара или о списочном декодировании)

Пусть hx(y)=xy - код Адамара слова 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,,r2s1 - все нетривиальные суммы uj. Они будут попарно независимыми равномерно распределенными. Представим ri в виде вектор-столбца R=AU.

hx(u1+u2+us)=hx(u1)+hx(u2)+hx(us). То есть hx(ri) полностью определяется hx(u1),,hx(us).

k-ый бит x: xk=hk(ek)=xek

Алгоритм восстановления x (списком):

  1. Для всех строк длины b{0,1}s

  2. Для всех k=1,,n
    xk=majorityi=1,,2s1(ˉh(ek+ri)+hx(ri)) где hx(ri) посчитан при условии hx(u1)=b1,,hx(us)=bs

  3. Добавить x в список.

Введем случайные перменные ξi - индикаторы ˉh(y+ri)=hx(y+ri). ri - случайные, следовательно Pr{ξi=1}12+ε. Посчитаем вероятность плохого исхода: 14ε212s1n. Хотим, чтобы последняя величина была меньше 12. Откуда slognε2. Весь алгоритм, как легко проверить, полиномиальный.