Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Построение для заданного числа качественных признаков вторичного алфавита M оптимального неравномерного кода методом Хаффмена

Читайте также:
  1. III. Построение войска
  2. А - внутриротовой метод анестезии у нижнечелюстного отверстия (методом ощупывания).
  3. Алгоритм решения транспортной задачи закрытого типа, представленной в матричной форме, без ограничений пропускной способности методом потенциалов
  4. Алфавит. В Сербии используются два алфавита: кириллица и латиница.
  5. Анализ финансового состояния и построение матрицы бухгалтерского баланса компании
  6. Аналитический детерминированный, расчет по аналитическим формулам числа путей на станциях, пропускной способности устройств и др.;
  7. Аналитическое выравнивание (построение тренда), прогноз при помощи тренда на 3 периода вперед

Преимущество метода Хаффмена сказывается при построении ОНК для вторичных алфавитов с числом качественных признаков m>2 (например, если сообщения передаются с помощью трех или более частот). Большая эффективность достигается за счет более строгого выбора числа L наименее вероятных букв первичного алфавита, объединяемых на первом этапе построения кодового дерева.

Число L этих букв должно удовлетворять условиям

2 L m, (19)

кроме того,

(20)

где f - целое положительное число;

K - число букв первичного алфавита;

m - количество качественных признаков вторичного алфавита.

Хаффмен показал, что для получения минимально возможного значения средней длины кодового слова кода необходимо и достаточно выполнения следующих условий:

- при p(ai)>p(at) длины i-го и t-го кодовых слов должны находиться в отношении nt ni;

- L букв первичного алфавита с наименьшими вероятностями имеют кодовые слова одинаковой длины, отличающиеся друг от друга последним символом;

- любая возможная последовательность (nK-1) кодовых символов должна либо сама быть кодовой комбинацией, либо иметь своим префиксом разрешенную кодовую комбинацию.

 

Для первичных (кодируемых) алфавитов с числом качественных признаков m1=12 построение оптимального кода во вторичном (кодовом) алфавите с числом качественных признаков m2=4 сводится к процедуре построения префиксного кодового дерева.

 

Приведем ниже алгоритм выполнения задания:

 

При выполнении алгоритма удобно строить недвоичное кодовое дерево и помечать дуги, входящие в очередную вершину, символами из множества {0, 1,…,m}.

п.1. Объединить

L=2+Rm-1(K-2) (21)

букв с наименьшими вероятностями в некоторую новую букву с вероятностью, равной сумме вероятностей объединяемых букв. В (21) через Rm-1(K-2) обозначен остаток от деления (K-2) на (m-1).

Полагаем, что последний символ буквы aК-L+1 равен «0», последний символ буквы aК-L+2 – «1», последний символ буквы aК-L+3 – «2» и так далее до «L».

п.2. В редуцированном ансамбле определить m букв с наименьшими вероятностями, объединить их в обобщенную букву и присвоить очередному символу каждой из объединяемых букв значения 1, 2,…, m.

п.3. Повторять п.2. до тех пор, пока не получится редуцированный ансамбль из одной буквы, которой соответствует единичная вероятность.

п.4. Для каждой буквы первичного алфавита строим недвоичное кодовое слово, которому соответствует путь на кодовом дереве от корневой вершины к соответствующей концевой вершине по отметкам дуг из множества {0, 1,…, m}.

 

Р е ш е н и е

Шаг 1: п.1. По формуле (21) вычисляем число букв, объединяемых на первом этапе:

L=2+R4-1(12-2)=2+ R3(10)=2+1=3.

 

Выбираем три буквы с наименьшими вероятностями aK-2=a2, aK-1=a8 и aK=a9:

p(a2)=0,04;

p(a8)=0,02;

p(a9)=0,01.

Последнему символу кода буквы a2 присваиваем значение «0» (на рисунке 1 дуга, инцидентная концевой вершине а2, получила отметку «0»), по символу буквы a8 – значение «1» (дуга, инцидентная концевой вершине а8, получила отметку «1»), и по символу буквы a9 – значение «2» (дуга, инцидентная концевой вершине а9, получила отметку «2»). Объединяем буквы a2, a8, a9 в одну букву с вероятностью

p(a2)+p(a8)+p(a9)=0,04+0,02+0,01=0,07,

редуцируя исходный ансамбль А.

Шаг 2: п.2. Продолжаем редуцировать ансамбль : объединяем буквы с наименьшими вероятностями (объединенные на шаге 1 буквы a2, a8, a9 и буквы a7, а12 и а3):

p(a2, a8, a9)+p(a7)+p(a12)+p(a3) =0,07+0,07+0,07+0,06=0,27.

Соответствующие дуги помечаем символами «0» (дуга с весом 0,07) «1» (дуга с весом 0,07), «2» (буква обьединенная на шаге 1, дуга с весом 0,07) и «3» (дуга с весом 0,06).

 

Шаг 3: Повторяем пункт 2, редуцируя ансамбль , объединяем буквы с наименьшими вероятностями a6, a11, a10 и a4 и делаем соответствующие отметки на дугах, инцидентных соответствующим вершинам: «0» (дуга с весом 0,12), «1» (дуга с весом 0,11), «2» (дуга с весом 0,1) и «3» (дуга с весом 0,08), инцидентных объединяемым вершинам:

p(a6)+p(a11)+p(a10)+ p(a4)=0,12+0,11+0,1+0,08=0,41.

 

Шаг 4: Объединяем четыре буквы – букву объединенную на шаге 3, букву объединенную на шаге 2, букву а1, и букву а5:

p(a1)+ p(a5)+ p(a2, a8, a9, a7, a12, a3)+ p(a6, a11, a10, a4)= 0,41+0,27+0,17+0,15=1,00.

На этом редуцирование исходного ансамбля А завершено (на рисунке 1 получена корневая вершина кодового дерева с сумммарной вероятностью, равной 1,0). Завершает построение недвоичного кода Хаффмена (m=4) реализация п.4 (рисунок 1).

 

Символы алфавита m1 упорядочиваются по вероятностям:

 

 

Рисунок 1

 


Дата добавления: 2015-11-30; просмотров: 34 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.008 сек.)