Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PROGRA~1.DOC
Скачиваний:
2
Добавлен:
06.12.2018
Размер:
75.78 Кб
Скачать

Министерство общего и профессионального

образования Российской Федерации

Санкт-Петербургский государственный технический университет

Факультет Технической кибернетики

Кафедра Распределенных вычислений и компьютерных сетей

"Утверждаю”

вице-президент по

учебной работе

-------------В.В.Глухов

"------"---------------1998

Программа

дисциплины " Теория алгоритмов и автоматов"

Направление 552800 - "Информатика и вычислительная техника"

Специальность 2202 - "Автоматизированные системы

обработки информации и управления"

2204 - "Программное обеспечение цифровых

вычислительных машин"

Санкт-Петербург

1997

Аннотация

Общая характеристика курса.

Курс обеспечивает один из важнейших компонентов федерального государственного образовательного стандарта бакалавров по направлению "Информатика и вычислительная техника". Теория автоматов и алгоритмов является основной составной частью дисциплины Теоретическая информатика, входящей в естественнонаучный цикл дисциплин под номером ЕН2.

Цели и задачи курса

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

В результате освоения данного курса студент должен ЗНАТЬ:

  • основные результаты теории логических функций; их свойства, нормальные формы и правила их эквивалентных преобразований и минимизации; основы аппаратной реализации логических функций, теорию базисов логических функций;

  • логику высказываний и ее связь с формами естественного языка; основы логики предикатов первого порядка; теорию логического вывода в логике высказываний и логике предикатов; основы логического программирования и языка ПРОЛОГ;

  • основные результаты теории конечных автоматов: методы реализации, эквивалентность, результаты теории автоматных языков;

  • основные модели алгоритмов, в частности, машину Тьюринга, методы теории сложности алгоритмов;

  • постановку проблемы верификации программ обработки данных, теорию Флойда; свойства рограмм как преобразователей предикатов;

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

В результате освоения данного курса студент должен УМЕТЬ:

  • реализовать простейший вид преобразования информации - конечное функциональное отображение - в произвольном базисе логических функций;

  • выделять в доказательных рассуждениях естественного языка логическую структуру, факты, посылки и следствия; строить схемы формальных доказательств и проверять их правильность;

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

  • использовать синтаксические диаграммы для задания формальных языков, строить трансляторы автоматных языков;

  • распознавать алгоритмически неразрешимые проблемы и оценивать сложность алгоритмов;

  • проводить верификацию простых программ обработки данных и осуществлять генерацию тестов для них;

  • строить компиляторы для простых языков представления и обработки информации.

Научный фундамент дисциплины

Курс существенно опирается на знания, полученные студентами в таких фундаментальных курсах, как: "Высшая математика", "Теория и технология программирования", "Основы вычислительной техники", "Схемотехника".

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

Методика изучения курса

Предмет данного курса составляют основные модели в области информатики (булева алгебра, конечные автоматы, формальные языки, машины Тьюринга, классическая и темпоральная логика и др.), их свойства, преимущества и ограничения, примеры применения Использование науки в инженерной практике при создании новых объектов состоит в построении и использовании математических моделей - абстракций, отражающих интересующие исследователя свойства реальности. Эти модели рассматриваются в данном курсе не с точки зрения их абстрактных свойств как таковых: они изучаются как средство решения практических, инженерных проблем информатики. Именно поэтому практическое использование моделей является в курсе не частной иллюстрацией теоретических результатов. Наоборот, практические проблемы проектирования и анализа систем являются отправной точкой, а формальный аппарат - средством систематического решения этих проблем. Важное внимание в каждом разделе курса уделено вопросам абстрагирования (построения адекватной модели), а также адекватной интерпретации и реализации результатов аналитических преобразований.

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

Программа

Курс "Теория алгоритмов и автоматов"

Раздел 1.

Реализация конечных функциональных преобразователей

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

Содержание раздела 1: Постановка проблемы. Булевы функции. Свойства булевых функций. Нормальные формы представления булевых функций. Преобразование в нормальную форму. Реализация булевых функций. Минимизация булевых функций. Функциональная полнота. Алгебра Жегалкина и линейные функции. Замкнутые классы булевых функций. Теорема Поста. Формы представления булевых функций. Семантические деревья. Бинарные диаграммы решений

Раздел 2.

Введение в математическую логику

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

Содержание раздела 2:

Формальные модели. Логика высказываний. Формулировка и доказательство теорем. Проверка доказательных рассуждений. Силлогизмы. Логическое следствие. Приведение к нормальным формам. Метод резолюции. Основы логики предикатов. Логический вывод в логике предикатов. Логическое программирование.

Раздел 3.

Конечные автоматы

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

Содержание раздела 3:

Автоматное преобразование информации. Реализация КА. Эквивалентность КА: теорема Мура. Минимизация КА. Автоматы Мили и Мура. Примеры КА. Электронные часы. Схема управления микрокалькулятором. Визуальный формализм представления моделей систем с памятью: Statecharts. Графы переходов при представлении параллельных программ. Проблема умножения: алгоритм, который не может выполнить КА.

Курсовая работа: Построение функциональной схемы электронных часов

Раздел 4.

Автоматные языки

В данном разделе конечный автомат рассматривается не как преобразователь информации, реагирующий на отдельные входные сигналы, а как устройство, выполняющее алгоритмические операции над языками. Простейшей (но нетривиальной) алгоритмической операцией, связанной с языком, является распознавание - выделение автоматом всех входных предложений, принадлежащих языку. Фактически, такое автоматное задание языка есть метод строгого конечного определения бесконечного множества предложений. Другая операция, которую может выполнять автомат наряду с распознаванием - преобразование предложений языка в некоторый выход (например, выходную программу), что называется трансляцией.

Содержание раздела 4:

Языки. Грамматики. Автоматные грамматики и языки. Эквивалентность и минимизация конечноавтоматных распознавателей. Недетерминированные конечноавтоматные распознаватели. Синтаксические диаграммы. Связь синтаксических диаграмм и автоматных языков. Трансляторы автоматных языков. Транслятор языка ЛИНУР. Регулярные множества и регулярные выражения. Теорема Клини. Применения регулярных выражений: поиск фрагментов текста по образцам, построение лексических анализаторов алгоритмических языков.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]