Рассчитайте энтропию Шеннона для дискретного источника с символами A:0.5, B:0.25, C:0.125, D:0.125 и объясните смысл полученного значения в контексте сжатия данных предложите оптимальный префиксный код (например, код Хаффмана) и оцените среднюю длину кода и её близость к энтропии
2) Смысл значения Энтропия 1.75 бита/символ — это теоретическая нижняя граница средней длины любого безошибочного обратимогообратимогообратимого кода для данного источника потеоремеокодированииШеннонапо теореме о кодировании ШеннонапотеоремеокодированииШеннона. Нельзя в среднем сжать сообщения всмыслесреднегочислабитнасимволв смысле среднего числа бит на символвсмыслесреднегочислабитнасимвол ниже 1.75 бита без потерь информации. На практике можно приближаться к этой границе арифметическоекодирование,блочноекодированиеит.д.арифметическое кодирование, блочное кодирование и т.д.арифметическоекодирование,блочноекодированиеит.д..
3) Оптимальный префиксный код ХаффманХаффманХаффман
Построим Хаффман-код для данных вероятностей. Объединим C и D по0.125по 0.125по0.125 → узел 0.25, затем этот узел с B 0.250.250.25 → 0.5, затем с A 0.50.50.5 → корень. Один возможный корректный префиксный код:
4) Оценка близости к энтропии В данном случае Lavg = H = 1.75, то есть Хаффман-код достигает энтропии точно нетизбыточностинет избыточностинетизбыточности. Такое возможно потому, что вероятности — степени 1/2 pi=2−lip_i = 2^{-l_i}pi=2−li, и выполняется равенство Крафта. В общем случае для префиксных кодов H ≤ Lavg < H + 1; арифметическое кодирование может приближать H сколь угодно близко при больших блоках.
Кратко: энтропия 1.75 б/симв — минимально достижимая средняя длина; предложенный Хаффман-код оптимален и имеет среднюю длину 1.75 б/симв равноэнтропииравно энтропииравноэнтропии.
1) Энтропия Шеннона вбитахв битахвбитах:
H = −Σ pxxx log2 pxxx
Посчитаем по символам:
A: p=0.5 → −0.5·log20.50.50.5 = 0.5·1 = 0.5B: p=0.25 → −0.25·log20.250.250.25 = 0.25·2 = 0.5C: p=0.125 → −0.125·log20.1250.1250.125 = 0.125·3 = 0.375D: p=0.125 → 0.375Итого H = 0.5 + 0.5 + 0.375 + 0.375 = 1.75 бита/символ.
2) Смысл значения
Энтропия 1.75 бита/символ — это теоретическая нижняя граница средней длины любого безошибочного обратимогообратимогообратимого кода для данного источника потеоремеокодированииШеннонапо теореме о кодировании ШеннонапотеоремеокодированииШеннона. Нельзя в среднем сжать сообщения всмыслесреднегочислабитнасимволв смысле среднего числа бит на символвсмыслесреднегочислабитнасимвол ниже 1.75 бита без потерь информации. На практике можно приближаться к этой границе арифметическоекодирование,блочноекодированиеит.д.арифметическое кодирование, блочное кодирование и т.д.арифметическоекодирование,блочноекодированиеит.д..
3) Оптимальный префиксный код ХаффманХаффманХаффман Построим Хаффман-код для данных вероятностей. Объединим C и D по0.125по 0.125по0.125 → узел 0.25, затем этот узел с B 0.250.250.25 → 0.5, затем с A 0.50.50.5 → корень. Один возможный корректный префиксный код:
A: 0B: 10C: 110D: 111Длины: lAAA=1, lBBB=2, lCCC=3, lDDD=3.
Средняя длина:
Lavg = Σ p_i l_i = 0.5·1 + 0.25·2 + 0.125·3 + 0.125·3 = 1.75 бита/символ.
4) Оценка близости к энтропии
В данном случае Lavg = H = 1.75, то есть Хаффман-код достигает энтропии точно нетизбыточностинет избыточностинетизбыточности. Такое возможно потому, что вероятности — степени 1/2 pi=2−lip_i = 2^{-l_i}pi =2−li , и выполняется равенство Крафта. В общем случае для префиксных кодов H ≤ Lavg < H + 1; арифметическое кодирование может приближать H сколь угодно близко при больших блоках.
Кратко: энтропия 1.75 б/симв — минимально достижимая средняя длина; предложенный Хаффман-код оптимален и имеет среднюю длину 1.75 б/симв равноэнтропииравно энтропииравноэнтропии.