Дан дискретный источник с символами s1..s4 и вероятностями p = {0.6, 0.25, 0.1, 0.05}; вычислите энтропию источника, нижнюю границу средней длины кода по неравенству Шеннона, предложите конкретную префиксную кодировку (например, код Хаффмана) и сравните её эффективность со сжатием арифметическим с учётом накладных расходов и адаптивности

24 Окт в 14:28
3 +1
0
Ответы
1
Энтропия источника:
H=−∑i=14pilog⁡2pi=−(0.6log⁡20.6+0.25log⁡20.25+0.1log⁡20.1+0.05log⁡20.05)≈1.49046856 бит/симв. H=-\sum_{i=1}^4 p_i\log_2 p_i
=-(0.6\log_2 0.6+0.25\log_2 0.25+0.1\log_2 0.1+0.05\log_2 0.05)
\approx 1.49046856\ \text{бит/симв.}
H=i=14 pi log2 pi =(0.6log2 0.6+0.25log2 0.25+0.1log2 0.1+0.05log2 0.05)1.49046856 бит/симв.

Нижняя граница средней длины префиксного кода (неравенство Шеннона):
Lˉ≥H,а для префиксных кодов обычно H≤Lˉ<H+1. \bar L \ge H,\qquad\text{а для префиксных кодов обычно }H\le\bar L<H+1.
LˉH,а для префиксных кодов обычно HLˉ<H+1.
Здесь нижняя граница равна H≈1.4905H\approx 1.4905H1.4905 бит/симв.
Конкретная префиксная кодировка (Хаффман):
Построение: объединяем 0.05+0.1=0.150.05+0.1=0.150.05+0.1=0.15, затем 0.15+0.25=0.40.15+0.25=0.40.15+0.25=0.4, затем 0.4+0.6=1.00.4+0.6=1.00.4+0.6=1.0. Например, кодировка
s1:0,s2:10,s3:110,s4:111. s_1:0,\quad s_2:10,\quad s_3:110,\quad s_4:111.
s1 :0,s2 :10,s3 :110,s4 :111.
Средняя длина этого кода:
Lˉ=0.6⋅1+0.25⋅2+0.1⋅3+0.05⋅3=1.55 бит/симв. \bar L=0.6\cdot1+0.25\cdot2+0.1\cdot3+0.05\cdot3=1.55\ \text{бит/симв.}
Lˉ=0.61+0.252+0.13+0.053=1.55 бит/симв.
Избыточность относительно энтропии:
R=Lˉ−H≈1.55−1.49046856≈0.05953 бит/симв. R=\bar L-H\approx 1.55-1.49046856\approx 0.05953\ \text{бит/симв.}
R=LˉH1.551.490468560.05953 бит/симв.

Сравнение с арифметическим кодированием:
- Теоретически арифметическое (или range) кодирование может приблизиться к энтропии сколь угодно близко при больших блоках: средняя скорость ≈H\approx HH бит/симв. — т.е. выигрыш по сравнению с данным Хаффманом около
Δ≈LˉHuff−H≈0.0595 бит/симв.. \Delta\approx \bar L_{\text{Huff}}-H\approx 0.0595\ \text{бит/симв.}.
ΔLˉHuff H0.0595 бит/симв..
- На практике есть накладные расходы: заголовок/модель (несколько десятков бит), конечная фиксация интервала, конечная-точность арифметики. Для статической известной модели эти накладные расходы распределяются по всей последовательности; если заголовок, скажем, ∼32\sim 3232 бит, то точка безубыточности примерно
N≈32/0.0595≈538 символов. N\approx 32/0.0595\approx 538\ \text{символов.}
N32/0.0595538 символов.
- Для коротких сообщений Хаффман часто выгоднее (меньше накладных расходов, простая реализация). Для длинных последовательностей арифметическое даёт лучшее сжатие (приближение к HHH).
- Адаптивность: адаптивный арифметический кодер автоматически подстраивается под неизвестные распределения и обычно даёт лучшее сжатие при меняющихся частотах, чем статический Хаффман; адаптивный Хаффман проще, но обычно менее эффективен, чем адаптивный арифметический.
- Сложность: арифметическое/range сложнее и медленнее в реализации, требует аккуратной реализации и точности; Хаффман — прост и быстр.
Вывод кратко: энтропия H≈1.4905H\approx 1.4905H1.4905 бит/симв.; оптимальный префиксный (Хаффман) код даёт Lˉ=1.55\bar L=1.55Lˉ=1.55 бит/симв. (избыточность ≈0.0595\approx 0.05950.0595 бит/симв.). Арифметическое кодирование может сократить этот избыточный кусок и приблизиться к HHH, но требует большего кода/накладных расходов и более сложной реализации; при коротких сообщениях Хаффман чаще предпочтителен, при длинных — арифметическое эффективнее.
24 Окт в 14:53
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир