Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение

advertisement
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Армавирская государственная педагогическая академия»
факультет прикладной информатики и информационных технологий
института прикладной информатики, математики и физики
кафедра информатики и информационных технологий обучения
Утверждено на заседании кафедры
информатики и ИТО АГПА
Протокол ___ от ”__”_______ 2012
Зав. кафедрой___________________
(Бельченко В.Е.)
УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС
по дисциплине
ТЕОРИЯ АЛГОРИТМОВ
(факультет прикладной информатики и информационных технологий
института прикладной информатики, математики и физики)
для специальности
«ИНФОРМАТИКА И МАТЕМАТИКА»
Форма отчетности:
Зачет: 3 курс, 6 семестр
УМК подготовлен
доцентом кафедры информатики и ИТО
Нелиным В.М.
Армавир - 2012
АННОТАЦИЯ
Курс "Теория алгоритмов" рассчитан на один семестр и призван упрочить фундамент специальной подготовки будущих педагогов, способствовать дальнейшему
формированию логической и алгоритмической культуры будущих учителей информатики и информационных технологий.
Цели курса:
 формирование представления о необходимости точного определения понятия
алгоритм и о вариантах такого рода определений;
 формирование представления о вычислимых функциях;
 формирование представлений о рекурсивно-перечислимых и рекурсивных языках, их соотношении, проблеме останова;
 формирование представлений о возможности существования неразрешимых и
неперечислимых множеств, невычислимых функций;
 формирование представлений о грамматиках, иерархиях языков по Хомскому;
 формирование представлений о проблеме сложности вычислений, о теории NРполноты.
Исходным пунктом курса служит недостаточность интуитивного определения
алгоритма. Рассматривается описание вычислительного процесса, принимаемого в качестве формального определения понятия алгоритма, в терминах частичнорекурсивных функций и вычислительных устройств (машины Тьюринга и Поста).
Далее рассматриваются примеры невычислимой функции, алгоритмически неразрешимых проблем математики и информатики.
Введение в рассмотрение контекстно-свободных грамматик и языков позволяет
выстроить иерархию языков по Хомскому.
В рамках знакомства с литературой внимание студентов, прежде всего, привлекается к классическим монографиям:
Хопкрофт Д.Э., Р. Мотвани, Ульман Д. Введение в теорию автоматов, языков и вычислений. М-СПб-К, “Вильямс”, 2002.
Ахо А.В., Хопкрофт Д.Э., Ульман Д.Д. Структуры данных и алгоритмы. М-СПб-К,
“Вильямс”, 2001.
Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ. М., МЦМНО,
2001.
2
1. ПОЯСНИТЕЛЬНАЯ ЗАПИСКА.
Курс "Теория алгоритмов" рассчитан на один семестр и призван упрочить фундамент специальной подготовки будущих педагогов, способствовать дальнейшему
формированию логической и алгоритмической культуры будущих учителей информатики и информационных технологий.
Цели курса:
 формирование представления о необходимости точного определения понятия
алгоритм и о вариантах такого рода определений;
 формирование представления о вычислимых функциях;
 формирование представлений о кодировании машин Тьюринга;
 формирование представлений о рекурсивно-перечислимых и рекурсивных языках, их соотношении, проблеме останова;
 формирование представлений о детерминированных и недетерминированных
конечных автоматах;
 формирование представлений о возможности существования неразрешимых и
неперечислимых множеств, невычислимых функций;
 формирование представлений о грамматиках, иерархиях языков по Хомскому;
 формирование представлений о проблеме сложности вычислений, о теории NРполноты.
Исходным пунктом курса служит недостаточность интуитивного определения
алгоритма. Далее, приводятся различные версии уточнений этого понятия, связанные
с именами К. Геделя, А. Тьюринга, Э. Поста, А. Черча, Дж. фон Неймана, А. Маркова,
С. Клини, А. Колмогорова, В. Успенского.
Рассматривается описание вычислительного процесса, принимаемого в качестве
формального определения понятия алгоритма, в терминах частично-рекурсивных
функций и вычислительных устройств (машины Тьюринга и Поста).
Далее рассматриваются примеры невычислимой функции, алгоритмически неразрешимых проблем математики и информатики.
Введение в рассмотрение контекстно-свободных грамматик и языков позволяет
выстроить иерархию языков по Хомскому.
В рамках знакомства с литературой внимание студентов, прежде всего, привлекается к классическим монографиям:
Хопкрофт Д.Э., Р. Мотвани, Ульман Д. Введение в теорию автоматов, языков и вычислений. М-СПб-К, “Вильямс”, 2002.
Ахо А.В., Хопкрофт Д.Э., Ульман Д.Д. Структуры данных и алгоритмы. М-СПб-К,
“Вильямс”, 2001.
Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ. М., МЦМНО,
2001.
Мальцев А.И. Алгоритмы и рекурсивные функции. М., “Наука”, 1965.
Колмогоров А.Н. Теория информации и теория алгоритмов. - М.: Наука, 1987.
Успенский В.А. Машина Поста. - М.: Наука, 1988.
Иванов Б.Н. Дискретная математика. Алгоритмы и программы. М., ЛБЗ, 2001.
Новиков Ф.А. Дискретная математика для программистов. Спб, “Питер”, 2001.
3
2. ТЕМАТИЧЕСКИЙ ПЛАН УЧЕБНОЙ ДИСЦИПЛИНЫ
№
п/п
Раздел, тема
Всего
часов
В том числе аудиторных
Всего
Лекций
Практиаудических
торных
1. Понятие вычислимой функции. Разрешимые и перечислимые множества.
2. Введение. Интуитивное определе2
1
1
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Самостоятельная
работа, час
1
ние алгоритма. Понятие конструктивного пространства и вычислимой функции.
Конечные и бесконечные машины. Понятие программы.
Конечные автоматы и регулярные
10
5
3
2
5
языки. Понятия языка и алфавита.
Определение ДКА.
Конечные автоматы и регулярные
8
4
2
2
4
языки. Понятие НКА.
Регулярные языки и регулярные
8
4
2
2
4
выражения.
Контрольная работа № 1
4
2
2
2
Эффективная нумерация программ. Теорема о параметризации. Существование универсальной программы. Компьютер фон Неймана. Диагональный метод. Пример невычислимой функции. Проблема останова.
Формализация машины Тьюринга
8
4
2
4
4
(МТ).
Упорядочение языков и программ.
4
2
2
2
Классификация языков. Рекурсивно-перечислимые и рекурсивные
языки. Компьютер фон Неймана и
МТ.
Многоленточная машина Тьюрин2
1
1
1
га. Эмуляция работы компьютера
фон Неймановской архитектуры
многоленточной МТ.
Понятия вычислимой и частично
4
2
2
2
вычислимой функций. Проблема
останова МТ. Примеры алгоритмически неразрешимых проблем.
Контрольная работа № 2
4
2
2
2
Грамматики. Языки, иерархия языков по Хомскому. Языки и машины.
Синтаксис и семантика языка. По8
4
2
2
4
рождающие грамматики Хомского
как способ задания языка.
Иерархия грамматик Хомского:
8
4
2
2
4
свободные, контекстно-зависимые,
контекстно-свободные и регулярные грамматики.
Построение деревьев вывода в
8
4
1
2
4
контекстно-свободных грамматиках.
4
18. Контрольная работа № 3
4
2
2
2
Формальная
теория
вычислимости
(частично
рекурсивные
функции,
регистровые
ма19.
20.
21.
22.
23.
24.
шины). Тезис Чёрча. Эффективные операции над вычислимыми функциями. Теорема о
неподвижной точке. Общее понятие исчисления.
Примитивно-рекурсивные,
ча8
4
2
4
стично-рекурсивные и общерекурсивные функции.
Формальная теория вычислимо8
4
2
2
4
сти. Регистровые машины.
Общее понятие исчисления.
8
4
2
4
Основные меры сложности вычисления. Основы теории NР- полноты. Применение теории NР- полноты для анализа сложности проблем.
Основные меры сложности вычис4
2
2
2
2
ления. Основы теории NР- полноты. Применение теории NР- полноты для анализа сложности.
ИТОГО
108
54
28
26
54
3. СОДЕРЖАНИЕ УЧЕБНОЙ ДИСЦИПЛИНЫ
3.1. СОДЕРЖАНИЕ УЧЕБНОГО МАТЕРИАЛА: ЛЕКЦИИ
Лекция
№ 1
Тема: Введение. Интуитивное определение алгоритма. Понятие конструктивного пространства и вычислимой функции.
Содержание:
1. Интуитивное определение алгоритма (дискретность, детерминированность, конечность, массовость). Необходимость уточнения понятия алгоритма.
2. Алгоритмическая разрешимость проблем.
3. Понятие конструктивных объектов и конструктивных пространств.
4. Понятие вычислимой функции.
5. Цели и задачи курса.
Лекция
№ 2
Тема: Конечные автоматы и регулярные языки. Понятия языка и алфавита. Определение
ДКА.
Содержание:
1. Понятие алфавита, символов алфавита, слов алфавита. Понятие языка над алфавитом. Бинарные операции над множеством слов алфавита.
2. Понятие детерминированного конечного автомата (ДКА). Формы задания ДКА.
3. Допускающие и не допускающие состояния ДКА, допустимые и недопустимые цепочки, распознаваемые и нераспознаваемые автоматом языки.
4. Соотношение ДКА и алгоритма. ДКА как способ формализации понятия алгоритма.
5. ДКА как инструмент распознавания языков.
6. Соотношение числа состояний ДКА и количества распознаваемых автоматом слов.
7. Алгоритм построения ДКА с минимальным количеством состояний.
Лекция
№ 3
Тема: Конечные автоматы и регулярные языки. Понятие НКА.
5
Содержание:
1.
2.
3.
4.
5.
6.
7.
Понятие недетерминированного конечного автомата (НКА).
Особенности НКА. Формы задания НКА.
Сопоставление ДКА и НКА. Построение ДКА по заданному НКА.
НКА как инструмент распознавания языков и поиска образцов.
Понятие -переходов.
Эквивалентность классов языков, распознаваемых ДКА и НКА.
НКА как способ формализации понятия алгоритма.
Лекция № 4
Тема: Регулярные языки и регулярные выражения.
Содержание:
1.
2.
3.
4.
5.
6.
7.
Языки и операции над ними. Замыкание Клини. Понятие регулярного языка.
Регулярные выражения. Замкнутость множества регулярных языков.
Построение регулярного выражения по заданному ДКА.
Построение НКА по заданному регулярному выражению.
Соотношение регулярных языков и языков, распознаваемых КА.
Лемма о накачке регулярных языков.
Примеры нерегулярных языков.
Лекция
№ 5
Тема: Формализация машины Тьюринга (МТ).
Содержание:
1.
2.
3.
4.
5.
6.
7.
Машина Тьюринга - вариант формализации понятия алгоритма.
Структура машины Тьюринга. Алфавит. Внутренние и внешние команды.
Память. Программа. Декларативный характер языка команд машины.
Допускающие входы и допускающие состояния. Слово состояния и код МТ.
Формы записи программ МТ.
МТ как средство решения задач вычислительного характера.
МТ как средство решения задач распознавательного характера.
Лекция
№ 6
Тема: Упорядочение языков и программ. Классификация языков. Рекурсивно-перечислимые
и рекурсивные языки. Компьютер фон Неймана и МТ.
Содержание:
1. Упорядочение входных цепочек над заданным алфавитом.
2. Упорядочение языков и соответствующих этим языкам МТ.
3. Классификация языков. Рекурсивно-перечислимые и рекурсивные языки.
4. Язык диагонализации как представитель класса языков, не являющихся рекурсивноперечислимыми. Построение языка диагонализации.
5. Универсальный язык как представитель рекурсивно-перечислимых, но не рекурсивных языков. Построение универсального языка.
6. Определение многоленточной МТ. Эквивалентность многоленточной МТ и одноленточной МТ.
7. Возможность эмуляции работы компьютера фон Неймановской архитектуры МТ.
Лекция
№ 7
Тема: Понятия вычислимой и частично вычислимой функций. Проблема останова МТ. Примеры алгоритмически неразрешимых проблем.
Содержание:
1. Понятия вычислимой и частично вычислимой функций.
6
2.
3.
4.
5.
6.
Вычислимые МТ частичные функции.
Проблема останова МТ на входах цепочек рекурсивно-перечислимых языков.
Проблема распознавания МТ своего кода.
Проблема распознавания МТ заданного кода.
Примеры неразрешимых проблем в математике (проблема континуума и др.).
Лекция
№ 8
Тема: Синтаксис и семантика языка. Порождающие грамматики Хомского как способ задания языка.
Содержание:
1.
2.
3.
4.
Синтаксис и семантика языка. Понятие грамматики.
Порождающие и распознающие грамматики Хомского.
Структура порождающих грамматик Хомского.
Порождающие грамматики Хомского как способ задания языка.
Лекция
№ 9
Тема: Иерархия грамматик Хомского: свободные, контекстно-зависимые, контекстносвободные и регулярные грамматики.
Содержание:
1. Иерархия грамматик Хомского: 4 класса грамматик.
2. Свободные грамматики. МТ как распознающие устройства.
3. Контекстно-зависимые грамматики. Линейно-ограниченные автоматы в качестве
распознающих устройств.
4. Контекстно-свободные грамматики. Автоматы с магазинной памятью в качестве
распознающих устройств.
5. Регулярные грамматики. Конечные автоматы в качестве распознающих устройств.
Лекция
№ 10
Тема: Построение деревьев вывода в контекстно-свободных грамматиках.
Содержание:
1.
2.
3.
4.
Нетерминальные и терминальные символы КСГ.
Соотношение языка и грамматик. Неединственность КСГ, порождающих язык.
Левоассоциативные и правоассоциативные грамматики.
Построение грамматик, порождающих арифметические выражения.
Лекция
№ 11
Тема: Примитивно-рекурсивные, частично-рекурсивные и общерекурсивные функции.
Содержание:
1. Частичные функции на множестве натуральных чисел.
2. Операции суперпозиции и примитивной рекурсии. Понятие примитивно рекурсивных функций.
3. Базисные примитивно-рекурсивные функции.
4. Построение примитивно-рекурсивных функций на множестве натуральных чисел.
5. Операция минимизации. Частично-рекурсивные функции.
6. Общерекурсивные функции.
7. Тезис Черча.
Лекция
№ 12
Тема: Формальная теория вычислимости. Регистровые машины.
Содержание:
7
1.
2.
3.
4.
5.
Понятие машины Шенфилда (МШ), регистровой машины.
Команды и макрокоманды МШ.
Запись программ МШ.
Частично-рекурсивные функции и вычислимость с помощью МШ.
Эквивалентность МТ и МШ.
Лекция
№ 13
Тема: Общее понятие исчисления.
Содержание:
1. Понятие нумерации множеств.
2. Гёделевская нумерация конструктивных пространств.
3. Изоморфность конструктивных пространств.
4. Понятия универсальных пространств и функций.
5. Преобразование программ и лемма о неподвижной точке.
6. Характеристические функции рекурсивных множеств.
Лекция
№ 14
Тема: Основные меры сложности вычисления. Основы теории NР- полноты.
Содержание:
1.
2.
3.
4.
5.
6.
Неперечислимые языки и неразрешимые проблемы.
Классы P и NP. Проблемы, решаемые за полиномиальное время.
Основы теории NР- полноты. Формулировка NР-полных проблем.
Проверка принадлежности классу NР-полных проблем.
Решение NР-полных проблем.
Проблемы, разрешимые в полиномиальном пространстве.
3.3. СОДЕРЖАНИЕ УЧЕБНОГО МАТЕРИАЛА: ПРАКТИЧЕСКИЕ ЗАНЯТИЯ
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 1
Тема: Детерминированные конечные автоматы (ДКА).
Цель: Знакомство с работой ДКА. Построение ДКА. Анализ работы ДКА.
Содержание:
Построение ДКА, распознающих заданные цепочки над заданным алфавитом.
Слово состояния ДКА.
Эффективность ДКА в качестве средства поиска образцов.
Проверка работы программ ДКА над задаваемыми входами.
1.
2.
3.
4.
Рекомендации по организации самостоятельной работы:
• изучение материалов к контрольной работе №1
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/contrl_work_1.doc);
• изучение главы #2 "Конечные автоматы и языки" пособия Подзорова С.Ю. "Теория
алгоритмов"
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/Course.pdf);
• изучение главы #3 "Конечные автоматы и регулярные грамматики" пособия Мартыненко Б.К. "Языки и трансляции"
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/Ch-2.pdf).
Содержание отчёта:
решения заданий, приведённых в разделе "ЗАДАНИЯ ДЛЯ
8
САМОСТОЯТЕЛЬНОЙ РАБОТЫ" материалов к контрольной работе №1
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/contrl_work_1.doc);
Форма отчёта: произвольная.
ПРАКТИЧЕСКИЕ ЗАНЯТИЯ № 2-3
Тема: Недетерминированные конечные автоматы (НКА).
Цель: Знакомство с работой НКА. Построение НКА. Анализ работы НКА.
Содержание:
Построение НКА, распознающих заданные цепочки над заданным алфавитом.
Эффективность НКА в качестве средства поиска образцов.
Сопоставление эффективности ДКА и НКА в качестве средства поиска образцов.
Построение ДКА эквивалентного НКА.
1.
2.
3.
4.
Рекомендации по организации самостоятельной работы:
• изучение материалов к контрольной работе №1
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/contrl_work_1.doc);
• изучение главы #2 "Конечные автоматы и языки" пособия Подзорова С.Ю. "Теория
алгоритмов"
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/Course.pdf);
• изучение главы #3 "Конечные автоматы и регулярные грамматики" пособия Мартыненко Б.К. "Языки и трансляции"
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/Ch-3.pdf).
Содержание отчёта:
решения заданий, приведённых в разделе "ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ
РАБОТЫ" материалов к контрольной работе №1
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/contrl_work_1.doc);
Форма отчёта: произвольная.
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 4
Тема: Регулярные выражения и НКА.
Цель: Знакомство с регулярными выражениями. Регулярные выражения как способ явного
задания языков.
Содержание:
Регулярные выражения в качестве средства задания языка.
Построение НКА по задаваемым регулярным выражениям.
Проверка работы НКА на регулярных входах.
Построение регулярного выражения по заданному ДКА.
1.
2.
3.
4.
Рекомендации по организации самостоятельной работы:
• изучение материалов к контрольной работе №1
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/contrl_work_1.doc);
• изучение главы #2 "Конечные автоматы и языки" пособия Подзорова С.Ю. "Теория
алгоритмов"
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/Course.pdf);
• изучение главы #3 "Конечные автоматы и регулярные грамматики" пособия Мартыненко Б.К. "Языки и трансляции"
9
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/Ch-3.pdf).
Содержание отчёта:
решения заданий, приведённых в разделе "ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ
РАБОТЫ" материалов к контрольной работе №1
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/contrl_work_1.doc).
Форма отчёта: произвольная.
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 5
Тема: Контрольная работа: конечные автоматы и регулярные выражения.
Содержание: контрольная работа по материалам практических занятий №№ 1-3.
Рекомендации по организации самостоятельной работы:
• изучение материалов к контрольной работе №1
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/contrl_work_1.doc).
Форма отчёта: стандартная.
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 6
Тема: Машина Тьюринга (МТ).
Цель: Знакомство с работой МТ. Построение МТ. Анализ работы МТ.
Содержание:
Программирования алгоритмов уменьшения и наращивания заданных чисел.
Программирования алгоритмов распознавания заданных конфигураций.
Проверка работы программ МТ.
1.
2.
3.
Рекомендации по организации самостоятельной работы:
• изучение материалов к контрольной работе №2
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/contrl_work_2.doc);
• изучение главы #6 "Машины Тьюринга" пособия Мартыненко Б.К. "Языки и трансляции"
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/Ch-6.pdf);
• изучение главы "Рекурсивные функции и общее понятие вычислимости" пособия
Подзорова С.Ю. "Теория алгоритмов"
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/Course.pdf).
Содержание отчёта:
решения заданий, приведённых в разделе "ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ
РАБОТЫ" материалов к контрольной работе №2
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/contrl_work_2.doc);
Форма отчёта: произвольная.
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 7-8
Тема: Формализация машины Тьюринга.
Цель: Знакомство с особенностями допускающих входов и допускающих состояний МТ.
Содержание:
1.
дов.
Построение и анализ кодов МТ, задаваемых таблицами и диаграммами перехо10
Построение и анализ допускающих входов и допускающих состояний.
Кодирование МТ.
2.
3.
Рекомендации по организации самостоятельной работы:
• изучение материалов к контрольной работе №2
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/contrl_work_2.doc);
• изучение главы #6 "Машины Тьюринга" пособия Мартыненко Б.К. "Языки и трансляции"
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/Ch-6.pdf);
• изучение главы "Рекурсивные функции и общее понятие вычислимости" пособия
Подзорова С.Ю. "Теория алгоритмов"
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/Course.pdf).
Содержание отчёта:
решения заданий, приведённых в разделе "ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ
РАБОТЫ" материалов к контрольной работе №2
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/contrl_work_2.doc);
Форма отчёта: произвольная.
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 9
Тема: Контрольная работа: машина Тьюринга.
Содержание: контрольная работа по материалам практических занятий №№ 5-6.
Рекомендации по организации самостоятельной работы:
• изучение материалов к контрольной работе №2
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/contrl_work_2.doc).
Форма отчёта: стандартная.
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 10
Тема: Порождающие грамматики Хомского.
Цель: Знакомство с приёмами конструирования продукций порождающих грамматик.
Содержание:
1. Конструирование продукций порождающих грамматик для генерирования задаваемых цепочек.
2. Проверка однозначности конструирования порождающих грамматик.
Рекомендации по организации самостоятельной работы:
• изучение материалов к контрольной работе №3
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/contrl_work_3.doc).
• изучение главы #2 "Грамматики" пособия Мартыненко Б.К. "Языки и трансляции"
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/Ch-2.pdf);
Содержание отчёта:
решения заданий, приведённых в разделе "ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ
РАБОТЫ" материалов к контрольной работе №3
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/contrl_work_3.doc);
Форма отчёта: произвольная.
11
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 11
Тема: Иерархия грамматик Хомского.
Цель: Знакомство с приёмами конструирования продукций в КЗГ, КСГ, РГ.
Содержание:
Конструирование продукций в КЗГ.
Конструирование продукций в КСГ.
Конструирование продукций в РГ.
1.
2.
3.
Рекомендации по организации самостоятельной работы:
• изучение материалов к контрольной работе №3
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/contrl_work_3.doc).
• изучение главы #2 "Грамматики" пособия Мартыненко Б.К. "Языки и трансляции"
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/Ch-2.pdf);
Содержание отчёта:
решения заданий, приведённых в разделе "ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ
РАБОТЫ" материалов к контрольной работе №3
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/contrl_work_3.doc);
Форма отчёта: произвольная.
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 12
Тема: Построение деревьев вывода в КСГ.
Цель: Знакомство с приёмами конструирования деревьев вывода в КСГ.
Содержание:
Построение деревьев вывода, соответствующих заданной КСГ.
Построение продукций КСГ по заданному дереву вывода.
Построение деревьев вывода для арифметических выражений.
1.
2.
3.
Рекомендации по организации самостоятельной работы:
• изучение материалов к контрольной работе №3
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/contrl_work_3.doc).
• изучение главы #2 "Грамматики" пособия Мартыненко Б.К. "Языки и трансляции"
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/Ch-2.pdf);
Содержание отчёта:
решения заданий, приведённых в разделе "ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ
РАБОТЫ" материалов к контрольной работе №3
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/contrl_work_3.doc);
Форма отчёта: произвольная.
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 13
Тема: Контрольная работа: языки и грамматики.
Содержание: контрольная работа по материалам практических занятий №№ 9-10.
Рекомендации по организации самостоятельной работы:
• изучение материалов к контрольной работе №3
(http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/contrl_work_3.doc).
12
Форма отчёта: стандартная.
3.4. СОДЕРЖАНИЕ И ВИДЫ САМОСТОЯТЕЛЬНОЙ РАБОТЫ СТУДЕНТОВ.
1) Работа с материалами лекций.
2) Работа с рекомендованной для самостоятельного изучения литературой:
a) к лекции № 1: [1], [2], [3], [6], [9], [14];
b) к лекции № 2: [2], [7];
c) к лекции № 3: [1], [7], [8];
d) к лекции № 4: [1], [7];
e) к лекции № 5: [1];
f) к лекции № 6: [1], [7];
g) к лекции № 7: [1], [7];
h) к лекции № 8: [1], [5];
i) к лекции № 9: [1], [5];
j) к лекции № 10: [1], [5];
k) к лекции № 11: [1], [4], [5];
l) к лекции № 12: [1], [4], [5];
m) к лекции № 13: [1], [4], [5];
n) к лекции № 14: [1], [3];
o) к лекции № 15: [1], [3].
3)
Подготовка к практическим занятиям (теоретическая подготовка):
a) к практической работе № 1: [1], [7];
b) к практической работе № 2: [1], [7];
c) к практической работе № 3: [1], [7];
d) к практической работе № 4: [1], [4], [5];
e) к практической работе № 5: [1], [4], [5];
f) к практической работе № 6: [1], [4], [5];
g) к практической работе № 7: [1], [4], [5];
h) к практической работе № 8: [1], [4], [5];
i) к практической работе № 9: [1], [4], [5];
j) к практической работе № 10: [1], [4], [5];
k) к практической работе № 11: [1], [4], [5];
l) к практической работе № 12: [1], [3].
4. РЕКОМЕНДАЦИИ ПО ОРГАНИЗАЦИИ
САМОСТОЯТЕЛЬНОЙ РАБОТЫ СТУДЕНТОВ.
Цель самостоятельной работы студентов – формирование представлений относительно процедур построения и последующего анализа алгоритмических конструкций.
Задачи:
1) подготовка к успешному выполнению практических занятий, предусмотренных тематическим планом изучаемой дисциплины;
2) подготовка к успешному выполнению контрольных работ, предусмотренных
тематическим планом изучаемой дисциплины.
Пути достижения цели:
13
1) изучение материалов лекций;
2) рассмотрение примеров, разобранных в ходе проведения практических занятий;
3) работа с рекомендованной литературой;
4) работа с рекомендованными для самостоятельного изучения электронными
ресурсами:
1. http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/contrl_work_1.doc
2. http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/contrl_work_2.doc
3. http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/contrl_work_3.doc
4. Пособие Подзорова С.Ю. "Теория алгоритмов"
http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/Course.pdf
5. Пособие Мартыненко Б.К. "Языки и трансляции": глава #1 "Языки и их представление"
http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/Ch-1.pdf
6. Пособие Мартыненко Б.К. "Языки и трансляции": глава #2 "Грамматики"
http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/Ch-2.pdf
7. Пособие Мартыненко Б.К. "Языки и трансляции": глава #3 "Конечные автоматы и
регулярные грамматики"
http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/Ch-3.pdf
8. Пособие Мартыненко Б.К. "Языки и трансляции": глава #4 "Контекстно-свободные
грамматики"
http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/Ch-4.pdf
9. Пособие Мартыненко Б.К. "Языки и трансляции": глава #5 "Магазинные автоматы"
http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/Ch-5.pdf
10. Пособие Мартыненко Б.К. "Языки и трансляции": глава #6 "Машины Тьюринга"
http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/Ch-6.pdf
11. Пособие Мартыненко Б.К. "Языки и трансляции": глава #7 "Машины Тьюринга:
проблема остановки, языки типа 0".
http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/Ch-7.pdf
12. Пособие Мартыненко Б.К. "Языки и трансляции": глава #8 "Линейно-ограниченные
автоматы и контекстно-зависимые языки".
http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/Ch-8.pdf
Приобретаемые в ходе самостоятельной работы студентов навыки:
1) умение анализировать предложенную задачу, очерчивать основные этапы ее
решения;
2) умение составлять программные модули;
3) умение анализировать результаты трассировки программных модулей и вносить, в случае необходимости, соответствующие изменения;
4) умение оценивать корректность вносимых изменений.
14
4.1. ТЕСТИРОВАНИЕ УРОВНЯ УСВОЕНИЯ ЛЕКЦИОННОГО МАТЕРИАЛА.
http://www.agpu.net/fakult/ipimif/fpiit/kafinf/umk/el_lib/alg_theor/62_ta_question.doc
4.2. ЗАДАНИЯ К КОНТРОЛЬНЫМ РАБОТАМ.
Ниже приведены образцы типовых заданий контрольных работ №№ 1, 3:
КОНТРОЛЬНАЯ РАБОТА №1
Образцы типовых заданий контрольной работы №1:
Типовое задание. Пример № 1:
Добавить к имеющейся группе меток 2 группы по 3 метки.
Стартовая позиция:
┕┙▼▼▼▼.
Финальная позиция:
┕┙▼▼▼┕┙▼▼▼┕┙▼▼▼▼
Типовое задание. Пример № 2:
Построить машину Тьюринга, допускающую входной язык {(01)n(10)n, n ≥ 1}.
Дополнительное условие:
МТ попеременно обрабатывает цепочки вида (01) и (10), заменяя 0→ А,
1→ В.
Стартовое положение считывающей головки МТ - над крайним левым символом.
ЗАДАНИЕ: Составить и представить код МТ в виде таблицы и графа.
Представить код машины Тьюринга в 2-ой системе счисления.
Типовое задание. Пример № 3:
Записать протокол работы МТ (задание №2) для входных цепочек:
010101101010 и 01011001.
КОНТРОЛЬНАЯ РАБОТА №2
Образцы типовых заданий контрольной работы №2:
Типовое задание. Пример № 1:
Построить ДКА (Σ= {0,1}), допускающий следующий входной язык:
множество подцепочек, оканчивающихся комбинацией 01001.
Типовое задание. Пример № 2:
Построить регулярное выражение, задаваемое ДКА (Σ= {0,1}) таблицей переходов:
0
1
→ A {A} {B}
*B
{B} {B}
Типовое задание. Пример № 3:
Построить HКА (Σ= {0,1}), поддерживающий язык, задаваемый регулярным выражением
1*001
Типовое задание. Пример № 4:
15
Преобразовать НКА в эквивалентный ДКА. Σ= {0,1}. Стартовое состояние обозначается знаком → . Допускающее состояние обозначается знаком
0
1
→p
{s}
{q}
*q
{r}
{q, r}
r
{s}
{p}
*s
{ }
{p}
*..
КОНТРОЛЬНАЯ РАБОТА №3
Образцы типовых заданий контрольной работы №1:
Типовое задание. Пример № 1:
Построить грамматику G1, порождающую следующий язык:
L1 = {anbn-1│n > 1}
Типовое задание. Пример № 2:
Вывести терминальную цепочку aaaaabbbb :языка L1 из продукций грамматики G1, порождающей этот язык.
Типовое задание. Пример № 3:
Построить дерево вывода для цепочки aaabb :языка L1, порожденного грамматикой G1
Типовое задание. Пример № 4:
Построить грамматику арифметических бесскобочных вычислений G1, поддерживающую
следующие бинарные операции:
{-, /, ^}
Типовое задание. Пример № 5:
Построить дерево вывода для цепочки a/b^c-d языка L1, порожденного грамматикой G1
5. ТРЕБОВАНИЯ К ЗАЧЕТУ
Выполнение трех зачетных контрольных работ на положительную оценку.
6. СПИСОК РЕКОМЕНДУЕМОЙ ДЛЯ ИЗУЧЕНИЯ ЛИТЕРАТУРЫ.
6.1. ОСНОВНАЯ ЛИТЕРАТУРА
1. Хопкрофт Д.Э., Р. Мотвани, Ульман Д. Введение в теорию автоматов, языков и
вычислений. М-СПб-К, “Вильямс”, 2002.
2. Мальцев А.И. Алгоритмы и рекурсивные функции. М., “Наука”, 1965.
3. Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ. М.,
МЦМНО, 2001.
4. Карпов Ю.Г. Теория и технология программирования. Основы построения
трансляторов.- СПб: БХВ-Петербург, 2005.
16
5. Мозговой М.В. Классика программирования: алгоритмы, языки, автоматы, компиляторы. Практический подход. - СПб.: Наука и Техника, 2006.
6.2. ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА:
6. Колмогоров А.Н. Теория информации и теория алгоритмов. - М.: Наука, 1987.
7. Эббинхауз Г.-Д., Якобс К., Манн Ф.-К., Хермес Г.. Машины Тьюринга и рекурсивные функции. М.: Мир, 1972.
8. Успенский В.А. Машина Поста. - М.: Наука, 1988.
9. Ахо А.В., Хопкрофт Д.Э., Ульман Д.Д. Структуры данных и алгоритмы. М-СПбК, “Вильямс”, 2001.
10. Горбатов В.А. Фундаментальные основы дискретной математики. М., “Наука.
Физматлит”, 2000.
11. Иванов Б.Н. Дискретная математика. Алгоритмы и программы. М., ЛБЗ, 2001.
12. Новиков Ф.А. Дискретная математика для программистов. Спб, “Питер”, 2001.
13. Романовский И.В. Дискретный анализ. СПб-М., “ФИЗМАТЛИТ. Невский диалект”, 2000.
14. Вирт Н. Алгоритмы и структуры данных. М.: Мир, 1989.
15. Буч Г. Объектно-ориентированное проектирование с примерами применения. –
И.: Конкорд, 1992.
16. Кушниренко А.Г., Лебедев Г.В. Программирование для математиков. М.: Наука,
1988.
17
Download