- •Э.Н.Гордеев теория информации и сложность алгоритмов
- •Гордеев Эдуард Николаевич теория информации и сложность алгоритмов.
- •Раздел 1. Информация и Алгоритм. Коды объектов. 6
- •Раздел 2. Сжатие информации. 11
- •Предмет курса
- •Основная цель курса
- •Что такое информация?
- •Раздел 1. Информация и Алгоритм. Коды объектов. 5
- •2.2 Основной вывод: информация и алгоритм – взаимообусловленные понятия. 8
- •Раздел 2. Сжатие информации. 11
- •Раздел 1. Информация и Алгоритм. Коды объектов.
- •Введение
- •Подходы к определению информации.
- •Описательный подход
- •Использование аналогии и эквивалентности
- •Основной вывод: информация и алгоритм – взаимообусловленные понятия.
- •Представление (кодирование) информации.
- •Раздел 2. Сжатие информации.
- •Кодирование информации. Количество информации. Сжатие информации.
- •Энтропия по Хартли.
- •Энтропия по Шеннону.
- •Математическая модель: алфавитное кодирование случайного источника.
- •Энтропия по Шеннону и энтропия по Хартли.
- •Свойства энтропии.
- •Алгоритмы кодирования
- •Алгоритм Шеннона (Фано).
- •Алгоритм Хаффмана
- •Блочное кодирование Хаффмена.
- •Замечание. О длине блока и сложности кодирования.
- •Блочное кодирование и теорема Шеннона.
- •Раздел 3. Передача информации. Защита от искажений.
- •Передача информации по каналу с шумом.
- •Передача информации по двоичному симметричному каналу с шумом
- •Корректирующие способности кодов. Границы мощности.
- •Теорема Шеннона для канала с шумом.
- •Факты из теории вероятности.
- •XI → канал → y
- •Вероятностное доказательство теоремы.
- •Комбинаторное доказательство теоремы.
- •Примеры кодов, исправляющих ошибки. Линейные коды.
- •Спектр кода.
- •Линейные коды.
- •Теорема об эквидистнантных кодах
- •Рекомендованная литература
Теорема об эквидистнантных кодах
Оказывается «мощностное свойство» кода Макдональда справедливо для любых эквидистантных кодов.
Теорема: Пусть V – эквидистантный линейный код в Bn, тогда |V| ≤ n + 1.
Доказательство. Пусть V = (V1,…,Vs), и при этом ρ(Vj, Vi) = d, если i ≠ j .
Тогда имеем
Будем считать,
что 0
V
и пусть это будет первый вектор кода,
т.е.
.
Определитель
Грамма для векторов
:
- линейно независимы.
Итак, имеем S-1 линейно независимых векторов.
В пространстве Bn может быть не более n линейно независимых векторов
S n+1.
Теорема доказана.
Грубо говоря, требование симметрии типа эквидистантности приводит к тому, что в коде остается всего порядка log(|Bn |) точек.
БЧХ – коды
В начале 1950-х годов в теории кодирования была поставлена задача построить возможное обобщение кода Хэмминга - код, исправляющий t ошибок. Для этого потребовалось порядка 10 лет.
Стояла задача построить (n,k)- код с минимальным числом строк проверочной матрицы и заданным кодовым расстоянием d. Обозначим это минимальное число строк такого кода через m(n,d).
В основу легли идеи:
Построить такую проверочную матрицу, у которой кодовое расстояние 2t + 1 (2t столбцов линейно-независимы).
Используя алгебраические свойства кода, построить алгоритм кодирования (декодирования).
Определитель Вандермонда
для матрицы, состоящей из различных элементов поля (αi≠αj; i,j=1,…,n) не равен нулю, поэтому любые d-1 столбцов этой матрицы линейно независимы.
Рассмотрим построение проверочной матрицы. Пусть l1, l2, …, lt - локаторы ошибок – двоичные записи номеров битов, в которых произошли ошибки, тогда проверочная матрица строится так, что ее строки задают проверочные отношения по следующей схеме:
Получаем t уравнений с t неизвестными, при декодировании решаем их и находим, где произошли ошибки.
Опишем на следующем примере основную идею декодирования.
Пример. Рассмотрим БЧХ-код, исправляющий две ошибки.
Его проверочная матрица состоит из двух половин: первая половина (верхняя часть матрицы) – та же, что и у кода Хэмминга. Предположим, что множество вектор - столбцов верхней половины – элементы поля. (Т.е. их можно складывать, вычитать, умножать и делить.) Тогда вторая половина проверочной матрицы – значения некоторой функции f(i) от векторов первой половин, например, столбцы первой, возведенные в куб (нельзя брать квадраты, потому что квадрат суммы в некоторых полях равен сумме квадратов).
В этом случае первая половина γ вектора синдрома задает, как и раньше сумму позиций i и j, в которых произошла ошибка, а вторая половина δ – сумму кубов этих позиций. Если произошло две ошибки, то мы получаем два уравнения с двумя неизвестными. Решаем их (а в поле это можно сделать!) и находим позиции ошибок.
Сказанное проиллюстрировано ниже.
Мы имеем систему двух уравнений с двумя неизвестными:
В поле GF(2n) (см. Замечание ниже) можно получить:
.
Отсюда
.
Тогда
удовлетворяют уравнению
.
Это уравнение решается в поле GF(2n) и всегда имеет там два корня.
Замечание.
На практике вектора i и j называются векторами локаторов ошибок (или просто локаторами ошибок), а многочлен, корнями которого являются вектора, мультипликативно обратные локаторам ошибок, называется многочленом локаторов ошибок. И именно он используется в алгоритмах кодирования и декодирования, вместо приведенного выше.
В общем случае это следующий многочлен:
,
где произведение берется по всем локаторам ошибок.
Для нашего примера о н выглядит
так:
.
Пусть α1…αn – элементы поля GF(2k), а γ1,γ2,…, γi- соответствующие им двоичные векторы, записанные в виде столбцов.
Рассмотрим матрицу.
=
(0,1)-матрица
Теорема: Любые 2S столбцов матрицы линейно-независимы.
Доказательство. От противного.
Заметим, что (α1 + … + αn)2 = α12 + … + αn2 (1)
Пусть существует h столбцов (h ≤ 2S), являющихся линейно-зависимыми. Это столбцы с номерами i1…ih , тогда
γ2t-1i1 + … + γ2t-1in = (0…0)T, t = 1…S
Если перейти к элементам поля получим:
α 2t-1i1 + … + α 2t-1in = 0, t = 1…S (2)
Для любого четного q (1 ≤ q ≤ 2S): q = 2U (2t – 1), U ≥ 1, t ≤ S
Применим соотношение (1) к равенству (2) U раз и получим:
α 1i1 + … + α qin = 0, q = 1…2S. (3)
Возьмем матрицу M, определитель любого минора порядка (d – 1) будет представлять собой определитель Вандермонда порядка d – 1. А он не равен нулю.
Теперь возьмем d = 2S + 1, т.о. любой минор порядка 2S не равен 0. Отсюда следует, что любые 2S столбцов линейно-независимы.
Получили противоречие с соотношением(3).
Теорема доказана.
Следствие:
Матрица
может быть проверочной матрицей (n,
k) – кода, исправляющего
S ошибок.
Примеры.
Код Хэмминга является БЧХ-кодом с кодовым расстояние 3 и исправляет одну ошибку.
Проверочная матрица кода с расстоянием 5 строится из двух частей. Верхняя часть – проверочная матрица кода Хэмминга. Нижняя половина – столбцы верхней половины, возведенные в куб (эти столбцы трактуются как элементы описанного выше поля. Схема декодирования приведена выше.
Для случая трех ошибок проверочная матрица состоит уже из трех частей. Третья часть – это столбцы первой части, возведенные в пятую степень. Многочлен денумераторов ошибок имеет третью степень. Пусть произошло 3 ошибки в позициях η, δ, ζ. Тогда при рассмотрении верхней части матрицы η + δ + ζ = ρ*; второй части: η3 + δ3 + ζ3 = ρ**; третьей части: η5 + δ5 + ζ5 = ρ***. Получаем систему из трех уравнений с тремя неизвестными.
Теория и алгоритмы решения уравнений в конечных полях хорошо разработаны, поэтому решение уравнений в алгоритме декодирования БЧХ-кода не представляет труда. Конечно, чем больше S, тем больше сложность алгоритма.
Число проверочных символов БЧХ-кода для исправления S ошибок (упомянутое выше минимальное число строк проверочной матрицы) подчиняется соотношению:
m(n,d) ~ s log n
k = n – s log n при n → ∞, k → n.
Утверждение. Для любой бесконечной последовательности (n,k,d)-кодов БЧХ над GF (q) скорость кода k/n и отношение d/n стремятся к нулю с ростом n.
Замечание.
Опр. Линейный код длины п называется циклическим, если для любого кодового слова (x1,x2, ... , xn) слово (x2, ... , xn,x1) также является кодовым.
БЧХ-код является циклическим кодом.
Циклические коды обладают несложными процедурами кодирования и декодирования, имеют хорошие алгебраические свойства, их группы автоморфизмов содержат циклические подстановки. Все совершенные линейные коды, коды Рида-Маллера и другие коды являются кодами, которые после перестановки координат и несущественной модификации оказываются циклическими. Многие важнейшие блоковые коды, открытые позже, также оказались либо циклическими, либо тесно связанными с ними.
Построение БЧХ-кодом явилось качественным прорывом не только в такой математической дисциплине как Теория кодирования, но и в инженерных технологиях защиты информации от шума в канале.
Выше мы уже упоминали о том, что в протоколах передачи информации встают вопросы синхронизации скорости генерации кодовых слов, скорости передачи и пропускной способности канала.
Таким же важным вопросам для адаптивных протоколов является подбор соответствия корректирующей способности кода и качества канала. Очевидно, что при вероятности ошибки в канале p=0,2 и длине кодового слова n=10 использование кода с d=4 или даже 5 означает сознательное согласие на то, что информация будет частично искажаться. Если же кодовое расстояние будет, например, 20, то вероятность искажения информации будет меньше, чем 10-10.
Отсюда следует, что при построении протокола передачи необходимо учитывать такие свойства информации, как важность, ценность, чувствительность к искажению. Для их учета нужно уметь их измерять (кодировать в широком смысле!). Но для этого нужно дать им определение.
Как ни странно, на сегодня этот вопрос еще малоизучен. В протоколах передачи в лучшем случае используются эвристики и экспертные оценки. Типичный подход: «Данная информация является важной и требует и требует передачи с гарантией безошибочности Pγ=10-9.»
А если мы хотим передавать по каналу разные типы информации? На практике для этого используются не только разные каналы, но и разные сети. В то же время, с математической точки зрения, очевидно, что, зная p, n и Pγ можно однозначно подобрать d.
Такого сорта протоколы нельзя построить, имея в своем распоряжении только код, исправляющий одну ошибку. Именно появление кодов с различными значениями параметра d (например, БЧХ-кодов) дало такую возможность.
