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

Задача № 4

Решение задачи 4 а

Разработать схемы алфавитного кодирования с минимальной избыточностью (коды Хаффмана) для случаев (а) и (б):

а) появление букв в сообщении равновероятно;

б) вероятности появления букв в сообщении заданы.

Построить кодовые деревья. Получить схемы кодирования, определить l(увеличение длины закодированного сообщения над исходным)

Таблица к задаче 4а

r

q

9

4

Р Е Ш Е Н И Е

Решим задачу для случая (а):

q m r q m+1, (1)

(для конкретных значений q и r всегда можно подобрать значение m, удовлетворяющее этому неравенству).

Обобщенный алгоритм поиска кода (схемы кодирования) с минимальной избыточностью:

  • для построения элементарных кодов использовать только mиm+1ярусы кодового дерева;

  • переходить на m+1 ярус только после исчерпания всех возможностейm–го яруса.

Для реализации этого алгоритма необходимо представить rв виде уравнения:

r =(qmn )+ q nt , (2)

где n– количество неконцевых вершин ярусаm( будут ветвиться вm+1 ярус);

t(t q).– количество вершинm+1 яруса, которые не будут задействованы при построении кода (n, t целые неотрицательные числа).

Формула для определения l будет иметь следующий вид:

l = [( q m n) m + (q n – t)( m+1)]/ r (3)

q =4; r = 9 в соответствии с формулой (1)m = 1.Для кодирования будет достаточно 1–го и 2–го ярусов обобщенного кодового дерева (см. рис. 1).

r =( qmn)+ q nt, 9= (4 –n)+ 4 nt (подбираем целые n и t)

Равенство выполняется для n = 2 и t= 1.

Определим l для полученной схемы по формуле (3)

l = [( q m n) m + (q n – t)( m+1)]/ r

l = (( 4-2) х 1 + (4х2 – 1) (1+1)) / 9 = 16/9 = 1,78.

Решение задачи 4 б

r

q

p1, p2, …p12

10

4

0,34; 0,18; 0,15; 0,05;… 0,05; 0,04; 0,04

Алгоритм решения задачи следующий:

1 Определить qопо формуле (4).

k = r/ (q –1)(остаток от деления)

(4)

k = 10/3 = 1; q0 = 4.

2 Упорядоченный по убыванию список вероятностей p1, p2, …prзаменяют новым упорядоченным списком вида:p1, p2,.. pj, p,…prqo,гдеp =prqo+1+ …+ pr(т.е. суммируют последниеqоштук элементов списка и создают новый упорядоченный список, в который входит полученная сумма); процесс суммирования и упорядочивания (но уже суммируют последниеq штук элементов) продолжается до тех пор, пока в списке вероятностей останется ровноq элементов.

Упорядоченный список 1 (10 чисел) 0,34; 0,18; 0,15; 0,05;… 0,05; 0,04; 0,04

Упорядоченный список 2 (7 чисел) 0,34; 0,18; 0,18; 0,15; 0,05; 0,05; 0,05

Упорядоченный список 3 (4 числа) 0,34; 0,3; 0,18; 0,18;

3 Для последнего свернутого в п.2 списка строится одноярусное кодовое дерево (из начальной вершины выходит qребер, каждому из которых приписывается буква алфавитаO, а каждой вершине 1–го яруса вероятности из последнего свернутого списка).

4 Построить 2–й, 3–й и другие ярусы кодового дерева, на которых развернуть просуммированные вероятности последнего, предпоследнего и т.д. списков(вершины, которым приписаны вероятности букв входного алфавита на любом ярусе, становятся концевыми); в результате таких действий получим кодовое дерево, в котором rконцевых вершин и каждой из которых приписана вероятностьpj.Выписав цепи из нулевой вершины к концевым (перечень ребер), получим схему кодирования с минимальной избыточностью.

Величина среднего превышения длины закодированного сообщения над длиной самого сообщения определим по формуле:

= 0,34 + 0,18 + (0,3+0,18)х2 =1,48.

Соседние файлы в папке Теория Алгоритмов_заоч_14