Код Хаффмана и условие Фано

Как закодировать текст короче — и так, чтобы его можно было прочитать обратно. 11 класс, углублённый уровень — пара вторая.

Продолжаем тему «Алгоритмы сжатия данных». На прошлой паре было RLE — сжатие серий. Сегодня — коды, где частые буквы получают короткие кодовые слова, а редкие — длинные.

Это же — задание 4 ЕГЭ: кодирование и декодирование, условие Фано. Здесь хвост пары по программе и подготовка к экзамену совпадают.

Равномерный код

У всех букв кодовые слова одной длины. Какая длина нужна на n букв?

Неравномерный код и беда с ним

Дадим частым буквам короткие слова: А = код, Б = код, В = код. Пришло код. Что это?

Условие Фано

Ни одно кодовое слово не должно быть началом другого кодового слова.

Декодирование префиксного кода

А = код, Б = код, В = код, Г = код. Пришло код.

Алгоритм Хаффмана

Строит префиксный код, при котором сообщение выходит самым коротким. Частоты: А — 5, Б — 2, В — 1, Г — 1.

Почему сумма слияний

Каждое слияние — новый уровень дерева: всем буквам под ним код удлиняется на один бит. Вес слияния — сколько раз эти буквы встречаются, то есть сколько бит добавилось ко всему сообщению.

Проверка по кодам того же дерева:

букваразкодбит
А5код5 · 1 = 5
Б2код2 · 2 = 4
В1код1 · 3 = 3
Г1код1 · 3 = 3
всего15

Выигрыш против равномерного кода

Тот же пример: 4 буквы, в сообщении 5 + 2 + 1 + 1 = 9 букв.

Что делаем дальше

  1. Обзорный практикум — шесть задач, все сразу на странице, в любом порядке: код Хаффмана, выигрыш против равномерного, условие Фано, декодирование, равномерный код, проверка префиксности.
  2. Слияния и перебор слов — на черновике таблицей, как на слайдах.
  3. Ответ везде — целое число, без единиц.

Ошибся — сразу виден разбор, а «Новые числа» дают ту же задачу с другими данными. Отметка: закрыто 6 из 6 — «5», 5 — «4», 3 или 4 — «3».

За работу

Практикум «Код Хаффмана и условие Фано» — в общей папке и на сайте. Не успел на уроке — пройди дома: вариант будет другой, сдаётся тем же кодом.

Карточку в тетрадь можно взять с собой: на ней равномерный код, алгоритм Хаффмана, условие Фано, декодирование и формула выигрыша.

Материалы подготовлены с использованием технологий искусственного интеллекта. Пробел раскрыть и дальше · ← → слайды