Информатика_3.ppt
- Количество слайдов: 34
МАТЕМАТИЧЕСКИЕ ОСНОВЫ ИНФОРМАТИКИ 1. Рассмотрим методы и модели количественной оценки информации 2. Проведем краткое знакомство с теорией алгоритмов 3. Вспомним основные на сегодня системы счисления 4. Рассмотрим формы представления и преобразования информации 5. Раскроем числовую систему ЭВМ.
Лекция 3. Способы оценки количества информации. Основные понятия теории алгоритмов. • Методы и модели количественной оценки информации. Энтропийный способ измерения информации. Формула Шеннона. Формула Хартли. • Алгоритмический способ. • Нестрогое определение понятия алгоритма. • Основные классы алгоритмических моделей. Машина Тьюринга. Нормальные алгоритмы Маркова.
Методы и модели оценки количества информации • Как и для характеристик вещества (вспомним массу, заряд, объем и т. д. ), так и для характеристик информации имеются единицы измерения, что позволяет некоторой порции информации приписывать числа — количественные характеристики информации.
Способы измерения информации На сегодняшний день наиболее известны следующие способы измерения информации: • Объемный (самый простой и грубый), • Энтропийный (принят в теории информации и кодировании), • Алгоритмический (оценка сложности и размера соответствующей программы).
Объемный способ измерения информации • Объем информации в сообщении — это количество символов в сообщении. • Поскольку, например, одно и то же число может быть записано многими разными способами (с использованием разных алфавитов), то этот способ чувствителен к форме представления (записи) сообщения.
Единицы измерения объема • В вычислительной технике вся обрабатываемая и хранимая информация представлена в двоичной форме (с использованием алфавита, состоящего всего из двух символов 0 и 1). • Такая стандартизация позволила ввести две стандартные единицы измерения: бит и байт. • Бит — количество информации, которое может помещаться в один элемент памяти. • Байт — это восемь бит.
Энтропийный способ • Этот способ измерения исходит из следующей модели. Получатель информации (сообщения) имеет определенные представления о возможных наступлениях некоторых событий. Эти представления в общем случае недостоверны и выражаются вероятностями Pi, с которыми он ожидает то или иное событие. • Общая мера неопределенности (энтропия) характеризуется некоторой математической зависимостью от совокупности этих вероятностей. • Количество информации в сообщении определяется тем, насколько уменьшится эта мера неопределенности после получения сообщения.
Формула Шеннона • Количество информации в сообщении, состоящем из N символов H= - Pi log 2 Pi , где i изменяется от 1 до N, Pi - это вероятность i-ого символа. Pi = 1/N при равновероятных символах. H=log 2 N, где N - число возможных равновероятных символов в сообщении;
Формула Хартли • Используется для оценки количества информации H в сообщении, передаваемого по каналу связи числовым кодом. • Пусть m – основание системы счисления (число букв алфавита) • Пусть n – число разрядов в сообщении. • Тогда N = mn - число всевозможных кодовых комбинаций сообщения. • При равновероятном появлении любой кодовой комбинации количество информации, приобретенное получателем: • H=log 2 N = log 2 mn = n log 2 m
Формула Хартли для m = 2 • В частности, для двоичного кода (m = 2) получим результат: • при равновероятном появлении любой кодовой комбинации имеем количество всевозможных кодовых комбинаций N=2 n , где n – число разрядов в сообщении: H=log 2 N = n
Информативность сообщения • При условии полного априорного незнания получателем сообщения, передаваемого по каналу связи двоичным кодом, количество информации равно количеству символов в сообщении (числу разрядов), т. е. объемный (V) и энтропийный (H) способ измерения дают один и тот же результат: H=V=n, бит • При наличии некоторой априорной информации, т. е. при неравновероятных символах в сообщении, всегда H
Примеры расчета количества информации энтропийным способом • H=log 2 N при N=32 (например, карт) Имеем H=log 2 32 =5 • H=log 2 N при N=16 (например, карт красной масти) Имеем H=log 2 16 =4 • Вывод: дополнительная информация о масти уменьшает количество принятой информации на 1.
Интересная интерпретация • Энтропийная оценка H=log 2 N имеет следующую интерпретацию. Она характеризует число двоичных вопросов, ответы на которые позволяют выбрать либо «да» , либо «нет» и получить полную ясность в каком либо вопросе, т. е. устранить имевшуюся априорную неполноту знаний. • Например, попытка угадать возраст человека не старше 32 лет: потребуется задать 5 вопросов, H=log 2 32 =5. Далее, человеку не старше 64 лет надо задать уже 6 вопросов.
Алгоритмический способ измерения информации • Этот метод кратко можно охарактеризовать следующими рассуждениями. • Каждый согласится, что слово 0101… 01 сложнее слова 00. . . 0, а слово, где 0 и 1 выбираются из эксперимента — бросания монеты (где 0 — герб, 1 — решка), сложнее обоих предыдущих.
О размере и сложности программ • Компьютерная программа, производящая слово из одних нулей, крайне проста: печатать один и тот же символ. Для получения 0101… 01 нужна чуть более сложная программа, печатающая символ, противоположный только что напечатанному. Случайная, не обладающая ни какими закономерностями последовательность не может быть произведена никакой «короткой» программой. Длина программы, производящей хаотичную последовательность, должна быть близка к длине последней. • Приведенные рассуждения позволяют предположить, что любому сообщению можно приписать количественную характеристику, отражающую сложность (размер) программы, которая позволяет ее произвести.
Машина Тьюринга • Так как имеется много разных вычислительных машин и разных языков программирования (разных способов задания алгоритма), то для определенности задаются некоторой конкретной вычислительной машиной, например, абстрактной машиной Тьюринга. • А предполагаемая количественная характеристика — сложность слова (сообщения) определяется как минимальное число внутренних состояний машины Тьюринга, требующиеся для его воспроизведения.
Основные понятия теории алгоритмов • В информатике алгоритмы рассматриваются в двух аспектах: теоретическом и прагматическом, тесно связанным с программированием. • Теория алгоритмов — раздел математики, изучающий общие свойства алгоритмов. • Понятие «алгоритм» сформировалось в математике в 20 -х годах XX в. Началом систематической разработки теории алгоритмов можно считать 1936 г. и связывают это начало с публикацией работы А. А. Черча.
Нестрогое определение понятия алгоритма • Под алгоритмом всегда (и до возникновения строгой теории) понималась процедура, которая позволяла путем выполнения последовательности элементарных шагов получать однозначный результат (независящий от того, кто именно выполнял эти шаги) или за конечное число шагов прийти к выводу о том, что решения не существует.
Алгоритмическая модель • Составляющими такой модели должны быть конкретный набор элементарных шагов, способы определения следующего шага. Каждый шаг должен быть элементарным и выполнимым, чтобы алгоритм понимался однозначно. • От модели также требуется простота и универсальность. Универсальность необходима для того, чтобы модель позволяла описать любой алгоритм. • Требование простоты важно для того, чтобы выделить необходимые элементы и свойства алгоритма и облегчить доказательства общих утверждений об этих свойствах.
Три основных класса моделей • Первый класс моделей основан на арифметизации алгоритмов. • Второй класс моделей основан на идее машинизации алгоритмов: он должен быть представлен так, чтобы его могла выполнять вычислительная машина. • Третий класс моделей алгоритмов оперирует конкретными алфавитами, здесь наиболее известная алгоритмическая модель — нормальные алгоритмы Маркова.
Первый класс моделей • Предполагается, что любые данные можно закодировать числами, и как следствие — всякое их преобразование становится в этом случае арифметическим вычислением, алгоритмом в таких моделях является вычисление значения некоторой числовой функции, а его элементарные шаги — арифметические операции. • Последовательность шагов определяется двумя способами. Первый способ — суперпозиция, т. е. подстановка функции в функцию, а второй — рекурсия, т. е. определение значения функции через «ранее» вычисленные значения этой же функции. Функции, которые можно построить из целых чисел и арифметических операций с помощью суперпозиций и рекурсивных определений, называются рекурсивными функциями. Например: n! (n+1)
Второй класс моделей • Основные составные части машины Тьюринга: (УУ) — управляющее устройство, 1 — лента, 2 - головка; А = { а 1. . . аm} — алфавит машины; Q= {q 1 … qn } — множество состояний машины (точнее, головки), среди которых выделяют начальное q 1 и конечное qz
Основные составные части машины Тьюринга УУ qi 2 1 aj an «» ak am ar «» Полное состояние машины Тьюринга называется конфигурацией, которое описывается тройкой символов: а 1 qa 2. На рисунке машина в состоянии: aj an «» qi ak am ar «»
Описание машины Тьюринга • Машина Тьюринга состоит из трех частей: ленты, головки и управляющего устройства. Лента бесконечна в обе стороны и разбита на ячейки. В каждой ячейке может быть записан только один символ. Отсутствие символа в ячейке обозначается специальным «пустым» символом, например, « » . • Головка всегда располагается над некоторой ячейкой ленты. Она может читать и писать символы, стирать их и перемещаться вдоль ленты как вправо так и влево.
Элементарный шаг машины Тьюринга состоит из следующих действий: • головка считывает символ, записанный в ячейке, над которой она находится; • считанный символ а. K и текущее состояние головки qj однозначно определяют новое состояние qk , новый записываемый символ аl и перемещение головки dp (которое может иметь значение: на ячейку влево, на ячейку вправо, остаться на месте). • Устройство управления хранит и выполняет команды машины вида qjak -» qlandp.
ЗАДАНИЕ МАШИНЫ ТЬЮРИНГА • Конкретную машину Тьюринга (и алгоритм соответственно) можно задать, перечислив элементы A и Q и команды машины. • Полное состояние машины Тьюринга называется конфигурацией и включает в себя состояние головки, состояние ленты (слово, записанное за ней) и положение головки на ленте. • Конфигурация описывается тройкой а 1 qa 2, где q — текущее состояние головки, а 1 — слово слева, а а 2 — слово справа от головки (включая символ, над которым находится головка). Перед началом работы на пустую ленту записывается исходное слово а конечной длины, головка устанавливается над первым его символом и, как следствие, начальной конфигурацией является qla.
Пример машинной модели (алгоритм сложения) • Пусть m и n неотрицательные целые числа произвольной длины. • Числа представляются счетноимпульсным кодом, т. е. количеством 1, равных m или, соответственно, n. • Необходимо построить алгоритм вычисления m+n. • Зададим алфавит машины Тьюринга:
А = { #, 1, 0 } , где # - отсутствие символа в ячейке ленты 1 - символ кода числа 0 – символ разделения двух чисел Начальная конфигурация q 1 a 1 Конечная конфигурация a 2 qk
Начальная конфигурация q 1 # 1 1 1 0 1 1 1 1 # m n
Конечная конфигурация qk # 1 1 1 # # m+n Покажем, что число 4 характеризует сложность алгоритма сложения и не зависит от длины входных данных. Для этого запишем набор команд машины Тьюринга и найдем необходимое число внутренних состояний машины.
Команды машины: qiak > qjaldp • • • q 1# > q 1# R q 11 > q 11 R q 10 > q 21 R q 21 > q 21 R q 2# > q 3# L q 31 > q 4# S R – Right L – Left S - Stop
Третий класс моделей • для нормального алгоритма задается алфавит, над которым он работает, конечное множество допустимых подстановок и правила их применения: • 1) проверить возможность подстановок в порядке возрастания их номеров, и если она возможна (левая часть подстановки обнаружена в исходном слове), произвести подстановку (заменив левую часть на правую); • 2) если в примененной подстановке имеется символ «!» , то преобразования прекращаются, а если нет, то текущее состояние становится исходным и весь процесс начинается заново; • 3) если ни одна подстановка не применима, то процесс преобразования завершен.
Пример алгоритма Маркова • зададим алгоритм преобразования исходного слова «СЛОН» в слово «МУХА» по следующей цепочке: • «СЛОН» —» «СУОН» —> «МУХН» —» «МУХА» . Используя множество подстановок • 1. Я-У 2. Л-У 3. С-М 4. В-б 5. Р-Т 6. Т-Р! 7. О-Х 8. Н -А
Заключение • Появление точного понятия алгоритма позволило сформулировать алгоритмически не разрешимые проблемы, т. е. задачи, для решения которых невозможно построить алгоритм. Задача называется алгоритмически неразрешимой, если не существует машины Тьюринга (или рекурсивной функции, или нормального алгоритма Маркова), которая ее решает. Например, неразрешимой оказалась проблема распознавания эквивалентности алгоритмов: нельзя построить алгоритм, который по любым двум алгоритмам (программам) выяснял бы, вычисляют они одну и ту же функцию или нет. Знание основных неразрешимостей теории алгоритмов необходимо для специалиста по информатике. Оно предостережет его от увлечения глобальными прожектами всеобщей алгоритмизации точно так же, как знание основных законов физики предостерегает от попыток создания вечного двигателя.


