- •Э.Н.Гордеев основы теории информации
- •Раздел 1. Информация и Алгоритм. Коды объектов. 12
- •Раздел 2. Сжатие информации. 30
- •Раздел 3. Передача информации. Защита от искажений. 56
- •Раздел 1. Информация и Алгоритм. Коды объектов. 10
- •Раздел 2. Сжатие информации. 29
- •Раздел 3. Передача информации. Защита от искажений. 55
- •12 Рекомендованная литература 122
- •Введение.
- •Алгоритм
- •Представление (кодирование) информации.
- •Примеры кодировок
- •Свойства кодировок
- •Способы представления (кодирования) информации.
- •Кодирование слов и поиск минимального кода
- •Признаковое кодирование.
- •Раздел 2. Сжатие информации.
- •Кодирование информации. Количество информации. Сжатие информации.
- •Сериальное кодирование
- •Алфавитное кодирование.
- •Неравенство Крафта.
- •Префиксные коды.
- •Кодирование натурального ряда.
- •Код Элайеса.
- •Код Левенштейна
- •Количество информации. Энтропия.
- •Энтропия по Хартли.
- •Энтропия по Шеннону.
- •Математическая модель: алфавитное кодирование случайного источника.
- •Энтропия по Шеннону
- •Энтропия по Шеннону и энтропия по Хартли.
- •Теорема Шеннона
- •Алгоритмы кодирования
- •Алгоритм Шеннона (Фано).
- •Алгоритм Хаффмана
- •Блочное кодирование Хаффмена.
- •Алгоритм арифметического кодирования
- •Блочное кодирование и теорема Шеннона.
- •Раздел 3. Передача информации. Защита от искажений.
- •Передача информации по каналу с шумом.
- •Модели каналов.
- •Необходимые определения.
- •Пример кода для канала с выпадением.
- •Передача информации по двоичному симметричному каналу с шумом
- •Принципы построения кодов, исправляющих ошибки.
- •Декодирование на основе таблицы декодирования.
- •Корректирующие способности кодов. Границы мощности.
- •Теорема Шеннона для канала с шумом.
- •Факты из теории вероятности.
- •XI → канал → y
- •Вторая теорема Шеннона.
- •Комбинаторное доказательство теоремы.
- •Примеры кодов, исправляющих ошибки. Линейные коды.
- •Линейные коды.
- •Спектр кода.
- •Код Хэмминга.
- •Вопросы для самопроверки.
- •Примеры билетов для контрольных работ.
- •Приложение.
- •Рекомендованная литература
Введение.
Теория информации и смежные дисциплины.
Каково место теории информации среди других областей науки? Чтобы ответить на этот вопрос, заметим, что научная дисциплина, имеющая определенное название, определяется объектом и методологией исследования.
Объектом исследования теории информации является информация. Считается, что это «интуитивно очевидное» понятие. Однако в математической дисциплине оперировать интуитивно очевидными понятиями нельзя, хотя и приходится. К подобным понятиям относятся, например: единица, число, множество, алгоритм и т.п. Понятие информации из этого же разряда.
На сегодня неизвестно, что это такое. Фраза: « Информация – нематериальная сущность, не имеющая физических атрибутов» - ничего не определяет. Ниже мы попытаемся как-то прояснить это понятие, но до формального определения, конечно, не дойдем.
Информация, как объект исследования, фигурирует во многих дисциплинах: информатике, кибернетике, криптографии, теории связи и др. При описании взаимоотношения различных дисциплин надо делать скидку на условности и точку зрения описывающего, поэтому подобные описания варьируются в зависимости от автора.
В целом же, Информатика, Кибернетика и Теория информации – различные науки, а значит должны отличаться либо объектами, либо методологией.
Кибернетика – наука о:
Получении информации;
Хранении информации;
Передачи информации;
Преобразовании информации;
Использовании информации.
Такое же определение можно дать и двум другим упомянутым дисциплинам. Ключевым словом для кибернетики является «управление». Объектом исследования являются живые и неживые материальные системы. Кибернетика при этом определяется как наука о том, что и как позволяет управлять этими системами. При этом слово «управление», указывает на то, что появляется процесс, с помощью которого в управляемой системе происходит изменение и который передает некую информацию, на основе которой в системе и происходит изменение. Это изменение может, например, привести к существенным энергетическим обменам между системой и средой. В то же время процесс управления, как правило, требует сравнительно малой энергии и использует то, что называется информацией.
Некоторые авторы считают теорию информации разделом кибернетики. Другими разделами кибернетики считаются: теория массового обслуживания, теория алгоритмов, теория автоматов, исследование операций, теория оптимального управления и теория распознавания образов. Мы же, в силу специфики курса, будем трактовать область исследования теории информации несколько шире, поэтому вторгнемся в пограничные области упомянутых дисциплин.
В конце 70-х начале 80-х годов в нашей стране появилось понятие «информатика» (англ. “Computer Science”). Это тоже наука о получении, хранении и использовании информации, но ее проблематика связана с появлением и развитием компьютеризации. По сути, и в кибернетике и в информатике ставятся одинаковые задачи, но в информатике доминируют постановки задач из области именно компьютерных технологий.
Связисты же считают, что Теория информации хотя сегодня и может рассматриваться частью и кибернетики и информатики, но намного старше их по возрасту. Однако ранее в термин Теория информации вкладывался несколько отличный от сегодняшнего смысл. Теория информации, по мнению связистов, выросла из инженерной дисциплины, разрабатывающей системы связи и сигнализации.
В информатике, кибернетике и теории информации используются многие методы классической математики, но наиболее важны здесь методы теории вероятностей, дискретной математики, алгебры и комбинаторики.
Поводя итог, можно сказать, что Теория информации представляет собой математическую теорию, посвященную исследованию понятия информации и математических методов представления информации, измерению информации, формализации каналов и протоколов передачи информации в различных условиях (с помехами и без них), построению методов защиты информации от помех при передаче, а также вопросам преобразования информации для ее эффективного хранения.
Первоначально теория примерялась к радио, телеграфии, телевидению и к другим средствам связи и была посвящена каналу связи, определяемому длиной волны и частотой, реализация которого была связана с колебаниями воздуха или электромагнитным излучением. Обычно соответствующий процесс был непрерывным, но мог быть и дискретным, когда информация кодировалась, а затем декодировалась.
Раздел 1. Информация и Алгоритм. Коды объектов.
Информация и алгоритм.
Два интуитивных понятия: информация и алгоритм взамообуславливают друг друга.
Задачи, алгоритмы
В этом Разделе мы будем иметь дело с несколькими лишь интуитивно определяемыми понятиями. Важнейшие из них - задача и алгоритм.
Задача
В общем случае, алгоритм для чего-то субъектам, его использующим, нужен. Он, например, что-то дает им дает или что-то им обеспечивает. То есть, у субъекта есть потребность к достижению (обладанию, пониманию и т.п.) чего-то. Достигается это путем порождения новой сущности или преобразования одной сущности в другую: алгоритм построения дома, поиск кратчайшего пути с работы домой, умножение чисел и т.п.
При этом под алгоритмом понимается не сам процесс, а инструкция по его осуществлению. Такая инструкция, нанесенная на материальный носитель, будет информационным объектом, но такими же информационными объектами будут исходные данные для осуществления алгоритма и результат его работы. Будем считать, что реализация этой потребности достигается решением задачи. У задачи есть исходные данные (условие) и результат. Алгоритм и дает инструкцию по преобразованию их одно в другое.
То же такое задача ? При описании базовых понятий или аксиоматики используется три способа: аналогия, пример и расчленение «менее элементарных» сущностей на совокупность «более элементарных». Пойдем и мы по этим путям.
Самая простая идентификация понятия может быть дана по аналогии. Так как у нас математический курс, то проведем аналогию с двумя математическими дисциплинами: математической логикой и дискретной математикой, потому что именно эти дисциплины наибольшее внимание уделяют понятиям алгоритм и задача.
Вспомним то, что имелось в виду под задачей в этих дисциплинах. В нашем курсе мы будем иметь дело примерно с тем же самым.
Например, в [1] определение задачи вообще не дается, считается, что оно «интуитивно очевидно». В [2] под задачей понимается «некоторый общий вопрос, на который следует дать ответ». При этом «задача содержит несколько параметров или свободных переменных, конкретные значения которых не определены».
В [4] под задачей понимается «выбор наилучшей конфигурации или множества параметров для достижения некоторой цели». При этом задачи делятся на непрерывные и комбинаторные. «В непрерывных задачах обычно отыскивается множество действительных чисел или даже некоторая функция; в комбинаторных задачах – некоторый объект из конечного или возможно бесконечного счетного множества». Другими словами, задача оптимизации – это пара (F,c) , где F – произвольное множество, область допустимых точек, а c - функция стоимости, отображающая элементы F на множество действительных чисел. Требуется найти такую x* точку из F, на которой значение функции c(x*) обладает определенным свойством, например, минимально, максимально и пр.
Теперь займемся «расчленением» сущностей, приведенных выше. Задачи, рассматриваемые в нашем курсе, это, в подавляющем большинстве, задачи комбинаторные или дискретные. Уже само слово комбинаторный относится к упомянутому выше множеству F. Вернее, к способу его задания. Мы видим, что при таком задании с задачей обычно связывается два объекта: множество параметров и структура связей между ними. Параметры – «язык» для описания условий задачи. Структура связей содержит нечто, позволяющее описать F , а также сформулировать вопрос (см. [2]) или требование к c(x*) трактуемое как вопрос, свойство функционала и пр. (См. [4]).
В теории сложности алгоритмов термин задача сразу же разбивается на два термина: индивидуальная задача и массовая задача. Это связаны со способом задания параметров. Массовая задача предполагает описание множества параметров, а индивидуальная задача возникает, при фиксации значений этих параметров.
