
- •В.П. Иосифов
- •А.М. Макаров
- •Введение
- •1. Основные понятия информационных процессов и систем
- •1.1. Общие понятия информационных процессов
- •1.2. Основные понятия теории систем
- •1.4. Классификация систем
- •2. Основы теории информации
- •2.1. Сигналы и системы передачи информации
- •2.2. Параметры сигнала
- •2.3. Энтропия дискретного сигнала. Количество информации
- •2.4. Свойства энтропии дискретных сообщений
- •2.5. Энтропия непрерывных сообщений
- •2.6. Информационный канал, пропускная способность канала
- •3. Элементы теории кодирования информации
- •3.1. Алфавитное кодирование информации
- •3.2. Критерий взаимной однозначности алфавитного кодирования
- •3.3. Эффективное кодирование, избыточность сообщений
- •3.4. Метод Хаффмана
- •3.5. Основы помехоустойчивого кодирования
- •3.6. Линейные блочные коды. Код с проверкой на четность, итеративный код
- •3.7. Код Хемминга
- •3.8. Алгоритмы сжатия информации
- •4. Модели систем с использованием случайных процессов
- •4.1. Марковские случайные процессы, классификация
- •4.2. Марковские цепи
- •4.3. Непрерывные цепи Маркова, уравнение Колмогорова
- •4.4. Система гибели и размножения
- •5. Системы массового обслуживания
- •5.1. Компоненты и классификация моделей массового обслуживания
- •5.2. Одноканальная смо с отказами
- •5.3. Одноканальная смо с ожиданием и ограниченной очередью
- •5.4. Одноканальная смо с ожиданием и неограниченной очередью
- •5.5. Многоканальная смо с отказами
- •5.6. Многоканальная смо с ожиданием
- •6. Основы теории принятия решений
- •6.1. Современные методы принятия решений
- •6.2. Принятие решений в условиях неопределенности
- •6.3. Критерии принятия решений в условиях неопределенности
- •Литература
3. Элементы теории кодирования информации
3.1. Алфавитное кодирование информации
Ранее средства кодирования играли вспомогательную роль и не рассматривались как отдельный предмет математического изучения, но с появлением компьютеров ситуация радикально изменилась. Кодирование буквально пронизывает информационные технологии и является центральным вопросом при решении самых разных (практически всех) задач программирования:
– представление данных произвольной природы (например, чисел, текста, графики) в памяти компьютера;
– защита информации от несанкционированного доступа;
– обеспечение помехоустойчивости при передаче данных по каналам связи;
– сжатие информации в базах данных.
Теория кодирования – это раздел теории информации, изучающий способы отождествления сообщений с отображающими их сигналами.
Задача: Согласовать источник информации с каналом связи.
Объект: Дискретная или непрерывная информация, поступающая к потребителю через источник информации.
Кодирование – это преобразование информации в форму удобную для передачи по определенному каналу связи.
Примером кодирования в математике является метод координат, введенный Декартом, который дает возможность изучать геометрические объекты через их аналитическое выражение в виде чисел, букв и их комбинаций – формул.
Понятие кодирование означает преобразование информации в форму, удобную для передачи по определенному каналу связи.
Декодирование – восстановление принятого сообщения из-за кодированного вида в вид доступный для потребителя.
В общем случае задачу кодирования можно представить следующим образом. Пусть заданы два алфавита А и В, состоящие из конечного числа символов:
,
.
Элементы алфавита называются буквами. Упорядоченный набор в алфавите А назовем словом
,
где
,
число п
показывает
количество букв в слове и называется
длиной
слова α, обозначается: п
=l(α)=|α|.
Пустое слово обозначается:
Для слова
буква a1, называется началом, или префиксом, слова α, а буква an – окончанием, или постфиксом, слова α. Слова можно соединять. Для этого префикс второго слова должен следовать сразу за постфиксом первого, при этом в новом слове они, естественно, утрачивают свой статус, если только одно из слов не было пустым. Соединение слов α1 и α2 обозначается α1, α2, соединение п одинаковых слов α обозначается αn, причем α0=^. Множество всех непустых слов алфавита А обозначим А*:
Множество А называют алфавитом сообщений, а множество В – кодирующим алфавитом. Множество слов, составленных в алфавите В, обозначим В*. Обозначим через F отображение слов алфавита А в алфавит В. Тогда слово β=F(α) назовем кодом слова α.
Кодированием называют универсальный способ отображения информации при ее хранении, передаче и обработке в виде системы соответствий между элементами сообщений и сигналами, при помощи которых эти элементы можно зафиксировать. Таким образом, код – правило однозначного преобразования (т.е. функция) сообщения из одной символической формы представления (исходного алфавита А) в другую (объектный алфавит В), обычно без каких-либо потерь информации. Процесс преобразования F: А*→В* слов исходного алфавита А в алфавит В называется кодированием информации. Процесс обратного преобразования слова βЄB* в слово αЄA* называется декодированием. Таким образом, декодирование – функция, обратная F, т.е.
F-1. Так как для любого кодирования должна выполняться операция декодирования, то отображение должно быть обратимым (биекция).
Если |B|=m, то F называется m-ичным кодированием, наиболее распространенный случай В={0, 1} – двоичное кодирование. Именно этот случай и рассматривается в дальнейшем.
Если все кодовые слова имеют одинаковую длину, то код называется равномерным, или блочным.
Алфавитное (или побуквенное), кодирование можно задать таблицей кодов. Кодом или кодирующей функцией, будет служить некоторая подстановка σ. Тогда
Такое побуквенное кодирование обозначается Kαβ. Множество кодов букв {βi} называется множеством элементарных кодов. Алфавитное кодирование можно использовать для любого множества сообщений. Таким образом, алфавитное кодирование является самым простым, и его всегда можно ввести на непустых алфавитах.
Пример: Пусть заданы алфавиты
А = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, В = {0, 1}.
Тогда таблица кодирования может быть подстановкой:
.
Это двоично-десятичное кодирование, оно является взаимно-однозначным и потому допускает декодирование.
Однако схема
не является взаимно-однозначной. Например, набор из шести единиц 111111 может соответствовать как слову 333, так и 77, а также 111111, 137, 3311 или 7111 плюс любая перестановка.
Схема алфавитного кодирования называется префиксной, если элементарный код одной буквы не является префиксом элементарного кода другой буквы. Схема алфавитного кодирования называется разделимой, если любое слово, составленное из элементарных кодов, разлагается на элементарные коды единственным образом.
Алфавитное кодирование с разделимой схемой допускает декодирование. Можно доказать, что префиксная схема является разделимой. Для того чтобы схема алфавитного кодирования была разделимой, необходимо, чтобы длины элементарных кодов удовлетворяли соотношению, известному как неравенство Макмиллана.
Если схема алфавитного кодирования
разделима, то справедливо неравенство
Пример: Схема алфавитного кодирования
А={а, b} и В={0, 1},
является
разделимой, т.к.
,
,
и, значит, выполняется неравенство Макмиллана
.
Данная схема префиксной не является, т.к. элементарный код буквы а является префиксом элементарного кода буквы b.