Задание 2
Разработать схемы алфавитного кодирования с минимальной избыточностью (коды Хаффмана)
r |
q |
p1, p2, …p12 |
10 |
4 |
0,34; 0,18; 0,15… |
Алгоритм решения задачи следующий:
1 Определить qо по формуле (4).
k = r/ (q –1)(остаток от деления)
(4)
k = 10/3 = 1; q0 = 4.
2 Упорядоченный по убыванию список вероятностей p1, p2, …pr заменяют новым упорядоченным списком вида: p1, p2,.. pj, p,…pr–qo, где p = pr–qo+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 .Выписав цепи из нулевой вершины к концевым (перечень ребер), получим схему кодирования с минимальной избыточностью.
Вывод: Изучил алгоритмы, применяемые в различных видах кодирования.