Теория информации: у вас есть альфавит с символами {A,B,C} с вероятностями {0.5,0.3,0.2}. Постройте оптимальный префиксный код (например, Хаффман), вычислите среднюю длину кода, энтропию источника и избыточность; обсудите, как меняются выводы при наличии источника с памятью (марковская зависимость) и какие практические последствия это имеет для сжатия данных

28 Окт в 11:19
4 +4
0
Ответы
1
Оптимальный префиксный код (Хаффман):
- Сортируем вероятности: 0.5, 0.3, 0.20.5,\,0.3,\,0.20.5,0.3,0.2. Сливаем две наименьшие 0.30.30.3 и 0.20.20.20.50.50.5. Получаем дерево, дающее, например, коды
A↦0,B↦10,C↦11. A \mapsto 0,\qquad B \mapsto 10,\qquad C \mapsto 11.
A0,B10,C11.

Средняя длина кода:
L=∑xp(x)ℓ(x)=0.5⋅1+0.3⋅2+0.2⋅2=1.5 бит/символ. L=\sum_{x} p(x) \ell(x)=0.5\cdot 1+0.3\cdot 2+0.2\cdot 2=1.5\ \text{бит/символ}.
L=x p(x)(x)=0.51+0.32+0.22=1.5 бит/символ.

Энтропия источника:
H=−∑xp(x)log⁡2p(x)=−0.5log⁡20.5−0.3log⁡20.3−0.2log⁡20.2≈1.4855 бит/символ. H=-\sum_{x} p(x)\log_2 p(x)
= -0.5\log_2 0.5-0.3\log_2 0.3-0.2\log_2 0.2\approx 1.4855\ \text{бит/символ}.
H=x p(x)log2 p(x)=0.5log2 0.50.3log2 0.30.2log2 0.21.4855 бит/символ.

Избыточность (редундандность) и эффективность:
редунд. R=L−H≈1.5−1.4855≈0.0145 бит/символ,эффективность =HL≈0.9903. \text{редунд. }R=L-H\approx 1.5-1.4855\approx 0.0145\ \text{бит/символ},
\qquad \text{эффективность }=\frac{H}{L}\approx 0.9903.
редунд. R=LH1.51.48550.0145 бит/символ,эффективность =LH 0.9903.

Замечания об источнике с памятью (Марковская зависимость) и практические последствия:
- Для источника с памятью релевантной мерой является энтропия в единицу времени (энтропийная скорость) H∞=lim⁡n→∞1nH(X1n)H_{\infty}= \lim_{n\to\infty}\tfrac{1}{n}H(X_1^n)H =limn n1 H(X1n ), для первомарковского процесса это условная энтропия H(Xn∣Xn−1)H(X_n\mid X_{n-1})H(Xn Xn1 ).
- Кодирование по одному символу (символьный Хаффман) игнорирует зависимости и ограничено нецелыми длинами, даёт среднюю длину LLL с оценкой
H≤L<H+1 H \le L < H+1
HL<H+1
(для кодирования символов). Для источника с памятью эталон — энтропийная скорость, и символьный код может быть далеким от неё.
- Чтобы учесть память, применяют:
- блоковое кодирование (Хаффман по блокам длины nnn): средняя длина на символ стремится к энтропийной скорости при росте nnn, но размер алфавита растёт экспоненциально;
- контекстное/предиктивное моделирование + арифметическое кодирование или адаптивные методы (PPM, rANS, LZ): позволяют эффективно эксплуатировать зависимости и приближать среднюю длину к энтропийной скорости без целочисленных ограничений кодовых длин.
- Практические следствия: наличие памяти обычно даёт возможность достичь лучшего сжатия (меньше бит/символ), но требует модели переходов и большего вычислительного/памятного ресурса; в реальных алгоритмах (аритметическое кодирование, PPM, современные энтропийные кодеры) предпочтение отдаётся учёту контекста и адаптивному моделированию, а не простому символьному Хаффману.
28 Окт в 11:55
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир