Обзорная лекция (матфак).ppt
- Количество слайдов: 114
Обзорная лекция по информатике Вопросы 1 -5
Вопросы 1. Информация, ее виды и свойства. 2. Измерение количества информации: кибернетический и объемный подходы. 3. Алгоритмы и их свойства. 4. Формализация понятия алгоритма. Машина Поста. 5. Кодирование информации. Код Шеннона-Фано. Код Хаффмана.
Литература в библиотеке ИМФИ 518 М 74 Информатика: Учеб. пособие для студ. пед. вузов/ А. В. Могилев, Н. И. Пак, Е. К. Хеннер; Ред. Е. К. Хеннер. - 2 -е изд. , стереотип. - М. : "Академия", 2003. - 816 с.
Вопрос 1 Информация, ее виды и свойства
Вопрос «Что такое информация? » является одним из самых сложных вопросов в информатике. Ученые до сих пор не предложили такого ответа на него, который бы устраивал всех исследователей этого феномена.
Существует множество определений в зависимости от того, в какой науке это определение используется Под информацией в кибернетике понимается любая совокупность сигналов, воздействий или сведений, которые некоторая система воспринимает, выдает, а также хранит в себе
Сигнал • Материальным носителем информации является сигнал. • Сигнал - это изменяющийся во времени физический процесс (радио-, световые, звуковые волны) • Та из характеристик, которая используется для представления сообщений, называется информативным параметром сигнала (частота, амплитуда и др. характеристики волны)
Пример дискретизации и квантования
Сообщение • Совокупность сигналов, представленных на некотором носителе в виде кода • Код — это правила по которым измеряется информативный параметр сигнала
Информация • Информация - это содержание сообщения. • Механизм интерпретации сообщения позволяет получать информацию
Наиболее общее (философское) определение информации: Информация — это отраженное разнообразие, заключенное в структуре объекта (1973 г. ). Урсул Аркадий Дмитриевич
Информация и разнообразие Природа информации заключается в разнообразии, а количество информации выражает количество разнообразия. Информация появляется тогда, когда хотя бы два «элемента» в совокупности различаются.
Информация и отражение Отражение - свойство материальных систем в результате процесса взаимодействия воспроизводить и сохранять в своей структуре свойства и структуру другой системы, накапливать их. Воспроизведение в своей структуре структуры и свойств другой системы (т. е. ее разнообразия) и есть передача информации.
Свойства информации запоминаемость - способность информации к тому, что она может быть отражена ( «запомнена» ) другой системой; передаваемость - способность информации к копированию, т. е. к тому, что она может быть «запомнена» другой системой и при этом останется тождественной самой себе; преобразуемость - означает, что информация может менять форму своего существования; воспроизводимость - характеризует неиссякаемость и неистощимость информации, т. е. что при передаче информации ее количество у источника информации не уменьшается стираемость - характеризует возможность уменьшения количества информации до нуля в процессе ее преобразования.
Виды информации • • По органам чувств: зрительная (образная), звуковая и пр. По представлению: числовая, текстовая, графическая, аудиальная, видео
Вопрос 2 Измерение количества информации: кибернетический и объемный подходы
Математическая теория информации исследует синтаксические свойства информации (формальные характеристики сообщений, а не смысл и ценность информации) Вероятностный (содержательный, кибернетический) подход (К. Шеннон) Объемный (алфавитный) подход (Р. Хартли)
В математической теории информации исходят из того, что в некотором сообщении xi количество информации I(xi) зависит не от её конкретного содержания, степени важности и т. д. , а от вероятности получения этого сообщения p(xi)
Чем меньше вероятность получить сообщение, тем больше информации содержится в нем.
Зависимость количества информации в сообщении (I) от вероятности получения этого сообщения (P) - количество информации, содержащееся в конкретном сообщении
Если все сообщения от данного источника поступают с одинаковой вероятностью, то вероятность одного из N равновероятных сообщения Р = 1/N, а количество информации в этом сообщении определяется по формуле: I = - log (1/N) = log N
Зависимость количества информации в сообщении (I) от количества равновероятных сообщений (N) Ральф Хартли , 1928 г.
Определение бита (вероятностный подход) 1 бит — это количество информации, получаемое при получении одного из двух равновероятных сообщений N=2 log 2 N= log 2 2 =1(бит) 1 бит – это количество информации, уменьшающее неопределенность знаний в 2 раза
Самостоятельно: В коробке лежат кубики: 10 красных, 8 зеленых, 5 желтых, 12 синих. Вычислите вероятность доставания кубика каждого цвета и количество информации, которое при этом будет получено Ответ: Iк=1. 85695 бит Iс=1, 71498 бит Iз=2, 132007 бит Iж=2, 672612 бит На железнодорожной станции имеется 8 подъездных путей. Какое количество информации содержится в сообщении о номере пути, на который прибывает поезд, если поезд может прибыть на любой путь с одинаковой вероятностью? Ответ: I = 3 бита
В теории информации чаще всего необходимо знать не количество информации I(xi), содержащееся в элементарном сообщении, а среднее количество информации приходящееся на элементарное сообщение, генерируемое системой- источником сообщений.
Среднее количество информации, приходящееся на одно сообщение, называется энтропией системы H(x) и определяется по формуле Шеннона
Формула Шеннона N – количество разных элементарных сообщений, которые может генерировать система (алфавит системы) Pi – вероятность появления некоторого элементарного сообщения Клод Шеннон
Самостоятельно: Число символов алфавита N=5. Определить среднее количество информации на символ сообщения, составленного из этого алфавита: а) если символы встречаются с равными вероятностями; Ответ: Н= 2. 32 бит б) если символы алфавита встречаются в сообщении с вероятностями 0. 8, 0. 15, 0. 03, 0. 015, 0. 005. Ответ: H=0. 94 бит
Термин “энтропия” заимствован К. Шенноном из термодинамики. В математической теории информации энтропия характеризует источник сообщений с точки зрения неопределённости выбора того или другого сообщения.
Энтропия - численная мера неопределенности наших знаний о состоянии некоторой системы (источника сообщений)
Информация и энтропия Информация — это содержание сообщения, понижающего неопределенность наших знаний о некоторой системе
Количество информации (I), полученное из сообщения о состоянии системы, равно разности неопределенностей наших знаний о состоянии системы, имевшихся "до" и "после" получения сообщения. Если сообщение полностью снимает неопределеность относительно состояния системы, то количество информации в этом сообщении численно равно энтропии системы до получения сообщения
Самостоятельно: Сколько информации содержится в сообщении о том, что на игральной кости выпало четное число очков? I = 1 бит
Объемный (алфавитный) подход к измерению информации Объемный подход используется для измерения количества информации в тексте, представленном в виде последовательности символов некоторого алфавита. Количество символов в алфавите называется мощностью алфавита. Предполагается, что все символы в тексте встречаются с равной вероятностью
Определение количества информации 1) Вычисляют количество информации, которое несет каждый символ текста (информационный вес символа) i = log 2 N, N — мощность алфавита 2) Общее количество информации (информационный объем текста) определяется как сумма информационных весов всех символов, составляющих текст. I=K·i К — количество символов в тексте
Единицы измерения информации При N = 2 (двоичный алфавит) информационный вес одного символа равен 1 биту. С позиции объемного подхода к измерению информации 1 бит — это информационный вес символа из двоичного алфавита. 1 байт = 8 бит — это информационный вес символа из алфавита мощностью 256. 1 Кб (килобайт) = 210 байт = 1024 байта, 1 Мб (мегабайт) = 210 Кб = 1024 Кб, 1 Гб (гигабайт) = 210 Мб = 1024 Мб.
Самостоятельно Найти информационный объем текста, записанного на языке, алфавит которого содержит 128 символов и 2000 символов в сообщении Ответ: 14000 бит. Информационный вес одного символа некоторого сообщения равен 6 битам. Сколько символов входит в алфавит, с помощью которого было составлено это сообщение? Ответ: 64 символа.
Вопрос 5 Кодирование информации. Код Шеннона-Фано. Код Хаффмана
Алфавит - набор знаков, в котором установлен порядок их следования
Первичный алфавит - алфавит, с помощью которого представляется информация до преобразования Вторичный алфавит - алфавит, с помощью которого представляется информация после преобразования
Код - правило, описывающее соответствие знаков или их сочетаний одного алфавита знакам или их сочетаниям другого алфавита.
Кодирование - перевод информации, представленной посредством первичного алфавита, в последовательность кодов Декодирование - восстановление информации в первичном алфавите по полученной последовательности кодов.
Обратимость кодирования Операции кодирования и декодирования называются обратимыми, если их последовательное применение обеспечивает возврат к исходной информации без каких-либо ее потерь
Равномерный код – код, формирующий для всех символов первичного алфавита кодовые комбинации одинаковой длины
Код Морзе Неравномерный код – код, формирующий кодовые комбинации разной длины
Основные задачи, решаемые теорией кодирования: Обеспечение экономичности передачи информации посредством устранения избыточности Обеспечение надежности (помехоустойчивости) передачи информации
Избыточность — использование для кодирования сообщения большего количества символов, чем это минимально необходимо для его однозначного декодирования
Экономичность Технические методы: ? ? ? Методы предлагаемые теорией информации: учет характеристик источника сообщений при кодировании сообщений (учет вероятности отдельных букв)
Идея экономичного кода При экономичном кодировании для кодирования символов исходного алфавита используют неравномерные коды, учитывающие частоту появления символов: «» - 0 О – 01 …. Ф - 111111 чем больше частота символа, тем короче его код
Экономичный код должен учитывать частоту появления символов первичного алфавита в сообщении чем больше частота символа, тем короче его код
Существуют два классических метода префиксного кодирования: методы Шеннона Фано и Хаффмана. Входными данными для обоих методов являются множество символов первичного алфавита с частотами их появления в сообщениях. Результат – экономичные коды.
Метод эффективного кодирования Шеннона – Фано (таблица) 1) Кодируемые символы сортируются по убыванию вероятности появления. 2) Все символы разделяются на 2 группы так, чтобы сумма вероятностей в 1 й группе равнялась сумме вероятностей во 2 й 3) Первому разряду кода символов 1 й группы присваивается значение 0, первому разряду кода символов 2 й группы - 1. 4) Далее для каждой из 2 х групп выполняются шаги 1)-3) Процесс продолжается до тех пор, пока в подгруппах не остается по одному символу.
Код Шеннона – Фано Пример 1 : Построить код Шеннона - Фано для алфавита с данными частотными характеристиками букв:
Метод эффективного кодирования Хаффмана (дерево) Строится кодовое дерево 1. Вероятности символов выписывают слева направо в порядке убывания (висячие вершины) 2. Просматривая вершины справа налево, выбирают 2 с минимальными весами и объединяют (вес новой вершины = сумме весов объединенных) 3. Левое ребро получает метку 0, правое – 1 4. Повторяют шаги 2 и 3, пока не останется одна вершина. Ее вес =1. Чтобы получить код символа, нужно спустится к нему от корня дерева, выписывая метки на ребрах.
Код Хаффмана Пример 2 Построить код Хаффмана для данного алфавита и оценить его избыточность
Пример 3 Исходный алфавит содержит восемь символов, которые могут появляться в сообщениях с вероятностями: р1=0, 22 р2=р3=0, 16 р4=р5=0, 10 р6=0, 04 р7= 0, 20 р8=0, 02 Построить коды Хаффмана и Шеннона-Фано для этого алфавита
Вопрос 3 Алгоритмы и их свойства
Понятие алгоритма, является фундаментальным понятием математики и информатики. Аль-Хорезми (780850 н. э. ) — узбекский математик IX века
Неформальное определение алгоритма, через описание его свойств Алгоритм — это точная конечная система предписаний, определяющая содержание и порядок действий исполнителя над некоторыми объектами (исходными и промежуточными данными) для получения (после конечного числа шагов) искомого результата.
Исполнитель алгоритма • – субъект или устройство, способные правильно воспринимать описание алгоритма и выполнять содержащиеся в нем действия. • Совокупность допустимых команд образует систему команд исполнителя (СКИ )
При данном подходе к определению понятия алгоритм, чтобы доказать, что предписание является алгоритмом, необходимо проверить выполняются ли для него некоторые свойства
Свойства алгоритма 1. Дискретность. Алгоритм разделен на отдельные шаги (действия), причем, выполнение очередного шага возможно только поле завершения всех операций на предыдущем шаге.
2. Детерминированность. На каждом шаге исполнения алгоритма однозначно определено преобразование, которое должен совершить исполнитель и нет команд, которые могут восприниматься исполнителем неоднозначно
3. Понятность. В алгоритме могут использоваться только допустимые команды исполнителя (входящие в систему команд исполнителя).
4. Результативность. После завершения каждого шага алгоритма все имеющиеся объекты должны быть однозначно определены. При точном исполнении команд алгоритма процесс должен прекратиться за конечное число шагов. Результатом должно быть решение задачи или вывод о том, что решения не существует.
5. Массовость. Алгоритм пригоден для решения любой задачи из некоторого класса задач, т. е. алгоритм правильно работает на некотором множестве исходных данных, которое называется областью применимости алгоритма.
Способы представления алгоритма • Графический • Словесный • На алгоритмическом языке (или языке программирования).
Вопрос 4 Формализация понятия алгоритма. Машина Поста.
Проблема алгоритмической разрешимости Алгоритмически неразрешимая задача — задача, для которой невозможно построить процедуру решения Примеры: Три древние геометрические задачи: о трисекции угла, о квадратуре круга и об удвоении куба с помощью циркуля и линейки без делений Найти алгоритм, позволяющий по описанию произвольного алгоритма и его исходных данных определить, останавливается ли этот алгоритм на этих данных или работает бесконечно Найти алгоритм, который по любым двум алгоритмам, выяснял бы, вычисляют они одну и туже функцию или нет
Чтобы математически строго доказывать факт отсутствия алгоритма решения задачи необходимо использовать строгое определение алгоритма. Поэтому возникла необходимость построения формального определения алгоритма, аналогичного известному интуитивному понятию
Теория алгоритмов Попытки выработать формальное определение алгоритма привели в 20 -30 -х годах ХХ века к возникновению теории алгоритмов. Было предложено несколько подходов к формальному определению алгоритма (А. Тьюринг, Э. Пост, А. Н. Колмогоров, А. А. Марков и др. ) В дальнейшем было показано, что все эти подходы эквивалентны.
Рассмотрим один из подходов — формальное определение алгоритма как абстрактной вычислительной машины
Концепция алгоритма как абстрактной машины была выдвинута практически одновременно (1936 -1937 гг. ) английским математиком Аланом Тьюрингом и его американским коллегой Эмилем Постом. Алан Тьюринг Эмиль Пост
Основная идея концепции алгоритма как абстрактной машины: Алгоритм это описание действий некоторого формального исполнителя – машины (не понимающей смысла выполняемых действий) над некоторыми объектами. Следовательно, чтобы формально описать понятие алгоритма, нужно придумать как формально описать любые объекты, с которыми работает алгоритм и минимально необходимый набор действий, который нужен для работы с этими объектами. Машины Поста и Тьюринга представляют собой такие формальные описания
1. Уточнение того, с какими объектами работают алгоритмы Любые объекты (числа, формулы, слова, шахматные фигуры и пр. ) можно описать на некотором языке т. е представить как последовательность символов некоторого алфавита Задача любого алгоритма: преобразовать сообщение, записанное в некотором алфавите в другое сообщение
Объекты реального мира можно изображать словами в различных алфавитах. Это позволяет считать, что объектами работы алгоритмов могут быть только слова. Посредством кодирования входного алфавита, любой алгоритм можно свести к алгоритму над словами в алфавите {0, 1}.
Пример: Алгоритм сложения двух целых чисел 26 и 34 перерабатывает слово из 5 символов « 26+34» в слово из двух символов « 60» , изображающее сумму Используемый в алгоритме алфавит {1, 2, 3, 4, 5, 6, 7, 8, 9, 0, +}
2. Формальное описание действий над объектамисловами и порядка выполнения этих действий Пусть исходные данные представлены с помощью алфавита А и образуют конечную последовательность знаков (слово). В результате выполнения алгоритма сформируется новое слово, возможно составленное из знаков другого алфавита В Чтобы произвести такое преобразование машина должна уметь осуществлять следующие элементарные действия: Двигаться вдоль слова вправо и влево Считывать (распознавать) знак Заменять один знак исходного слова ai знаком bi из алфавита B Удалять знак исходного алфавита Добавлять к исходному слову знак из алфавита В Останавливаться
Описание машины Поста
Машина Поста состоит из ленты, каретки и программы. Бесконечная лента (бесконечная память), разделена на ячейки, каждая из которых может быть пустой либо заполненной меткой
Команда машины Поста имеет вид n K m, где n - порядковый номер команды, K - действие, выполняемое кареткой, m - номер следующей команды, подлежащей выполнению. Машина Поста может выполнять только шесть команд:
Чтобы машина начала работать, необходимо задать: (1) программу; (2) начальное состояние машины, т. е. расставить метки по секциям ленты (можно все секции оставить пустыми) и поставить каретку над одной из секций.
Причины остановки машины при выполнении программы остановка по команде "стоп". Такая остановка называется результативной и указывает на корректность алгоритма; остановка при выполнении недопустимой команды. В этом случае остановка называется безрезультативной; машина не останавливается никогда. В этом и в предыдущем случае мы имеем дело с некорректным алгоритмом.
Пример элементарной программы для машины Поста Установка метки. Пусть задано исходное состояние каретки и требуется на пустой ленте написать две метки: одну в секцию под кареткой, вторую справа от нее.
Нахождение начала массива меток Самостоятельно: программа, нахождения конца массива меток (каретка где-то над массивом)
Представление чисел в машине Поста Числа представляются на ленте машины Поста массивами меток. Число k представляется идущими подряд k+1 метками (одна метка означает число « 0» ). Между двумя числами делается интервал как минимум из одной пустой секции на ленте. Вопрос: Какие числа записаны на ленте машины Поста?
Сложение двух чисел Сложить два числа А и Б. Каретка находится над числом А, а число Б находится правее числа А, числа разделены на ленте произвольным числом пробелов. Решение: первое число постепенно придвигается ко второму до их слияния, а потом стирается одна метка в конце (иначе результат окажется на единицу больше правильного).
Тезис Поста (формальное определение алгоритма) Всякий алгоритм представим в форме машины Поста (если нельзя описать машину Поста, решающую задачу, то задача алгоритмически не разрешима)
Машина Поста — математический аппарат, созданный для уточнения понятия алгоритма. Этот математический аппарат был назван «машиной» т. к. по описанию его составляющих частей и функционированию он похож на вычислительную машину. Принципиальное отличие МП от вычислительных машин в том, что ее запоминающее устройство представляет собой бесконечную ленту: у реальных машин память конечна. В этом смысле МП мощнее любой вычислительной машины и является универсальным исполнителем
Задачи 1. Пример кодирования вещественного числа в ячейке формата Double. 2. Дан код величины типа Double: 408 EFB 00000. Преобразуйте его в число. 3. Пример построения кода Хаффмана. 4. Пример построения кода Шеннона-Фано 5. Сложение двух чисел на машине Поста. 6. Перевести число (157. 45) из восьмеричной системы в 12 -ричную. 7. Умножить (1 АА)16 на (19)16
Кодирование вещественных чисел в памяти ЭВМ
Особенности представления чисел в компьютере Представлены с помощью двоичного алфавита Хранятся в ограниченном числе разрядов (поэтому, операции с вещественными числами дают погрешность в вычислениях)
Имеются различные способы кодирования для: целых положительных (без знака) чисел; целых чисел со знаком; вещественных чисел
Вещественные числа (конечные и бесконечные десятичные дроби) хранятся в компьютере в формате с плавающей точкой, который опирается на нормализованную форму записи чисел
Нормализованная форма записи чисел В двоичной системе: А = 1, М ∙ 2 p, M — мантисса (ее целая часть равна 12), p — порядок, записанный в десятичной системе счисления
Вопрос Как данное число будет представлено в нормализованной форме? 11111010, 0011(2) = 101111, 110110(2) =
Существуют несколько международных стандартных форматов записи вещественных чисел. Рассмотрим стандарт IEEE 754, согласно которому при записи вещественного числа в компьютере хранятся только значения знака числа, мантиссы и порядка
Старший разряд ячейки памяти хранит знак числа: 0 - положительное число, 1 — отрицательное
Порядок n-разрядного нормализованного числа задается в так называемой смещенной форме: если для задания порядка выделено k разрядов, то чтобы получить смещенный порядок Sp к истинному значению порядка p прибавляют смещение s = 2 k-1 - 1 Sp = p + s Это позволяет отрицательный порядок сделать положительным и тем самым упростить операции сравнения, сложения, вычитания и сравнения порядков
Максимально допустимое количество цифр в мантиссе определяет точность, с которой может быть представлено число. Количество цифр, отводимых под запись порядка, определяет, насколько большие и насколько маленькие числа могут быть представлены.
Для записи внутреннего представления вещественного числа необходимо: 1. перевести модуль данного числа в двоичную систему счисления 2. нормализовать двоичное число т. е. записать в виде 1, M * 2 p, где M — мантисса (ее целая часть равна 1(2)) и p — порядок, записанный в десятичной системе счисления 3. прибавить к порядку смещение +127(Single) или +1023 (Double) и перевести полученное число (смещенный порядок) в двоичную систему счисления 4. учитывая знак числа, выписать его представление в 32 -х /64 х разрядной ячейке памяти (дополнив мантиссу необходимым количеством нулей справа)
Запишите код действительного числа, интерпретируя его как величину типа Double: 300, 546875 1) переведем модуль данного числа в двоичную систему счисления; Двоичная запись модуля этого числа имеет вид 100101100, 010001 2) нормализуем двоичное число, т. е. запишем в виде 1, M * 2 p, где M — мантисса (ее целая часть равна 1(2)) и p — порядок, записанный в десятичной системе счисления; Имеем 100101100, 010001 = 1, 0010110001 * 28. 3) прибавим к порядку смещение, и переведем смещенный порядок в двоичную систему счисления; Получаем смещенный порядок 8 + 1023 = 1031. Далее имеем 1031(10) = 10000000111(2). 4) учитывая знак заданного числа (0 — положительное; 1 — отрицательное), выписываем его представление в памяти ЭВМ.
Дан код величины типа Double. Преобразуйте его в число. С 08 EFB 00000 1) Прежде всего замечаем, что это код отрицательного числа, поскольку в разряде с номером 63 записана единица. Получим порядок этого числа: 10000001000 (2) = 1032(10); 1032 – 1023 = 9. 2) Число имеет вид -1, 111011 * 29 или -1111011111, 011 3) Переводом в десятичную систему счисления получаем - 991, 75
Самостоятельно: 1) Запишите код действительного числа, интерпретируя его как величину типа Double: – 400, 15625 Ответ: 2) Дан код величины типа Double. Преобразуйте его в число: 4078 D 2800000 Ответ: 397, 15625
Примеры: Перевести число 157. 45 из восьмеричной системы в 12 -ричную. Ответ: 92, 6 B 3 (12) Умножить (1 АА)16 на (19)16 Ответ: 299 A Самостоятельно: Перевести число 2755 из восьмеричной системы в 12 -ричную. Ответ: A 65, 6 (12) 69, 4(16) * A, B(16). Ответ: 464, DC(16)
Обзорная лекция (матфак).ppt