Изучает свойства различных кодов и их применимость в конкретных задачах.
Направления:
Представление информации в меньшем информационном объёме, чем исходные данные.
Выделяют:
Требования:
энтропия кодированного сигнала должна быть максимальна (т.е. количество информации на символ кода – максимально), следовательно:
Необходимое и достаточное условие существования однозначно декодируемого расширения \(C^*\) посимвольного кода \(C\):
\[\sum_{i=1}^{|A|} r^{-|C(a_i)|} \le 1\]
\[\sum_{i=1}^{|A|} r^{-|C(a_i)|} \le 1\]
Пусть \(S = \sum_i r^{-|C(a_i)|}\) – левая часть неравенства.
Рассмотрим число \(S^N\), \(N\in\mathbb N.\)
\[S^N = \paren{\sum_i r^{-|C(a_i)|}}^N\]
\[S^N = \sum_{i_1}\ldots\sum_{i_N} r^{-\paren{|C(a_{i_1})|+\ldots+|C(a_{i_N})|}}\]
\[S^N = \sum_{i_1}\ldots\sum_{i_N} r^{-\paren{|C(a_{i_1})|+\ldots+|C(a_{i_N})|}}\]
\[S^N = \sum_{i_1}\ldots\sum_{i_N} r^{-\paren{|C(a_{i_1})|+\ldots+|C(a_{i_N})|}}\]
\[S^N = \sum_{l=N l_{min}}^{N l_{max}}r^{-l} g_N(l)\]
\[g_N(l) = |\{ \vect x | \vect x \in A^*, |\vect x| = N, |C^*(\vect x)| = l\}|\]
\[l_{min} = \underset{a\in A} \min~|C(a)|\]
\[l_{max} = \underset{a\in A} \max~|C(a)|\]
\[S^N = \sum_{l=N l_{min}}^{N l_{max}}r^{-l} g_N(l)\]
Код \(C\) – однозначно декодируем
\[\forall \vect x \in A^*, \vect y \in A^*, \vect x \neq \vect y: C^*(\vect x) \neq C^*(\vect y)\]
Рассмотрим \(\vect x\), \(|C^*(\vect x)| = l\). \(\exists~r^l\) различных возможных кодов длины \(l\). Тогда
\[g_N(l) \leq r^l\]
\[S^N = \sum_{l=N l_{min}}^{N l_{max}}r^{-l} g_N(l)\]
\[g_N(l) \leq r^l\]
\[S^N\leq \sum_{l=N l_{min}}^{N l_{max}} r^{-l} r^l\]
\[~\]
\[S^N \leq \sum_{l=N l_{min}}^{N l_{max}} 1\]
\[~\]
\[S^N \leq N(l_{max}-l_{min})+1\]
\[~\]
\[\forall N\in \mathbb N :\]
\[S^N \leq N(l_{max}-l_{min})+1\]
\[\phantom{\sum_i r^{-|C(a_i)|}} S\le 1 \qquad\phantom\blacksquare\]
\[\phantom{S}{\sum_i r^{-|C(a_i)|}}\le 1\qquad\phantom\blacksquare\]
\[\phantom{S}{\sum_i r^{-|C(a_i)|}}\le 1\qquad\blacksquare\]
Пусть \(l_1 \le \ldots \le l_n\).
Пошагово построим префиксный код.
На каждом шаге \(i=\{1,\ldots, n\}\), выбираем код для \(a_i\), такой, что \(|C(a_i)| = l_i\).
Код – префиксный
Выбрав \(\vect c_i = C(a_i)\), \(|\vect c_i|=l_i,\) нельзя выбрать \(\vect c_j\), имеющий префикс \(\vect c_i\).
На каждом шаге исключается \(r^{l_m - l_i}\) кодовых слов длины \(l_m \ge l_i\) (считая присвоенный)
Всего \(r^{l_n}\) возможных кодов длины \(l_n\). Тогда на \(n\)-том шаге, когда мы должны выбрать код длины \(l_n\), должен быть хотя бы один свободный, т.е.
\[\sum_{i=1}^{n-1} r^{l_n - l_i} + 1 \le r^{l_n}\]
\[\sum_{i=1}^{n-1} r^{l_n - l_i} + r^{l_n-l_n} \le r^{l_n}\]
\[\sum_{i=1}^{n} r^{l_n - l_i} \le r^{l_n}\]
\[\sum_{i=1}^{n} r^{l_n} r^{- l_i} \le r^{l_n}\]
\[r^{l_n} \sum_{i=1}^{n} r^{- l_i} \le r^{l_n}\]
\[\sum_{i=1}^{n} r^{- l_i} \le 1\]
т.е. код можно построить, если \(l_i\) удволетворяют неравенству Крафта-МакМиллана.\(\blacksquare\)
Расстояние Кульбака-Лейблера неотрицательно: \[D_{KL}(P||Q) = \sum_{x\in X} P(x) \log\left(\frac{P(x)}{Q(x)}\right) \ge 0\] где \(P,Q\) – распределения вероятностей случайной дискретной величины \(X\).
Пусть \(f(u) = -\log u\), \(u(x) = \frac{Q(x)}{P(x)}\).
\(f(u)\) – выпуклая вниз функция, т.к. \(f''(u) = u^{-2} > 0\).
Тогда из нер-ства Йенсена,
\[ \sum_{x\in X} P(x) f(u(x)) \ge f(\sum_{x\in X} P(x) u(x)) \]
\[ -\sum_{x\in X} P(x) \log u(x) \ge -\log\paren{\sum_{x\in X} P(x) u(x)} \]
\[ -\sum_{x\in X} P(x) \log \frac{Q(x)}{P(x)} \ge -\log\paren{\sum_{x\in X} P(x) \frac{Q(x)}{P(x)}} \]
\[ -\sum_{x\in X} P(x) \log \frac{Q(x)}{P(x)} \ge -\log\paren{\sum_{x\in X} Q(x)} \]
\[ -\sum_{x\in X} P(x) \log \frac{Q(x)}{P(x)} \ge -\log 1 \]
\[ -\sum_{x\in X} P(x) \log \frac{Q(x)}{P(x)} \ge 0 \]
\[ \phantom{D_{KL}(P||Q) =} \sum_{x\in X} P(x) \log \frac{P(x)}{Q(x)} \ge 0 \phantom{\qquad\blacksquare} \]
\[ D_{KL}(P||Q) = \sum_{x\in X} P(x) \log \frac{P(x)}{Q(x)} \ge 0 \phantom{\qquad\blacksquare} \]
\[ D_{KL}(P||Q) = \sum_{x\in X} P(x) \log \frac{P(x)}{Q(x)} \ge 0 \qquad\blacksquare \]
\[\sum_{x\in X} P(x) \log\left(\frac{P(x)}{Q(x)}\right) \ge 0\]
\[\sum_{x\in X} P(x) \paren{\log{P(x)} - \log{Q(x)}} \ge 0\]
\[\sum_{x\in X} P(x) \log{P(x)} - \sum_{x\in X} P(x)\log{Q(x)} \ge 0\]
\[\sum_{x\in X} P(x) \log{P(x)} \ge \sum_{x\in X} P(x)\log{Q(x)}\phantom{\qquad(*)}\]
\[\sum_{x\in X} P(x) \log P(x) \ge \sum_{x\in X} P(x) \log Q(x)\qquad(*)\]
Положим двоичный целевой алфавит (длина кода равна информационному объёму в битах)
\[L(C,X) = \sum_{x\in X} P(x) |C(x)| \ge H(X)\]
\[\text{Let}~~ Q(x) = \frac{2^{-|C(x)|}}{\sum_{x\in X} 2^{-|C(x)|}} \Rightarrow\]
\[|C(x)| = |C(x)|\]
\[|C(x)| = \log_2 \paren{2^{|C(x)|}}\]
\[|C(x)| = -\log_2 \paren{2^{-|C(x)|}}\]
\[|C(x)| = - \log_2 \paren{Q(x) \sum_{x\in X} 2^{-|C(x)|}}\]
\[|C(x)| = - \log_2 Q(x) - \log_2 \sum_{x\in X} 2^{-|C(x)|}\]
\[|C(x)| = - \log_2 Q(x) - \log_2 \sum_{x\in X} 2^{-|C(x)|}\]
\[L(C,X)\]
\[= \sum_{x\in X} P(x) |C(x)|\]
\[= \sum_{x\in X} P(x) \paren{- \log_2 Q(x) - \log_2 \sum_{x\in X} 2^{-|C(x)|}}\]
\[= -\sum_{x\in X} P(x) \log_2 Q(x) -\sum_{x\in X} P(x) \log_2 \sum_{x\in X} 2^{-|C(x)|}\]
\[= -\sum_{x\in X} P(x) \log_2 Q(x) -\paren{\log_2 \sum_{x\in X} 2^{-|C(x)|}}\paren{\sum_{x\in X} P(x)}\]
\[= -\sum_{x\in X} P(x) \log_2 Q(x) -\paren{\log_2 \sum_{x\in X} 2^{-|C(x)|}}\cancelto{1}{\paren{\sum_{x\in X} P(x)}}\]
\[= -\sum_{x\in X} P(x) \log_2 Q(x) -\log_2 \sum_{x\in X} 2^{-|C(x)|}\]
\[L(C,X) = -\sum_{x\in X} P(x) \log_2 Q(x) -\log_2 \sum_{x\in X} 2^{-|C(x)|}\]
\[L(C,X) \ge -\sum_{x\in X} P(x) \log_2 Q(x) -\cancelto{0}{\log_2 \sum_{x\in X} 2^{-|C(x)|}}\]
\[L(C,X) \ge -\sum_{x\in X} P(x) \log_2 Q(x)\]
\[L(C,X) \ge -\sum_{x\in X} P(x) \log_2 P(x)\]
\[L(C,X) \ge H(X)\]
Н-во Крафта \[\sum_{x\in X} 2^{-|C(x)|} \le 1\]
Н-во Гиббса (сл-е) \[\sum_{x\in X} P(x) \log P(x) \ge \sum_{x\in X} P(x) \log Q(x)\]
Равенство только, если код – полный (\(\sum_{x\in X} 2^{-|C(x)|} = 1\)) и \(P(x) = Q(x) = 2^{-|C(x)|}\).
\(P(x) = 2^{-|C(x)|}\)
\(\log_2 P(x) = -|C(x)|\)
\(|C(x)| = -\log_2 P(x)\)
\(|C(x)| = I(x)\)
Определяется распределением вероятностей \[P(x) = \frac{2^{-|C(x)|}}{\sum_{x'\in X} 2^{-|C(x')|}}.\]
Если код полный, \(\sum_{x'\in X} 2^{-|C(x')|} = 1\) и \[P(x) = 2^{-|C(x)|}.\]
Для источника случайной переменной \(x\) из ансамбля \(X\) существует префиксный код \(C\), удовлетворяющий \[L(C,X) < H(X)+1\]
Выберем ближайшие возможные к оптимальным длины кодов:
\[|C(x)| = \ceil{-\log_2 P(x)}\]
Такой код существует (по н-ву Крафта): \[\sum_{x\in X} 2^{-|C(x)|}=\sum_{x\in X} 2^{-\ceil{-\log_2 P(x)}}\le \sum_{x\in X} 2^{\log_2 P(x)} = 1\]
\[L(C,X) = \sum_{x \in X} P(x) |C(x)|\]
\[L(C,X) = \sum_{x \in X} P(x) \ceil{-\log_2 P(x)}\]
\[L(C,X) < \sum_{x \in X} P(x) \paren{-\log_2 P(x) + 1}\]
\[L(C,X) < -\sum_{x \in X} P(x) \log_2 P(x) + \sum_{x \in X} P(x)\]
\[L(C,X) < -\sum_{x \in X} P(x) \log_2 P(x) + \cancelto{1}{\sum_{x \in X} P(x)}\]
\[L(C,X) < -\sum_{x \in X} P(x) \log_2 P(x) + 1\]
\[L(C,X) < \cancelto{H(X)}{-\sum_{x \in X} P(x) \log_2 P(x)} + 1\]
\[L(C,X) < H(x)+1\phantom{\qquad\blacksquare}\]
\[L(C,X) < H(X)+1\qquad\blacksquare\]
Замечание. Пусть \(C\) – полный код.
\(L(C,X) - H(X)\)
\[= \sum_{x\in X} P(x) |C(x)| + \sum_{x\in X} P(x) \log_2 P(x)\]
\[= \sum_{x\in X} P(x) \paren{|C(x)| + \log_2 P(x)}\]
\[= \sum_{x\in X} P(x) \paren{-\log_2 2^{-|C(x)|} + \log_2 P(x)}\]
\[= \sum_{x\in X} P(x) \log_2 \frac{P(x)}{2^{-|C(x)|}}\]
\[= D_{KL}(P||2^{-|C(x)|})\]
\(2^{-|C(x)|}\) – распределение вероятностей оптимального источника.
Код, составленный по алгоритму Хаффмана, оптимален.
\(\qed\)