Jump to content

Локально декодируемый код

(Перенаправлено с Локально декодируемого )

( Локально декодируемый код LDC ) — это код с исправлением ошибок , который позволяет декодировать один бит исходного сообщения с высокой вероятностью, только исследуя (или запрашивая) небольшое количество битов возможно поврежденного кодового слова . [ 1 ] [ 2 ] [ 3 ] Это свойство может быть полезно, скажем, в контексте, когда информация передается по зашумленному каналу, и в определенный момент времени требуется только небольшой подмножество данных и нет необходимости декодировать все сообщение сразу. Обратите внимание, что локально декодируемые коды не являются подмножеством локально проверяемых кодов , хотя между ними есть некоторое перекрытие. [ 4 ]

Кодовые слова генерируются из исходного сообщения с использованием алгоритма, который вносит в кодовое слово определенную избыточность; таким образом, кодовое слово всегда длиннее исходного сообщения. Эта избыточность распределяется по кодовому слову и позволяет с высокой вероятностью восстановить исходное сообщение даже при наличии ошибок. Чем более избыточно кодовое слово, тем более устойчиво оно к ошибкам и тем меньше запросов требуется для восстановления части исходного сообщения.

Более формально, А. -локально декодируемый код кодирует -битное сообщение к -битное кодовое слово такой, что хоть немного сообщения может быть восстановлено с вероятностью используя алгоритм рандомизированного декодирования, который запрашивает только биты кодового слова , даже если до местоположения кодового слова были повреждены.

Более того, идеально гладкий локальный декодер — это такой декодер, который не только всегда генерирует правильный вывод, но и имеет доступ к неповреждённому кодовому слову, для каждого и тот запрос на восстановление бит однороден . [ 5 ] (Обозначение обозначает множество ). Неформально это означает, что набор запросов, необходимых для декодирования любого заданного бита, равномерно распределен по кодовому слову.

Декодеры локальных списков — еще одно интересное подмножество локальных декодеров. Декодирование списка полезно, когда кодовое слово повреждено более чем в места, где — минимальное расстояние Хэмминга между двумя кодовыми словами. В этом случае уже невозможно точно определить, какое исходное сообщение было закодировано, поскольку внутри может быть несколько кодовых слов. расстояние до поврежденного кодового слова. Однако, учитывая радиус , можно идентифицировать набор сообщений, которые кодируются в кодовые слова, находящиеся внутри поврежденного кодового слова. Верхнюю границу размера набора сообщений можно определить по формуле и . [ 6 ]

Локально декодируемые коды также могут быть объединены, при этом сообщение сначала кодируется с использованием одной схемы, а полученное кодовое слово снова кодируется с использованием другой схемы. (Обратите внимание, что в этом контексте конкатенация — это термин, используемый учеными для обозначения того, что обычно называют композицией ; см. [ 5 ] ). Это может быть полезно, если, например, первый код имеет некоторые желательные свойства в отношении скорости, но у него есть некоторые нежелательные свойства, такие как создание кодового слова в недвоичном алфавите. Затем второй код может преобразовать результат первого кодирования из недвоичного алфавита в двоичный алфавит. Окончательное кодирование по-прежнему декодируется локально и требует дополнительных шагов для декодирования обоих уровней кодирования. [ 7 ]

Длина кодового слова и сложность запроса

[ редактировать ]

Скорость кода относится к соотношению длины его сообщения и длины кодового слова: , а количество запросов, необходимых для восстановления 1 бита сообщения, называется сложностью запроса кода.

Скорость кода обратно пропорциональна сложности запроса, но точная форма этого компромисса является серьезной открытой проблемой. [ 8 ] [ 9 ] Известно, что не существует LDC, которые запрашивают кодовое слово только в одной позиции, и что оптимальный размер кодового слова для сложности запроса 2 экспоненциально зависит от размера исходного сообщения. [ 8 ] Однако не существует известных точных нижних границ для кодов со сложностью запроса больше 2. Если подойти к компромиссу со стороны длины кодового слова, то единственные известные коды с длиной кодового слова, пропорциональной длине сообщения, имеют сложность запроса. для [ 8 ] [ нужно обновить ] Существуют также промежуточные коды, кодовые слова которых полиномиальны по размеру исходного сообщения и полилогарифмической сложности запроса. [ 8 ]

Приложения

[ редактировать ]

Локально декодируемые коды имеют приложения к передаче и хранению данных, теории сложности, структурам данных, дерандомизации, теории отказоустойчивых вычислений и схемам поиска частной информации. [ 9 ]

Передача и хранение данных

[ редактировать ]

Локально декодируемые коды особенно полезны для передачи данных по зашумленным каналам. Код Адамара (особый случай кодов Рида-Мюллера) использовался в 1971 году кораблем «Маринер-9» для передачи изображений Марса обратно на Землю. Он был выбран вместо кода с 5 повторениями (где каждый бит повторяется 5 раз), поскольку при примерно одинаковом количестве битов, передаваемых на пиксель, он имел более высокую способность к исправлению ошибок. (Код Адамара подпадает под общую концепцию прямого исправления ошибок и просто оказывается локально декодируемым; фактический алгоритм, используемый для декодирования передачи с Марса, представлял собой общую схему исправления ошибок.) [ 10 ]

НРС также полезны для хранения данных, где носитель со временем может быть частично поврежден или устройство чтения подвержено ошибкам. В обоих случаях НРС позволит восстановить информацию, несмотря на ошибки, при условии, что их относительно немного. Кроме того, НРС не требуют декодирования всего исходного сообщения; пользователь может декодировать определенную часть исходного сообщения без необходимости декодировать все сообщение целиком. [ 11 ]

Теория сложности

[ редактировать ]

Одним из применений локально декодируемых кодов в теории сложности является усиление жесткости. Используя НРС с полиномиальной длиной кодового слова и полилогарифмической сложностью запроса, можно взять функцию это трудно решить для входных данных в худшем случае и разработать функцию это трудно вычислить на входных данных в среднем случае.

Учитывать ограничено только длиной входы. Тогда мы сможем увидеть как двоичную строку длины , где каждый бит для каждого . Мы можем использовать локально декодируемый код полиномиальной длины. с полилогарифмической сложностью запроса, которая допускает некоторую постоянную долю ошибок для кодирования строки, представляющей чтобы создать новую строку длины . Мы думаем об этой новой строке как об определении новой проблемы. по длине входы. Если в среднем легко решить, то есть мы можем решить правильно в большой дроби входных данных, то, используя свойства LDC, используемые для его кодирования, мы можем использовать вероятностно вычислить на всех входах. Таким образом, решение для большинства входных данных позволит нам решить на всех входах, что противоречит нашему предположению, что сложно работать с входными данными в худшем случае. [ 5 ] [ 8 ] [ 12 ]

Схемы поиска частной информации

[ редактировать ]

Схема поиска частной информации позволяет пользователю получить элемент с сервера, владеющего базой данных, не раскрывая, какой именно элемент был получен. Одним из распространенных способов обеспечения конфиденциальности является наличие отдельные необщающиеся серверы, на каждом из которых есть копия базы данных. При наличии соответствующей схемы пользователь может делать запросы к каждому серверу, которые по отдельности не раскрывают, какой бит ищет пользователь, но которые вместе предоставляют достаточно информации, чтобы пользователь мог определить конкретный интересующий его бит в базе данных. [ 3 ] [ 11 ]

Легко видеть, что локально декодируемые коды имеют применение в этой ситуации. Общая процедура изготовления -Схема приватной информации сервера с идеально гладкой -query локально декодируемый код выглядит следующим образом:

Позволять быть идеально гладким НРС, который кодирует -битные сообщения для -битовые кодовые слова. На этапе предварительной обработки каждый из серверы кодирует -битная база данных с кодом , поэтому каждый сервер теперь хранит -битное кодовое слово . Пользователь, заинтересованный в получении немного случайным образом генерирует набор запросы такой, что можно вычислить из используя локальный алгоритм декодирования для . Пользователь отправляет каждый запрос на другой сервер, и каждый сервер отвечает запрошенным битом. Затем пользователь использует вычислить из ответов. [ 8 ] [ 11 ] Поскольку алгоритм декодирования совершенно гладкий, каждый запрос равномерно распределен по кодовому слову; таким образом, ни один отдельный сервер не может получить никакой информации о намерениях пользователя, поэтому протокол является конфиденциальным, пока серверы не обмениваются данными. [ 11 ]

Код Адамара

[ редактировать ]

Код Адамара (или Уолша-Адамара) является примером простого локально декодируемого кода, который отображает строку длины к кодовому слову длины . Кодовое слово для строки строится следующим образом: для каждого , бит кодового слова равен , где (мод 2). Легко видеть, что каждое кодовое слово имеет Хэмминга расстояние от любого другого кодового слова.

Алгоритм локального декодирования имеет сложность запроса 2, и все исходное сообщение может быть декодировано с хорошей вероятностью, если кодовое слово будет повреждено менее чем за из его битов. Для , если кодовое слово повреждено в доли мест, локальный алгоритм декодирования может восстановить бит исходного сообщения с вероятностью .

Доказательство: задано кодовое слово. и индекс , алгоритм восстановления часть исходного сообщения работает следующим образом:

Позволять обратитесь к вектору в у которого есть 1 в позиция и 0 в другом месте. Для , обозначает один бит в что соответствует . Алгоритм выбирает случайный вектор и вектор (где обозначает побитовое исключающее ИЛИ ). Алгоритм выводит (против 2).

Корректность: По линейности,

Но , поэтому нам просто нужно это показать и с хорошей вероятностью.

С и равномерно распределены (даже несмотря на то, что они зависимы), граница объединения подразумевает, что и с вероятностью по крайней мере . Примечание. Чтобы повысить вероятность успеха, можно повторить процедуру с разными случайными векторами и получить ответ большинства. [ 13 ]

Код Рида-Мюллера

[ редактировать ]

Основная идея локального декодирования кодов Рида-Мюллера полиномиальная интерполяция . Ключевой концепцией кода Рида-Мюллера является многомерный полином степени на переменные. Сообщение рассматривается как оценка полинома в наборе предопределенных точек. Чтобы закодировать эти значения, из них экстраполируется полином, а кодовое слово представляет собой оценку этого полинома во всех возможных точках. На высоком уровне для декодирования точки этого полинома алгоритм декодирования выбирает набор точек на линии, проходящей через точку интереса . Затем он запрашивает кодовое слово для оценки полинома в точках и интерполирует этот полином. Тогда легко вычислить полином в той точке, которая даст . Этот окольный способ оценки полезен, потому что (а) алгоритм можно повторять, используя разные линии через одну и ту же точку, чтобы повысить вероятность правильности, и (б) запросы равномерно распределяются по кодовому слову.

Более формально, пусть — конечное поле, и пусть быть числами с . Код Рида-Мюллера с параметрами это функция RM: который отображает каждый -переменный полином над общей степени ценностям на всех входах в . То есть входные данные представляют собой полином вида определяется интерполяцией значения предопределенных точек, а вывод представляет собой последовательность для каждого . [ 14 ]

Чтобы восстановить стоимость диплома полином в точке , локальный декодер пропускает случайную аффинную строку через . Затем он выбирает точки на этой линии, которые он использует для интерполяции полинома, а затем оценивает его в той точке, где результат равен . Для этого алгоритм выбирает вектор равномерно случайным образом и рассматривает линию через . Алгоритм выбирает произвольное подмножество из , где и запрашивает координаты кодового слова, соответствующие точкам для всех и получает значения . Затем он использует полиномиальную интерполяцию для восстановления уникального одномерного полинома. со степенью меньше или равной такой, что для всех . Затем, чтобы получить значение , он просто оценивает . Чтобы восстановить одно значение исходного сообщения, нужно выбрать быть одной из точек, определяющих полином. [ 8 ] [ 14 ]

Каждый отдельный запрос равномерно случайным образом распределяется по кодовому слову. Таким образом, если кодовое слово повреждено не более чем за доля местоположений, согласно границе объединения, вероятность того, что алгоритм выберет только неповрежденные координаты (и, следовательно, правильно восстановит бит), равна как минимум . [ 8 ] Другие алгоритмы декодирования см. [ 8 ]

См. также

[ редактировать ]
  1. ^ Сергей Еханин. «Локально декодируемые коды: краткий обзор» (PDF) .
  2. ^ Рафаил Островский; Омкант Пандей; Амит Сахай. «Частные локально декодируемые коды» (PDF) .
  3. ^ Jump up to: а б Сергей Еханин. Новые локально декодируемые коды и схемы поиска частной информации, Технический отчет ECCC TR06-127 , 2006 г.
  4. ^ Кауфман, Тали ; Видерман, Майкл. «Локально проверяемые и локально декодируемые коды» .
  5. ^ Jump up to: а б с Лука Тревизан. «Некоторые применения теории кодирования в условиях сложности вычислений» (PDF) .
  6. ^ Арора, Санджив ; Барак, Вооз (2009). «Раздел 19.5». Вычислительная сложность: современный подход . Кембридж . ISBN  978-0-521-42426-4 .
  7. ^ Арора и Барак, 2009 г. , раздел 19.4.3.
  8. ^ Jump up to: а б с д и ж г час я Сергей Еханин. «Локально декодируемые коды» (PDF) .
  9. ^ Jump up to: а б Сергей Еханин. «Локально декодируемые коды» (PDF) .
  10. ^ «Комбинаторика в космосе, телеметрическая система Mariner 9» (PDF) .
  11. ^ Jump up to: а б с д Сергей Еханин. «Получение частной информации» (PDF) .
  12. ^ Арора и Барак 2009 , раздел 19.4.
  13. ^ Арора и Барак 2009 , раздел 11.5.2.
  14. ^ Jump up to: а б Арора и Барак, 2009 г. , раздел 19.4.2.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 2cd74cd3f0d1e928bdec10022595a965__1704831840
URL1:https://arc.ask3.ru/arc/aa/2c/65/2cd74cd3f0d1e928bdec10022595a965.html
Заголовок, (Title) документа по адресу, URL1:
Locally decodable code - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)