- •Э.Н.Гордеев теория информации и сложность алгоритмов
- •Гордеев Эдуард Николаевич теория информации и сложность алгоритмов.
- •Раздел 1. Информация и Алгоритм. Коды объектов. 6
- •Раздел 2. Сжатие информации. 11
- •Предмет курса
- •Основная цель курса
- •Что такое информация?
- •Раздел 1. Информация и Алгоритм. Коды объектов. 5
- •2.2 Основной вывод: информация и алгоритм – взаимообусловленные понятия. 8
- •Раздел 2. Сжатие информации. 11
- •Раздел 1. Информация и Алгоритм. Коды объектов.
- •Введение
- •Подходы к определению информации.
- •Описательный подход
- •Использование аналогии и эквивалентности
- •Основной вывод: информация и алгоритм – взаимообусловленные понятия.
- •Представление (кодирование) информации.
- •Раздел 2. Сжатие информации.
- •Кодирование информации. Количество информации. Сжатие информации.
- •Энтропия по Хартли.
- •Энтропия по Шеннону.
- •Математическая модель: алфавитное кодирование случайного источника.
- •Энтропия по Шеннону и энтропия по Хартли.
- •Свойства энтропии.
- •Алгоритмы кодирования
- •Алгоритм Шеннона (Фано).
- •Алгоритм Хаффмана
- •Блочное кодирование Хаффмена.
- •Замечание. О длине блока и сложности кодирования.
- •Блочное кодирование и теорема Шеннона.
- •Раздел 3. Передача информации. Защита от искажений.
- •Передача информации по каналу с шумом.
- •Передача информации по двоичному симметричному каналу с шумом
- •Корректирующие способности кодов. Границы мощности.
- •Теорема Шеннона для канала с шумом.
- •Факты из теории вероятности.
- •XI → канал → y
- •Вероятностное доказательство теоремы.
- •Комбинаторное доказательство теоремы.
- •Примеры кодов, исправляющих ошибки. Линейные коды.
- •Спектр кода.
- •Линейные коды.
- •Теорема об эквидистнантных кодах
- •Рекомендованная литература
Основной вывод: информация и алгоритм – взаимообусловленные понятия.
Любая информация всегда связана с некоторым алгоритмом. В теории алгоритмов очевидно актуальными вопросами являются проблемы представления информации в алгоритме A (входной I(A) и выходной F(I(A))).
Из приведенного выше основного вывода сразу же следует основной тезис.
Основной Тезис. Информацией является такое слово I в конечном алфавите, для которого существует машина Тьюринга T(I) такая, что слово I участвует или в работе этой машины или в ее описании.
Например, I – входное слово, выходное слово, одна из команд перехода, конфигурация и т.п.
Пример. Так как любой алгоритм A – это преобразователь информации, а его текст T сам является информационным объектом, то проведенное нами рассмотрение можно положить в основу нового класса задач: каким условиям должны удовлетворять информационные объекты I(A) и F(I(A)) для их «разумного» использования в алгоритме A.
Пример. Возможна и обратная задача. Фиксирован конкретный информационный объект I. Как он может быть использован? Для каких алгоритмов? Большинство таких задач – это бытовые, тривиальные задачи или задачи, давно в математике известные. Но давайте выйдем в какую-нибудь пограничную область кибернетики, где каким-то (в этом-то вся и проблема) образом можно формализовать информационный объект, не являющийся напрямую словом в конечном алфавите, а, например, описывающий качествование другими частями триады: чувство-воля. Какие постановки задач возможны в этом случае. Мы ведь теперь твердо знаем, что если есть информационный объект, то есть и задачи, для которых он возник.
Пример. Исторический подтекст. ИО есть, а задачи забыты. Как их восстановить?
Основной вывод. Грубо говоря, информация – это то, что делает жизнь человека целенаправленной. Информация – это продукт деятельности субъекта (человека), предназначенный для другого субъекта (человека), представляющий собой инструкцию (часть инструкции) по преобразованию окружающего мира с минимальными затратами ресурса (энергии).
Представление (кодирование) информации.
Из приведенного выше тезиса вытекает, что два интуитивных понятия: информация и алгоритм взамообуславливают друг друга.
Итак, условие задачи – это информация, текст алгоритма – информация, результат работы алгоритма – информация и т.п. Еще раз хочу подчеркнуть, что нет алгоритма без информации и наоборот.
Сначала поясним, что будет пониматься под количеством информации, кодированием информации и сжатием информации.
Будем считать, что информация создается и используется человеком (субъектом).
Как мы уже говорили, при математическом подходе к информации предполагается справедливость следующего тезиса.
Тезис. Любая информация может быть представлена словом в конечном алфавите.
Очевидно, что множество слов может быть представлено одним словом. (Например, с помощью операции конкатенации.)
Опр.
Конкатенация слов
и
получается путем последовательной
записи символов одного слова вслед за
символами другого, т.е.
Поэтому понятия кодирование информации, количества информации и сжатие информации могут относиться как к одному слову, так и к множеству слов.
Кодирование информации – это создание слова α в алфавите А.
Количество информации – это некоторая количественная характеристика H(α), сопоставляемая слову (множеству слов) α.
Сжатие информации - это преобразование одного слова α в другое слово β. Поэтому сжатие – это преобразование информации, которое можно задать с помощью некоторого отображения φ. Таким образом, β=φ(α).
Вообще говоря, термин сжатие информации тесно связан с понятием количества информации. Сжатие происходит тогда, когда количество информации, приходящейся на один символ исходного слова α меньше, чем количество информации, приходящейся на один символ слова β=φ(α).
Понятие кодирование применительно к информации будет рассматриваться в двух аспектах:
Создание самого Информационного объекта. То есть нанесение на материальный носитель информации о некотором объекте в виде слова α в алфавите А. В этом случае данное слово будет рассматриваться как код объекта. То есть код объекта – это символ интерпретации субъектом информации об объекте. (Назовем это кодированием в широком аспекте.)
Преобразование информации. Вначале информация была представлена словом α, а затем эта же информация представляется словом β, которое получено из α в результате некоторого преобразования φ. Тогда слово β=φ(α) называется кодом слова α. (Назовем это просто кодированием.)
Код, Кодирование
Преобразование одних слов в другие слова.
Код объекта – символ интерпретации субъектом информации объекта.
Первый аспект возникает тогда, например, в программировании, когда нужно представить объект в виде набора данных. Эта проблема возникает как для математических объектов: числа, фигуры, группы, поля, алгоритмы и т.п., так и для объектов из других областей знаний: месторождения в геологии, болезни в медицине, каталоги в промышленности и т.п. Здесь результатом кодирования является слово, в то время как исходный объект кодирования либо представляет собой формализованный математический объект, либо вообще не формализован.
В Теории информации, как математической дисциплине, под кодированием понимался чаще всего второй случай. Здесь исходный и конечный объект кодирования – слова в алфавите.
Часто бывает, что кодирование (создание информационного объекта) - это итерационный процесс. То есть, сначала есть объект B , есть информация о нём I(B), потом есть информация об информации о нём I(I(B)) и т.д. В результате можно получить некоторую структуру данных, состоящую из всех таких информаций.
Опр. Количество символов в слове α будем называть длиной слова α и обозначать через l(α) или |α|.
