Программа дисциплины теория алгоритмов специальность 050201. 65 «Математика» с дополнительной специальностью «Информатика» Согласовано
Вид материала | Программа дисциплины |
- Программа учебной дисциплины методы математической физики специальность «050201 математика, 145.93kb.
- Программа дисциплины опд. Ф. 04. 1 «Теория и методика обучения математике» Специальность, 184.43kb.
- Рабочая программа учебной дисциплины дпп. Ф. 07. Теория чисел ооп, 386.12kb.
- Программа учебной дисциплины история математики специальность 050201 математика с дополнительной, 409.11kb.
- Программа дисциплины фтд. 00 «избранные главы алгебры» Специальность 032100. 01 Математика, 95.5kb.
- Учебно-методический комплекс учебной дисциплины дпп. Р. 01. Математическое конструирование, 83.94kb.
- Учебно-методический комплекс учебной дисциплины Математическое моделирование 032100., 547.37kb.
- Программа дисциплины фтд. 00 «основания математики» Специальность 032100. 01 Математика, 62.49kb.
- Рабочая программа учебной дисциплины дпп. Ф. 08 Числовые системы ооп, 599.58kb.
- Программа учебной дисциплины теория и методика обучения физике Для специальности 050203, 597.46kb.
3.2 Распределение часов по видам и темам деятельности
Содержание и тематика | Аудиторные занятия | Самостоятельная работа (часы) | Всего часов по плану | |
Лекции (часы) | Практика (часы) | |||
I. Введение. Уточнение понятия алгоритма | 6 | 3 | 4 | 13 |
| 1 2 3 | 1 1 1 | 1 2 1 | 3 5 4 |
II. Рекурсивные функции | 6 | 5 | 9 | 20 |
4. Рекурсивно-перечислимое множество. Критерий рекурсивности множества. | 2 2 1 1 | 2 1 1 1 | 2 2 3 2 | 6 5 5 4 |
III. Машины Тьюринга | 5 | 5 | 9 | 19 |
| 1 2 2 | 1 2 2 | 3 3 3 | 5 7 7 |
IV. Нормальные алгоритмы Маркова | 2 | 2 | 6 | 10 |
| 1 1 | 1 1 | 3 3 | 5 5 |
V. Дополнительные главы | 5 | 5 | 18 | 28 |
1. "Машина" Поста. Машина Поста-Успенского. Машина с неограниченными регистрами (МНР). 2. Эквивалентность математических моделей понятия "алгоритм". Совпадение класса функций, правильно-вычислимых по Тьюрингу, и класса частично рекурсивных функций. 3. Тезисы теории алгоритмов. Тезис Чёрча-Клини. Принцип нормализации Маркова. Тезис Тьюринга. 4. Универсальные алгоритмы. Универсальная машина Тьюринга. Универсальные функции. 5. Алгоритмическая сводимость. 1-сводимость. m-сводимость. Степени неразрешимости. m-полные. Продуктивные и креативные множества. Теорема Клини о неподвижной точке. Теорема Майхилла. Табличная сводимость. Сводимость по Тьюрингу. | 1 1 1 1 1 | 1 1 1 1 1 | 4 6 4 2 2 | 6 8 6 4 4 |
Итого | 24 | 20 | 46 | 90 |
4. Содержание разделов дисциплины
I. Введение. Уточнение понятия алгоритма.
1. Интуитивное определение понятия "алгоритм".
2. Свойства алгоритма.
II. Рекурсивные функции.
1. Теория рекурсивных функций. Простейшие функции. Операция подстановки. Свойства операции подстановки. Операция примитивной рекурсии. Свойства операции примитивной рекурсии. Примитивно-рекурсивное описание функции. Примитивно-рекурсивная функция. Свойства примитивно-рекурсивных функций. Примеры примитивно-рекурсивных функций. Относительная примитивная рекурсивность. Свойства относительной примитивной рекурсивности.
2. Примитивно-рекурсивные операции (операция введения фиктивных переменных, операция подстановки констант, операция произвольной подстановки). Операции конечного суммирования и конечного произведения. Пример использования операции конечного суммирования для доказательства примитивной рекурсивности функции [x/y].
3. Представляющая функция предиката. Примитивно-рекурсивный предикат. Примитивно-рекурсивный предикат относительно совокупности функций и предикатов. Логические операции. Операции навешивания ограниченных кванторов. Кусочное задание функции.
4. m-операция (операция минимизации). Частично рекурсивное описание функции. Частично рекурсивная функция. Примеры частично рекурсивных функций. Общерекурсивная функция. Примеры общерекурсивных функций.
Формальная система рекурсивных функций Эрбрана-Гёделя. Функция, вычислимая по Эрбрану-Гёделю.
5. Рекурсивно-перечислимое множество. Критерий рекурсивной перечислимости множества. Рекурсивное множество. Критерий рекурсивности множества (теорема Поста).
III. Машины Тьюринга
1. Машина Тьюринга. Операции над машинами Тьюринга (операция композиции, операция ветвления, операция зацикливания). Базис элементарных машин Тьюринга. Гёделева нумерация машин Тьюринга.
2. Функция, вычислимая по Тьюрингу. Функция, правильно-вычислимая по Тьюрингу. Доказательство существования функций, невычислимых по Тьюрингу. Пример невычислимой по Тьюрингу функции.
Примеры алгоритмически неразрешимых проблем (проблема распознавания самоприменимости, проблема применимости).
IV. Нормальные алгоритмы Маркова
1.Нормальный алгоритм Маркова в алфавите и над алфавитом. Нормально-вычислимые функции.
2. Примеры нормальных алгоритмов (тождественный нормальный алгоритм, нормальный алгоритм левого присоединения, нормальный алгоритм правого присоединения, нормальный алгоритм удвоения, некоторые арифметические алгоритмы).
V. Дополнительные главы
1. "Машина" Поста. Машина Поста-Успенского.
2. Машина с неограниченными регистрами (МНР).
3. Эквивалентность математических моделей понятия "алгоритм".
Совпадение класса функций, правильно-вычислимых по Тьюрингу, и класса частично рекурсивных функций.
4. Тезисы теории алгоритмов. Тезис Чёрча-Клини. Принцип нормализации Маркова. Тезис Тьюринга. Универсальные алгоритмы. Универсальная машина Тьюринга. Универсальные функции.
5. Алгоритмическая сводимость. 1-сводимость. m-сводимость. Степени неразрешимости. m-полные. Продуктивные и креативные множества. Теорема Клини о неподвижной точке. Теорема Майхилла. Табличная сводимость. Сводимость по Тьюрингу.
5. Темы практических занятий
№ | Темы практических занятий | Содержание занятий | Контроль усвоения |
1 | Интуитивное понятие алгоритма. | Приметы алгоритмов в математике, некорректность интуитивного понятия. | К/р №1 |
2 | Свойства алгоритмов. | Определение алгоритма через его основные свойства, независимость свойств при различных подходах. | Самостоятельная работа |
3 | Различные подходы к уточнению понятия алгоритма. | Краткое перечисление различных подходок к уточнению понятия алгоритмов, взаимосвязь | Самостоятельная работа |
4 | Основные функции и операции. | Нуль функция, функция выбора аргумента, функция следования. Операция рекурсии, минимизации, суперпозиции. | Самостоятельная работа |
5 | Рекурсивность различных функций. | Доказательство рекурсивности основных функций арифметики. Иные функции, их рекурсивность | К/р №2 |
6 | Тезис Черча. | Связь интуитивного понятия вычислимой функции и рекурсивной функции. | Самостоятельная работа |
7 | Рекурсивно-перечислимое множество. Критерий рекурсивности множества. | Определение и примеры перечислимых множеств. Рекурсивность перечислимого множества. | Самостоятельная работа |
8 | Операции над машинами Тьюринга. Гёделева нумерация машин Тьюринга. | Устройство машины Тьюринга. Примеры построения и решения задач на их составление. Нумерация Кантора и Геделя. | К/р №3 |
9 | Функция, вычислимая по Тьюрингу. Функция, правильно-вычислимая по Тьюрингу. Доказательство существования функций, невычислимых по Тьюрингу. Пример невычислимой по Тьюрингу функции. | Примеры функций, вычислимых по Тьюрингу и соответствующие программы этих машин. Бесконечно и конечные машины Тьюринга. Невычислимые по Тьюрингу функции. | К/р №4 К/р №5 |
10 | Примеры алгоритмически неразрешимых проблем (проблема распознавания самоприменимости, проблема применимости). | Проблема останова. Проблема самоприменимости. | Самостоятельная работа |
11 | Нормальный алгоритм Маркова в алфавите и над алфавитом. Нормально-вычислимые функции. Примеры нормальных алгоритмов. | Определение и примеры алгоритмов Маркова. Понятие алфавита. Нормальные алфавиты и функции, нормально вычислимые по Маркову. | Самостоятельная работа |
12 | Машина Поста. Машина Поста-Успенского. Машина с неограниченными регистрами (МНР). | Устройство и примеры машины Поста, различия с машиной Тьюринга. МНР-устройство и примеры. | К/р №6 |
13 | Эквивалентность математических моделей понятия "алгоритм". Совпадение класса функций, правильно-вычислимых по Тьюрингу и класса частично рекурсивных функций. | Совпадение классов четко определенных и интуитивно определенных, отсутствие контрпримеров. | К/р №7 |
14 | Тезисы теории алгоритмов. Тезис Чёрча-Клини. Принцип нормализации Маркова. Тезис Тьюринга. Универсальные алгоритмы. Универсальная машина Тьюринга. Универсальные функции. | Различные тезисы о совпадении того или иного способа уточнения понятия алгоритма и четко описанных моделей. Тезисы. | Самостоятельная работа |
15 | Алгоритмическая сводимость. 1-сводимость. M-сводимость. Степени неразрешимости. M-полные. Продуктивные и креативные множества. Теорема Клини о неподвижной точке. Теорема Майхилла. Табличная сводимость. Сводимость по Тьюрингу. | Различные подходы к сводимости, типы и виды. Теоремы об исключительных случаях. Сводимость. | Самостоятельная работа, итоговое тестовое задание |
6. Примерные контрольные работы
№1. Алгоритмы в математике.
1. Составьте алгоритм сложения столбиком двух натуральных чисел.
2. Опишите правила перехода улицы для случаев:
а) перекресток регулируемый;
б) перекресток нерегулируемый (т.е. без светофора).
3. Опишите способ измерения длинной рейки с помощью линейки.
4. Укажите метод отыскания слова в орфографическом словаре.
5. Укажите алгоритм проведения перпендикуляра к прямой , в заданной точке D.
6. Опишите несколько алгоритмов решения задач на следующие темы:
а) рецепты приготовления пищи (один из способов получения таких рецептов - воспользуйтесь поваренной книгой);
б) правила этикета (например, правило знакомства, алгоритм приветствия и т.п.);
в) правила дорожного движения;
г) правила поведения в бытовых ситуациях (алгоритм пользования газовой плитой, правило пользования телефоном-автоматом и т.п.).
8. Составьте алгоритм нахождения цепной дроби рационального числа.
9. Составьте алгоритм нахождения цепной дроби для квадратичной иррациональности.
10. Составьте алгоритм нахождения п-ой подходящей дроби некоторого рационального числа.
№2. Исследование на рекурсивность функций.
f(x,y,z) = 2;
f(x,y) = x - y = ;
f(x) = ;
f(x,y) = x + y + 2;
f(x,y) = 3;
f(x,y,z) = x + y + z;
f(x,y) = x + 2;
9. f(x,y) = остатку от деления (x + y) на 2;
10. f(x,y) = остатку от деления х на 3;
№3. Операции над машинами Тьюринга.
1. На ленте машины Тьюринга записано целое положительное число в десятичной системе счисления. Найти произведение этого числа на 11,если каретка обозревает крайнюю правую цифру числа.
2. На ленте машины Тьюринга записано слово, состоящее из букв латинского алфавита {a, b, c, d }. Подсчитать число вхождений буквы a в заданное слово. Полученное значение записать на ленту левее заданного слова через пробел. Каретка обозревает крайнюю левую букву.
3. На ленте машины Тьюринга записано десятичное число. Определить, делится ли это число не 5 без остатка. Если делится, то справа от числа записать слово «да», если не делится, то записать «нет». Каретка находится где-то над числом.
4. На ленте машины Тьюринга записано число в десятичной системе счисления. Каретка находится над правой цифрой. Запишите цифры этого числа в обратном порядке.
5. На ленте машины Тьюринга находится массив, состоящий только из символов А и В. Сожмите массив, удавив из него все элементы В.
6. Число n записано на ленте машины Тьюринга массивом меток.
Преобразуйте это значение n по формуле:
n – 2, если n > 5,
j (n) = 1, если n = 5,
2n, если n < 5.
Каретка обозревает крайнюю левую метку.
7. На ленте машины Тьюринга массив из 2n меток. Уменьшите этот массив в 2 раза.
8. Даны два натуральных числа m и n, записанные в унарной системе счисления. Между этими числами стоит знак «?». Выясните отношение между заданными числами и замените знак «?» на один из подходящих знаков «<», «>» или «=».
9. Найдите произведение двух натуральных чисел m и n, записанных в унарной системе счисления. Соответствующие наборы символов « | » разделены знаком «*», а справа от последнего символа стоит знак «=». Поместите результат умножение этих чисел вслед за знаком «=».
№4. Составление машин Тьюринга.
1. Дано число n в восьмеричной системе счисления. Постройте машину Тьюринга, которая бы увеличивала данное число на единицу.
2. Дана десятичная запись натурального числа n>1. Постройте машину Тьюринга, которая уменьшала бы данное число на 1. При этом запись числа n – 1 не должна содержать левый нуль. Например, 100 – 1 = 99, а не 099. Начальное положение головки – правое.
3. Дан массив из открывающихся и закрывающихся скобок. Построить ма- шину Тьюринга, которая удаляла бы пары взаимных скобок.
4. Дана строка из букв a и b. Построить машину Тьюринга, которая переместит все буквы a в левую часть строки, а все буквы b – в правую. Каретка находится на крайнем левом символом строки.
5. Даны два целых положительных числа в десятичной системе счисления.
Построить машину Тьюринга, которая будет находить разность этих чисел, если известно, что первое число больше второго, а между ними стоит знак
« - ». Каретка находится над левой крайней цифрой левого числа.
6. Даны два целых положительных числа в различных системах счисления, одно – в троичной системе счисления, другое – в десятичной. Постройте машину Тьюринга, которая будет находить сумму этих чисел в десятичной системе счисления.
7. Построите машину Тьюринга, которая преобразует запись числа в двоичной системе счисления в восьмеричную.
8. Дана конечная последовательность меток, записанных в клетки ленты подряд, без пропусков. Построить машину Тьюринга, которая будет записывать в десятичной системе счисления число этих меток.
- На ленте машины Тьюринга в трёх клетках записаны три различные буквы: А, В, С. Каретка в начальном состоянии обозревает букву, расположенную справа. Построить машину Тьюринга, которая поменяет местами крайние буквы.
- На ленте машины Тьюринга записано число в десятичной системе счисления. Построить машину Тьюринга, которая бы умножала данное число на 2. В начале работы каретка находится над крайней левой цифрой числа.
№5. Функции, вычислимые по Тьюрингу.
1. Построить машину Тьюринга, вычисляющую функцию .
2. Построить машину Тьюринга, вычисляющую функцию .
3. Построить машину Тьюринга, вычисляющую функцию .
4. Построить машину Тьюринга, вычисляющую функцию .
5. Построить машину Тьюринга, вычисляющую функцию .
6. Построить машину Тьюринга, вычисляющую функцию .
7. Построить машину Тьюринга, вычисляющую функцию .
8. Построить машину Тьюринга, вычисляющую функцию .
9. Построить машину Тьюринга, вычисляющую функцию .
10. Построить машину Тьюринга, вычисляющую функцию .
11. Построить машину Тьюринга, вычисляющую функцию .
12. Построить машину Тьюринга, вычисляющую функцию
13. Построить машину Тьюринга, вычисляющую функцию , равную остатку от деления х на 2.
№6. Составление машины Поста.
1. На ленте машины Поста расположен массив в N отмеченных секциях. Необходимо справа от данного массива через одну пустую секцию разместить массив вдвое больший (он должен состоять из 2N меток). При этом исходный массив может быть стерт.
2. На ленте машины Поста расположен массив из N меток (метки расположены через пробел). Надо сжать массив так, чтобы все N меток занимали N расположенных подряд секций.
3. На информационной ленте машины Поста расположено N массивов меток, отделенных друг от друга свободной ячейкой. Каретка находится над крайней левой меткой первого массива. Определите число массивов.
4. Игра Баше. В игре участвуют двое (человек и машина Поста). Напишите программу, по которой всегда будет выигрывать машина Поста. Суть игры заключается в следующем: имеется 21 предмет. Первым ходит человек. Каждый из играющих может брать 1, 2, 3 или 4 предмета. Проигрывает тот, кто берет последний предмет.
5. Число k представляется на ленте машины Поста k+1 идущими подряд метками. Одна метка соответствует нулю. Составьте программу прибавления 1 к произвольному числу k. Каретка расположена над одной из меток, принадлежащих заданному числу k.
6. Составьте программу сложения двух целых неотрицательных чисел а и b, расположенных на ленте машины Поста. Каретка расположена над одной из меток, принадлежащих числу а. Число b находится правее числа а через несколько пустых секций.
7. Составьте программу сложения произвольного количества целых неотрицательных чисел, записанных на ленте машины Поста на расстоянии одной пустой секции друг от друга. Каретка находится над крайней левой меткой левого числа.
8. На ленте машины Поста расположен массив из N меток. Составьте программу, действуя по которой машина выяснит, делится ли число на 3. Если да, то после массива через одну пустую секцию поставьте метку V.
9. Число k представлено на ленте машины Поста k+1 идущими подряд метками. Найдите остаток от деления целого неотрицательного числа k на 3, если известно, что каретка находится справа от заданного числа.
10. Составьте программу нахождения разности двух неотрицательных целых чисел а и b, находящихся на ленте машины Поста. Каретка находится над левой меткой левого числа. Неизвестно, какое число больше: а или b.
№ 7. Функции, правильно-вычислимые по Тьюрингу.
1. Построить машину Тьюринга, вычисляющую функцию .
2. Построить машину Тьюринга, вычисляющую функцию .
3. Построить машину Тьюринга, вычисляющую функцию .
4. Построить машину Тьюринга, вычисляющую функцию .
5. Построить машину Тьюринга, вычисляющую функцию .
6. Построить машину Тьюринга, вычисляющую функцию .
7. Построить машину Тьюринга, вычисляющую функцию .
8. Построить машину Тьюринга, вычисляющую функцию .
9. Построить машину Тьюринга, вычисляющую функцию .
10. Построить машину Тьюринга, вычисляющую функцию .
11. Построить машину Тьюринга, вычисляющую функцию .
12. Построить машину Тьюринга, вычисляющую функцию .
13. Построить машину Тьюринга, вычисляющую функцию , равную остатку от деления х на 3.
7. Тематика рефератов по теории алгоритмов
1. Эквивалентность математических моделей понятия "алгоритм".
2. Тезисы теории алгоритмов. Тезис Чёрча-Клини. Принцип нормализации Маркова. Тезис Тьюринга.
3. Универсальные алгоритмы. Универсальная машина Тьюринга. Универсальные функции.
4. Алгоритмическая сводимость: 1-сводимость, m-сводимость. Степени неразрешимости. m-полные. Продуктивные и креативные множества.
5. Теорема Клини о неподвижной точке.
6. Теорема Майхилла.
7. Табличная сводимость. Сводимость по Тьюрингу.
8. Нормальный алгоритм Маркова в алфавите и над алфавитом. История возникновения.
9. Десятая проблема Гильберта.
10. Примеры разрешимых и перечислимых множеств. Взаимосвязь понятий.
11. Примеры неразрешимых алгоритмических проблем.
12. Теорема Геделя о неполноте.
13. Рекурсивные функции.
14. Класс частично рекурсивных функций.
15. Класс рекурсивных функций.
16. Класс общерекурсивных функций.
17. Совпадение класса функций, вычислимых по Тьюрингу и класса частично рекурсивных функций.
18. Примеры функций невычислимых по Тьюрингу.
19. Нормальные алгоритмы.
20. Биография А.Тьюринга.
21. Биография А.Черча.
22. Биография Э.Поста.
23. Биография А.А.Маркова.
24. История возникновения термина «алгоритм».
25. Машинная арифметика.
26. Современное состояние теории алгоритмов.
8. Учебно-методическое обеспечение дисциплины
8.1. Литература
Основная:
Катленд Н. Вычислимость. Введение в теорию рекурсивных функций. - М.: Мир, 1983.
- Лавров И.А., Максимова Л.Л. Задачи по теории множеств, математической логике и теории алгоритмов. – М.: Наука, 1984.
Дополнительная:
1. Марков А.А., Нагорный Н.М. Теория алгорифмов. - М.: ФАЗИС, 1996. -448с.
2. Матросов В.Л. Теория алгоритмов. - М.: Прометей, 1989.
3. Мендельсон Э. Введение в математическую логику: - 3-е изд. -М.: Наука, 1984.
4. Михайлов А.Б., Рыжова Н.И., Швецкий М.В. Упражнения по основам математической логики. Введение в теорию алгорифмов. -СПб.: РГПУ им.А.И.Герцена, 1997.
5. Михайлов А.Б., Рыжова Н.И., Швецкий М.В. Лекции по основам математической логики. Элементы теории алгорифмов. - СПб.: РГПУ им. А.И.Герцена, 1997.
6. Роджерс Х. Теория рекурсивных функций и эффективная вычислимость. - М.: Мир, 1972.
7. Трахтенброт Б.А. Алгоритмы и вычислительные автоматы. - М.: Сов.
радио, 1974.
8. Успенский В.А. Машина Поста. - М.: Наука, 1979.
9. Успенский В.А. Семёнов А.Л. Теория алгоритмов: основные открытия и приложения. - М.: Наука, 1987.
Электронные материалы