Неравенство Крафта — различия между версиями
Damm1t (обсуждение | вклад) (полное переписывание статьи) |
Damm1t (обсуждение | вклад) м (мелкие изменения текста) |
||
Строка 1: | Строка 1: | ||
− | Рассматриваемое ниже неравенство Крафта показывает, для каких длин кодовых слов существует префиксный код, но не | + | Рассматриваемое ниже неравенство Крафта показывает, для каких длин кодовых слов существует префиксный код, но приведенное ниже доказательство не является конструктивным. |
{{Теорема | {{Теорема | ||
|about=неравенство Крафта | |about=неравенство Крафта | ||
Строка 7: | Строка 7: | ||
<center><tex> \sum\limits_{i = 1}^{q} r ^{-l_i} \leqslant 1 </tex></center> | <center><tex> \sum\limits_{i = 1}^{q} r ^{-l_i} \leqslant 1 </tex></center> | ||
− | где <tex>r</tex> | + | где <tex>r</tex> — основание (число символов) в кодовом алфавите. |
|proof= | |proof= | ||
Строка 14: | Строка 14: | ||
Неравенство Крафта легко доказать с помощью дерева декодирования, существование которого следует из существования префиксного кода. Будем рассуждать по [[Математическая индукция|индукции]]. | Неравенство Крафта легко доказать с помощью дерева декодирования, существование которого следует из существования префиксного кода. Будем рассуждать по [[Математическая индукция|индукции]]. | ||
− | Для простоты рассмотрим сначала случай двоичного алфавита, т. е. <tex>r = 2</tex>. Если максимальная длина пути на дереве равна 1, то | + | Для простоты рассмотрим сначала случай двоичного алфавита, т. е. <tex>r = 2</tex>. Если максимальная длина пути на дереве равна <tex>1</tex>, то в дереве есть одно или два ребра длины <tex>1</tex>. Таким образом, либо <tex> \frac{1}{2} \leq 1 </tex> — для одного символа источника, либо <tex> \frac{1}{2} + \frac{1}{2} \leq 1 </tex> — для двух символов источника. |
− | Предположим далее, что неравенство Крафта справедливо для всех деревьев длины меньше <tex>n</tex>. Для данного дерева максимальной длины <tex>n</tex> ребра из первой вершины ведут к двум поддеревьям, длины которых не превышают <tex>n - 1</tex>; для этих поддеревьев имеем неравенства <tex>K_1 \leq 1</tex> и <tex>K_2 \leq 1</tex>, где <tex>K_1, K_2</tex> | + | Предположим далее, что неравенство Крафта справедливо для всех деревьев длины меньше <tex>n</tex>. Для данного дерева максимальной длины <tex>n</tex> ребра из первой вершины ведут к двум поддеревьям, длины которых не превышают <tex>n - 1</tex>; для этих поддеревьев имеем неравенства <tex>K_1 \leq 1</tex> и <tex>K_2 \leq 1</tex>, где <tex>K_1, K_2</tex> — значения соответствующих им сумм. Каждая длина <tex>l_i</tex> в поддереве увеличивается на <tex>1</tex>, когда поддерево присоединяется к основному дереву, поэтому возникает дополнительный множитель <tex>\frac{1}{2}</tex>. Таким образом, имеем <tex>\frac{1}{2} K_1 + \frac{1}{2} K_2 \leq 1</tex>. |
В случае произвольного недвоичного основания <tex>r</tex> имеется не более <tex>r</tex> ребер, исходящих из каждой вершины, т. е. не более <tex>r</tex> поддеревьев; каждое из них присоединяется к основному дереву, давая дополнительный множитель <tex>\frac{1}{r}</tex>. Отсюда снова следует утверждение теоремы. | В случае произвольного недвоичного основания <tex>r</tex> имеется не более <tex>r</tex> ребер, исходящих из каждой вершины, т. е. не более <tex>r</tex> поддеревьев; каждое из них присоединяется к основному дереву, давая дополнительный множитель <tex>\frac{1}{r}</tex>. Отсюда снова следует утверждение теоремы. |
Версия 20:37, 29 декабря 2017
Рассматриваемое ниже неравенство Крафта показывает, для каких длин кодовых слов существует префиксный код, но приведенное ниже доказательство не является конструктивным.
Теорема (неравенство Крафта): |
Необходимое и достаточное условие существования префиксного кода для источника с алфавитом из символов , где , кодовые слова которого имеют длины , состоит в выполнении неравенства:
|
Доказательство: |
Неравенство Крафта легко доказать с помощью дерева декодирования, существование которого следует из существования префиксного кода. Будем рассуждать по индукции. Для простоты рассмотрим сначала случай двоичного алфавита, т. е. . Если максимальная длина пути на дереве равна , то в дереве есть одно или два ребра длины . Таким образом, либо — для одного символа источника, либо — для двух символов источника.Предположим далее, что неравенство Крафта справедливо для всех деревьев длины меньше . Для данного дерева максимальной длины ребра из первой вершины ведут к двум поддеревьям, длины которых не превышают ; для этих поддеревьев имеем неравенства и , где — значения соответствующих им сумм. Каждая длина в поддереве увеличивается на , когда поддерево присоединяется к основному дереву, поэтому возникает дополнительный множитель . Таким образом, имеем .В случае произвольного недвоичного основания имеется не более ребер, исходящих из каждой вершины, т. е. не более поддеревьев; каждое из них присоединяется к основному дереву, давая дополнительный множитель . Отсюда снова следует утверждение теоремы.
ЗамечанияКогда имеет место строгое неравенство? Легко заметить, что если любая концевая вершина дерева является кодовым словом, то Заметим еще раз, что теорема утверждает существование такого кода и ничего не говорит о конкретных кодах. Может существовать код, который удовлетворяет неравенству Крафта и тем не менее не является мгновенным. . Строгое неравенство имеет место лишь в случае, когда некоторые из концевых вершин не используются. Однако, в случае двоичного кодового алфавита какая-нибудь концевая вершина не используется, то предыдущее решение оказывается лишним, и соответствующая цифра может быть удалена из каждого кодового слова, декодирование которого проходит через эту вершину. Таким образом, если имеет место строгое неравенство, то код неэффективен, но для двоичных деревьев очевидно, как можно его улучшить. |