
- •160001, Г. Вологда, ул. Челюскинцев, 3.
- •Предисловие
- •Введение
- •Раздел 1. Теория информации
- •Глава 1. Исходные понятия информатики
- •1.1. Начальные определения
- •1.2. Формы представления информации
- •1.3. Преобразование сообщений
- •Контрольные вопросы и задания
- •Глава 2. Понятие информации в теории Шеннона
- •2.1. Понятие энтропии
- •2.1.1. Энтропия как мера неопределенности
- •2.1.2. Свойства энтропии
- •2.1.3. Условная энтропия
- •2.2. Энтропия и информация
- •2.3. Информация и алфавит
- •Контрольные вопросы и задания
- •Глава 3. Кодирование символьной информации
- •3.1. Постановка задачи кодирования, Первая теорема Шеннона
- •3.2. Способы построения двоичных кодов
- •3.2.1. Алфавитное неравномерное двоичное кодирование сигналами равной длительности. Префиксные коды
- •3.2.2. Равномерное алфавитное двоичное кодирование. Байтовый код
- •3.2.3. Алфавитное кодирование с неравной длительностью элементарных сигналов. Код Морзе
- •3.2.4. Блочное двоичное кодирование
- •Контрольные вопросы и задания
- •Глава 4. Представление и обработка чисел в компьютере
- •4.1. Системы счисления
- •4.2. Представление чисел в различных системах счисления
- •4.2.1. Перевод целых чисел из одной системы счисления в другую
- •4.2.2. Перевод дробных чисел из одной системы счисления в другую
- •4.2.3. Понятие экономичности системы счисления
- •4.2.4. Перевод чисел между системами счисления 2 ↔ 8 ↔ 16
- •4.2.5. Преобразование нормализованных чисел
- •4.3. Кодирование чисел в компьютере и действия над ними
- •4.3.1. Кодирование и обработка в компьютере целых чисел без знака
- •4.3.2. Кодирование и обработка в компьютере целых чисел со знаком
- •4.3.3. Кодирование и обработка в компьютере вещественных чисел
- •Контрольные вопросы и задания
- •Глава 5. Передача информации
- •5.1. Общая схема передачи информации в линии связи
- •5.2. Характеристики канала связи
- •5.3. Влияние шумов на пропускную способность канала
- •5.4. Обеспечение надежности передачи и хранения информации
- •5.4.1. Постановка задачи
- •5.4.2. Коды, обнаруживающие ошибку
- •5.4.3. Коды, исправляющие одиночную ошибку
- •5.5. Способы передачи информации в компьютерных линиях связи
- •5.5.1. Канал параллельной передачи
- •5.5.2. Последовательная передача данных
- •5.5.3. Связь компьютеров по телефонным линиям
- •Контрольные вопросы и задания
- •Глава 6. Хранение информации
- •6.1. Классификация данных. Проблемы представления данных
- •6.2. Представление элементарных данных в озу
- •6.3. Структуры данных и их представление в озу
- •6.3.1. Классификация и примеры структур данных
- •6.3.2. Понятие логической записи
- •6.3.3. Организация структур данных в озу
- •6.4. Представление данных на внешних носителях
- •6.4.1. Иерархия структур данных на внешних носителях
- •6.4.2. Особенности устройств хранения информации
- •Контрольные вопросы и задания
- •Раздел 2. Алгоритмы. Модели. Системы
- •Глава 7. Элементы теории алгоритмов
- •7.1. Нестрогое определение алгоритма
- •7.2. Рекурсивные функции
- •7.3. Алгоритм как абстрактная машина
- •7.3.1. Общие подходы
- •7.3.2. Алгоритмическая машина Поста
- •7.3.3. Алгоритмическая машина Тьюринга
- •7.4. Нормальные алгоритмы Маркова
- •7.5. Сопоставление алгоритмических моделей
- •7.6. Проблема алгоритмической разрешимости
- •7.7. Сложность алгоритма
- •Контрольные вопросы и задания
- •Глава 8. Формализация представления алгоритмов
- •8.1. Формальные языки
- •8.1.1. Формальная грамматика
- •8.1.2. Способы описания формальных языков
- •8.2. Способы представления алгоритмов
- •8.2.1. Исполнитель алгоритма
- •8.2.2. Строчная словесная запись алгоритма
- •8.2.3. Графическая форма записи
- •8.2.4. Классификация способов представления алгоритмов
- •8.3. Структурная теорема
- •Контрольные вопросы и задания
- •Глава 9. Представление о конечном автомате
- •9.1. Общие подходы к описанию устройств, предназначенных для обработки дискретной информации
- •9.2. Дискретные устройства без памяти
- •9.3. Конечные автоматы
- •9.3.1. Способы задания конечного автомата
- •9.3.2. Схемы из логических элементов и задержек
- •9.3.3. Эквивалентные автоматы
- •Контрольные вопросы и задания
- •Глава 10. Модели и системы
- •10.1. Понятие модели
- •10.1.1. Общая идея моделирования
- •10.1.2. Классификация моделей
- •Модели структурные и функциональные
- •Модели натурные и информационные
- •Модели проверяемые и непроверяемые
- •Модели по назначению
- •10.1.3. Понятие математической модели
- •10.2. Понятие системы
- •10.2.1. Определение объекта
- •10.2.2. Определение системы
- •10.2.3. Формальная система
- •10.2.4. Значение формализации
- •10.3. Этапы решения задачи посредством компьютера
- •10.4. Об объектном подходе в прикладной информатике
- •Контрольные вопросы и задания
- •Заключение
- •Приложение а. Элементы теории вероятностей
- •А.1. Понятие вероятности
- •А.2. Сложение и умножение вероятностей
- •A.3. Условная вероятность
- •Контрольные вопросы и задания
- •Приложение б. Некоторые соотношения логики
- •Глоссарий
- •Список литературы
- •Содержание
- •Глава 4. Представление и обработка чисел в компьютере 45
- •Глава 5. Передача информации 69
- •Глава 6. Хранение информации 83
- •Раздел 2. Алгоритмы. Модели. Системы 98
- •Глава 7. Элементы теории алгоритмов 99
- •Глава 8. Формализация представления алгоритмов 120
- •Глава 9. Представление о конечном автомате 134
- •Глава 10. Модели и системы 147
9.3.3. Эквивалентные автоматы
Автоматы являются устройствами для переработки дискретной информации. При этом характером перерабатываемой информации определяется входной и выходной алфавиты (X и Y); алфавит внутренних состояний (Q) определяется строением автомата и, вообще говоря, он может различаться у разных автоматов с одинаковыми входными и выходными алфавитами. Следовательно, одно и то же преобразование информации может быть осуществлено автоматами с разным числом состояний и, следовательно, посредством различного числа команд. Введем ряд определений:
Состояния q автомата М и q' автомата М' считаются эквивалентными, если оба автомата, получив одну и ту же (любую) входную последовательность символов, перерабатывают ее в одинаковую выходную последовательность.
Автоматы М и М' называются эквивалентными, если для каждого состояния автомата М существует эквивалентное ему состояние автомата М' и наоборот.
Другими словами, эквивалентные автоматы реализуют одинаковые преобразования, но могут иметь различное число внутренних состояний.
Понятие эквивалентности состояний применимо и к одному автомату (формально можно считать, что М и М' совпадают). Для одного автомата эквивалентными будут различные состояния, через которые одна и та же входная последовательность символов преобразуется в одинаковую выходную.
В связи с синтезом схем практический интерес представляет задача построения автомата, выполняющего заданный набор преобразований при минимальном числе внутренних состояний.
Автомат, эквивалентный заданному и имеющий наименьшее из всех возможных число состояний называется минимальным.
Задача построения минимального автомата называется задачей минимизации автомата. Ее решение осуществляется в два этапа: сначала устанавливаются все неэквивалентные состояния исходного автомата, а затем по ним стоится минимальный автомат. В свою очередь, для определения неэквивалентных состояний необходимо выявить классы эквивалентных состояний.
Пусть имеется автомат с множеством внутренних состояний Q, среди которых могут быть эквивалентные. Отношения эквивалентности состояний обладают обычными свойствами эквивалентности, т.е. рефлексивностью, симметрией и транзитивностью. Поэтому множество Q может быть разбито на классы эквивалентности. Процедуру рассмотрим на примере.
Пример 9.5
Пусть имеется конечный автомат, заданный таблицей:
На основе ее составим другую таблицу, клетки которой будут соответствовать всем различным парам qiqj (i ≠ j), заполнив ее согласно следующим правилам:
если два состояния qi и qj неэквивалентны (т.е. для какого-либо значения входного символа х значения на выходе различаются), то соответствующая клетка зачеркивается;
если в состояниях qi и qj для каждого х значения на выходе одинаковы, то в клетки записываются все пары состояний qvqw (v ≠ w), отличные от qiqj, в которые автомат может перейти из qi и qj при подаче одного и того же входного символа.
Согласно первому правилу зачеркнутой оказалась, например, клетка, соответствующая паре q1q2, поскольку при х = 0 на выходе выдаются разные значения (1 и 0). По второму правилу, например для пары q5q6 следует записать пару q2q5 из следующих соображений: у q5 и q6 все выходные символы одинаковы при одинаковых входных; х = 0 приводит к исходной паре q5q6; х = 1 приводит к паре одинаковых состояний q6q6.
Подобным образом анализируются остальные сочетания.
Наконец, последующими преобразованиями вычеркиваются клетки, в которых находятся пары, соответствующие уже зачеркнутым ранее клеткам. Например, следует зачеркнуть клетку для пары q1q4, поскольку в ней содержится q3q6, а также q3q4, так как в ней есть q2q3. Затем снова нужно зачеркнуть все клетки, которые содержат пары, соответствующие вычеркнутым клеткам. Процедура должна продолжаться до тех пор, пока не сформируется таблица, в которой нельзя вычеркнуть ни одной из оставшихся клеток. Для рассматриваемого примера эти клетки выделены жирной рамкой. Можно доказать, что оставшиеся не вычеркнутыми клетки соответствуют всем парам эквивалентных состояний. Это q1q3, q2q5, q2q6 и q5q6. Классы эквивалентности образуются состояниями, которые попарно эквивалентны. В этом случае это {q1,q3} и {q2, q5, q6}. Состояния, не вошедшие в эти классы, эквивалентны лишь себе и образуют собственные классы эквивалентности; в рассматриваемом примере это {q4}. Таким образом, классы эквивалентности оказались выделенными.
После выделения классов эквивалентности состояний для автомата М можно построить эквивалентный ему автомат M'. В качестве входного и выходного алфавитов для М' возьмем соответствующие алфавиты М, а каждому классу эквивалентных состояний М сопоставим одно состояние М'. Для рассмотренного выше примера можно принять (q1)' ↔ {q1, q3}, (q2)' ↔ {q2, q5, q6}, (q3)' ↔ {q4}.
Окончательно получаем таблицу нового автомата М'.
Можно доказать следующую теорему*:
* Интересующихся доказательством можно адресовать к книге Л.А. Шоломова [48, с.125-126].
Для всякого конечного автомата существует единственный эквивалентный ему минимальный автомат. Существует алгоритм, который по любому заданному конечному автомату строит соответствующий ему минимальный.
Можно доказать также, что рассмотренная нами процедура и является тем самым алгоритмом, позволяющим построить минимальный автомат эквивалентный заданному.