
- •Основы Теории Информации Гордеев э.Н.
- •Содержание
- •1Введение
- •1.1Предмет курса
- •1.2Основная цель курса
- •1.3Теория информации и смежные дисциплины
- •1.4Подходы к определению понятия информация.
- •2Алфавит. Слово. Язык. Информация.
- •3Информация и алгоритм.
- •3.1Задачи, алгоритмы
- •3.1.1Задача
- •3.2Алгоритм
- •3.2.1Нормальные алгорифмы Маркова (нам).
- •3.2.2Машины Тьюринга
- •4Кодирование информации. Количество информации. Сжатие информации.
- •4.1Кодирование информации.
- •4.1.1Примеры кодировок
- •4.1.2Свойства кодировок
- •4.2Наиболее распространенные способы кодирования и их свойства. Алгоритмы кодирования.
- •4.2.1Кодирование слов и поиск минимального кода
- •4.2.2Признаковое кодирование.
- •4.2.3Признаковое кодирование и проблема распознавания.
- •4.2.4Сериальное кодирование
- •4.2.5Алфавитное кодирование.
- •4.2.5.1Неравенство Крафта.
- •4.2.5.2Префиксные коды.
- •4.2.6Кодирование натурального ряда.
- •4.2.6.1Код Элайеса.
- •4.2.6.2Код Левенштейна
- •5Количество информации. Энтропия.
- •5.1.1Энтропия по Хартли.
- •5.1.2Энтропия по Шеннону.
- •5.1.2.1Математическая модель: алфавитное кодирование случайного источника.
- •5.1.2.2Энтропия по Шеннону
- •5.1.2.3Энтропия по Шеннону и энтропия по Хартли.
- •6Теорема Шеннона
- •7Свойства энтропии.
- •8Алгоритмы кодирования
- •8.1Алгоритм Шеннона (Фано)
- •8.2Алгоритм Хаффмана
- •8.3Блочное кодирование
- •8.4Алгоритм арифметического кодирования
- •8.5Код Элайеса
- •8.6Код Левенштейна
- •9Блочное кодирование и теорема Шеннона.
- •10Канал с шумом.
- •10.1Модели каналов.
- •10.2Передача информации по двоичному симметричному каналу с шумом
- •10.2.1Схема и принципы кодирования.
- •10.3Корректирующие способности кодов. Границы мощности.
- •10.4Теорема Шеннона для канала с шумом.
- •10.4.1Факты из теории вероятности.
- •10.4.2Схема кодирования и декодирования. Вспомогательные утверждения.
- •10.4.3Вероятностное доказательство теоремы.
- •10.4.4Комбинаторное доказательство теоремы.
- •10.5Линейные коды
- •10.5.1Пример. Код Хемминга.
- •10.5.2Замечание. Совершенные коды и теорема Шеннона.
- •10.5.3Бчх – коды
- •10.6Спектр кода. Эквидистантные коды
- •11Рекомендованная литература
4.2.5.2Префиксные коды.
Определение. Слово α является подсловом слова β, если существуют слова ϒ и ϑ (возможно пустые) такие, что β=ϒαϑ.
В общем случае из неравенства Крафта не следует дешифруемость.
Определение. Кодирование называется префиксным, если ни одно из кодовых слов не является началом другого.
Теорема. Префиксный код дешифруем.
Доказательство: Пусть есть α и β – два слова: φ(α) = Bi1Bi2…Bin, φ(β) = Bj1Bj2…Bjn).
Покажем, что из равенства φ(α) = φ(β) следует равенство α = β.
Пусть Bi1Bi2…Bin = Bj1Bj2…Bjn
Поочередно слева направо сравниваем подслова слов α и β, используя знание функции ϕ, которая определяет наше побуквенное кодирование (эта функция позволяет находить Bi= φ(ai) среди подслов слов α и β. Сначала сравниваем Bi1 = Bj1 , затем переходим к Bi2 и Bj2 и т.д.
Если длины слов Bi1 и Bj1 одинаковы, то сами слова должны быть одинаковыми из того, что Bi1Bi2…Bin = Bj1Bj2…Bjn. Если длины слов разные, то одно из двух слов: Bi1 или Bj1 – начало другого, что противоречит определению префиксности.
Значит, α = β.
Теорема доказана.
Из теоремы сразу следует алгоритм декодирования префиксного кода.
Алгоритм декодирования. Берем первый символ слова φ(α) и ищем однобуквенное слово среди кодовых слов. Если находим такое слово, например, Bi= φ(ai), то декодируем слово Bi= φ(ai) в букву ai и продолжаем работать, начиная со следующего символа слова φ(α). Если не находим, то добавляем следующий символ и ищем среди кодовых слов уже двухбуквенное слово. И т.д.
В случае алфавитного кодирования можно ограничиться префиксными кодами, так как, в каком-то смысле, любой дешифруемый алфавитный (побуквенный) код можно свести к префиксному. А существование префиксного кода полностью определяется неравенством Крафта.
Теорема (о существовании префиксного кода). Префиксный код с длинами кодов l1 … ln существует тогда и только тогда, когда выполняется неравенство Крафта
.
Доказательство. Т.к. префиксный код дешифруем, то выполняется неравенство Крафта. С другой стороны, пусть выполняется неравенство Крафта. Покажем, что в этом случае существует префиксный код. Мы просто опишем алгоритм построения такого кода, т.е. построим отображение Bi= φ(ai).
Пусть . Пусть среди чисел l1 … ln имеется S1 единиц, S2 двоек, S3 троек и т.д. до Sl слов длины l. При этом некоторые из Si могут быть нулями. Упорядочим Bi= φ(ai) по возрастанию длины.
B
1
= |l1| = 1
B2 = |l2| = 1 S1 слов длины 1
…
B
S1
= |lS1|
= 1
B S1+1 = |l S1+1| = 2
S2 слов длины 2
…
Т
огда
левую часть неравенства Крафта можно
представить в виде:
S1 S2 S3
Теперь пошагово строим наш префиксный код.
Первый шаг: Любые S1 букв в B можно использовать для кодирования слов длины. Это следует из того, что при выполнении неравенства Крафта справедливо соотношение: S1/q ≤ 1, из которого следует, что S1 ≤ q. Таким образом мы получили первую группу однобуквенных слов.
Второй шаг: Аналогично из неравенства Крафта получаем S1/q + S2/q ≤ 1 . Отсюда S1q + S2 ≤ q2 , S2 ≤ q2 – s1q. Поэтому можно взять S2 слов длины 2 в алфавите B так, что они не начинаются со слов первой группы. Таким образом мы получили вторую группу двухбуквенных слов.
Третий шаг: На этом шаге строим группу трехбуквенных слов так, чтобы они не начинались с ранее построенных слов. Такие трехбуквенные слова в нужном количестве существуют, так как вновь из неравенства Крафта следует, что S1/q + S2/q + S3 / q ≤ 1. А это означает, что S3 ≤ q3 – qS2 – q2S1.
Таким образом проходим все l шагов и в результате получаем дешифруемый префиксный код.
Теорема доказана.