29
правок
Изменения
м
Нет описания правки
|about=неравенство Крафта
|statement=
Необходимое и достаточное условие существования префиксного кода в <tex>r</tex> (-ичном) дереве для источника с [[Основные определения, связанные со строками|алфавитом ]] <tex>S</tex> из <tex>n</tex> [[Основные определения, связанные со строками|символов ]] <tex>s_i</tex>, где <tex>i\in \left [ 1, n \right ]</tex>, кодовые слова которого имеют длины <tex>l_1 \leqslant l_2 \leqslant \ldots \leqslant l_n </tex>, состоит в выполнении неравенства:
<center><tex> \sum\limits_{i = 1}^{n} r ^{-l_i} \leqslant 1 </tex></center>
Неравенство Крафта легко доказать с помощью дерева декодирования, существование которого следует из существования префиксного кода. Будем рассуждать по [[Математическая индукция|индукции]].
Для простоты рассмотрим сначала случай двоичного [[Основные определения, связанные со строками|алфавита]], то есть <tex>r = 2</tex>. Если максимальная длина пути на дереве равна <tex>1</tex>, то в дереве есть одно или два ребра длины <tex>1</tex>. Таким образом, либо <tex> \dfrac{1}{2} \leqslant 1 </tex> — для одного [[Основные определения, связанные со строками|символа]] источника, либо <tex> \dfrac{1}{2} + \dfrac{1}{2} \leqslant 1 </tex> — для двух символов источника.
Предположим далее, что неравенство Крафта справедливо для всех деревьев длины меньше <tex>n</tex>. Для данного дерева максимальной длины <tex>n</tex> ребра из первой вершины ведут к двум поддеревьям, длины которых не превышают <tex>n - 1</tex>; для этих поддеревьев имеем неравенства <tex>K_1 \leqslant 1</tex> и <tex>K_2 \leqslant 1</tex>, где <tex>K_1, K_2</tex> — значения соответствующих им сумм. Каждая длина <tex>l_i</tex> в поддереве увеличивается на <tex>1</tex>, когда поддерево присоединяется к основному дереву, поэтому возникает дополнительный множитель <tex>\dfrac{1}{2}</tex>. Таким образом, имеем <tex>\dfrac{1}{2} K_1 + \dfrac{1}{2} K_2 \leqslant 1</tex>.