Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
111
Добавлен:
27.03.2015
Размер:
1.61 Mб
Скачать

Дискретная математика

Читал: Павлов Игорь Сергеевич

Набрал: Смирнов Вадим Евгеньевич

ННГУ, 2000 г.

Глава V. Теория кодирования.

(Лекция 14)

  1.  = ’

  2. Сжатие информации

Оптимальное кодирование

Кодирование производится с помощью словофункции

f: A*  B*,

где А – алфавит источника, В – алфавит канала.

- схема кодирования

Ai  A*, Vi  B*, i = 1, 2, …, k

F(ai1ai2…ain) = Vi1Vi2…Vin

Определение. {V1, …,Vk} –код, а соответствие между А и В (f) называетсякодированием. Каждый элемент кода называетсяэлементарным кодом.

Будем обозначать все схемы кодирования через 

Примеры:

A= {a, b, c, d}, B = {0, 1}

1– схема равномерного кодирования,

2– схема неравномерного кодирования

Для сжатия информации желательно, чтобы длина полученного после кодирования слова была как можно меньше.

Определение. Пусто существует схема кодирования~f(). Отношение длины кодаf() к длине самого слова называется стоимостью кодирования словав схеме, то есть.

В рассмотренном примере стоимость кодирования равняется двум независимо от слова .

С(1,) = 2 С(2,) – зависит от

раз.

|| =n1+ … +nk=n

|f()| =n1|V1| + … +nk|Vk|, так какaiViи встречаетсяniраз.

В этом случае , где- частота.

Определение. Величинапоказывает, какую часть словазанимает букваai. Она называется частотой вхождения буквыaiв слово.

для любого слова

Отсюда:

Определение.

Пример: В русском языке наблюдается устойчивость частот. Например: ро= 0,09; ре= 0,047.

Если мы рассматриваем большие сообщения, то пользуемся частичными частотами для данного языка.

При этом

Теперь можно сравнить способы кодирования для данных частот

Пример: Пустьp­1= (¼; ¼; ¼; ¼).

С(1,) = 2 для любыхиpi

С(2,) = ¼ (1 + 2 + 3 + 3) = 2¼

Вывод. Для схемы 1стоимость кодирования меньше, чем для схемы2при наборе частотp1.

Пусть: (½; ¼; ;)

С(1,) = 2 для любыхиpi

С(2,) = ½ 1 + ¼  2 + (3 + 3) = 1¾

Схему 3можно раскодировать неоднозначно. Такие схемы мы исключаем из рассмотрения.

(Лекция 15)

Кодирование – это отображение.

Потребуем, чтобы fбыла взаимно-однозначная, то естьf– биекция, то естf(A*) =B*иf(a1) =f(a2)a1=a2.

Допустим, что f– не биекция. Нарушение однозначности означает, что приai1…ainaj1…ajmвыполняетсяVi1…VinVj1…Vjm

Определение. Будем говорить, что кодV= {V1, …,Vk} -свободный, еслиVi1…Vin=Vj1…Vjmвыполняется тогда и только тогда, когдаn=mиi1=j1, …,in=jm.

Выделив класс свободных кодов, ставим задачу нахождения оптимального кодирования.

Задача I. Набор частотP= (p1, …,pk). Найти свободный кодV= {V1, …,Vk} такой, чтобы стоимость кодирования была наименьшей.

Рассмотрим более узкий класс свободных кодов – префиксный код. Префиксом будем называть всякое начало слова.

Определение. Код называетсяпрефиксным, если ни одно из его слов не является началом другого слова этого кода.

Пример. Не префиксный код:V= {01, 001, 110,0100}

Первое слово является началом последнего слова., значит – такой код не префиксный.

Графическое представление префиксного кода

V1 = {00, 001, 100, 11}

Вершины 00 и 001 смежны.

У не префиксных кодов всегда элементарные

коды расположены в смежных вершинах

V1’ = {00, 010, 100, 11} – префиксный код

Соседние файлы в папке Дискретка_лекции