1. алфавитное кодирование.ppt
- Количество слайдов: 19
Введение РАЗДЕЛ 3. КОДИРОВАНИЕ И ШИФРОВАНИЕ
ПРИМЕРЫ КОДИРОВАНИЯ: Способ кодирования натуральных чисел – десятичная позиционная система счисления (арабскими или римскими цифрами); Способ кодирования геометрических объектов числами – прямоугольная (декартовая) система координат.
ЦЕНТРАЛЬНЫЕ ЗАДАЧИ КОДИРОВАНИЯ В ПРОГРАММИРОВАНИИ: Представление данных (чисел, текста, графики) в памяти компьютера; Защита информации от несанкционированного доступа; Обеспечение помехоустойчивости при передачи данных по каналам связи; Сжатие информации в базах данных.
ЗАДАЧУ КОДИРОВАНИЯ МОЖНО СФОРМУЛИРОВАТЬ СЛЕДУЮЩИМ ОБРАЗОМ: Пусть заданы алфавиты А={а 1, а 2, …, аn} и В={в 1, в 2, …, вn} и функция F: S→В, где S подмножество А. Тогда функция F называется кодированием, элементы множества S – сообщениями, а элементы =F( ), где , В – кодами соответствующих сообщений.
Обратная функция F-1 (если она существует) называется декодированием. Если |В|=m, то функция F называется mичным кодированием. Если В={0; 1} – F – двоичное кодирование.
АЛФАВИТНОЕ КОДИРОВАНИЕ Пусть задано конечное множество А={а 1, а 2, …, аn}, которое называется алфавитом. Элементы алфавита называются буквами. Последовательность букв называется словом. Множество слов в алфавите обозначается А. ٭
Если слово = а 1, а 2, …, аk А , ٭ то количество букв в этом слове называется длиной слова и обозначается | |=k; Пустое слово обозначается Λ: Λ А , ٭ |Λ|=0, Λ А; а 1 называется префиксом слова; аk называется постфиксом слова.
ТАБЛИЦА КОДОВ Алфавитное кодирование задается схемой (таблицей кодов): = а 1→ 1, а 2→ 2, …, аn→ n , где аi А, i В. Множество кодов букв V={ i } называется множеством элементарных кодов. Алфавитное кодирование пригодно для любого множества сообщений.
ПРИМЕР 1. Рассмотрим алфавит А={0, 1, 2, 3, 4, 5, 6, 7, 8, 9, } и В={0, 1} и схему кодирования = 0→ 0, 1→ 1, 2→ 10, 3→ 11, 4→ 100, 5→ 101, 6→ 110, 7→ 111, 8→ 1000, 9→ 1001. Эта схема не является взаимнооднозначной, т. к. , например, F(333)=F(77). Следовательно невозможно декодирование!
ПРИМЕР 2. Двоично-десятичное кодирование = 0→ 0000, 1→ 0001, 2→ 0010, 3→ 0011, 4→ 0100, 5→ 0101, 6→ 0110, 7→ 0111, 8→ 1000, 9→ 1001 Найти F(333) и F(77).
РАЗДЕЛИМЫЕ И ПРЕФИКСНЫЕ СХЕМЫ Схема называется разделимой, если любое слово, составленное из элементарных кодов, единственным образом разлагаются на элементарные коды. Алфавитное кодирование с разделимой схемой допускает декодирование.
Чтобы схема была разделимой, необходимо выполнение неравенства Макмиллана: Схема называется префиксной, если элементарный код одной буквы не является префиксом элементарного кода другой буквы.
ПРИМЕР 3. Азбука Морзе: = a→ 01, b→ 1000, c→ 1010, d→ 100, e→ 0, f→ 0010, g→ 110, h→ 0000, i→ 00, j→ 0111, k→ 101, l→ 0100, m→ 11, n→ 10, o→ 111, p→ 0110, q→ 1101, r→ 010, s→ 000, t→ 1, u→ 001, v→ 0001, w→ 011, x→ 1001, y→ 1011, z→ 1100
Кодирование с минимальной избыточностью Для практики важно, чтобы коды сообщений имели, по возможности, наименьшую длину. Задача минимизации кодов сообщений называется задачей оптимизации. Если множество S – множество сообщений и больше про это множество ничего не известно, то на практике часто доступна дополнительная информация. Например, для текстов на естественных языках известна вероятность появления букв в сообщении.
МИНИМИЗАЦИЯ ДЛИНЫ КОДОВ СООБЩЕНИЙ Если задана разделимая схема алфавитного кодирования Любая схема, полученная перестановкой элементарных кодов будет разделимой. Если длины элементарных кодов различны, то длина кодов сообщений зависит от состава букв в сообщении и от того, какие элементарные коды каким буквам назначены. Необходимо подобрать такую перестановку элементарных кодов, при которых длина кода сообщения будет минимальной.
АЛГОРИТМ НАЗНАЧЕНИЯ ЭЛЕМЕНТАРНЫХ КОДОВ 1. 2. 3. Отсортировать буквы в порядке убывания количества вхождений; Элементарные коды отсортировать в порядке возрастания длины; Назначить коды буквам в этом порядке
Пусть задан алфавит А={а 1, а 2, …, аn} и вероятности появления букв в сообщении Р={р1, р2, …, рn}, причем р1+р2+…+рn =1. Для каждой разделимой схемы алфавитного кодирования математическое ожидание длины сообщения при кодировании называется средней ценой кодирования: Например: при распределении вероятностей {0, 5; 0, 5} цена кодирования L=0, 5*1+0, 5*2=1, 5
Всегда существует разделимая схема, что любая длина элементарного кода равна средней цене кодирования. Такая схема называется схемой равномерного кодирования. Кодирование с использованием схемы равномерного кодирования называется кодированием с минимальной избыточностью.
УПРАЖНЕНИЯ: Схема алфавитного кодирования: Определить: Является ли схема разделимой? Префиксной? Среднюю цену кодирования; Является ли схема кодированием с минимальной избыточностью, если нет, составить такую схему.