ЕГЭ и ОГЭ
Хочу знать
Главная > Разное > Передача дискретных сообщений
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

Метод Хафмена.

Более выгодным, чем код Шеннона — Фано, является так называемый код Хафмена. Пусть буквы (сообщения) входного алфавита имеют соответственно вероятности Предположим, что буквы в алфавите расположены в порядке убывания их вероятностей, т. е. Тогда алгоритм кодирования Хафмена состоит в следующем:

1. Два самых маловероятных сообщения объединяем в одно сообщение b, которое имеет вероятность, равную сумме вероятностей сообщений . В результате получим сообщения b, вероятности которых Эти сообщения вновь располагаем в порядке убывания вероятностей.

2. Берем два сообщения, имеющие наименьшие вероятности, объединяем их в одно и вычисляем их в общую вероятность.

3. Повторяем шаги 1 и 2 до тех пор, пока не получим единственное сообщение, вероятность которого равна 1.

4. Проводя линии, объединяющие сообщения и образующие последовательные подмножества, получаем дерево, в котором отдельные сообщения являются концевыми узлами. Соответствующие им кодовые слова можно построить, приписывая ветви, которые идут вниз, «0», а вверх — «1».

Так как в процессе кодирования сообщениям сопоставляются только концевые узлы, полученный код является префиксным и всегда однозначно декодируем.

Построение кода Хафмена для сообщений, появляющихся с вероятностями 0,2; 0,2; 0,15; 0,13; 0,12; 0,1; 0,07; 0,03, изображено на рис. 5.3.

Как видно из рисунка, он совпадает с кодом Шеннона — Фано, рассмотренным в предыдущем разделе. Следовательно, по экономичности коды Шеннона — Фано и Хафмена в данном конкретном случае одинаковы. Это еще раз подтверждает, что код Шеннона — Фано достаточно хорош. Однако в общем случае код Хафмена экономичнее кода Шеннона — Фано.

<< Предыдущий параграф Следующий параграф >>
Оглавление