
- •Основы Теории Информации Гордеев э.Н.
- •Содержание
- •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Рекомендованная литература
8.5Код Элайеса
Код Элайеса неотрицательного целого числа n обозначим через El (n). Положим El (0) = 10, El (1) = 11.
Пусть n > 1. Тогда El (n)= 00…0 BIN([log n]+1) B(n), где 00…0 – маркер, необходимый для того, чтобы знать, сколько последующих за 0 символов может задавать длину записи числа. Поэтому в данном коде количество нулей перед BIN([log n]+1) равно [log (BIN([log n]+1)].
Примеры:
El(5) = 0 10101
E l(75) = 00 110001011
log n
log (log n)+1
log (log n)
Утверждение. Длина |El(n)| не превосходит log n + 2 log (log n) + 3.
Утверждение. Код Элайеса – префиксный.
Доказательство: Рассмотрим El (n) и El (m). Если хотя бы одно из этих слов начинается с 1, то это либо 0, либо 1. Утверждение доказано. Пусть n, m больше 1, вспомним теорему о дешифруемости кода: El(n) = α1…αk, El(m) = β1…βS (для определенности k ≥ s). Пусть количество 0, с которых начинается α, совпадает с количеством 0, с которых начинается β. (В противном случае сразу следует свойство префиксности кода.) Далее рассмотрим вторые подслова слов El (n) и El (m). Если они не совпадают, то префиксность кода доказана. Если совпадают, то переходим к окончаниям слов. Если они совпадают, то m=n. В противном случае n не равно m. Таким образом, при m≠n выполняется соотношение B(n) ≠B(m).
Утверждение доказано.
Примеры:
El(5) = 0 10101
E l(75) = 00 110001011
log n
log (log n)+1
log (log n)
Длина |El(n)| = [log n] + [log [log n]] + 1 + [log [log n]] = log n + 2 log (log n) + k
Утверждение: Код Элайеса – префиксный.
Доказательство: Рассмотрим El (n) и El (m). Если хотя бы одно из этих слов начинается с 1, то это либо 0, либо 1, утверждение доказано. Пусть n, m больше 1, вспомним теорему о дешифруемости кода: El(n) = α1…αk, El(m) = β1…βS (для определенности k ≥ s). Пусть количество 0, с которых начинается α, совпадает с количеством 0, с которых начинается β. Тогда рассмотрим второе подслово: если не совпадают, то префиксов не будет, если совпадают, то смотрим на конец, а там: n не равно m, а значит B(n) не равно B(m).
8.6Код Левенштейна
Пусть λ0(n) = [log n]. λk0(n) = λ0 (λk-10(n)) = [log…[log n]].
Для любого n существует S такое, что: λS0(n) = 0, λS-10(n) = 1.
Положим Lev(0)=0, Lev(1) =10. Пусть n > 1. Тогда
Lev(n) = 11…10 B(λS-20(n))…B(λ0(n))B(n), где 11…10 – слово из S единиц и одного нуля.
Утверждение: Длина кода Левенштейна задается соотношением
|Lev(n)| = log n + log log n + o(log log n).
Утверждение: Код Левенштейна префиксный
Пример:
Lev(75) = 11110 0 10 001011
маркер B( λ0 (λ0(n)) B(λ0(n)) B(n)
S = 4
9Блочное кодирование и теорема Шеннона.
Используя свойства энтропии можно в каком-то смысле уточнить теорему Шеннона. Пусть мы будем кодировать не буквы алфавита A, а блоки из k букв алфавита A. Вероятность каждого блока – это произведение вероятностей входящих в него букв. Тогда блок может быть представлен как произведение независимых событий. Энтропию такого блока H(AA…A) обозначим Hk(A). Минимальную стоимость кодирования для блока обозначим через Ck(A). Очевидно, что минимальная стоимость кодирования C(A) для одной буквы блока удовлетворяет соотношению C(A) ≤ Ck(A)/k.
Из свойства энтропии (5) следует, что H(A)= Hk(A)/k. Из этих соотношений и теоремы Шеннона для блоков
Ck(A) – 1 ≤ Hk(A)/logq ≤Ck(A) следует
Ck(A)/k – 1/k ≤ H(A)/logq ≤Ck(A)/k.
Отсюда при k →∞ получаем, что H(A)/logq → Ck(A).
За такую точность приходится платить трудоемкостью алгоритмов кодирования (декодирования).
Таким образом, была доказана теорема.
Теорема. Для любого ε > 0 существует Nε такое, что при блочном кодировании с числом блоков N > Nε справедливо неравенство |Cε(A) – H(A)| < ε.
Здесь Cε(A) - среднее число символов на одну букву в данном алгоритме кодирования. (Например, блочный алгоритм Хаффмена.)
Данное утверждение известно как теорема Шеннона для канала без шума. Приведем это утверждение в более привычной формулировке.
Пусть скорость источника А - Vc букв в секунду.
Тогда можно считать, что на одну букву приходится H(А) битов. Тогда битовая скорость источника vc = Vc H(X).
Представим, что битовый поток поступает в канал (без искажений).
Канал
Получатель
Бинарный
поток
Бинарный
поток
Проблема: синхронизация скорости источника и пропускной способности канала.
Очевидно, что если по каналу можно передавать информацию со скоростью vk < Vc log n, то могут произойти потери информации, так как max H(А) = log n. Если же технические возможности канала таковы, что он обеспечивает скорость vk ≥ Vc log n, то информация может быть передана без потерь.
Теорема. (Торема Шеннона для канала без шума). Для источника A с энтропией H(A) скорость v передачи по каналу без шума удовлетворяет условиям:
v > Vc H(X).
Существует такая кодировка букв источника битовыми словами, что для любого ε > 0 v< Vc H(X) + ε.