42
Теория кодирования МФТИ , осень 2013 Александр Дайняк www.dainiak.com

Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Embed Size (px)

DESCRIPTION

Алфавитное кодирование. Достаточные условия однозначности декодирования: равномерность, префиксность, суффиксность. Распознавание однозначности: критерий Маркова. Оценка длины неоднозначно декодируемого слова. Неравенство Крафта—Макмиллана; существование префиксного кода с заданным набором длин слов; следствие об универсальности префиксных кодов. Коды с минимальной избыточностью: постановка задачи, теорема Хаффмана о редукции.

Citation preview

Page 1: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Теория кодированияМФТИ, осень 2013

Александр Дайняк

www.dainiak.com

Page 2: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Теория кодирования

Теория кодирования изучает модели хранения и передачи «дискретной» информации и предлагает способы оптимального её кодирования.

011010101010010001000010101

Page 3: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Алфавитное кодирование

Как хранить в компьютере тексты на естественном языке?

Нужно их кодировать!

Простейший подход:

• каждой букве языка, а также знакам препинания сопоставим по двоичному слову,

• и тогда текст закодируем, записав друг за другом коды отдельных букв.

Page 4: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Алфавитное кодирование

Математическая модель:

Даны алфавиты 𝔸 = 𝑎1, … , 𝑎𝑛 и 𝔹 = 𝑏1, … , 𝑏𝑞

Алфавит 𝔸 — кодируемый, «естественный»;алфавит 𝔹 — кодовый (например, 𝔹 = 0,1 ).

Алфавитное кодирование — это отображение𝜙:𝔸∗ → 𝔹∗

такое, что для любых 𝑎𝑖1 , … , 𝑎𝑖𝑟 выполнено𝜙 𝑎𝑖1 …𝑎𝑖𝑟 = 𝜙 𝑎𝑖1 …𝜙 𝑎𝑖𝑟

Page 5: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Алфавитное кодирование

Достаточно определить 𝜙 на отдельных символах алфавита 𝐴:𝜙 𝑎1 = 𝐵1⋮𝜙 𝑎𝑛 = 𝐵𝑛

Слова 𝐵1, … , 𝐵𝑛 называются кодовыми, совокупность 𝐵1, … , 𝐵𝑛называется кодом.

Везде далее считаем, что все 𝐵𝑖 различны, иначе кодирование не однозначное.

Но этого в общем случае недостаточно…

Page 6: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Однозначность алфавитного кодирования

Кодирование 𝜙 однозначное, если𝜙 𝑤′ ≠ 𝜙 𝑤′′ при 𝑤′ ≠ w′′

Однозначность никак не зависит от алфавита 𝔸, а целиком определяется набором 𝐵1, … , 𝐵𝑛 .

Кодирование однозначное т. и т.т., когда никакое слово 𝑏𝑖1𝑏𝑖2 …𝑏𝑖𝑟нельзя двумя разными способами разбить на кодовые слова:

𝑏𝑖1𝑏𝑖2 … 𝑏𝑖𝑟

𝐵3 𝐵8

𝐵5 𝐵1 𝐵3

𝑎3𝑎8 или 𝑎5𝑎1𝑎3 ???

Page 7: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Достаточные условия однозначности

• Равномерность: 𝐵1 = 𝐵2 = ⋯ = 𝐵𝑛

• Свойство префикса: ∄𝑖, 𝑗 𝑖 ≠ 𝑗 и 𝐵𝑖 = 𝐵𝑗𝑤, где 𝑤 ∈ 𝔹∗

• Свойство суффикса:∄𝑖, 𝑗 𝑖 ≠ 𝑗 и 𝐵𝑖 = 𝑤𝐵𝑗 , где 𝑤 ∈ 𝔹∗

При этом такой ситуации не возникнет:

𝑏𝑖1𝑏𝑖2 … 𝑏𝑖𝑟

𝐵3 𝐵8

𝐵5 𝐵1 𝐵3

𝑎3𝑎8 или 𝑎5𝑎1𝑎3 ???

Page 8: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Префиксные коды — «мгновенные»

Префиксные коды называют ещё мгновенными, так как закодированные с их помощью сообщения можно декодировать по мере приёма, без задержек:

Page 9: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Нужен критерий однозначности!

Равномерность, префиксность и суффиксность не являются необходимыми условиями для однозначности. Пример:

𝔸 = 𝑎1, 𝑎2 , 𝔹 = 0,1𝜙 𝑎1 = 0𝜙 𝑎2 = 010

Полезно было бы получить критерий однозначности кода.

Page 10: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Вывод критерия однозначности

Код неоднозначен, если найдётся слово 𝐵 ∈ 𝔹∗, которое не менее чем двумя разными способами можно разбить на кодовые слова.

Рассмотрим самое короткое такое «неоднозначное» 𝐵 и два его различных разбиения на кодовые слова:

Page 11: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Вывод критерия однозначности

Заметим, что точки «верхнего» и «нижнего» разбиений, кроме крайних, все различны, иначе слово 𝐵 можно было бы укоротить:

Также, среди отрезков 𝐵, концы которых принадлежат разным разбиениям, нет кодовых слов, иначе 𝐵 также можно было бы укоротить:

Page 12: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Вывод критерия однозначности

Минимальные отрезки слова 𝐵, концы которых принадлежат разным разбиениям, назовём промежуточными.

Первый пром. отрезок получается, если из начала некоторого кодового слова «отнять» некоторую последовательность кодовых слов.Любой из остальных отрезков получается, если из некоторого кодового слова отнять предыдущий отрезок и последовательность (возможно, пустую) кодовых слов.

Page 13: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Вывод критерия однозначности

Последний пром. отрезок таков, что если его отнять из начала некоторого кодового слова, получится последовательность кодовых слов.Обозначим через 𝑤1, … , 𝑤𝑘 все промежуточные отрезки.Через 𝛽 будем обозначать последовательность (возможно, пустую) кодовых слов. Имеем:

∃𝑖, 𝛽 𝐵𝑖 = 𝛽𝑤1

∃𝑖, 𝛽 𝐵𝑖 = 𝑤1𝛽𝑤2

⋮∃𝑖, 𝑗 𝐵𝑖 = 𝑤𝑘−1𝛽𝑤𝑘

∃𝑖, 𝑗 𝐵𝑖 = 𝑤𝑘𝛽

Page 14: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Вывод критерия однозначности

Наоборот, пусть нашлись непустые слова 𝑤1, … , 𝑤𝑘 ∈ 𝔹∗, кодовые слова 𝐵𝑖1 , … , 𝐵𝑖𝑘+1

и последовательности кодовых слов 𝛽1, … , 𝛽𝑘+1, такие, что выполнены соотношения

𝐵𝑖1 = 𝛽1𝑤1

𝐵𝑖2 = 𝑤1𝛽2𝑤2

⋮𝐵𝑖𝑘+1

= 𝑤𝑘𝛽𝑘+1

Тогда слово 𝛽1𝑤1𝛽2𝑤2 …𝑤𝑘−1𝛽𝑘𝑤𝑘𝛽𝑘+1 можно разбить на кодовые слова двумя способами.

Page 15: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Вывод критерия однозначности

𝐵𝑖1 = 𝜀𝛽1𝑤1

𝐵𝑖2 = 𝑤1𝛽2𝑤2

⋮𝐵𝑖𝑘+1

= 𝑤𝑘𝛽𝑘+1𝜀

Пример:

𝛽2

𝐵𝑖2 𝐵𝑖4

𝐵𝑖5𝐵𝑖1

𝛽3 (пустая)

𝐵𝑖3

𝛽4 (пустая)

𝛽5

𝑤1 𝑤2 𝑤3 𝑤4

𝛽1

Page 16: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Критерий однозначности алфавитного кодированияКод 𝐶 = 𝐵1, … , 𝐵𝑛 не однозначный т. и т.т., когда найдутся непустые слова 𝑤1, … , 𝑤𝑘 ∈ 𝔹∗ ∖ 𝐶, кодовые слова 𝐵𝑖1 , … , 𝐵𝑖𝑘+1

и последовательности кодовых слов 𝛽1, … , 𝛽𝑘+1, такие, что 𝑘 ≥ 1и выполнены соотношения

𝐵𝑖1 = 𝛽1𝑤1

𝐵𝑖2 = 𝑤1𝛽2𝑤2

⋮𝐵𝑖𝑘+1

= 𝑤𝑘𝛽𝑘+1

(или 𝑘 = 0 и 𝐵𝑖1 = 𝛽1, где 𝛽1 составлено не менее чем из двух кодовых слов).

Page 17: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Ещё одна формулировка критерия однозначности Через 𝜀 будем обозначать пустое слово.

Пусть 𝐶 = 𝐵1, … , 𝐵𝑛 — код, который нужно проверить на однозначность.

Построим орграф 𝐺𝐶 = 𝑉, 𝐸 , где 𝑉 = {𝜀, а также все слова из 𝔹∗ ∖ 𝐶, являющиеся началами и концами кодовых слов},

𝐸 = 𝛼′, 𝛼′′ ∣ ∃𝛽 ∈ 𝐶∗ 𝛼′𝛽𝛼′′ ∈ 𝐶 и при этом 𝛽 ≠ 𝜀

𝛼′ ≠ 𝜀 и 𝛼′′ ≠ 𝜀.

Код 𝐶 однозначный т. и т.т., когда в орграфе 𝐺𝐶 нет орцикла, проходящего через вершину 𝜀.

Page 18: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Оценка длины неоднозначно декодируемого слова

𝑉 = {𝜀, а также все слова из 𝔹∗ ∖ 𝐶, являющиеся началами и концами кодовых слов},

𝐸 = 𝛼′, 𝛼′′ ∣ ∃𝛽 ∈ 𝐶∗ 𝛼′𝛽𝛼′′ ∈ 𝐶 и при этом 𝛽 ≠ 𝜀

𝛼′ ≠ 𝜀 и 𝛼′′ ≠ 𝜀.

Имеем

𝑉 ≤ 1 +

𝐵∈𝐶

𝐵 − 1 ≤ 𝐶 ⋅ max𝐵∈𝐶

𝐵

Получим отсюда оценку длины минимального неоднозначно декодируемого слова…

Page 19: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Оценка длины неоднозначно декодируемого слова

Если в 𝐺𝐶 есть цикл через 𝜀, то есть и цикл, число вершин в котором не больше, чем

𝐶 ⋅ max𝐵∈𝐶

𝐵

Рассмотрим соответствующее этому циклу неоднозначно декодируемое слово

𝑊неодн. = 𝛽1𝑤1𝛽2𝑤2 …𝑤𝑘−1𝛽𝑘𝑤𝑘𝛽𝑘+1

Каждая пара 𝛽𝑖𝑤𝑖 умещается в некотором кодовом слове, поэтому

𝑊неодн. ≤ 𝑘 + 1 ⋅ max𝐵∈𝐶

𝐵 ≤ 𝐶 ⋅ max𝐵∈𝐶

𝐵2

Page 20: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Оценка длины неоднозначно декодируемого словаИз предыдущих рассуждений вытекает оценка на длину неоднозначно декодируемого слова:

Теорема. (А.А. Марков)Если 𝐶 — неоднозначный код, длина слов которого не превосходит 𝑙, то найдётся слово длины не более 𝐶 ⋅ 𝑙2, декодируемое неоднозначно.

Page 21: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Коды с минимальной избыточностью

Обычно, кодируемые символы 𝑎1, … , 𝑎𝑛 встречаются в кодируемых сообщениях не одинаково часто, а с разными частотами.

Например, в английском языке буква e встречается примерно в 180 раз чаще, чем z.

Естественно при построении кодирования 𝜙 кодировать более частые буквы более короткими словами.

Поставим задачу математически…

Page 22: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Коды с минимальной избыточностью

Пусть в кодируемых сообщениях символы 𝑎1, … , 𝑎𝑛 встречаются с частотами 𝑝1, … , 𝑝𝑛 соответственно. Считаем ∑𝑝𝑖 = 1 и ∀𝑖 𝑝𝑖 > 0.

Пусть символ 𝑎𝑖 кодируется словом 𝐵𝑖.

Рассмотрим сообщение 𝐴 ∈ 𝔸∗.

Каждый из символов 𝑎𝑖 встретится в 𝐴 примерно 𝐴 ⋅ 𝑝𝑖 раз. Отсюда

𝜙 𝐴 ≈

𝑖

𝐴 ⋅ 𝑝𝑖 ⋅ 𝐵𝑖 = 𝐴 ⋅

𝑖

𝑝𝑖 ⋅ 𝐵𝑖

Page 23: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Коды с минимальной избыточностью

То есть, «среднестатистическое» сообщение 𝐴 при кодировании «разбухает» примерно в ∑𝑖 𝑝𝑖 𝐵𝑖 раз.

Величина ∑𝑖 𝑝𝑖 𝐵𝑖 называется коэффициентом избыточности кода.

Задача построения кода с минимальной избыточностью:По заданным 𝑝1, … , 𝑝𝑛 построить (однозначно декодируемый!) код 𝐵1, … . , 𝐵𝑛 ∈ 𝔹∗, для которого коэффициент избыточностиминимален.

Такой код называется кодом с минимальной избыточностью для набора частот 𝑝1, … , 𝑝𝑛.

Page 24: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Неравенство Крафта—Макмиллана

Все слова кода не получится взять слишком короткими, иначе код не будет однозначным. Количественно это выражаетТеорема. (L.G. Kraft, B. McMillan)Пусть 𝑙1, … , 𝑙𝑛 — длины слов однозначного кода в алфавите 𝔹,где 𝔹 = 𝑞.

Тогда выполнено неравенство

𝑖=1

𝑛

𝑞−𝑙𝑖 ≤ 1

Page 25: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Неравенство Крафта—Макмиллана

Доказательство теоремы:

Пусть 𝐵1, … , 𝐵𝑛 — однозначный код в 𝑞-значном алфавите, и пусть 𝐵𝑖 = 𝑙𝑖.

Пусть 𝑡 ∈ ℕ. Обозначим 𝐿 ≔ 𝑡 ⋅ max𝑖

𝑙𝑖.

Рассмотрим выражение

𝑖=1

𝑛

𝑞−𝑙𝑖

𝑡

=

1≤𝑖1,…,𝑖𝑡≤𝑛

𝑞− 𝑙𝑖1+⋯+𝑙𝑖𝑡 =

𝑙=1

𝐿

𝑠𝑙𝑞−𝑙 ,

где 𝑠𝑙 — количество наборов 𝑖1, … , 𝑖𝑡 , таких, что 𝑙𝑖1 + ⋯+ 𝑙𝑖𝑡 = 𝑙.

Page 26: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Неравенство Крафта—Макмиллана

𝑠𝑙 = 𝑆𝑙 , где 𝑆𝑙 = 𝑖1, … , 𝑖𝑡 ∣ 𝑙𝑖1 + ⋯+ 𝑙𝑖𝑡 = 𝑙

Каждому набору 𝑖1, … , 𝑖𝑡 ∈ 𝑆𝑙 поставим в соответствие слово 𝐵𝑖1 …𝐵𝑖𝑡 ∈ 𝔹∗.Тогда разным наборам из 𝑆𝑙 соответствуют разные слова (т.к. код однозначный).

Отсюда 𝑠𝑙 ≤ 𝑞𝑙 и следовательно

𝑖=1

𝑛

𝑞−𝑙𝑖

𝑡

=

𝑙=1

𝐿

𝑠𝑙𝑞−𝑙 ≤

𝑙=1

𝐿

1 = 𝐿.

Page 27: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Неравенство Крафта—Макмиллана

Получили, что для любого 𝑡 ∈ ℕ выполнено

𝑖=1

𝑛

𝑞−𝑙𝑖 ≤ 𝑡 ⋅ max𝑖

𝑙𝑖 1 𝑡

Устремляя 𝑡 к бесконечности, получаем

𝑖=1

𝑛

𝑞−𝑙𝑖 ≤ 1

Page 28: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Существование префиксных кодов

Докажем обратное утверждение:

Теорема.Пусть натуральные числа 𝑙1, … , 𝑙𝑛 и 𝑞 таковы, что

𝑖=1

𝑛

𝑞−𝑙𝑖 ≤ 1

Тогда существует префиксный код 𝐵1, … , 𝐵𝑛в 𝑞-значном алфавите, такой, что 𝐵𝑖 = 𝑙𝑖.

Page 29: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Существование префиксных кодов

Пусть натуральные числа 𝑙1, … , 𝑙𝑛 и 𝑞 таковы, что

𝑖=1

𝑛

𝑞−𝑙𝑖 ≤ 1

Будем считать, что среди 𝑙1, … , 𝑙𝑛 всего 𝑚 различных, и при этом 𝑙1 <⋯ < 𝑙𝑚. Для каждого 𝑗 ∈ 1,𝑚 положим

𝑛𝑗 ≔ 𝑖 ∈ 1, 𝑛 ∣ 𝑙𝑖 = 𝑙𝑗

Тогда из условия теоремы следует неравенство

𝑗=1

𝑚

𝑛𝑗𝑞−𝑙𝑗 ≤ 1

Page 30: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Существование префиксных кодов

Имеем неравенство ∑𝑗=1𝑚 𝑛𝑗𝑞

−𝑙𝑗 ≤ 1.

Отсюда ∑𝑗=1𝑘 𝑛𝑗𝑞

−𝑙𝑗 ≤ 1 для любого 𝑘 ∈ 1,𝑚 .

Домножив обе части на 𝑞𝑙𝑘, получим

𝑞𝑙𝑘 ≥

𝑗=1

𝑘

𝑛𝑗𝑞𝑙𝑘−𝑙𝑗 = 𝑛𝑘 +

𝑗=1

𝑘−1

𝑛𝑗𝑞𝑙𝑘−𝑙𝑗

Следовательно, для любого 𝑘 ∈ 1,𝑚 имеем

𝑛𝑘 ≤ 𝑞𝑙𝑘 −

𝑗=1

𝑘−1

𝑛𝑗𝑞𝑙𝑘−𝑙𝑗 .

Page 31: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Существование префиксных кодов

Будем строить префиксный код, сначала выбирая 𝑛1 слов длины 𝑙1, затем 𝑛2 слов длины 𝑙2, и т.д.

Пусть уже набраны все кодовые слова с длинами 𝑙1, … , 𝑙𝑘−1.

Слов длины 𝑙𝑘, для которых выбранные кодовые слова являются префиксами, не более 𝑛1𝑞

𝑙𝑘−𝑙1 + ⋯+ 𝑛𝑘−1𝑞𝑙𝑘−𝑙𝑘−1, то есть

«пригодных для выбора» слов длины 𝑙𝑘 не меньше, чем𝑞𝑙𝑘 − 𝑛1𝑞

𝑙𝑘−𝑙1 + ⋯+ 𝑛𝑘−1𝑞𝑙𝑘−𝑙𝑘−1

Page 32: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Существование префиксных кодов

Пусть уже набраны все кодовые слова с длинами 𝑙1, … , 𝑙𝑘−1. «Пригодных для выбора» слов длины 𝑙𝑘 не меньше, чем

𝑞𝑙𝑘 − 𝑛1𝑞𝑙𝑘−𝑙1 + ⋯+ 𝑛𝑘−1𝑞

𝑙𝑘−𝑙𝑘−1 .

Из условия теоремы мы ранее вывели, что𝑛𝑘 ≤ 𝑞𝑙𝑘 − 𝑛1𝑞

𝑙𝑘−𝑙1 + ⋯+ 𝑛𝑘−1𝑞𝑙𝑘−𝑙𝑘−1 ,

то есть мы сможем выбрать 𝑛𝑘 слов длины 𝑙𝑘, так, чтобы никакие из ранее выбранных слов не были их префиксами.

По индукции получаем утверждение теоремы.

Page 33: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Универсальность префиксных кодов

Следствие из двух доказанных теорем.Для любого однозначного кода существует префиксный код в том же алфавите и с теми же длинами кодовых слов.

Значит, к.м.и. можно искать только среди префиксных кодов.

Page 34: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Свойства оптимальных кодов

Вернёмся к задаче построения к.м.и.

Лемма.Если 𝐵1, … , 𝐵𝑛 — к.м.и. для набора частот 𝑝1, … , 𝑝𝑛, то

∀𝑖, 𝑗 𝑝𝑖 > 𝑝𝑗 ⇒ 𝐵𝑖 ≤ |𝐵𝑗|

Доказательство:В противном случае, поменяв 𝐵𝑖 и 𝐵𝑗 местами, получили бы код с коэффициентом избыточности

𝑖=1

𝑛

𝑝𝑖 𝐵𝑖 − 𝑝𝑖 − 𝑝𝑗 𝐵𝑖 − 𝐵𝑗 <

𝑖=1

𝑛

𝑝𝑖 𝐵𝑖

Page 35: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Теорема «о редукции»

Теорема «о редукции». (D.A. Huffman)Пусть 𝑝1 ≥ ⋯ ≥ 𝑝𝑛−1 ≥ 𝑝𝑛 и 𝑝 ≔ 𝑝𝑛−1 + 𝑝𝑛.

Если 𝐵1, … , 𝐵𝑛−2, 𝐵 ∈ 0,1 ∗ — префиксный к.м.и. для частот𝑝1, … , 𝑝𝑛−2, 𝑝,

то 𝐵1, … , 𝐵𝑛−2, 𝐵0, 𝐵1 — префиксный к.м.и. для частот 𝑝1, … , 𝑝𝑛.

Page 36: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Доказательство теоремы о редукции

Пусть к.и. кода 𝐵1, … , 𝐵𝑛−2, 𝐵 для частот 𝑝1, … , 𝑝𝑛−2, 𝑝 равен 𝑘.

К.и. кода 𝐵1, … , 𝐵𝑛−2, 𝐵0, 𝐵1 для частот 𝑝1, … , 𝑝𝑛 равен

𝑖=1

𝑛−2

𝑝𝑖 𝐵𝑖 + 𝑝𝑛−1 + 𝑝𝑛 𝐵 + 1 =

𝑖=1

𝑛−2

𝑝𝑖 𝐵𝑖 + 𝑝 𝐵 + 𝑝 = 𝑘 + 𝑝

Допустим, что нашёлся код 𝐵1′ , … , 𝐵𝑛

′ , к.и. которого для частот 𝑝1, … , 𝑝𝑛 равен 𝑘′ < 𝑘 + 𝑝.

Page 37: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Доказательство теоремы о редукции

Допустим, что нашёлся код 𝐵1′ , … , 𝐵𝑛

′ , к.и. которого для набора частот 𝑝1, … , 𝑝𝑛 равен 𝑘′ < 𝑘 + 𝑝.

Б.о.о. будем считать код 𝐵𝑖′

𝑖=1𝑛 префиксным к.м.и. для набора 𝑝1, … , 𝑝𝑛.

Т.к. 𝑝1 ≥ ⋯ ≥ 𝑝𝑛, то 𝐵1′ ≤ ⋯ ≤ |𝐵𝑛

′ |.

Пусть 𝐵𝑛′ = 𝐵′0, где 𝐵′ — некоторое слово.

Заметим, что

• 𝐵′ ∉ 𝐵𝑖′

𝑖=1𝑛

• 𝐵′ является префиксом одного из слов 𝐵1′ , … , 𝐵𝑛−1

′ .

Б.о.о. будем считать, что 𝐵𝑛−1′ = 𝐵′1. Тогда код 𝐵1

′ , … , 𝐵𝑛−2′ , 𝐵′

префиксный.

Page 38: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Доказательство теоремы о редукции

К.и. кода 𝐵1′ , … , 𝐵𝑛−2

′ , 𝐵′ для набора частот 𝑝1, … , 𝑝𝑛−2, 𝑝 равен

𝑝𝑛−1 + 𝑝𝑛 𝐵′ +

𝑖=1

𝑛−2

𝑝𝑖|𝐵𝑖′| =

𝑖=1

𝑛

𝑝𝑖|𝐵𝑖′| − 𝑝𝑛−1 + 𝑝𝑛 = 𝑘′ − 𝑝 < 𝑘

— противоречие с тем, что код 𝐵1, … , 𝐵𝑛−2, 𝐵 является к.м.и. для частот 𝑝1, … , 𝑝𝑛−2, 𝑝.

Page 39: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Коды, исправляющие ошибки

Основные требования к кодам:

• Однозначность — обязательное требование. Есть критерий, алгоритм проверки.

• Минимальная избыточность. Есть алгоритм построения для произвольного заданного набора частот.

• Устойчивость к ошибкам. Возможность расшифровать закодированное сообщение даже при возникновении ошибок при его передаче.

Page 40: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Коды, исправляющие ошибки

Естественный язык весьма устойчив к ошибкам:

«Веть Ву мжте прчтттть эт ткст п поняц го!»

Причины:

• избыточность: гласные и т.д.

• разреженность: «вблизи» слов обычно нет других слов — если есть, то ошибки исправлять тяжело:

чемодан зарыт vs. чемодан закрыт

Page 41: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Коды, исправляющие ошибки

Основная модель канала связи:

Канал связи(в котором могут

происходить ошибки)

Кодер Декодер

Исходное сообщение

Закодированное сообщение

Принятое сообщение(возможно, с ошибками)

Декодированное сообщение(после исправления ошибок);должно совпасть с исходным

Page 42: Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана

Что было и что будет

На лекции мы рассмотрели:

• Алфавитное кодирование

• Префиксные коды, однозначность

• Коды с минимальной избыточностью