УТВЕРЖДАЮ

Директор

Института кибернетики

________________

«___»_____________2015 г.

БАЗОВАЯ РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ

ТЕОРИЯ АВТОМАТОВ

НАПРАВЛЕНИЕ  ООП 09.03.01 Информатика и вычислительная техники

ПРОФИЛИ ПОДГОТОВКИ Вычислительные машины, комплексы, системы и сети

КВАЛИФИКАЦИЯ (СТЕПЕНЬ)                        бакалавр

БАЗОВЫЙ УЧЕБНЫЙ ПЛАН ПРИЕМА        2015 г.

КУРС  3  СЕМЕСТР 5

КОЛИЧЕСТВО КРЕДИТОВ                        6 кредитов ECTS

КОД ДИСЦИПЛИНЫ                Б3.ВМ5.1.2


Виды учебной деятельности

Временной ресурс по очной форме обучения

Лекции, ч.

32

Лабораторные занятия, ч.

16

Практические занятия, ч.

16

Аудиторные занятия, ч.

64

Самостоятельная работа, ч.

152

ИТОГО, ч.

216


ВИД ПРОМЕЖУТОЧНОЙ АТТЕСТАЦИИ        экзамен, диф. зачет

ОБЕСПЕЧИВАЮЩЕЕ ПОДРАЗДЕЛЕНИЕ         кафедра ВТ

ЗАВЕДУЮЩИЙ КАФЕДРОЙ ВТ ____________ , профессор

РУКОВОДИТЕЛЬ ООП                ____________ , доцент

ПРЕПОДАВАТЕЛЬ                ____________ , доцент

2015 г.


ЦЕЛИ ОСВОЕНИЯ ДИСЦИПЛИНЫ

Дисциплина «Теория автоматов» занимает в подготовке бакалавров по направлению 230100 «Информатика и вычислительная техника» одно из важнейших мест. Она определяет профессиональную направленность специалистов в области разработки дискретных устройств.

НЕ нашли? Не то? Что вы ищете?

Цели преподавания дисциплины – дать студенту систематические знания и навыки в области теории автоматов, способность использовать методы теории автоматов для решения инженерных задач и программирования, готовность к логическому проектированию цифровых устройств.

Поставленные цели полностью соответствуют целям (Ц1, Ц2, Ц3) ООП.

2.МЕСТО ДИСЦИПЛИНЫ В СТРУКТУРЕ ООП

Дисциплина «Теория автоматов» (Б3.ВМ5.1.2) является вариативной частью блока (Б1) вариативного междисциплинарного профессионального модуля (ВМ5) профиля (1) «Вычислительные машины, комплексы, системы и сети».

Для успешного усвоения дисциплины «Теория автоматов» необходимы знания базовых понятий математической логики, теории алгоритмов и дискретной математики. В рамках ООП дисциплине «Теория автоматов» предшествует освоение дисциплин (ПРЕРЕКВИЗИТЫ):

    «Дискретная математика» (Б1.ВМ4.8); «Математическая логика и теория алгоритмов» (Б1.ВМ4.6).

Содержание разделов дисциплины «Теория автоматов» согласовано с содержанием дисциплин, изучаемых параллельно (КОРРЕКВИЗИТЫ):

    «Схемотехника ЭВМ» (Б1.ВМ4.13).

3.РЕЗУЛЬТАТЫ ОСВОЕНИЯ ДИСЦИПЛИНЫ

В соответствии с требованием ООП освоение дисциплины направлено на формирование у студентов следующих  компетенций (результатов обучения), в т. ч. в соответствии с ФГОС (табл. 1).

Таблица 1

Составляющие результатов обучения, которые будут получены при изучении данной дисциплины

Результаты обучения (компетенции из ФГОС)

Составляющие результатов обучения

Код

Знания

Код

Умения

Код

Владение опытом

Р3 (ОК-6, 

ОПК-1, 

ПК-2, 4)

З.3.2.1

Этапов синтеза дискретного устройства с памятью, целей каждого этапа и методов достижения целей. Классификацию и область применения формальных грамматик и языков.

У.3.2.1

Разрабатывать функциональные и структурные модели дискретных устройств. Использовать формальные грамматики для задач синтаксического анализа.

В.3.2.1

Логического синтеза и тестирования дискретных устройств с использованием САПР.


В результате освоения дисциплины «_» студентами должны быть достигнуты следующие результаты (табл. 2):

Таблица 2

Планируемые результаты освоения дисциплины

№ п/п

Результат

РД1

Знать методы разработки и минимизации конечного автомата. Уметь построить функциональную модель дискретного устройства с памятью.

РД2

Знать методы анализа, синтеза и тестирования логических сетей. Уметь синтезировать синхронную и асинхронную последовательностную схему с отсутствием опасных состязаний. Уметь синтезировать комбинационную схему с учетом требований лекготестируемости или самопроверяемости и построить кратчайший полный тест. Владеть навыками синтеза и тестирования схем в САПР.

РД3

Знать классификацию и область использования формальных грамматик и языков. Уметь записать формальную грамматику и использовать ее для синтаксического анализа, построить по грамматике конечный распознаватель или магазинный автомат.


4. СТРУКТУРА И СОДЕРЖАНИЕ ДИСЦИПЛИНЫ

4.1 Аннотированное содержание разделов дисциплины:

1. Функциональные модели дискретных устройств. Конечные автоматы, классификация и способы задания. Система формул переходов (СФП). Граф-схема алгоритма (ГСА). Переход от СФП к ГСА и от ГСА к конечному автомату.

Практические занятия:

1. Знакомство с САПР MAX-PLUS II. Синтез дешифратора.

2. Минимизация конечных автоматов. Постановка задачи минимизации. Минимизация полных автоматов. Неотличимость состояний. Граф условий неотличимости. Алгоритмы Мура, Хопкрофта. Минимизация частичных автоматов. Совместимость состояний. Сведение задачи минимизации к задаче нахождения сохраняемого правильного покрытия. Точный метод нахождения сохраняемого правильного покрытия, метод последовательных приближений.

Практические занятия:

1. Минимизация полных автоматов.

2. Минимизация частичных автоматов.

3. Логические сети. Понятие элемента и логической сети. Классификация элементов и логических сетей. Анализ логической сети. Синтез логической сети в различных базисах.

Практические занятия:

Анализ логической сети. Синтез логической сети.

Лабораторные работы:

1. Синтез автоматов Мура и Мили.

2. Проверка соответствия схемы ее функциональному описанию.

4. Противогоночное кодирование. Понятие опасных состязаний (гонок). Уточнение задачи синтеза асинхронной схемы и ее сведение к задаче противогоночного кодирования состояний автомата. Соседнее кодирование. Кодирование с помощью связных множеств. Кодирование с совместным использованием кодов. Кодирование с разделение переходов. Точный и приближенный методы.

Практические занятия:

1. Соседнее кодирование.

2. Кодирование с разделением переходов.

5. Кодирование в синхронных схемах. Цели кодирования в синхронных схемах. Кодирование, упрощающее структурные функции переходов. Некоторые эвристические методы. Кодирование, уменьшающее число переключений триггеров.

Практические занятия:

1. Кодирование в синхронных схемах.

Лабораторные работы:

1. Кодирование состояний автомата.

2. Моделирование работы автомата.

6. Формальные грамматики и языки. Грамматика и язык, порождаемый грамматикой. Класификация языков по Хомскому. Стратегии синтаксического анализа.

Практические занятия:

Формальные грамматики и языки. Грамматики классов 2 и 3. Стратегии синтаксического анализа.

7. Автоматные грамматики и конечные распознаватели. Автоматные грамматики и языки. Конечные распознаватели. Минимизация конечных распознавателей. Лемма о накачке. Недетерминированные конечные распознаватели, теорема о детерминизации. Регулярные множества и регулярные выражения. Теорема Клини.

Практические занятия:

Автоматные грамматики и конечные распознаватели. Лемма о накачке. Недетерминированные конечные распознаватели. Детерминизация НКР. Теорема Клини.

8. Контекстно-свободные грамматики и магазинные автоматы. Контекстно-свободные грамматики и языки. Магазинные автоматы. Эквивалентность контекстно-свободных грамматик и магазинных автоматов. Нормальная форма Хомского. Лемма о накачке для контекстно-свободных языков.

Практические занятия:

КС-грамматики и магазинные автоматы. Эквивалентность КС-грамматик и магазинных автоматов. Приведение КС-грамматики к нормальной форме Хомского. Лемма о накачке для КС-языков.

9. Структурные методы синтеза тестов. Понятие дефекта, неисправности, ошибки. Основные модели неисправностей. Построение тестов для комбинационных схем: псевдослучайная генерация тестов, некоторые структурные методы.

Практические занятия:

Модел неисправностей, полный тест, генерация тестов. Метод критических путей. Метод активизации одномерного пути. Метод различающей функции.

10. Синтез легкотестируемых схем. Общая схема синтеза легкотестируемых комбинационных схем. Построение тестов для константных неисправностей. Минимизация полного теста. Тестирование последовательностных схем.

Практические занятия:

Общая схема синтеза легкотестируемых комбинационных схем. факторизационный метод. Построение тестов для константных неисправностей. Минимизация полного теста.

11. Синтез схем встроенного контроля Понятие самопроверяемого дискретного устройства. Синтез схем встроенного контроля для комбинационных устройств.

Практические занятия:

Построение обобщенного графа. Посртоение общей таблицы истинности. Построение схемы встроенного контроля. Проверка на самопроверяемость.

12. Синтез самопроверяемых комбинационных схем Метод дублирования. Неупорядоченные коды и их классификация. Самопроверяемые детекторы кода Бергера и равновесного кода.

Практические занятия:

Синтез детектора кода Бергера. Синтез детектора равновесного кода.


5. ОРГАНИЗАЦИЯ И УЧЕБНО-МЕТОДИЧЕСКОЕ ОБЕСПЕЧЕНИЕ САМОСТОЯТЕЛЬНОЙ РАБОТЫ СТУДЕНТОВ

5.1  Виды и формы самостоятельной работы        

       Текущая СРС –

Подготовка к практическим и лабораторным работам. Подготовка к контрольным работам. Работа с лекционным материалом. Подготовка к экзамену.

       Творческая проблемно-ориентированная самостоятельная работа (ТСР)

Подготовка докладов по изучаемому материалу. Написание программ, реализующих изучаемые алгоритмы. Решение задач повышенной сложности. Самостоятельное изучение дополнительного материала.

5.2        Контроль самостоятельной работы

Оценка результатов самостоятельной работы организуется следующим образом:

    Защита отчетов по написанным программам; выполнение и защита индивидуального домашнего задания; выступление с докладами; выполнение лабораторных работ и защита отчета.

6. СРЕДСТВА ТЕКУЩЕЙ И ПРОМЕЖУТОЧНОЙ ОЦЕНКИ КАЧЕСТВА ОСВОЕНИЯ ДИСЦИПЛИНЫ


Контролирующие мероприятия

Результаты обучения по дисциплине

Проверка индивидуальных домашних заданий

РД1–РД3

Проверка программ, реализующих изучаемые алгоритмы

РД1–РД3

Защита докладов.

РД1–РД3

Защита лабораторных работ.

РД1-РД2

Курсовая работа.

РД1-РД2

Экзамен.

РД1–РД3


       Темы докладов:

ГСА и СФП, их связь с конечными автоматами. Представление алгоритмов конечными автоматами. Алгоритмы минимизации автоматов. Синтез логических сетей в заданном базисе. Алгоритмы кодирования состояний. Структурные методы тестирования. Самопроверяемые детекторы неупорядоченных кодов. Стратегии синтаксического анализа.

Темы для программирования

Минимизация конечных автоматов. Противогоночное кодирование. Кодирование в синхронных схемах. Построение кратчайшего полного теста для комбинационной схемы. Синтез легкотестируемого устройства. Моделирование работы конечного распознавателя. Моделирование работы магазинного автомата. Синтаксический анализ слова.

Темы для самостоятельного изучения.

Автоматное программирование. Коды, исправляющие ошибки. Методы синтаксического анализа. Эквивалентность КС-грамматик.

Индивидуальные домашние задания.

Функциональные модели дискретных устройств.

1. Построить диаграмму переходов-выходов автомата. Автомат выдает единицу, если суммарная длина серий, содержащих не менее двух единиц, нечетная, и ноль в противном случае. Пример:

вход

1

0

1

1

1

0

1

0

0

1

1

0

1

1

1

0

выход

0

0

0

0

0

1

1

1

1

1

1

1

1

1

1

0

2. Работа вычислительного устройства, имеющего вход и выход , определяется булевыми уравнениями

Записать эквивалентную диаграмму переходов-выходов автомата.

3. По заданной ГСА построить диаграммы переходов-выходов автоматов Мили и Мура. Записать СФП, эквивалентную заданной ГСА.

Минимизация полных автоматов

Минимизировать полный автомат с помощью графа условий неотличимости, алгоритмов Мура и Хопкрофта.

ψ

X\Q

1

2

3

4

5

6

7

8

a

8

8

8

1

2

3

3

3

b

2

2

6

5

4

8

1

4

c

2

1

8

3

3

8

8

1

d

5

4

7

6

7

5

5

7

φ

X\Q

1

2

3

4

5

6

7

8

a

0

0

0

1

1

1

1

0

b

1

1

1

0

0

0

0

1

c

0

0

0

0

0

0

0

0

d

1

1

1

1

1

1

1

1


Минимизация частичных автоматов

Минимизировать частичный автомат точным методом и методом последовательных сокращений, сравнить результаты.

ψ

X\Q

1

2

3

4

5

6

7

8

a

4

2

6

3

2

7

b

4

3

5

c

5

5

5

5

d

7

8

1

2

φ

X\Q

1

2

3

4

5

6

7

8

a

1

1

0

1

0

1

b

1

1

0

c

1

1

0

0

d

0

0

1

1

Логические сети

1. Синтезировать сеть, используя базис «И, ИЛИ, НЕ» и Т-триггер

X/Q

0

1

00

1/0

0/0

01

0/1

1/1

10

1/1

0/1

11

1/1

1/0

2. Провести анализ последовательностной схемы


Противогоночное кодирование

Выполнить противогоночное кодирование состояний асинхронного автомата несколькими методами, сравнить результаты по длине кода.

ψ

X\Q

1

2

3

4

5

6

a

1

1

1

4

4

6

b

2

2

6

5

5

6

c

5

4

3

4

5

3

d

4

3

3

4

3

4


Кодирование в синхронных схемах

Закодировать состояния автомата с помощью алгоритмов Хамфри и Армстронга. Получить кодирование, минимизирующее число переключений триггеров.

X\Q

1

2

3

4

5

6

7

8

9

10

0

1

1

1

7

8

9

9

9

9

1

1

2

3

4

6

7

9

6

10

5

5


Тестирование цифровых устройств

1. Найти тесты для одиночных константных неисправностей методом критических путей, перечислить неисправности, которые они обнаруживают. Построить кратчайший полный тест.



2. Найти тесты для выделенной неисправности методом активизации одномерного пути или показать, что это невозможно. Найти тесты методом различающей функции или показать, что это невозможно.


Легкотестируемые схемы

Получить для системы булевых функций безызбыточную систему ДНФ и построить кратчайший полный тест.


Самопроверяемые схемы

1. Построить обобщенный граф схемы и составить задание на синтез для ее схемы встроенного контроля. Рабочая область схемы {000,011,101,111}. Возможно ли построение самопроверяемой схемы встроенного контроля?

2.  На основе схем сравнения на 4 входа синтезировать схемы сравнения на 6 и 8 входов. При каких условиях они будут самопроверяемыми?

3. Составить задание на синтез детектора (4,8)‑кода. Сформулировать условия самопроверяемости детектора.

4. Синтезировать детекторы кода Бергера с тремя и четырьмя информационными разрядами. Являются ли они полностью самопроверяемым? Если нет, то какие неисправности детекторов не обнаруживаются?

Формальные грамматики и языка


Построить формальную грамматику, описывающую палиндромы нечетной длины из символов {0,1}. Выполнить восходящий анализ слова 0010100. Используя лемму о накачке, показать, что язык {0n10n, n>0} не регулярный. Привести формальную грамматику к грамматике класса 3 и построить по ней конечный автомат.

<Предложение> → <Субъект> <Действие> <Объект>

<Субъект> → СУЩЕСТВИТЕЛЬНОЕ

<Субъект> → ПРИЛАГАТЕЛЬНОЕ <Субъект>

<Действие> → ГЛАГОЛ

<Объект> → СУЩЕСТВИТЕЛЬНОЕ

<Объект> → ПРИЛАГАТЕЛЬНОЕ <Объект>

Допускает ли автомат строки: «Маленький зеленый паровозик везет длинный состав», «Грузовой состав стоит».

Конечные распознаватели


Построить конечный автомат, допускающий идентификаторы: последовательности букв латинского алфавита и цифр, начинающиеся  с буквы. Описать поведение недетерминированного конечного распознавателя для входной последовательности 0110. Построить детерминированный конечный распознаватель, эквивалентный недетерминированному.

Записать регулярное выражение, описывающее тот же язык, что и автомат из задания 5. Какие слова включает этот язык? Построить конечный автомат, распознающий язык, задаваемый регулярным выражением 0(1+0*)1*. Какие слова включает этот язык? Определить, эквивалентны ли регулярные выражения 0(10)*1* и (01)*0(1*)*.

Магазинные автоматы


Построить магазинный автомат, проверяющий баланс скобок вида (), [], {} в строке. Построить КС-грамматику по автомату. Построить КС-грамматику для языка из задания 2 и магазинный автомат по этой грамматике.

Вопросы к экзамену

Определение конечного автомата. Классификация конечных автоматов. Способы задания конечных автоматов. Неотличимость состояний, построение графа условий неотличимости. Алгоритм Мура. Минимизация полных автоматов по разбиению на классы неотличимости. Совместимость состояний, построение графа условий совместимости. Сохраняемое правильное покрытие и минимизация частичного автомата. Метод последовательных сокращений. Классификация элементов и логических сетей. Анализ комбинационной схемы. Синтез комбинационной схемы. Анализ последовательностной схемы. Синтез последовательностной схемы. Функции возбуждения триггеров. Проблема опасных состязаний. Соседнее кодирование. Кодирование с разделением переходов. Кодирование, упрощающее функции переходов. Кодирование, минимизирующее число переключений триггеров. Модели неисправностей Принципы построения полного проверяющего теста Методы генерации тестов Структурные методы построения тестов. Метод критических путей Структурные методы построения тестов. Метод различающей функции Структурные методы построения тестов. Метод активизации одномерного пути Схема построения легкотестируемого устройства Проявление константных неисправностей на функциональном уровне Построение тестов для константных неисправностей Минимизация полного теста Тестирование последовательностных схем Общие сведения о самопроверяемых цифровых устройствах Построение обобщенного графа Построение общей таблицы истинности Синтез самопроверяемых СВК Синтез самопроверяемых комбинационных схем Разделимые и неразделимые коды Метод дублирования Построение кода Бергера Самопроверяемые СВК для кодов к из 2к Самопроверяемые СВК для кодов 1 из n Самопроверяемые СВК для кодов m из n Основные понятия. Способы задания языков. Два вида грамматик. Конечный автомат-распознаватель. Способы задания автоматов. Распознаваемое слово. Распознаваемый автомат. Лемма о накачке. Детерминизация автоматов. Теорема об эквивалентности детерминированных и недетерминированных автоматов. Регулярные языки. Регулярные выражения. Граф-переходов. Теорема Клини. Доказательство теоремы Клини. Редукция ребра, вершины. Свойства регулярных выражений. Утверждения о регулярных языках. Операции регулирования. Теорема замкнутости. Грамматика. Непосредственный вывод. Язык, порождаемый грамматикой. Способы задания языков. Правый и левый вывод. Приводимость. Классификация языков по Хомскому. Алгоритм построения автомата по регулярной грамматике. Задача синтаксического анализа. Магазинные автоматы. Распознавание языка. Алгоритм построения МА по КС-грамматике.


7. СРЕДСТВА (ФОС) ТЕКУЩЕЙ И ИТОГОВОЙ ОЦЕНКИ КАЧЕСТВА ОСВОЕНИЯ ДИСЦИПЛИНЫ

Оценка качества освоения дисциплины в ходе текущей и промежуточной аттестации обучающихся осуществляется в соответствии с «Руководящими материалами по текущему контролю успеваемости, промежуточной и итоговой аттестации студентов Томского политехнического университета», утвержденными приказом ректора № 77/од от 01.01.2001 г.

В соответствии с «Календарным планом изучения дисциплины»:

    текущая аттестация, направленная на оценку качества усвоения теоретического материала (тестирование) и результатов практической деятельности (выполнение и защита отчетов по лабораторным работам и индивидуальных заданий), производится в течение семестра и оценивается в баллах (максимально 60 баллов), к моменту завершения семестра студент должен набрать не менее 33 баллов; промежуточная аттестация (экзамен) производится в конце семестра и так же оценивается в баллах (максимально 40 баллов), на экзамене студент должен набрать не менее 22 баллов.

Итоговый рейтинг по дисциплине определяется суммированием баллов, полученных в ходе текущей и промежуточной аттестаций. Максимальный итоговый рейтинг соответствует 100 баллам.

В соответствии с «Календарным планом выполнения курсового проекта (работы)»:

    текущая аттестация (оценка качества выполнения разделов и др.) производится в течение семестра (оценивается в баллах (максимально 40 баллов), к моменту завершения семестра студент должен набрать не менее 22 баллов); промежуточная аттестация (защита работы) производится в конце семестра (оценивается в баллах (максимально 60 баллов), по результатам защиты студент должен набрать не менее 33 баллов).

Итоговый рейтинг выполнения курсового проекта (работы) определяется суммированием баллов, полученных в ходе текущей и промежуточной аттестаций. Максимальный итоговый рейтинг соответствует 100 баллам.

8. УЧЕБНО-МЕТОДИЧЕСКОЕ И ИНФОРМАЦИОННОЕ ОБЕСПЕЧЕНИЕ ДИСЦИПЛИНЫ

Основная литература

, Буркатовская проектирование дискретных устройств: учебное пособие. – Томск: Томский государственный университет, 2011. – 172 с. , . Теория автоматов : учебно-методическое пособие. / Томский политехнический университет (ТПУ), Институт дистанционного образования (ИДО). — Томск: Изд-во ТПУ, 2010. — 108 с. Дж. Хопкрофт, Р. Монтани, Дж. Ульман. Введение в теорию автоматов, языков и вычислений. Второе издание. / М., Издательский дом «Вильямс», 2015. – 528 с.

Дополнительная литература

, Согомонян технической диагностики. – М.: Энергоиздат, 1981. – 320 с. , Скобцов моделирование и тестирование цифровых устройств. – Донецк: ИПММ НАН Украины, ДонНТУ, 2005. – 436 с. Карпов автоматов. Учебник для вузов. / СПб., Питер, 2002. – 224 с. Лебедев в системы программирования./ М., Статистика, 1975.– 312с.
http://www. softcraft. ru/auto. shtml http://theory-a. ru/index_ta. html http://teorya. hut. ru Среда разработки MaxPlusII. http://www. /support/software/sof-maxplus2.html

9. МАТЕРИАЛЬНО-ТЕХНИЧЕСКОЕ ОБЕСПЕЧЕНИЕ ДИСЦИПЛИНЫ

Лабораторные работы выполняются в компьютерном классе, оснащенном 9-ю компьютерами на базе процессоров Intel Core 2 Duo.

Программа составлена на основе Стандарта ООП ТПУ в соответствии с требованиями ФГОС по направлению 09.03.01 «Информатика и вычислительная техника» и профилю подготовки «Вычислительные машины, комплексы, системы и сети».

Программа одобрена на заседании кафедры вычислительной техники

(протокол № 54 от «22»  06  2015 г.).

Автор                доцент кафедры ВТ        

Рецензент        доцент кафедры ВТ