В теории кодирования неравенство Крафта–Макмиллана дает необходимое и достаточное условие для существования префиксного кода [1] (в версии Леона Г. Крафта) или однозначно декодируемого кода (в версии Броквея Макмиллана ) для заданного набора длин кодовых слов . Его приложения к префиксным кодам и деревьям часто находят применение в информатике и теории информации . Префиксный код может содержать как конечное, так и бесконечное число кодовых слов.
Неравенство Крафта было опубликовано в Kraft (1949). Однако статья Крафта рассматривает только префиксные коды и приписывает анализ, приведший к неравенству, Рэймонду Редхефферу . Результат был независимо обнаружен в McMillan (1956). McMillan доказывает результат для общего случая однозначно декодируемых кодов и приписывает версию для префиксных кодов устному наблюдению в 1955 году Джозефа Лео Дуба .
Приложения и интуиции
Неравенство Крафта ограничивает длину кодовых слов в префиксном коде : если взять экспоненту длины каждого допустимого кодового слова, то результирующий набор значений должен выглядеть как функция массы вероятности , то есть он должен иметь общую меру, меньшую или равную единице. Неравенство Крафта можно рассматривать в терминах ограниченного бюджета, который должен быть потрачен на кодовые слова, причем более короткие кодовые слова являются более дорогими. Среди полезных свойств, вытекающих из неравенства, есть следующие утверждения:
Если неравенство Крафта выполняется при строгом неравенстве, то код имеет некоторую избыточность .
Если неравенство Крафта выполняется с равенством, то рассматриваемый код является полным кодом. [2]
Для каждого уникально декодируемого кода существует префиксный код с таким же распределением длины.
Официальное заявление
Пусть каждый исходный символ из алфавита
быть закодировано в уникально декодируемый код по алфавиту размером с кодовыми словами длиной
Затем
И наоборот, для заданного набора натуральных чисел, удовлетворяющего указанному выше неравенству, существует однозначно декодируемый код над алфавитом размера с указанными длинами кодовых слов.
Пример: бинарные деревья
Любое бинарное дерево можно рассматривать как определение префиксного кода для листьев дерева. Неравенство Крафта утверждает, что
Здесь сумма берется по листьям дерева, т.е. узлам без дочерних узлов. Глубина — это расстояние до корневого узла. В дереве справа эта сумма равна
Доказательство
Доказательство для префиксных кодов
Сначала покажем, что неравенство Крафта выполняется всякий раз, когда код является префиксным кодом.
Предположим, что . Пусть будет полным -арным деревом глубины (таким образом, каждый узел на уровне имеет дочерние элементы, в то время как узлы на уровне являются листьями). Каждое слово длины над -арным алфавитом соответствует узлу в этом дереве глубиной . Слово th в префиксном коде соответствует узлу ; пусть будет множеством всех листовых узлов (т.е. узлов глубиной ) в поддереве с корнем в . Это поддерево имеет высоту , мы имеем
Поскольку код является префиксным, эти поддеревья не могут иметь общих листьев, что означает, что
Таким образом, учитывая, что общее количество узлов на глубине равно , имеем
из чего следует результат.
И наоборот, если задана любая упорядоченная последовательность натуральных чисел,
удовлетворяя неравенству Крафта, можно построить префиксный код с длинами кодовых слов, равными каждому , выбрав слово длины произвольно, а затем исключив все слова большей длины, которые имеют его в качестве префикса. И снова, мы будем интерпретировать это в терминах листовых узлов -арного дерева глубины . Сначала выберем любой узел из полного дерева на глубине ; он соответствует первому слову нашего нового кода. Поскольку мы строим префиксный код, все потомки этого узла (т. е. все слова, которые имеют это первое слово в качестве префикса) становятся непригодными для включения в код. Мы рассматриваем потомков на глубине (т. е. листовые узлы среди потомков); есть такие потомки, которые удаляются из рассмотрения. Следующая итерация выбирает (выживший) узел на глубине и удаляет дальнейшие листовые узлы и т. д. После итераций мы удалили в общей сложности
узлы. Вопрос в том, нужно ли нам удалять больше конечных узлов, чем у нас есть в наличии — всего — в процессе построения кода. Поскольку неравенство Крафта выполняется, мы действительно имеем
и таким образом можно построить префиксный код. Обратите внимание, что поскольку выбор узлов на каждом шаге в значительной степени произволен, в общем случае можно построить много различных подходящих префиксных кодов.
Доказательство общего случая
Теперь мы докажем, что неравенство Крафта выполняется, когда — однозначно декодируемый код. (Обратное не требует доказательства, поскольку мы уже доказали это для префиксных кодов, что является более сильным утверждением.) Доказательство принадлежит Джеку И. Карушу. [3] [4]
Нам нужно доказать это только тогда, когда существует конечное число кодовых слов. Если существует бесконечное число кодовых слов, то любое его конечное подмножество также однозначно декодируется, поэтому оно удовлетворяет неравенству Крафта–Макмиллана. Взяв предел, мы имеем неравенство для полного кода.
Обозначим . Идея доказательства состоит в том, чтобы получить верхнюю границу для и показать, что она может быть выполнена только для всех , если . Перепишем как
Рассмотрим все m -степени в виде слов , где индексы находятся в диапазоне от 1 до . Обратите внимание, что, поскольку предполагалось, что S однозначно декодируется, следует . Это означает, что каждое слагаемое соответствует ровно одному слову в . Это позволяет нам переписать уравнение в виде
где — количество кодовых слов в длины , а — длина самого длинного кодового слова в . Для алфавита из -букв возможны только слова длины , поэтому . Используя это, мы оцениваем сверху :
Взяв корень степени -, получаем
Эта граница справедлива для любого . Правая часть равна 1 асимптотически, поэтому должна выполняться (иначе неравенство будет нарушено для достаточно большого ).
Альтернативная конструкция для обратного
Дана последовательность натуральных чисел,
удовлетворяя неравенству Крафта, мы можем построить префиксный код следующим образом. Определим i- е кодовое слово, C i , как первые цифры после запятой (например, десятичной точки) в представлении с основанием r
Обратите внимание, что по неравенству Крафта эта сумма никогда не превышает 1. Следовательно, кодовые слова захватывают все значение суммы. Следовательно, для j > i первые цифры C j образуют большее число, чем C i , поэтому код не содержит префиксов.
Обобщения
Следующее обобщение можно найти в [5] .
Теорема — Если однозначно декодируемы, и каждое кодовое слово в является конкатенацией кодовых слов в , то
Предыдущая теорема является частным случаем, когда .
По подсчетному аргументу -й коэффициент равен числу строк длины с длиной кода . То есть, Аналогично,
Поскольку код однозначно декодируется, любая степень абсолютно ограничена , поэтому каждое из и является аналитическим в диске .
Мы утверждаем, что для всех ,
Левая сторона и правая сторона
Теперь, поскольку каждое кодовое слово в является конкатенацией кодовых слов в и однозначно декодируется, каждая строка длины с -кодом длины соответствует уникальной строке, -код которой равен . Строка имеет длину не менее .
Следовательно, коэффициенты слева меньше или равны коэффициентам справа.
Таким образом, для всех и всех имеем Принимая предел, имеем для всех .
Так как и оба сходятся, то, взяв предел и применив теорему Абеля , получаем .
↑ Обложка, Томас М.; Томас, Джой А. (2006), «Сжатие данных», Элементы теории информации (2-е изд.), John Wiley & Sons, Inc, стр. 108–109, doi :10.1002/047174882X.ch5, ISBN978-0-471-24195-9
^ Де Рой, Стивен; Грюнвальд, Питер Д. (2011), «УДАЧА И СОЖАЛЕНИЕ В МИНИМАЛЬНОЙ ДЛИНЕ ОПИСАНИЯ», Философия статистики (1-е изд.), Elsevier, стр. 875, ISBN978-0-080-93096-1
^ Каруш, Дж. (апрель 1961 г.). «Простое доказательство неравенства Макмиллана (переписка)». Труды IEEE по теории информации . 7 (2): 118. doi :10.1109/TIT.1961.1057625. ISSN 0018-9448.
^ Обложка, Томас М.; Томас, Джой А. (2006). Элементы теории информации (2-е изд.). Хобокен, Нью-Джерси: Wiley-Interscience. ISBN978-0-471-24195-9.
^ Фолдес, Стефан (2008-06-21). «О теореме Макмиллана об однозначно дешифруемых кодах». arXiv : 0806.3277 [math.CO].
^ Шумахер, Бенджамин; Уэстморленд, Майкл Д. (2001-09-10). "Квантовое кодирование неопределенной длины". Physical Review A. 64 ( 4): 042304. arXiv : quant-ph/0011014 . Bibcode : 2001PhRvA..64d2304S. doi : 10.1103/PhysRevA.64.042304. S2CID 53488312.
Ссылки
Крафт, Леон Г. (1949), Устройство для квантования, группировки и кодирования амплитудно-модулированных импульсов (диссертация), Кембридж, Массачусетс: диссертация магистра наук, кафедра электротехники, Массачусетский технологический институт , hdl :1721.1/12390.
Макмиллан, Броквей (1956), «Два неравенства, подразумеваемые уникальной дешифруемостью», IEEE Trans. Inf. Theory , 2 (4): 115–116, doi :10.1109/TIT.1956.1056818.