
- •Директор идо _____________а.Ф.Федоров
- •Томск 2007
- •Содержание
- •Введение
- •Глава 1. Множества и отношения
- •1.1. Множества
- •1.1.1. Основные определения
- •1.1.2. Способы задания множеств
- •1.1.3. Диаграммы Эйлера – Венна
- •1.1.4. Операции над множествами
- •1.1.5. Свойства булевых операций над множествами
- •1.2. Отношения
- •1.2.1. Способы задания бинарных отношений
- •1.2.2. Свойства бинарных отношений
- •1.2.3. Эквивалентность и порядок
- •Пример. Каков индекс разбиения и мощности классов эквивалентности по отношению , если – отношение равенства (тождества) на любом множестве;
- •1.2.4. Операции над бинарными отношениями
- •1.2.5. Функциональные отношения
- •1.2.6. Функции и отображения
- •1.2.7. Операции
- •Глава 2. Математическая логика
- •2.1. Логические операции
- •2.1.1. Основные определения математической логики
- •2.1.2. Таблицы истинности
- •2.1.3. Основные логические операции
- •2.1.4. Функционально полные системы (базисы)
- •2.1.5. Совершенная дизъюнктивная нормальная форма
- •2.1.6. Основные эквивалентные соотношения в булевой алгебре
- •2.1.7. Переход от днф к сднф методом расщепления
- •2.2. Формы представления булевых функций
- •2.2.1. Геометрическое представление булевых функций
- •2.2.2. Интервальное представление булевых функций
- •2.3. Синтез логических схем
- •2.4. Минимизация дизъюнктивных нормальных форм
- •2.4.1. Приведение к дизъюнктивной нормальной форме
- •2.4.2. Геометрическая интерпретация задачи минимизации днф
- •2.4.3. Допустимые конъюнкции
- •2.4.4. Сокращенная днф
- •2.4.5. Построение сокращенной днф
- •2.4.6. Тупиковые днф
- •2.5. Логика предикатов
- •2.5.2. Кванторы
- •2.5.3. Выполнимость и истинность
- •2.5.4. Префиксная нормальная форма
- •Глава 3. Графы и сети
- •3.1. Графы
- •3.1.1. Основные определения теории графов
- •3.1.2. Способы задания графов
- •3.1.3. Операции над частями графа
- •3.1.4. Маршруты, пути, цепи, циклы
- •3.1.5. Эйлеровы циклы и цепи
- •3.1.6. Обобщенная теорема об эйлеровых цепях
- •3.1.6. Гамильтонов цикл. Взвешенные графы
- •3.1.7. Граф–дерево и граф–лес
- •3.1.8. Связность. Цикломатическое число графа
- •3.1.9. Двудольные (четные) графы
- •3.1.10. Планарность графов
- •3.2. Сети
- •3.2.1. Потоки в сетях
- •3.2.2. Расчет максимального потока в сети
- •Глава 4. Автоматы, языки, элементы кодирования
- •4.1. Автоматы
- •4.1.2. Реализация конечных автоматов
- •4.1.3. Автоматы–распознаватели
- •4.2. Элементы кодирования
- •4.2.1. Формулировка задачи кодирования.
- •4.2.1. Алфавитное (побуквенное) кодирование
- •4.2.3. Кодирование с минимальной избыточностью
- •4.2.4. Алгоритм квазиоптимального кодирования Фано
- •4.2.5. Алгоритм оптимального кодирования Хаффмена
- •4.2.6. Помехоустойчивое кодирование
- •4.2.7. Сжатие данных
- •Список литературы
4.1.2. Реализация конечных автоматов
Рассмотрим два вида реализации КА: программную и аппаратную.
Программную реализацию КА можно выполнить на любом языке высокого уровня. Причем, топология блок–схемы программы будет повторять топологию графа переходов КА. Построив программу и добавив исполнительные устройства, реализующие отдельные выходные операции (бить ремнем, ругать, успокаивать и т.д.), можно воспитание сына поручить компьютеру.
Аппаратная реализация требует построение устройств памяти для запоминания текущего состояния автомата. Обычно, на практике, используют двоичные элементы памяти. Функциональный блок автомата реализуется как конечный функциональный преобразователь. Таким образом, общий подход к аппаратной реализации КА совпадает с общей процедурой синтеза логических схем, описанной в разделе 2.3, и включает следующие шаги:
-
входные и выходные сигналы и внутренние состояния автомата кодируются двоичными кодами;
-
по таблицам переходов и выходов составляются кодированные таблицы переходов и выходов – фактически табличное задание отображения
;
-
по кодированным таблицам переходов и выходов формируются аналитические выражения логических функций и проводится их минимизация;
-
полученные минимальные формы реализуются в заданном элементном базисе;
-
решаются схемотехнические вопросы синхронизации – привязки моментов выдачи выходного сигнала и изменения состояния внутренней памяти к моментам поступления входных сигналов на вход автомата.
Рассмотрим
реализацию автомата из рассмотренного
примера. Входных сигналов два; мы их
закодируем так: «2»
0, «5»
1. Выходных сигналов шесть. Закодируем
их
,
,
…,
.
Внутренних состояний четыре. Закодируем
их
,
,
,
.
Таким образом имеем:
Структурная схема этого автомата после
двоичного кодирования имеет вид,
показанный на рис. 4.2, где
- функциональный преобразователь без
памяти, БП – блок памяти.
Рис. 4.2. Структурная схема автомата
В
кодированной таблице переходов и выходов
автомата (таб. 4.1) один двоичный разряд
кодирует входной сигнал
,
пары двоичных разрядов
кодируют соответственно текущее
и следующее
состояния автомата, разряды
кодируют выходной сигнал
.
Таблица 4.2
|
|
|
|
||||
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
После записи логической формулы и минимизации в классе ДНФ, как это рассмотрено в разделе 2.4, получим аналитические выражения для всех двоичных функций, реализация которых показана на рис. 4.3.
Рис. 4.3. Функциональная схема автомата
Блоки
Т1 и Т2 – триггеры, которые запоминают
двоичный сигнал до прихода следующего.
Вход
в триггере – синхронизационный вход,
разрешающий переключение триггера.
Сигнал на этом входе должен появляться
в момент получения автоматом очередного
входного сигнала. Этот же синхросигнал
обеспечивает появление на выходе
импульсного значения выходного сигнала.