ВУЗы и колледжи
Шеннон - Фано и Хаффман
В каком случае деревья Шеннона - Фано и Хаффмана будут совпадать. Обоснуйте ответ
Оба метода работают на взвешенном алфавите (с назначенной каждому символу частотой).
Метод Шеннон-Фано - это деление сверху вниз: он делит алфавит на 2 части с примерно равной суммарной частотой и каждой части назначает 1 бит, затем в каждой из частей процесс рекурсивно повторяется.
Метод Хаффмана - это деление снизу вверх: на каждом шаге выбираются два символа с наименьшими частотами, им назначается 1 бит, в алфавит вставляется объединённый символ с суммарной частотой, а исходные 2 символа удаляются. Шаг повторяется, пока все символы не будут объединены в один.
Метод Хаффмана более тонко учитывает неравномерные распределения частот, не.соответствующих степени 2. Например, для следующего алфавита:
Хаффман начнёт с объединения E и F, и у них не будет шанса получить больше бит, чем у более часто встречающихся символов.
При малом разбросе частот и Шеннон-Фано, и Хаффман будут группировать символы примерно равномерно. Деревья при этом могут получиться одинаковыми или разными (метод Шеннона-Фано вообще недетерменирован), но распределение кол-ва бит по символам в итоговом коде окажется примерно одинаковым и с минимальным разбросом (в 1 бит). В этом можно убедиться, попробовав закодировать следующий алфавит:
При большом разбросе частот метод Шеннона-Фано даст хороший (совпадающий с методом Хаффмана) код, когда частоты близки к степеням двойки, и их сумма близка к степени двойки, например:
Оба метода дадут одинаковое количество бит для символов:
Поэтому можно сказать, что деревья Шеннона-Фано и Хаффмана совпадают в двух случаях:
Метод Шеннон-Фано - это деление сверху вниз: он делит алфавит на 2 части с примерно равной суммарной частотой и каждой части назначает 1 бит, затем в каждой из частей процесс рекурсивно повторяется.
Метод Хаффмана - это деление снизу вверх: на каждом шаге выбираются два символа с наименьшими частотами, им назначается 1 бит, в алфавит вставляется объединённый символ с суммарной частотой, а исходные 2 символа удаляются. Шаг повторяется, пока все символы не будут объединены в один.
Метод Хаффмана более тонко учитывает неравномерные распределения частот, не.соответствующих степени 2. Например, для следующего алфавита:
A 15
B 7
C 6
D 6
E 5
F 1
Шеннон-Фано сразу разделит его на группы AE и BCDF с частотами по 20, и на следующих шагах A и E получат одинаковое количество бит (по 2), а более часто встречающиеся символы B, C, D получат по 3 бита, т.к. попадут в большее подмножество.Хаффман начнёт с объединения E и F, и у них не будет шанса получить больше бит, чем у более часто встречающихся символов.
При малом разбросе частот и Шеннон-Фано, и Хаффман будут группировать символы примерно равномерно. Деревья при этом могут получиться одинаковыми или разными (метод Шеннона-Фано вообще недетерменирован), но распределение кол-ва бит по символам в итоговом коде окажется примерно одинаковым и с минимальным разбросом (в 1 бит). В этом можно убедиться, попробовав закодировать следующий алфавит:
A 50
B 49
C 48
D 47
E 46
F 45
При большом разбросе частот метод Шеннона-Фано даст хороший (совпадающий с методом Хаффмана) код, когда частоты близки к степеням двойки, и их сумма близка к степени двойки, например:
A 64
B 32
C 16
D 8
E 4
F 4
Тогда деление алфавита пополам всегда будет давать частоту, близкую к степени 2, а её распределение между символами будет соответствовать количеству назначаемых им бит.Оба метода дадут одинаковое количество бит для символов:
A - 1 бит
B - 2 бита
C - 3 бита
D - 4 бита
E - 5 бит
F - 5 бит
Поэтому можно сказать, что деревья Шеннона-Фано и Хаффмана совпадают в двух случаях:
- Частоты символов примерно равны (кодирование почти не уменьшает длину сообщения) - есть шанс на совпадение деревьев.
- Частоты символов в сумме дают величину, близкую к степени двойки, и сами распределены близко к степеням двойки - совпадение деревьев почти гарантировано.
Денис Панов
https://drive.filen.io/d/4a0fd093-4f28-40ef-a37f-a6e3db8649b1#ZY1iTFB1OuwU6xzVfHYCfz1Zzzr96mRB
Похожие вопросы
- Вопрос по смыслу энтропии информации по формуле Шеннона
- алгоритм Хаффмана и Арифметического кодирования
- Метод Хаффмана
- Как ребёнка не заставлять садиться за "фано"?
- Давно не играла на "фано". Подскажите чёрные клавиши от белых чем отличаются?
- Метод кодирования шенона фано. Помогите закодировать мое ФИо этим методом ( корнилов алексей олегович)
- Очень тупой вопрос)) На фано длительность звука регулируется путём зажатия и отпускания в нужный момент клавиши. А на...
- Кто читал или слышал о книге "Таинственный свет луны" Дрейк Шеннон?
- В каких фильмах снималась Шеннон Доэрти?
- Можно мне пожалуйста краткое содержание "Путь Шеннона"